111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111121174177366624563653317522452853645757367347748718427513712678343287634677426532837573375465244445467527626786416853336752824482158615582526475236865634748551781335445237873145857433152165411455747126218153345516527471232667563325427225151517844377544768718372774612638852523687885341162166383784814313118723861575313881867715126854464335544646237636276435728286783167645151856312116476735532133545778482365857237868463146427824717116776631478223834486461424255666212857366156536487444447375763463524833817815775878158422224182133548246588157243456621664827566325853623577331227138323851273173288662225437436476833117644214224833367487531821434685745187758874363416785438436711467758576616336552828724136864556477315255441758124864533168411268841467443187887348676113546647581761164246837484182855472463852548215837821316473318273677383368866245437647731327355861256562774215454612872518651858664852127313437658556374366422362755284265725233614744188534617322575572245764828171587765576716713452145751678318336884874313888384284568516528363415553188745857584568666655566465556314171417778843834181372818362235116862255213181681311313433613433682668178223632366768227665878785751853511424473832284337442887743388758582715437835386685345438531268474532761836287743881864446128263378815784456256576675381113484282431637662484588447444742527543364558186665747461131412242644335785587865664441675255225186377863648458624864281583177458743523548276487563623173285383227656243246162717664854713788662685831373427287373376211831367484215357217415766548721767365646246236823355645512365618671577641727341232556144547511428667814644715688251422231685241656351554336184547482221165651683576522358555448537265688431767136717285211653815577148762711874438352823678327826383775412647717223611488825415554345441828856844331832163647786311466378184752385276645283838157222352487427354778843251711151137784111126858268253115251871463416483163447142245126131658127234717828355872838284331554411563131684778738883783367733555351735887128643861454277763768486674874238576164136645537863477523654672263455358657626775117275867863853355518552282114543151376527667587245453774772712651843361614751823148386546757773737212623786223372432323141224238714338838225713714614324258825583821623442478322541832256388873113444626384757817341153334227838822343626426765463615547666867681538617746645882241372781237564724882856577876333435852731325455672517872572664124577463414741832667287122441242647241355476557182766335547388268486821558485886714846424572428665222172472563437448422163664741253725643734742714846751382287784644167512558443478536434344111326526472671224868742251784445721676816162671427163433524732378238767264767726714527277831761448868772475128614665664513372756351217786314744486776145525846846153278558366167281128882785342634523617162778134616238588558615361646312567287756236154663837886687555814178383582263756136565855356586448677374612225178584213641174425564861427842387158514333832828427124621727661784655543824811145521718573852733384317238571437234573132561283848673865153865467112373133858631174742475648646464374278512356862133788684771772462534412825181715444823266518174663764427115254335225152481373545731661568886643485247686552242425317272662433867353735655733676584668716266238748265511818118476868582366682844463276348782521265183258718231456418343548766454485687378253667324473884444746288711553113541766154872428482786433621545238575251713535716318228454858744255568152277142645464653334744668545331261556147563271317361332158464262344584458652151583524483262824841351143674283887552366175714326818818385113463788743335273611487124357476584867782422136114722882811717658823174551131421217843353828181814663877247627616582141831776816236862167443653751272815837426581643841262823685755172331727335474762783464321513827888184812613468132524776372523115271332878257464568556236788458751823475287325176215623232721711154486782783321287131444175311372517113285663275157543571743326152238621418526211335784531321238534835476467853421614334763812121116352265134887217323265625421884858734458386333862887248211113331623747336284631367347553528312657887288343612317674878437577457314625746437452324824156414533433546874678144125271675426152156561181777377425171738135171878442372365764238588365772373177417652518615417685476173335374588364445462318278338623676311562546167865614338281644732553817164728376828323521836835243228224862834473338685126134136235826182257225272711433632687115365732432785237465515826776558364425258348247562654844612731282457663343115884813674865633658886881854111217484151573717436251463735276642724822366837133646227373548442126284357436156214637485457585162266866873235174676746742477277858854345446674481434815881746562373136326747765146615581836335424571645153664634526611378354373273445818113385525332563211284438683488811846124347678322348574267538741361787667166441785544462331581546846741676231772213852327258473217814721118563641573122324845252635787116325466462856544483117444358158574821862787761155768117848541145342463676648778652885777428363811274357226683618472168485136222238711813265888523634255475154828843362438737834481483621268633118733446831552857464573517383146738682525346267128644843445235231115277678747488521445878346777582872582824734211473558672836726367573187118766454828243138285262546112555772252143843444562518557731633866348536316188128846442542454322554586631237173237824551548824238646324856876225835225718487142117867746154872526334728673347426613566734783445151421577812654321434674263466312535426545645335387821248827436266218851641222373543757778422448416685144733482227144454671422625474374565583715657285645586334878442845565185811166378653375164467547247235247522676443578813434461146171151252287673125381585854252774235861488383141465314228142358772887882643251721778838368683574868327785615414588818428881257477633846547311842227466816342757853131553462546516462522518164617143165484363448246433785187622834277713657812154681685225264225563733323716856582355548166663515611632171128616686862525347653235477668438315426122267155512252722785888658216885631223848438281653787752834387332435717761872388425637162372118463885426563865518427565328371577317243127423558181654681828113858714554344677317411586474161833553667428247447844422257575466588376727423654514712221524863131661117752171841161231555548432876673685844447717618774758457484788646747234133334816465535176481454417423767482686817515574585261543766188362736122626357157344418388415252658841417342513477864243532646737428165423465361342675432283775618633153111765255226326453526484413241362716666638762824771324848724388673426737781431258564184752217443763378858812533787275843414126632862716261772781835444123685366881468245123415636381843447542451116712371538258544288717553778375736133768235648814136458845217844422335846522234162314637563127688333417177173673757888841226313381425437782671818173856562783835455275563167551187315453453123753661143558316114863476564448725565714265582616818672526565342673418876763644736277748882121656376216484864748835524178336346523338358173615635734643337146645356444358764541832413884844456728378562354388678158721118245731714713781158132638663256222885782686471683468687866883678621561538743823838447828564463434383218371166418114681735437234256332782164426686745855742527886822443778666373112528457461561875677353331741183327564815217564444834556277543553825564655317745636113566861552812632215678214733218172665313764512678177883557613114264347571278677312318342225256432713724836417556352378413115878516484476621864118335583883134662536155518676143361772321226221538667857221522424726261147484816786517358544486652475127782617586752718637734381561384654648877414162642422332384571454338271152773116732453877626728558254343818832418657744131818555143713278247813716622668815643138855282354444878814548657725146124167241687754746777634663668736676488885568484331727614541114115246527784871246775512476236457474445118845442131888266877561756464625425658413324134355216775474874252572112717257758385863752761276221578173251822578785681726417553568626861778256524575854144157111486828734338864353731341171468414581367237134742415152616585833247353156613377488886332115777266558412254211375418122722385215648177516152247676717643435737843431767681187426172238828458153647861771168672653525536376536414245844518622352463784465884234465346141764752563261485815213763445317733257752126888255735683266784276355337455138562437482766537767881565176517866473388351148547114662632543656344216466753372525786865672562356842621728553233723628725662661478583883687752757836276681123274766471113748858487874428872667445115243185415448572226514736631518445885527128483187475143213866458877622741178443458647828764384752886282582385764483831451618246311385648732434315351661873545121618434666663548382618813862115318871336742664672445686445575571186815262282582762132782463412842643221517728817611634633251476541185213247674213257181881568532626724176886155455466387542333742811811354328328416414318358728464441816777225258647133725452188357132283256844385587177332241721481773135461712561836733447723871125651574377828816514211451364732647612153841364414353721245857214631712875545222324283638677287841234434862213143534866358255226563611315342581186823718316155341571413854343231454418728324288176546438286111746172272264654545786882213868154364856686453432581424138374311535448453112611883353888677844533331268776887751785331475445813655436375175686776174441562367332418377353374857278768272173332578671714832728563858252468344252584264287263886382871552127625514648871188456876358616283632331348611867557558183154482745678627571677385852373875818555471524857366446672641656121573243435762524517671543385138871842423561488715886776448645647353643766866354461646222825317574782133374843423173831188141663831778473816576276761653435284461728724268772822743711488271628631338753377536845426611824784833612836744687881775541113223718352627878475251643782727622456782461887422545751173538137311454881416382486125618533875647621421422731247517872524127578672623726112786821848526643428884156123464133246541188535536125767616287552265478655365568732114587881421336836348486884138877388363711655572311886437776758832272513852651734615736112664813473241258176243386516218812837324232157474544162662634312434237423161888783137616134814212833452626741417314753786613156442442438614214866858465443764623217755788353885618464722436716864453476683276766482155626648167523578313624731567162781523384588377511752721671612871241732724271834788533461136341141677525335225242154363726165781857882226111774513588762275772565782322656747577561337518477161736878421646448526473351363672236137578332867485743122217272836321666774485868474736765575638442216411155283284427571176271215278241655746472413238321838875168233764341367554342462167418172673368153638814571832456251566537738175842654341646654213134371477125375881845681462463234167324776124155143661487161281854323157116832645854754386426873524475663277821534647281553853234574667551562267485771847733513215548485871621647544714252427336487278243317777251256354816728886837813275712532577845117118684875326841461432848446211334565456656573581517168762778768312153514236347672645215681355611811653313463384558165541621253622851362418576224767573565337737868664875373673747251138642731843425488251181655463532558316651425483762446371724315221353681358688752211265121756577174533441687554784555166834775828767364613435254247757674411723261244168244571326278115456645478457353315173316167481524382724338474643212762262218655686363481444817462672524351212672775285272864813334811674138863532576558562311313246313337845745481122245842756671572638661788214214516467628412487447566748164828768782736525465636251521467421713137151562717814834886456338463533678545585731716527172346523665161752834158728662435252575461715838144524633143741325522623678153622316712188371228222523612873368437843872555354714748567624526126187771652216128716263762642474426661257286818452865556347661575512775222512372511755246443828262228461754275842558273763541785872735725323762225334368413717681482658652132764623728581556831312412283758278225355578538376326217664633281788511235751216435723888445511762883831221638154642538762228847287853222442237868631385215762885862426632128448414843183164658184467564668543845153823312478112122254351683682417243253438248632388864763256328852171724614215517577424355143212164382711862367852816442322817674547763355647216762843527852548868236243276851323153671378427753675757477766526625223774416178716153343864576611487554876435486347271277573124538274253341478787185371225785751484783388878814775557584365546154261775768776883185343738711477137742841558235227115888132247276178824756738673682854586358746237286547476716726313312287151248138855844115656832725574116623486687588575156225444452468846266341367843517615381172378164232321321524354781763231235355252512781323636465751582843858114325837382683757353362412231255547336688814627871632755614255213375633387752337427832642487457488476738274174315522526843747247736353467788377833611433562764136567167768326372533572635671846655242851815618384515638132826138534212454266474171837775823274136838536333686787788517573728436673687312555571883113528658465848147873741734135545472824658213123451427782872756227811275685827462837814145425234235268824374745168675435784232435174647661721275852522433371378617682631527518821761726464514886872516628652651786322438256775422824346275248325621851166515364351848848286181331384771633838381342612852581574231768722811164733811521165267541458511675645613265575113612563413512163832327225335575633718314283358433855627552235581241775843356475487711683132577828154246445522576858853662734237153578143742652433482717475587336718213321333672283872146161167681353631157214332726632648856657812637788826886642231543635217766752131675378113872866854351824324417385523518325623665357684756387336544718244358361635282145173278757226584646644866223512258683381761847576431358753487154623324415386487333265782452164141864882175733778613511782145116861735138446844356776835186261148457787855856584344481525644253363542287112536232714458633332673148822624114782728452431474553548761881764534317377125738363556643813678637216654326483477168311515652245562521874367774126476752152441243211637234857346547266352141554154153346843428258351211448445514238881623415857724843588822531173784655823171244366284116754714871875816813448744114253758883621788241253672162756828852648247483485418533521444543435118462558526784746276443445322356547284772447353485388124743537846254415152175651275461135354184241655577842878645573538162872532713358671118135312136886185677436337211312583628641517828522758527625181766851614312621512214851445367435651668828115618572447551371443812117284237155314344838244468788412188652354774157778458464131826312153331313368133741488182325872532465447812871612435816888161736323857531132438727112752547455154328223642751728664742588536421153365671166857416137817125647662633243128373715428715626127641617355818312361768238637756575431482661854431227666156156815587316121687742527226564771867242763342143377312531755225327782863712838774841283878462481443572834631473212776835433161727576321731175582458432638115733433614888642374513868354832723831165843654564823685145346564131817673252655622812223682757411862362286454842636841811634476528787746171757217537457626643621554358245747417456173668383625151642635455466622186874673413223863861645813356442231378432231773538663186377825184834727224523755843612474117852465544478481261761457712421231474828278451513768867347424672351732636648275248614776283378288563642712216767681114253286613487127664248712258761861165128727552558211263467725717331418754717533836676646553422884263637662141351514377375627787324764382738681277435488881322856325247216164263227367228556644331481416435276283422475274351628222725732574665817532417553556351843582336751174427456523741257221133323755587735425753384876466572838757283486637487111545732818171561125184545626262841542164557872477178314176585217548586237315214263655265448115484658845623751252683867375733674188453272441255778868584828643624216381825672532144872678261584472113888561162367137378676146614361753772768536328555167551865387186186527421131283843142873744251687762573883287242237457277441374461663643323815825137712274152211866235612672728766248686755523513574731456543123516588316673311387865162435831152461643568864547641667456484822554384511537676657336243442522673534381444643257514548847644882773118384832766287587225564368413176285314261534833727681167214112118362481311847238525458378312381222544478737162548577335486351472833128564164448247312225321227213783543574642153783335338758673627475114857267464855447585585622527825738386285487267884242172745784514365376285562647476444551518135614256587482357124745387614148622655221262677378284586634826365573764733726533615858366314764375382535341413565254357476452416528452737468617435135556155535116551868323566875211647446742435235154863216517717745733834162532326111147716665746487248344783417435671634715638168743654866468674884468316686845881568767526583215438142474464312482346222571261427228857354675574253128765787834821255728767118418357278735481115518636383282123117268857725412327245224111223535771722441512773723711455834186468328167887245785451114422767787254524351677114226787213256852833623552711611432882624414273171873432234724736675152274781365817843574543181165133157324621173874862631855372671146617586425187858615766584274567535846481611162242267513841617846124256474514463436855676258547277651182742832488142777127557448868483228766472173466232421618668587123545428426316327283511186585782731161661372531365485678333864541271871855454288637347162518778711826534816314828474246344788173772464533636281131636556216721472471825565447645813813814346576421686242842616766452366212258443147851212534813363623472271447814812818448163616855817386183181162664141532435753224661658616772545441815885777182562242155835231563622456228372666542168646112536142341568351176552561826348478366814524728723278254641822275248564354531816571255623282417741123737733142512456775744773858156312462147186822643612184787285741676746857225313433433884167275342723726278258165674412331544713568822576825362584822385754876143148357422155741468582856745237573226182653832722367354486316628151545141217674813166433623527238633528148426712263378588421777756728668772121715536672353244583755363428854357517174426671822717455618722428476755614572113153752721647357425146672413827168656883874624152884772746247541185368518738747843676115577844514836761122117467236425412517174171761243678123723782322463725581122433774777821117511244872777213426621631751844253142827288848156162726467246847652348743338551727278317576346775848841723271621524583547724156486715228163415221423524348486524763644166688512364638153315727183881515312844234337387755358625845717285333561351854644114551644146526154816454683851137863444843676758231266657758824471116737711846856866434576453887153521336473765875851486762784244461235313766871776751277776464315145487872333384114818878222554885525473871483571742441623412581716251315682768773823526422845537565583468857426426264357851444832524872548486128688474434621366173332747231337426456853763348161486244172628324324837714766557841448143352867422263438816623263277566883273663587441416732665812521351181538817415412345743784843388556235736567613565248316221223146678751777318814768317834142135812436675376162665853787453148144434261252568171582244674577187672886141651558737137571114588832181866161331132448547113336228724864367755333284537118754186712451745866321346132416461117446241744734513251366822327385532383518857536845841255565635535734445485225485648563885672766143583641833187373674185274264658852558228383147583313162684223871784137574226458846437128165871881147633667476388865218857187271513781634282532437538725623362237183448727648126712741713366611678712825757272444751687431817662478134264554366731617426743482867533782216713327455773866466147472865581585283646522571512883432577352638467164628532753753262511283873731487234766253481664173125336567676521276857746474155261188663111645123775228146874713735283113527624654166273475778634573116745414254864171488855314168635166485576144428758266186225643323853561553617834738848112183862276515677113771886434136438146683555685768327421144244218388343674753658832476661735764233867372564566417267853578855717731283774136822515653818373167222324646266572881843668164451257362441525241821572648253847651378217318378582252714258765275637336828632187241377464575357633823317548772236665313436612812758461562574127151317466727117132235441575318151637821537816317344246453445868532722578531486641433241212137167682478672548637642687546784771343165626232152136585732425757878224258382758328254382632637451243327455358422725216778643872843766332557447621534373886475877722226878658475481454644712321143641846465478456371424835848732688528447654385814611611522454615675527211462436618437462582111715452648372163553322475828146543247414473885664721643565516431858473237534632574154188483161855535415445223128722542412648245124377627347382674342565861152424811182146447436156757544888251786435663224868628243337171325334356312163253842225487155713876316567643353654786836678665778848615414253187641661725512614748533361737647786636377157323374362216743216861263583832667572154427688542166854436275468143181218624235136553371576862342351383136114634513785152844344874164614516761748113784138254366162232325814751147518783672286348154752352828223822128353643861447442657385817125353737645674234556226468176247732875145732843662647847846743338262552846175814148414176674242562836755276667355338164368368415127482327335331717887563183564142344483831874244787242788762441175643766634125436578656115542424286238448775331577127646627414461448634216228628864655886558736668762761185824762216223688725214857216388578761753725448614241487456263774111482187864477146288333115857472366377312423238181754323424278437842652471681258886241316822844445578568848444244647254671148774272845774576415265256568752818442535274634478175548482177267215327872278517614832363145561314182551656633584537442338327521567688751322746716462311368782524857655682835853448327864115573453233372447858365587617363841428156182525873636653226868843427467112538537821184468425642245827684371565572653771414165167164558485651883267385157443545124166532457857768252818873212416444576138443312687734251257333534182728653353812266632882228231823447814285732426532581662517346722468347421512856383483756582751681428758228442671736463375722427742665335353281248767854683253257564651423364376327478283752848883248785232522627621474882423441276645756238371883838522488256664813246431471757621321476212787877311752477224471362133877821268334224578541765885666563784335348554535363247512511114526453517665512566781447656681231434436515424712783517477145288718778472184428118121368317657553583624178145833312356284656787755351851547526787318821415423487521574524827626565873854265383755325156331217675775167571261754821636473217451273226871648147372635178732711147215551881385314811175418333863567388833487318417633474813465327866425374377711851225174226762673748254581576773811581653287411781542844846862721864611341348216861815344244711414288777687883641465762554721641664844187733641244724118117347112654476685738717262887741326857534457272145283732175485168335873372243433228573737846428628248868163534248137442762273783624343348111275668552345781843137883684653388767475117552787874842654686831251411742816772767388427776848137888368881163577316558623773877272115414326616678684616773212325237768254485188735243437546225558383855516833457674544414347856822432273326872488467173546475358675246373615616214632753555376355485727274216323177872447271778587761633821486158477818724336732512432827147533765776315621123546117566838613271386872553581565121388144315242547642447715156743878624361223756726366353814445122411482744434123528334821387115478627226474227866861527321554383736825231311371272312426444653162523483637466147667141348453411685147258254434235434228451721471144224786328213826774816233645415225562772643166722428731184547647468853527762433252451214764117732331168261444164722513248324144537635814233177711342463123548557871428664447468835224463576363878545861135874583484614212667257648766285845264784525377418315383382644513355336853518465167866586667457731633333423833513716654341173555872253714354245373815875615742143484242125425862436327564787562448871455186566152621536652476885342435637554264524467325227681366762777443864112454188122835283181436868127416647221713663756584724582566317455242685681633318283361443825843756268417131172621563272774683663562485454473312262538742331423617347756723147788713181756542553125743365417135656857346182714244633556488684734818657175111283213721671782543131214168211323774117184652255187317375618581362833843313828714443725811412684324771651358617148143287368474341557525224686464157566435461481485836488634633424137781565722314888518176882451546816774788586431842646813251242135433617542672143356283841722744718745364225837136388672377858144541253451447756767482578262381111126612821365257873124733315753656168475513467537342853427315533846325452331237324752823622818884215638688341727825184511363463571352731174732672446412413586132213178573141753383744136711176875113577676537824263321853524782571624488557312287623447351636522231536834612643883343726437535774426357162386565646765182341711567145361115586257142742852612112817765536282567234464476684444682536162656356662426467725462438631635474656816678632523416534583457617348621657815221724487723516365687651627425523326424766747768314713372232564374771626213165777233413878183388571828632652338518345153462514825384688666765185243463811362113188415778627657858441686167462224465883413861258552635654426257544528668842484486141347612426884855417686161232882458211115115661163545723648887228137654853447477872414511712765827444417586347173887466368715685152854163884657286865661787644485463863682173637582844543738238163755286572254264755182324371251446748768737357833154267416488367538571732365374447151871456661277518868473524525178461316855485424154515826487384131183576142766618417353882156434142683673377563465734417446831782512145422572284418272258268378665556125712863621623176274245656628788611872825655774347632516871587631188448556175576647562777277668834478676654346382813548136171371336651447168626114468334446437253656157623881821271486882368211314155216521271787277358644128255653516831715644764651224378232521324547551137214867842738337381243648234317312615816285418832515588438681665654451415166681568636874787181314327811838181856127453331767828743815263437483441251324347431848656161622271477871687533788334722351116546165452274233731238552682486884176533734378541334331444754676372455643135586284562258658143347676665635868462447187126731471252841822783682575415387264834227414774375144342745215767537854635447781677213162854663514377665864132536547578211553445126188664171363385717834486511167736515376741537417175142476744834233342232427381867662445776642383356144227125673324462148765152365186172673871816485582817644265387328846231311273337461277837772587431728738556784656673783747834426823237856264345582346248331652678316247448173388114564372684732732764614787828778436571235734676127224557218633862674352436424441112473735658635348837786638251147462632426186747161138386854865268732662822668712238872445585483353833458122455273466478887552271432832513838663716448151324884654871411414233112572328385855747258788231257458716183242478856336854273176525324442538516825862214642764753236772842353258635574413152148871857148684863274445417731686836154832278562655646658817843732782777123221813854623632381441285587832173463763323827474368252345457366716274586717485757775433586857633586371573118252644245578771288625227833564473476261888141515568544647121181862852348547262676683772245133784873434255121748742858158862247833413524777223516616363173336423467111335477424734334164636514778115761572788583777712866268846565235422638662352572183167346275713524842732544531244364735818172521651124616833288444861546156282172773743688861413713835847258177163181718433754615562631335774435187873761246185675141883412812754615127183433172534553332372282765768381881636446677143575674644861247262146285627286417168524532872455865658586345142328636235634161516345147756782263656184243318627622633768268428172758312233721844223628857167372187321127636883336448887527123718651583234273425388183628411637735863282741113585748553255771383451235731884455672331476658253252675521426612427323138162452124558381855373656327753332211574164525271473386451651881313351281112544735111567746375852781883485551851723731864373333763212388617462555864753166343328868432345678324351176888461685467722243834512734754283635321282258848214112812162374555224548425863863387853136374354755322242651328183557642831687561748428426487524811376244727644422883371388515864458744652426834367477736637281644268841451626863425768237482155716312158785734433213735142685335437333228858184235842668472465874745228113627271554272317247323514188676882853588134785463315266315447688788446641731638721135733518656868723424246756765748547412556876438722811487377552553568371258111137181618734156134161473448254258811552282483718384588281866878116621465482575528358331263577344575246114245412833488532364748562173634718372211513416171156564815447275126417254574463263524511333674155762214527313571366574317347613768333888674252871886842144814142264753667457264162266678477423563715845877412141445418266486615373355155581643751618123423412151842723751751236877536681842544514854123833873387581382458638624351538687361281643262775823746225252417711611767683483533615166113438347754841246632444854165546688855617784464534416341743122545182615548288761524166417767771156318612361212684848565573475375672454286273585417412478713236118454437145226233354256285247185546486312553747853344766534777148136114862414563372367328113262637447874221673164183155815827513572718251538857711624236718275737835736313488487255884753434145582162845253677366747468447886412162427245282462367261565317655522385611823347148131473167285757521237521874321238582571822374613118453468638252524784163128238131228746118832656816632176177411674715628463483352343318418151384672684741753445472413741154675654486835574477111863642677318183112224542631213854823544627155377628251458652113847187586332336213226285425688312748423872662414574854178766452126581586868348554283834214345145214751413813861556418617743743448717155167255655212435141571247658265255233142231322113217615472151618377627587135254272548752323665468646177845864427626163474653757422237843218887517438658214526533442655288338453826613534254625633227132865882843825423347125458315256343561817228727571318673534554115884647224625353148732575557362416834263117648442641847857785216852322574245435185788547512756578672763347665271528345535354127831733481784277247582342555183868761375686478288386664123665217376554112824786675643616576822566675452872113238723172114171716664186621255137281363834377725647416428266144861457731723538231717552128517842725266181337513227381613467367783338834667143132247741377245637316616662867572328633766526378323116277556831833355841536516827874626462685517434715326221231773714334356757535268348223853314324831176552184462881322761136133461241584227772713644216245241372453437785515568862558788228484747358645275527717242735382757674264113482825646357451321255154343275718287278514443551686334621883422171457511252211152233172771283822175286211788436656267814757157656345621548676245743368211677188275168164524766311363586532427168454663374417572315354658734184173355886575772532212244734815371167327817874858471722484631168453417623256112686288444438364382785118211623546612628157524644215627115282352748483668512374826885237167521762871384527224257541866627262641263464457681557224534146433155536345427725282563188665653786783628343624764734684862434188177668661728426274637125677244216278721458375361184217478673843881565552764365124358583545458315732717828866625685862657355128511863123278155134476487264737837388147452455342358788854271761475333727837715255847451712557662543137322516767286152134375131688372211447125431676345668177551317768847618447725238883487463274833552528552412567838316513561135547173511854752876625146846616885153168351564625248772624883364842555634213857338316844245357257281554657753586472111776167341436274172653572746218624562847332518111756462446417866227185273165235645873731455778312268241452722251284736272217188712842525867585834177336657785137846351345657556426374776636351536715575741161874316761574788627144842717472231338126828182473472222632546825352887662183242725767115173615853644422556561521375442474624655413173254117256457236843428184178541168125367761364824766642848728242525123247673774173546245525114317317724344753273218533778717134858555622721816184872453658428515632341627865222761232381344354813361336355446622831842613332173338272245115542171658345646773785737438772488477722446858742143156332346216447441288576773532335418775737583352872771371212281842834478536243574717384243116461672318174162758562812427182516163388554588324864887363476253253735132188175136628158673151151335666375427758458185252665447266274678418328357658738428645463277655331562226341584444573572763638132258378577367811165248241523671758342228534548575128266358757332428714141685318185224636353563146252846128575126326838172643471547258287125313356162648433471755517717665361843781276386521143342152222573212624223124151551645136244336738268143576373174767225788663874275526641871571557163286858183178126524464335366242315225325533755128644554288882817332878317875232838745285477462622423765582316351725362153731528348814462718225153351175147487883475262784568517372175852811844617117687687547773417525886432572676472685255688171783868268261742375454843855124464478331146385343253428411621625382414246271321481471885668585181348425451411444122536862135752575847348616325516778248738725855667748612366733687367372353524185611325685137888615711742716738545643778182223228764886866743485346648573482132268655654116867273187666282233288145175382251836435581842881687461321642528682243315865561853126145743283737443354388573758614353422351614416465155684544423132248245484761464481666757164562676485538727738333528616751578554361544526766256143624743768451254566532155737267745428285684328132131836428788445666748672462771143514783711787843213255525222844433377724312784611464167628313262251123286838771828886865415574567421151515823172532713812416513737513481583443664828587852545176564728851237448344157613512665846264327162838442817425811316838762388175382834235657462428824667463215781415232663145812761323268664576487538142115363451728144243445667786336886786783373532845545312627843336165137665281248256211836475732762132475422857827353152267818553866227657462386816213186611457755462155771772552186483286435735733817542224628578712147766647721445141271767378744254483771134416751877448425432772533447144513134723843347885117888584372164881133254147568437266581587845777372323635561232588238518788535873556457418213785285525421716126812128661551486715465322383167512478871488254288223532332142767145317832221578318162681787337676846414577428731431458426687376584881438266382228335677182484761711281445176416447615483554657844783288776824371283127826682661555545163768882481624686517737644357324777186846211237634761285727572282467874246213462781486142676413681477854744571441851173368587766861253126476327424557541317283483351371327342512158781588876684411111461248724167258427665422351173563627467366743614884415736184644332715646426782884223345117114557437716525438215753823846274134137842883114688322355211383113328738418268127738587733674735882822851536613654288281841254338825757615122428185317625633771322386763528841383241881418382775663381844427268633837526631255514645522182675683138755882651282837565362755857354146114272867168547683372462122565514855371757128315631818153644582663376486434754336315486113182237716121623465485812272566432342136373582243764784715456844464513141561648588178378786345316523713228846437275336235535744228773485613753322741223224526558862153886761688675513643732428747731663222847423238362374441263473276512133686183856472686237688237241214168365615444477424888525623116734125465415371447721644835334654543411455484578325351343262766882265447546675525451685432482735235271687885383426542486844336554865865512161525177224612884142148481338421225854834616585745847347321878717488411826212441172318376282451878572116418514475745656523736216854784153124816874445858537248744567428654168214682882781378872126377378435211634177635643841735212826536558445688337361831678184641343854287454245332213237225375124516863341662758273772652465558431656518132388584371311277576716282517378263462616627856132884587177852885566277181736188848424345223664855564255182756856472156846724632267433738223336641623113615553354151135477872135344567453344246136534281412388683411388625483236641457788537577142682346576784346412432326833676662831152812834335371521423886518753626321625614581136614134671135882538413556754432456534813145822613852124138772712324133582474337136828388433827668366532454623423643574842875321838323871812174763243673348576127523443353538236431544337323623155865128187182173684811766631886842451855474177243736687165327811185452211653347737183837355784285322527473263864566481324181231572168748674124832712347826486577854172135845573317447872461343278514116648827215386126383874344561247631472863817178553265614831315481135387242763827587636368136643516666464557847786812572234387686638885744384657215638267168842428122738133331212557165663637627186455624148447732233613784454514546815447878727312428761883163237274428246862522178555453284441567114446863766812815458222257873352644173873278845515611482567456334187564516746865217612483228251325161835125245288728336481732274177632374733143827676766457464548736225225876413113336556634643586377228324635224614211362131815131112875877777545812736533182742634181836132384878448473176226438387633342268561313753572728743587424876324867561374572282421338612386632212647816728244275781233881476228147657435263441858581764748285153613621874822244447674756627411287554287676667331465616375462125872356262461837567244646815713283784376732227562164224863362373117824448821256223841833363576652161416533337853646886235184638624532158726128384482732256337248123646854622378152516138133132327313268427873436275656442216854537714246848686481327435611427188754132528711365646164876485617733781562126485438185334245131478653433542428158172845215133832832628761257366214268642515551524166434485231676171464811565885412358626352137286846362152624567857471151147311817437388174417551341231842867535268314584513674544267436277783118216386884475527877165715188522355643858335848836454163837338363777523176346485174366613521775527842823783224611172676822214418657614527346262444416251546315768844383675587837824858434167826782861257787124216168382672468564713513268228187272378482675715843648533283556513152842681843314761473274858172836248733714717216622357728643615251111787456138885873243618132881518236414123821525271728116238878423378471386236574841462247816458652438748766625755222232323318465713662428673145463144332335245561651527848523181378224313818787243235673228214265652653112542521761576222684251838177632622644722146221653477562664766331685556563176137285472124652273527625874241735241733252871613828166455246447264537638685785412127164456823262224686426412132538631712646712542465227737326846472571482464654662655347764754255676235576122422632812238437862874451731727855883125742288146871822263651776785632745444615568782885888846248726871641721883273336777662287318688872423235251424546735342272842254286817382331536166444447117366651183161116843687732545866145142154432157648757248656146651123231511757732738254127584368815162852161117547283165472341844273731443577565533682827546165233111668275275234374882622435331542821774662814637783343648857331523274246862758781334672526436687112561723872372575628285858523217125348776478446764626524517126444164257414726443566513655811247828815612143373623347528265145624364334526732514314828115871111566418574273562568518431853788781751723653683137587167525274787858667842861742388315228314475314172381226118111881142424231828426617273766521646421787462776672234226188837641634676326118612115887627165253225686374584666254236468115142124218187528281261815337838768531317416516533522851816215511231555125876335641282722838246372468715435513331578256358372776168745643727827646542132326614837621114711451767874766612636748121867154416864143738836843254771812566756657678767377145734585713416672162421128273421725416466313528671331262755748387657876147465821547245721817531162742877232421616217663151567343253361887157332674117226668622453713537458451888287263421145571821157463117737677138482511841234713237445355216264541127474254311178211816866572536637582281247711573447537463177545513752477385686177717835243122835856278657741684531627224778733642133244322413426725485314435737111782812435783113285248433346264531185723872441771575783528616374135214213147648485717561221715882342623535223831578725673158167862782748816327171576213855358455486274612685271445765143153558266582381883755142716854215248825331678546424524118743144834661164337251715174121717278732133887726442153441732146138446671685525454476184724152167153416527868333638235537476358553238736441112762182813847822235276582416638171515375413726631756628481725736128412127856621617617644247785111281341728533434317341118215142388424265583413537584338126546562354533828183876554145585764487685814288722367161563327251256731452167855444781666251284263183875227334826645165618774182716337855182647881283138722322674368885367658745246851845656224842153257538316633885175264115144155425112674886155175212154338551543538147286637628623545883378251646127471838547862828836437543521632732542755276137626371253188878548562472528853278365267687182744746858731468445774188342576382184447783313414258445681812872477136858513483147336335363263453666343876383218535562461556175487615631537551787451486113664436137882271571365714267536327772456114527443235847433372248164122782543516558427267721662488443335741234275484241532681156282655172164561546437673837834227863512421538368163865625358151878136686624754125155225821816727114664237658372171288446858487515264638445753717853233347757872443645411651841627563181268825611656746715857771252432188677774382755221685233831236181756434826811368786758414265126857278535733238255224772147862124767123214376648248243742738684546543272274541727526218355465327824161728285551637854227174221287445165445561125723125587413646713314186665275272718532664531355773513815777812355435278787827721121634527363683742214582773173668253162471713651554215461547338741815574682182237437755461243623614881624264661426518733737785235177125516524845753741543311161611261155655222255852155631117275315764632575132547221212657811381178347767228254424638274726747661115228838271336116878658421118714364572274673114247727263481256165531342116477647588212386352621782865454868553784326555352412311462354182746226471572464465622238882248777627315611516431523562458415217617135112468131742264735265158328273784138573341625876368332258644772445884377516721524676646274365651842144474768387347686676834838887885623112367742575832513583752137331537447874566756561488763432322345585326182777624335758157557165118448486326877581268434745173727254134764511716177735188467324268374422254326368717182587663453534662718471356337168461755672376357563512554427486422365547746587843155677653621212524321323266315568616344722244173478671643288738865285588881488328561873812551377237672116568437455433421275315253787727344221418473521257172687122636534234173456515353687337483747245468245675584857162411452432463872852265167578365235127824132813661337461634471887815528375187168738427766143755261152746575424755555471841658145655215626776127687284448342284767644334835775353116227768881164813828378315658337326664156732631557464716484277635721312171746612223763354212226473624714146654113172157721477482163136575188341884885354766185754217666148421781124726452866341666737652512555647562165121582364116557237338865783468388172648773455714347742134657584436461144867547442355748837366231116181646816248184563415254114682152348813475654677284513722786168322287266875243428424664377423656863828882718283881851168812471185676833255376447365246416612482783622364821777781481746584863214238681164548614312331446861647662161144787412347485834623132672722626578562344561768574237641335782263213446348616626276872362213281266211428468355767562276548368271613738733548437757176565233726344437424317184826451264373587166278363128731245865841754375465115733715244827481476353638735347125738561488565243216518661646881382317323422864217841146688188488862386476614743652734838183153586226676814131473415116536648651416114417244532685473854862263244118476543681587463522476256242676571152632678538266565768585257511551185215131236546474823774467153373631174644648524263875725557121415573232511372376578285522626877556588456833231438642134163225685641677173451844185418674837636838757756685858268576551712722166528812634865456287148813227276725673671812628568166618136127338522355575586171314242867857128826475665731862314472324238743244453447172134532411474574664887117273176277523664411174838742226536824658765212673388367185737231786244671556782667731344775377854113121874444711668483855562314117154763641617572721171488283115747854588462515242534681372466685813376754211328171288534348414341877227445257223765661342227116415485716577856821465722262346614862767536862462663353267662683444514783288844275535837723413816671868433275653126444637446635687111672484657876316814544132773228723618663784871728864733357714562464358175814437668328116724768226627334358854113833675348164745724754275888215627678471573621161673573376712155223586141512826584867367766375162327668382256332427131437247852248352477267444266833115868245878735658467181248848552384417368282282527282438488784646621543338275513113324365878216846754844237564487282277458454357315854625364342221137622417863474732182347846633376848184317282277231378684651812377866745147476418336615628168666522885387644352672785778231431878835742345227626787268565774211761354217781631487613167225163876152161738117558572644841138115238481576877167464766515663345184746442646523385568815773673545131337335241255187382757544553348128316348348848622237487166855754186247362423185743223251413484157542512424184666851115767688452336682811216544167771725675612218632535863574217182454872375722728521767357536565458418524351352283447668771371832835617612686348752622651623543333512365338425344427145153751614776866812645811587664345862738885372137853837255365427415722212568664113435585624171413517767164144668821545346531451831751318457128812411317646164714345288174877652313784244846671652835476564242536458158452113516423365613238257323374824123346811262536288381654855223278833126822133678485277537421286334123233123376847288678387454678174814615265243527675662261615573764318272872664455254685223757875562218522116285577512611751672722755181244727268265584748348363457448533582442656858116346234315658655237443375355625667562722345282286481462144647342861245528816425774163722278584663212134413385572652485377342232171588288543823882522385342214114554113254317347236314874731277374588547478558867173145323636138148723724436127385731277653644782682233266454817478327648723572231416676123253624513322278421347454363576285517381235348387377475282324545464424723272286846834241845448435414832141286857323838414237586541572184586461365814183344667412237766257726436388226425125626625374627486676668625722811311644678741488143661446625635751263745745166513213358873238636627516574513765748864213335115862787138584483583666838851428164738731456216223747461774717271381841232322468472211678768335672358512553185431385376467687226536351451544432115264487183752162811615251726755468461182256543657313522333461842618863875547887825244342118411844512266183236782765181824811788825747238566161137712747341432647612636552722752318672384143343521831726685642442784817372852362733133765718175687745478486268838425565317327611527572481353138143357237172487841857456273672373221325217874311741436346688681414727481223147552741835657148568313777311251363368376536688268832157515167162734284462412231717454731482286182576888742276324854527217243831571537741236728445821375724644171666848854882818782717532561258357515153211667755112562537847384826735468358573478646153122826133817176871676734458436844534372757527132832321775113461841413441684752342223841282712211245717786447425564688887723548855765563561613125226125362758226462738387512637358417743673515727367214583276255583126388842146556172834586783134854183145467718774736738548534432434348142747715487318312434477266651737766838867475463755865858254122375832347387674153817261658873478178537343536131752771882286581424466285178754862447232717817313114248524683484868426744232852234774847251673457325645616753656347642746681311541244361552224545118221646217874577345258757552583457715548636583621781824774238428612772111743376363614332773151562234615613225771325583631783475618282476777245147253523442826637457212121452283525831835815626422723521218237774515765656556183738236685757414387834423554121275878125631146268281351534581445748445373516881551845778737841224537688473725371468115615223441768186224151717323878654258637236543732772114535838615731164766868284612522611853464464388327166611177686161655446111142618337278625862337513131112586622544323238547352238684143481253264877818771655654778578638445523153372384264865521182286765637443268382223552441227575841348231541173256186118816118588172114186533787551211714658672214323171184851812621442157656474354221525228635632552246643127565523885645727757878513415534262883452663574875242743182223665382474834221278732412253161754746638113188286237371468474761456653542374585813164814587438827144216113558214541575517883568268154777773436722353355222532271125245852818557362318287858534261883138456116516384673818171744158173114521177548583683836267343532727144235742461777223843417142212751418586217448327537385714334711315428852242657684783361251883312876235355487423568442251452871588166888227776517562666558882127674485158846627147831651821282775678737118455212656564571311128345333234426524243713366181845145237442471635713854122516445347451244223184252145365411677686637188225482144654434367224385363663668656224517623224463842833238125478211218887233416662645633717742614561851276152141218287175181386841181464648146777553155867582565871554463466267646378286346412711572276188344238343764272126878384271323478322443642142553258434343231877854561355683218255171524425611224163533713226663643658726684256335251262217872175726142488146323586485468874748535755844372534621346344331364547868515417421273115452862232575444474532346273586374841216843838464348162161765538866361275176817815447168371283682115823542133558843762776451511226837567561556674832625771316738243522278685543532356818553386382322127341434622513774111166553323545544176714454532166423245421854161328868562756342717168373827872383415578528254656835715435555675144351418683148835878384313331835687847174782414765688564448214621147487365814381544763256842456267313743313554511365742687144125323683872427552713632637814771221157352756556684744172817583757115123524373167682675686364312412176223154652775128816885365828763544777385218751747411488378672457522835723517571837742333116224176337631676176315486236652411676328247571752776533278728238136334778774723837176182215512365233225238672322463741227462153554542551463612586564812178167335223835724362283474188287867353262466512815827555835364354688378162578378551661231223173218367575631141536217133738728216148326423127145266647578465756523181411132768365473575765433736561385861878878127663343272256157428761328864716313752223182528184586567554121747167346512624383161254521658332377765123543281821287516562146725235341456683441718875638531534778517745348555432882152225852318415417354822751626266545461435862643224388462332836456625868118116812281876357363854777264774711212587854287127344553174714238365836572833236311278823627851736712158482614732786245354267347125786216834462183884347715514241786885234265167438753562534315635874151531433166113667751427334755138463465664574466333137848566565648261217875546552114466223576534725515253253123421285731841218258168465854663761535543721218483277582751868824672731323573681551434336873828624314468378188266157483746262577187237458257167556383487183148351126441175315865855886114584646127437574173767768525266677477881346237566141232857283577834285765574254762672383636213528425125185772537831168875851577177582828427547265467613487777252575437451464841464421782875273871237365764465411843812715164437758623656522156156343418174238121726636214577621872613443512116178841376246371223281464258855825871753188447164348662412818375454667133136825585514457255524775233654258382435764513458237515843582881858315388834647731162116282318484827565442152655231185326134458782247612355161865721833417653845526276724818157455461524214558842878448383424325256843612763364285677226676762223827148412284188781778647277835315727815612411466128545337712448355377742447161361721854136637782758824144285151672424861846447563513774583841166328165345214125616871744868866386745841226648212284556225566138278171412817315135445536757281754676627356422254128168682346664173353247345815143263177844487115374451343361728724425165427141517135574352644746684536383462562532663575214326416756266183781871186762482124668728633278453688457632774441783882331561757422351851655253113772481854244788562863435216838168274238277178772848363327286522855488228862165331251131341251631483125775778224683764462353775516235756771663585787365153833777834451271651237174141872637288316357263232373886485662114441842346632788622133783346444776782136836874283826144665831683717568713367841282465388466578464452485466674147718278365515518761164368745851466458724113722256562267248533251775435348188483331484258888263523824811243453641722478515767488713561347487684481126887424752181174254638882225714251232713226384477426584112857844217824526372382857635528577585265857528325453816551656463155114157682828615471187617238268343244258327371636852723867586451452115258554135455343735222385783782667462535642783836675351126623514434624158535664165853311335178538678446718171313777316587538316318441434232412822447754674268843823284642886547674782162211466754342251736236887588841351382427764737635268446255775554732682542644667351711574762485578165626763333783181714286187132583844156261523227751677526187736687312228678225874176773345842833143636464455475327223821355642285623482578517212778245235816485255186865846765433826133276243224818517657727716782853457482881357381444731782476353117871571447422758771437418787218444515316362866148644411157418434428285677771865183884585154472286874751764367617755332127266854128382325346735553423224347372436184677813773558368181486133856582225815585734532718368737551153654464176176785626884377367317851384837776346151243127716483177213584635682188533832521533768724553124513644645643857552326471116227166271268658633857425245644231211241272754521224284322184837523142173267615448714176225616783555763132462255731631334287656463865442156421674575882183333615534436216538656885343722744277111517447511335671644435541644324122866427326585724125122857487745717318374736618324574716412724841374672538457283165253266481437876125271158451131525465716466337244458225781642414418822818685321474713185252633183612181528187157483526187824433374832758452474642275711772685344825457345521323388682272325162737273324858283455826648511178712122722675462872311288358527638855334134522612746736358725747517178576745772753257687547317853366838835684385144123661642212674437336842626136811781685886742852147723676885851267687231588426717814362716235557885528788543628661822878652426686466611517215324524162736421512413745588154581425851831783881535832744618811645765317356536142814657572757238574786242365326781144248554125454111264713873651855138557563134673631377764341831653563343545423852676355223535443811662473451836771457818246355847487637272184721356141583183755223113662862276237273271368125533174442887278118537721347314855384718285543812748644514562566844134155768746411522386147734126367553458287283873451343871554571283383221768655867813652761177277656633644241214713126827587311457357524164671445461733756787121554137533747345887823582311331666721835376172267812454538651875284368726735564526456583155215566468735312662683127683124861521311415732718562783228488253122852476686356272731388527333466526846646774567448876138344348861542187623362887572776434141621782231114231134313572761656231212821332566815212871116242646357182582131561325856138342557317218762881387278858211527843872217161318543751177223365174364721867453481128848184583234265678274521248852126344122713848734373345352771757516423512424816476745251844121351841376186768451727655753836314372725332261644214661451656355188715821467426567571541345766677747472283278832324854855828822158113513761234843475134645484814244467578611363164685117834738266481545523231644548818652116316285378526555853426255564288445545225672311421863537782435414122513276231667858884233862264126811534181835488476475646271623621272312351273517336627886523467534761137455337456672377132284158812364358552458676637726774215227781213471227163544765184453323387876224313621632818813881822833313585162413767652455516553866837583238164334824626757282164752262822465672437665765817876365621813127332651224322576175317687873388161211573334532577388555883486876752582858487268353851226338722733235234826767873265241586248177726618114121311255578787735741682312223185877212377752774871148148486823657888763854257555631842577662586284844677677882442425335116285664245573563652158444655546283117736715147343243684444617364276231735322147867756651332828156878157272683427558841741571446544421153387687422323812471657865254136754452355158472652476332142214856176251644465438268714647442147426664642211461277731582482675885258456317332778355653674382851377568346338388545318336331675171227636168688684633313528123668125122385217424136642261756685338425721873484121357572268315574231856565773776814247121531461115387363886845686155721816877345347275841146111848676576418582828785843178878564381732248634842815533888443537861735573874837858777461647757185686714514847358618567266277562862652474572722328367148884653167245476846272727817841367313188552432456454686338145655638262437158281316157883521273616466726344421787183521447812543782656777466184617335743588827158347732687746725217847157747552426325634457686851833388116258767837768115753755675138388343355677185376433333427267151316161372318642585537853784464287585562524588558863528424258655154486237614178416453331215316385557226566343445122334221588688337833121811864227466734181431214226743557845322223866126868515854773378313458536481186477155615686281733828764554381521675238675678571532413681724755523718873746212366513626175623686646472325286487678458387658772666367644188451618853366317281847527626321842514368355146111611133116561526827434682431335542783283867755324431241737456163253515314628736371811376461628423541325356428512178381857223186283342378466575572718863341752164881556618688412132478218248363283235455527138388361115351356463523438635873722652576276217554214423883714744255816853856361168451673432868521658682741726212363721154642486754664563683521572582621614518176178184428628854136175175354222752732454324437587777676338138827424687857581578725216514728884385862425168417882155186232824554855576446737383415825331832775457671555553788184465878263317188678833251513181582347576241431817638134568171314845577743264182785655344545381844231878627273683141154127338627544672443814773243354364823353568125855833153778242245155846373441413137756442216587354317841242251186666522173577751286515475878626745882362835685343688557566482781423563184211222623623644688238654376883238823816623331436444841361528238543856157254556243888584845263222814732252441432243551474465217122358835831474327164614481134634538325568543765221843514625448543317427668411212532545365831286751686624841658837837181253317567176683587853382588432738534511448321271345574176824872317863128436124364534264587847816421358131884877334285317258475472778346531123128172171835233873424283715858443665828821176122455422877142371261576451533212866338173668215426844816711866466335671171346328763747117886525431535837476682237452545447155655812413524876155437846771744712515242111245631535283671668213773814236157643778445661113466887311474873382868418241834843121721668411582786777577623474232548862522368722686416223766385417238447521678227536237543178165511732647332234715771476134851377226817485223178518562361181276263668876184671372881341554328356323837642526148282535233446376236134864423427162181375877223663868427627223118673121647365546627458116641354816165245725858463667262671585434577358526865343777686655748686643232844521676838156627278564554135326618254363322882531425723872628376387424472518237112353726583717444786677318656281445423317226834825531777841727148881375851463282626332537836611867268383758632728447387755334116685277424568831886653383421426767485812551732665564618572862215132475414231713778573618386162135838856273874413822622687662627747648783783625126161557533524433484874172128122535813638815877477255541315541453581537284664622137822721555232146885765513773663256774284123567856626448581853843565251881368678223388682547417567134882841353845468544561748745336266643433252264715658352816742868774137251474518788288262777338176226765118412461682556332848616651757158184155487668218231853456324538213555648244677567848228867687323467745121311548522766474635427882263733355487133424217747678672317214643436276634614342678333381452857218378431328735462112523258471276617716844765766312148288574131581565666652251613341113811858748736726331733516757671365623744324344725131216647858443257813434282542256448381385731147242172418183735246753318443641462413546137455444283786752411743671483315547463647188232127258227814737745686214152571835435113125588375647861763333466288145867655145563856132321418756271427453217287842131153774825483737755213812463822651671557315741754217183751287128547713571164454516842223272725712362615766863438711857521687872834418751213624465363884726211836818376423164877644565578671466222141444435375448347147554151636583636237178722262343347744671617217851226666633512354656713787178278271612511657175773714651257536654683235333141438254144547232254435682152526417387365548175466788834574766366225864361517364864372233441876723338524376772511245111126148732144376415811853482767586173856273647682243583365676617741624743677354446782474733874666113728266628628266875586865326356278857417451774232635842773635434177133537185622366563727551244861272753224117561475111867326835183782833675513635215384464352214511446561841451185238667172712688336668468641484617282528685512423657755272776345623442348577151182273487621652875162352451468168274715643437841445251688545285441545186181516362568255588514883753243417316415836473718565137328625173756371836716877326744776284256537371763514562763243238712573325521817623141261211537677331847581788466545673374573524376445788467872584153612146363465786482722617533372326335366436347283763437672617674373557377754884314354525764751836171126675481857451542777164415644867265272888736472485483215455416511522363418878652163158563117616761563135115586584853521171234877837763542232673514144646757245331384443823251162728635732414468281755451331714768211872228776475554312284487675133535442672587738614873454858313874684645216461415322385541188358452367711588248825586836324462613855373146564186554883773455577437164815234528316373828826434161675568754465481248627571112741512324478223264132142353338567564211725612458814873628254471857116114785462583211337676225661722632414638641378744167213674387583362777153118437344448287838542364425136432683215258582851171674183442134878127435532414137635533642233758865288472543732545383756711273854144668745253586251131683411674658461685545274487668316421868212147217213142165247134662288344731457628385752334183368424287477851447623276424666328112487116811536354722825117726125688662332368123847677216152715211576834337773148528356124143586621774545344232657114273542671184142237333251651633735417688368635767511332347254184875185326462361561366234342288163735774522123525776241615548715736546427514852381816571333174446233535528843742564481568567868726762726438332423428172523581455582522247618851844342874841447466838536718242246757814351211775255373458433617434155838773614472211343857556552836525533187415355263816127846464458721687158848461188681583144778665681616878775563821678274856151631245767817823145747233358623461137561224342361378543648558446468377872326557778435481563843414663184167224367346248446477784668537817615771845753274773244336255171722715726858786223723613188556286811844362386821568124887377527872482467316712435282887441845586113466442774185835834174813368354464488253675151617467833385712312484382353155366576621767718238757278545562241648615238858821656458466723612652645427772522485266723454274773827847613437666666855144825183142544348176334512323875851241267723781885552146462587457664682815257486663312517148625171774478778358643535741823835222256346362354744268364861648555387212874413117821713417542426748378218537454155717657576273772712887322724355815151888283417867554816852284658522113737561728425531721522875852733673553463783212433864884637864547456634468835137737614458718318462471572137554843811468253658531281661482158143412385614558742653846564732348726717143128757162718446676251246527557168467556277511217451461415885574762861735465247623575318811125356254317812325536654417282354482534438445487513775258835488283442657632727784572252532714322572256573556727882858836562788143713743346235577287674876545125124176883764628731647117168665847264742386416721646674182548751114582815181135527566723543412262461581656465527573736263717262782124212484155818561644352543374226757732672825231646282858432858431773168537434743747537837214141282256866213154454735584451351481481582121786614418681375685258124633118168347618771481451613515327177844152285516332728374681626411135314678837755521551815181323461487162161373645453264656375771584285621413637151238232673225788413435552133113571665468452145867425534711463433824471245473472775831767786837112542885137775654644413435888844772618287455572242872456647361143683887271775338753842635266387276138664835687885638326321525466213573852171542275176657374675675672786662584325525455373623636675428367386562615568877275114683864386871236236816628421147786258158186717438547853345448256335486873876211517612262585251253512755148254723435485782653788525546745678371671818166437386755813442548511476686266628841126263312177532462232258653412355467851865731663328236527874186853542658718171148226156227828231184144515441843844862686688651427135813216134847883111374558138128323564371624413418467436174377852686572833384662434657413456842622562371726525822288367837465875252448184342772255843232182253821181361746484444436333885773844314747465637574586584518173286442176583132153265453677415754183761254732781514462851533345546416885622484137854517385877713383617876625473757475224576845371651731288785274463543115356364858348414212344647616274322414328773563164817856545618337435863751275771875642618362861783784261881533111317226555651386555357528757137237368754327858815557367873545632443271444181342111746645371485535123822762115854124358585126283367718774273113145732241151643674752323338657867858423188388538147433547487742167878418247651157584318227132173637166488782786636841346545155748321623211755322478562187323871627151785685778523876867784164176774565126576687671782763871482774322537818851375826216568545421733446328727212686365715574888176373224121136435624513263557657855745866566584818353557863177243473241172625817552621623686128812344845582438128658874164464763271811138813666813617426388828456578268181318271135353588134122742757728441575548684317768512717661686615117477366168173447157862232584237666755288861644673227515735855675475726731313246878773314813886888636288438365537586777338145533622616162554757565387375355153478341141767277225476586174652712541425583716155631444176873883154451151545335142662462861247322558757111785714877225238128232242868642346173552556581576263166734865771617172484181537561684633226321827834282443284722117133385165516572366665423155477717555642265874571815826743768286583316152545662853441581484234432655863142818365557485313728762187351716242472153824526628213636855842453525252173458431833476721721254684752338757723815872446634352218813365235811277717431282668748243448618183341853583666453415161116332853164767548344323826678648358532817163126338741552146617418235883224772277474787242622511385341847271428215124682644322426471273478222825864245847766738133656123336284285524647274568554254717412413676584183452727262342377228551436883833633257251112144152181348457715875536262848233881884335534643885462423546336415871541432746838114114464816446533281714452383117566356524858425314538521563234238257766722727625248444813224244528668614115744387283574565187284388824812472322576612475618324484244521543515253382534184577438346227761767413632148171671544762452423543544753547423618754231473537557718518848131227764128774217761732873234342658434775862243644758341238817266653384726543513232185531827772555176344635316473485826651116438113634872151315256126272455566664442458776653444234735787553743754428435337888861115727771142814322772178811252821223377313758838668174745381318434856512585251738155214116651681727744464347745483665376621618784257528671666873534167732644186144478851652526481267684763472635514575411516255327585474183741128133824581287685837423715685625153384665225311745674774684372812383432118836852187262563435664463747555232334285862347617353356361511826815142166564553613341483266283162411125621685753438371148572351284813543452634586437731876118723111228773738142616477215123878576254666117155843314588854155211877277578462588415318226712817164422445465388131767685333863571555851674238262234838581811567215214185384821714321717544136218862138718743343828825862583716117175828171233325326326284376721455851527766126488234813785568782325163511715761316147326165734638868838853162225517574571783112758337654237642555865726857481766114323348543574485457732863744185415222213664852772583658538133417346324257725271684245853631153458777336156671273744425882848557315556731221544855373421516174213777618144527265442272871271621348558551355263661216267344136844667153825431874231823774715864152858517621768622276735838827681665656132348138657655181821217246573521386584351415335832243684154543131864557547841276612165152557151632818478455361882611373453752341346412464662417761722353323766167176865823611143415531714885661477354134842872852722531675673233573263444847442312721742625523737866632678368627132375757767685472474254837558182257763733866266376787341215136536751278273811114535236885846718581448314286847614381557634423388726117815613363457266113463683544228446875827813862161672531617162812142162585174882456221354567618426873813531815411513732828253721544743457436166542737223113464673262482368611267638226261114714738875655151842476148182116455541571745438564848552353624224711652512457447455331316822264521233225883761543344327333342866441512545112232336511212441322854857131424771744457167257417243285774614735448276134822462683676237783352423355512831287786737378147717548647555587581574413388841658276563561182372451447844156516324885878211412127734713342333248785254251563875687315217531663856634345255851825752262386388668176561571586826884188288764883174271152128716511672411513748655367374123382178827827831548412424868874446415155637782845213258841774252524456363341818616234627823826625882252416827446873265862182326557854727151143263642133621776752574323363685774412514747871544334845515363672788336711113545518623124184341723848186524432278644171484421735242715142147161254756451111516387188563386145138522143626175288242186441622164778137832773715641775718675417575857315438577227668145817454551853563517858581836188623712526531688614438576348341723513375745212645767851317315884137344462767116453227614638442484681261847827116672463515118526334825862453263536246845278762863757662352778372274172188472524337246447166338524851862832826577141828634138446382541373232714786443118712462786744112826658566711154733613562548621815464173324322622574765843248747273337224573856437223757543333265455552385722442125155736754663485332465746786134488581663281172535514812123335757384745528652584534266784462388316814833387126532585816154756136481564616126221442834175416442377337516635828156235386151558516525572843221763123875675846181748478537873144374711515627555584687832161262126675367841114275384622754774352818151662511615728251533758463246353533257636556483128586236748254558132328726342432846545657882347634773664168832253764141275243356826863133313248532723164656121566426211317144148157142444641268653112165287438864181312222332365654831886822732844811515784726648433726556376136288256163787381236635524822322375474742471414288855858247475261457768738153552166871857684267574336867624344724356575211522577386753441153651138517241765683546763477655652236447851682488476482363315176288631833741134786248816228127758811783724483851663668366857354481542265561862173334761436341572353746844323285757274327742755777243562474887433587637773218565451875846782854334731627478183718626445512111414513514337451662231461256615564373366544378222551651267863555461454665836457352158477345624115852135417147145546715771765381283511818216676175346281271144758582242237614425227232558537373425545332516457726682514284381337174315275715264628625752233371765347728341753412711335837222487152476234178476654725625672831838136476425251663124777743124751322616253781461384881352616286147183556712146186587117151252384873232135428443252361542864735476311581265868448375687211684464253242763254388415487458627636664588417152366572652287188335476366811287156586887275212872178242714625237383135434574871411274158557736465868557342176237727876282241321625753886182322685664212812585838216156143547571524725358171326245324378733536161641315372813166143556375716858321657564544582668615552462776251842451574855168484633148315846685684654615216436258788224631384768151227743884756188442488112878583178724484764138686554787127812176753185132321133571433451345358662363477622171158625116314786576771878384641132613826462161822511781638577828674881212388814652562618667556443715374335672763664475858647767522474225845664514255757427655142215748351135271886871447313786153235337353246828185364844555857468818261521237818248554452364778383236858671153243587577584353781442655178677134648146844824311613376253185554876354381531415248261262837442542333414118232235885343477316385317615813761646624424528882652551656781755763276124814635477213657344631822414323127828574333887762785753611123371413515566327417128475361261568624327647476771462377254136243627588362165851657284318785555751128158445187886236264382615714484746518378766456772244176644326337116418831276524775845722336152718883138366454525123337778582758574457467615141828832328552136354852333381212446546885732822715751314576572113756553615883533836846285186815632553543758742313516854731834747355366277735523823864182877544663867785223845521544822682343674232714275688343134254185124853264341265674823248673231366143443323641612851737762684522865147734648763641747336381828463284466118423244314113671715567718842287874374328828548357455645827372434354347237384511213118188747264634551372356266235471157828624778636678531236281718756474547254514667538447141287462585753367456168774487522434516528618316332227368844524655772585671736136464144218427688215255275217753474123883184763122665873211423271612583822862318335212546145713314423154637834853668535435226812474164537462227733811284255488422836625555658677235461542132313448711434175846848432276342552387151318852834642768328411662426131114683311217658355551772648527252736364421666867583348583182722422138785474335236631642632616236846417845526523625677276877356643312564773183828863684488857573558244438881876628135788255857611532261672617868326546736657611883315344243146673642431642131582372633663682728424524851231462541162667318548217147443532858676131846474512687477631567531528647778526616371618552886846668846767455223145343148118171472783377736136275787855215116817774323142272774348235678713552848552674564513424764726563382646475346484411645255263731655782738664334573241536572166717477112755815463745523553583141788723253634332223653813686464422227786852118551352784553424874125265644686723424385367437223246718566587137758676764617686654521523178465881283267333874166877382386361544273537323876358843114411458762686186545563833167763325848672372327142333447771318157737632871316116713626341837664622784673766388766246231715817177737117682578211326534447861241214344287683883373248587556442475211772136728347177443565226318282756371882178537686264124544783336837178471685122638646636714287451551622683351818273678166171324583373511871412473751374413134645672283351213313378363551112111461823536525517463537561455222453846318526363732586675431756875832414531134745157183476347156724243176572266828457586221472723581786257743856716715747352474525483486271872383355867856761157538775834756647466874288557846874646454847367733237448156768586766841457164732655826114714255785434278464463168178132485654141425688637641282211185481514152184626465587261766133248283148315461241444586218428845711226538673426651528375434768517546388138875356165786581774435725454742387782846371422275528156211562272754787628126733855731465128222773251516753155333785643855866832245268744167138383647223142541683474638686232322785283878717282221711456526583218881775446442487756374632625448731516533414234782632132672844634845846748813418335755816455118388178124582267323311445431844342417485188418432658427783564363867483183344324864334274255372675712252276181166634528353328124136316133718124254484653834564318124348431385841566828887114374431446326264251826423572117211165414445688564261618717536536463852213485358782773416278275653453354416565257674138677517588181667574614285574758668171837687278212323758488644132475334667822517247687717166551314322377136772241347314532748257353141778231183277256623722243586611155535761648281184234818181641332712321664574683143716267188452667267233825652122674635276477264662876327856422723454747873248628278442546571842114812633462374265275684655842718255842675464764853522575351623764756512437788574422428521445772314855342454621448742536483648438735458721767623831642434622872148343378335512736416334485153315735738225878672483746728238244162814357312586617583156881267422547633873686475546345884361542531586543234235365224478582873365535371557337422732131845247611828358286582411422533847512245711448477285316723565613551724644884132866241721662313244228115311586384754225777621116485856212721141511667635132487861371426324338342152134848338821153777562185343552314654526861147615247168582444863288187862735816438578872372583355418423182666636731627767258143848127718382366751275836234438556441725433786721226122566841755857176542272651115266574515233856656487555865153768268885536217468631587335562382542114258216752851145126576882151877241531276874367782753512335531811855612568423651525858662553326567741181778351415247386361871184315442411245163181424411776156666724636634617628686125575672628411358571628868167714324786486574262528682728751325638458784436282765433571222417123782123477661683756676582777222736556651687458636673153526632564315462288651452726871138866246585118175153141556361572386184566484116553564617782722484646487528445655161747658768317251852714232758652315167688783812824628314587862782325452666147173871346687137181321568713622487274267312812328852427635473334831463544442257142277763471232442652546387683174578846364614655337612514637837322766316621446763675845767873363548613875783485721488446324682673247841713442718148111271814117755215864354178218836348318614823243464783688268265316558334526644858432115135744522813186118343818267211436163553875665241727128252474476772633716373875346456257743371352555778755616234154723585845324246436824452833371433662586531645456816324437545433222235778616253733725758174412837457813235216486351374644114738248868137825788417661118543437523882655876318126856753625154111633247652842757274654553534116666447513885457538742244778735534675576548335488535127871342736747475262132471376411427837131142732147613267227143462326536277853843286884656146186824818738371726857351133434473365642222144888277841447547145344575278458611515283712783231872323577837887437126371584655212358678335413754678142233537343288328173652468312462426342255865384382268157816367445632873628483882621488613282481114717364354582871855734455862661644716168663263225525277777711225723526414318424182124721236825565774446672133436233615526611172155277446632331813888288438125116834315632648513121117135877572345253274324721558774177665518726451563267743864444138321732143246884347568783562667462257245861325723457264635455821358881576675847764451835875738816434815644517673435847452217664486378122372613774276338787147331131382623866428188216361463866721546738846281413667758654622317671427513525471237452711117326145522668838372884331415767338868581651535832822161155471551784462545554783771465873263587556468335682133224118443475267436562726187755282611874567616544182745273761518588867761128448611342218718463563567151175446373247273436441861428171366885484248146574433454662112877453556251821265633767853288181335611433851131368781641166587244771263335454715162222528632132721455386427545245832121133772673633338444171165734117787264447188443368432212187346547144681768685656427232586454716756723552344453132458664262766268662362257547427314672671815381314238666113472366842481644818567768383326265486737281711431185185412458638678542278167581436113717574551153182375755215227583823365472258165754517146311741773764277657873512886174628132463583641418553632643583862556186434144255262266134345471727462433156487612747875237562637424284243751222784443886216218561353183523851431641252262157347485876167586674862137741436476312354877426786232658351777512134468614414738543188738222378185287216855864525825267228466447533624458113334612688774265376821357661412132283721134527468655355232623375733822811232411763132718166517858756274776561878472261781354755165784863462815513111837147354368853774757232573121427425257113346783435422625721285344623237644324643611274184813525634258612616135134441867766148586253368552346553554575341541524448753524878771628234362772387218754253263615471652816452141728357231331355776747352387336376551465412272768552843433854378651852116352551167876756216881325461623337121224758646837537672132384325251252215648425327731366218674663433752773544337361367571762768765741227542268362327617785554187316523187143834176171253734675563586168252364276277471756845627444488465766316384645184456522782753365425753771432725541435645674745312873246414858451123878241343887778532167274512748225186427517328317687765553745646114765821186457366281217565356381674464473325336818343743886155782377166661665636838116467358433867874578423521113386377844121557248482743573148727242268738742475165446243413512586466868157738617342452632587313554746276528726466882343671886457665374312817867572751814533122351184345331825625687566144581855874762264855166554383263726817438713256322424568683275874163887441747317887621627314884548417262466275114348436413377234682255132465717871511166323343353875311836741145848126687878546828341748211155687478677223165425487566355742237167856673657423141111367547871567375122743534522482287861815222246355138584445846242133211642435684863286612535126526671565367766116716175456628857851555874746538277372846517518626744486255312757358528352451422423648718883658212211383341131517638682883758684746634848353582221611414384845562116158537326115623254458655428681315677412765242332282275347584453867713711624463621853156457713333586412215118323114325555763575118158533643768848345438284457716312447841167655775124333547583118842183726411215521486713813733414516733833478463751834437865815656744773652767286625224516812256385281441111481562774288727476427231182337273821738582248446152183182418565728652758738244767773656885816821165158577632327524221731538164861474351321236662144428828626521518361613767648264751125426484337143113587482684835524426146125742752245213783641764756717626815331245188522832287317383445624745422512824311655632627278624288515255673255635563451274347321421871254825888874561234577172156762173545465465482823331137458685564464573352155358863523658615265478437454781513672512861434222885234135324758824587633843374425415587835527742781242843732674142717646434315182231458252473318528577162587388232457745855357468441736742847816284457353765454357265221235435367328666351858328442334553867177124782446833322635458888211438547332411673568827684363838367278312845354566233261573462671663884673521758186444235462867833172567334418284134164462381612132557124211512682123134223711264765157146533761337635847456863226876854188155526361813378366638426448615714128714521731862631283183457265131572545185874546872154754737688647138457444327163712433856864156286844635448128753766636816188823873747535333728715255873167152276443315667675617228771176811836644172446188565376786576583678278884317134725875644817164686478453846825584374373682858732716346553227764563422282453743426864738615664682522234417224416782441575352415213124787328568211371214831272728867475318574325578835775825385548641467277774722364365644757646414173132181782183532581778334452275847816242113787672384135814355883784762815477224144451354658487373314136554611652535186383621435611717254116344213118655588331567115472581216532676223752532274623436217758732558817765362686616771188723426847318217165361475456518815637187235863622358256554474468534764566125111823256268612251673827143761312771175227588477885445338141327213266757552625365351814322746461551532241358637837557577175848868647684142782723476811373255866286458346727471486872541318738573648511132256576825835673243266332181124843244471841378788422883844587736745836757633421818337464366157831561367312514334617521461636133138664362488664757741386645464326534166441222355141558123532166747681162885564532587323374747652182265466141874371341166182386717173817363542435813215451336445652427686888835274574162773353168331844714665288355873335411855381484533326711768216565556568374575763354382678373886248167143187556663455383448684686851463461863565741511818258131541431341583315624635883734127614364136326625757571338115584684664863471733456517651134136773577157172651362144373147783261217547736773875143236556436781564147682443251132131211452777884562655361413518421771548462212818743788446313838161682583857578558855772318675276515775646753711515264127511115131535432538621148134355284528356677232727582352551324234534154168261111724877436683414378566832118387821627646561762236378421168815748183467227475146647345386717746287585323112836275354212415547857126628852474844315412187265832443455657166325323214434372473313155857817426324568853625517557635731653475588663628772448656567223867162111272251833881222815861663123724752856483176716158836312351528328115846331488576632884868561787136842452733734715373538253851852135644757724765237766885387317541813666356345411882721782231657146537115774244353488287313481337248686835275583856175476832827172213843588347818535446711151831141238323777833654551757415634735282774544251818123755176373552831714654246477283654772785858446246754873154287728458417277548573164125683651273727885584241126168687831822766262167716866837266327385215472731638214158722257542785422454865235142584118725513526163643182472826865433124165218482742771172741482686612225467741446153656613855823664523117833363658812577245446247666348272474648223828633246117234354472452278837758671165444334224144786265436626615281246552624612548457863881518411446112478418116417247857357688144842612273224573383338881176165228384452665236835812685225711555313343613532641285536757616685131542656571584831415435653647762543671237111561488435631543126162441862772518375644586877715845647756468516434365235444724611223184214488731414837128888855357133531157523424131164451347734441877585841162634637562385285255828851875536845147454662462341414555772531318276656245716748783881557848311164415187515267864882362133884458434362256583376738575532384472747674483176155661588675858825337626545456266754852838161512141856317314734483314311553868861718242138231788876632336534782426244786255643434572347468414315434248565847678453655766554852587584388322758353421824883648346633627425326827318132834281314326865227227281521582231325471315486666381458577587637446387787342452151663756211781514127423548553645862254133437718137857313223447226145444317674646288634382757715172467767411878817321837421285552412675665432176158574258573552243654265137541347172817748116774871612237627784335823743757144625525471817512423483314832316636547126844748267533215123543766475547565168834216574824842641317827425562858657137151817518673153428343458561657628658165411176572773876471147335655233541167688456182245481771522842684312422553667413721373816488234848413818422886736141268862658732442142575244452214632281365855575727613213314347827185827751158652661363766777224372318315685758634462577167517447673475287383348451457126316125163718671825214313163456735437242873446365543165327346816231331275234846171843215817655882777556864624333663478784531873427755616154482733324581384657432441846387465485142825246361326827645843612428636312885325342131534862711575544116136424662635472887238685325828272123172647448126861172376225882444632565287718455846453586515887652656331147548672286576865521471443118141226467673175717122827358617655211218711578534857564485227287382115122524751752225316748185121358255771752832275728614876825774365842771811243781542581687137654428781574388412165161276852215482747455328533381626263376353643676414463188482282436323118266417468885712413446624811783252384638883182353877352515572278131541243417661166287853428642344624544774315356312865764736468564465682481881564386268314662864838368853133483612423185328677511562882735833851886678723738224318532771451841443358824284513342867745727271747225385686227421687626621332865781356776362716847268771763874153518375515175324323336342737757717487617758134678618172752374134767412368521852832441133672852237243155843866787275836677813267483357547381847546542844374763588184233336467284874856458525481564253578336748122541666853322117681175137383661231417816287726461556648577836412115675767453373153651856457632126778636157776461523573155755511321285476313315556256831323274715316536262226637623425287435515873528836112415454858756522686347217815156821341868815817343142275666712567815536435757273241471511253457875368878821711525888174523446235728732577182661747588632215381147588886418466133812355187468128688387244515422258652737634822513118867523224117646756255613122522217711445564625428321347376112442451722714121331874488463417288512451754685322721613764371156178732177544137262763286357877233824778131636377141576258717636284585478322314221478261551126324628371827784878473154154138372585345352861164324288648736651867577762153184151714432436322833815253634211315387536282122672367278685878442135127176272422318242271547172273144174767283161826628872113855788184445275871174146882776652335612518322265114575237272516656667375227578758185861646583416254525256327816848247417145816677858811851276647585458255572767677378654858675824885184187386626725323616734574888274562331755751124724888588561284148215182538344316271464265771163376572165841838373634213117751861427744654276711253785431764612245877118573456548144665141345236647468856178615485238436467712537866588473657128324361828536226851663325137124287845642418511366267488722244745668812424665754745118574841374757881613837751648371381842765137863274483153365583666743661324338814252355621716835133681447155338282634484453278418848765814687144562741172738885445418513317474412777141621741775548236774182331815524481526527144331188344783532185853584114364274288538327873162872578457774586758713151262754444272134241154485734532265453334757761381867628181312557233144773353773142738158751621255486818416527316234417354151462378658354766454573442351166647551172558656212138462764383545656281876585174632816586761831318512784312578824723247515768122317657736535783546838748711386832134264512822365514256421131113478151612488231318766118378563336271736516855888341784863837252812533878381651271265854724417883483817818143176741616443742334521386811282848258421312834865788664462532335131628584271577673418427154418333251521222263125171863625257712385561877774731884375228441114414132663681145712166513375418412867548437422376787824484357417426284254813188584123534366548526647664341565448486357333155363674257334573386764361823885334642867555788325168275143544216168767236627532318471551557661766335368784445875157656442818655432168423461686114882532263334648648158661414447631761274665615412716346176663425414824324162484744371783647545251678715374865864638171557631877721771277871356867567524714316213636565785221383578774278567666785221846385377872761131482577833778447533113524346546374887255137433512867444361447263478751848715515823427442572221838578857681525433556234488657835345626421281126832648645416638644615516274384654736532476774623657732757883828167752363162181612688872783482484736228123523234218845716672251646486635262761544226227481788212341615411262256687444613588848447836381576817762657182467341483513114741638547586624751553231253843731454166344182571878683635376511172126352723388162673161113213457845856828788142546247375772283525426471354675827681113557711467552644775187835157351844281566657152145172313318587454844378871671577511216677757857647538811722642346366585644158472888665775684258884837156525574211337554317214545237162877878662578746875447422125138315356865164185617846677346615475141551735688234587264288422572757587413131746383645561812762758358143716211444826762427544276526264425232588566328567654415532576516226735311886181165171613758526733653611764623542184633428441528231762131612718411568387181127724434186188736222856768622727116615434663356876164517833423166284874566283372167882864287364582441832883184815138132358615755721552121377182437452877123377374118457427886655214812721215256177355732244486222621671446676163857412722255787446682274314824375255761522112563818458845821645316578133142224575887635235833348217445337676756842676247475411868432223762858185482555631734751556123625375156276841153524156785681463761661776625535147667567356847484266346132743272775555563628854688274316135778865612456318586474326116158865237774842576335675425625355782762445412485183724184865528762113312163488743883526477778815414573674467125466216653466428786176668156486233138742534644418644346411555876215546858565265367711676874887381817551851356367757875235317743877663682472623745632617485421164654467435646467274467258147274565328617388176462552417578176767541123463538164637145326154772752378368324812674542277117855486741482556166645538775545682415254312881266174636155754264518426257871338446161826373161334636456117425177866244833532216572362811861465784748772837771257631546345557458773312164556124147352363365221313185562571818572141665236546656452813226356132481445851142422667432636236314221228631836533676238465738283726472476618722232544833465864232578761146747437253135324855213513477767854536882813738855836151466814572172167724851336235184552453376424132533278473428357215355817613841863252182232785863252437143464282574424162562215535437533242465588328262887756754133462471115771255412841236756747328131614225641561822782728574347841837234223541624242563418244855241134875465385762661813147644631354171545737127437236888362562717541374635876728317327374616714362838143824362124242373561377276228871643454144843271812357177321557652844687424538242462363566855787677325284466473445232853887485484518537421464731845644875278882376737713828747134883723344183826778462754618486211224366753414533353331266814186683337274684442148586382824233185537456846583118268362361153351647347628764853275665573484342871572331675644316858841266627513326585173555545442135234623486875788681782838133562855353271786452283632666141478286171434122151426675784177251857368652822632372622374824348635453724671336241558736333852182866472785277225574775281487536238425178223167167547346287865724757867552537844512464382242536588561124486215728284324736375188552244267447852414556554243755534623116856833832762775771551514543581785662536233861732777166467535136633426671742345555437566388117751238867467247714281167873132825613733433335633417152831662873168565358466268785257843235327825137272441385433541433183544175557758561524837573243557778178863274875136778587216544687625572454138811451663626783587227586565425252182288342417157377631213336442663566257827478522664154711433544418881521816752685742141512578683218248443418842232655452242762837761464447322383871322364144664675188736215427614674785273168462282483155476115487674515411453478118426767126756327418182366427628625424422612546714733221755376751222467542227177675584333115487111326278572812884546755131686432871662536482421354362684767441214334568772428781772577527711884766162682717751712413773425678823674271658888216284182733175652343732271188778736861586355767657465654124884372841228855342285272826357788184734342224386628281267614582383228185133421555786818738284527753525318854373778325317686715837725475787647426668876656871513762727667288251318177536256468832562432716438755857161124125623163243847643553183735711143531323227475474448124425331623226582446843141546834472568448586864112126277343616761114316872113566634741233413673783274745285142552843284342615377354611332848368848178731662261368672185271748885644458148755118487315312145721466348385336715451271564748868384256148288821842358784288636371611354154124331428186881131462353238746168123346563352757861766767845126165183113551443418332476888664725168228733522138822266648637344613482116525676773615433778174112547186472144557135253478472684663373341221151528864347878164732188564887416267231175667438682185737124161128227177342146448313586565675682525673178786863465332355327128227783318168771418661876535863246486323335558418682622486837243255885278345723621485722373764472777573827566662235228775148744533165864788824547437641573458134623371258664226423471312161824163367517148687331382237683268446227135162571515352448358546858238354581671254817777313883621746786687687722444667185516517786173222486624665455851854677785527566888724656716255176862475831461848856823215714764338354331232631524241813177533245744616111456227517154184621781241476857112677233245312131778647211654251273121225285557616656215127324313364282328211885576783266748531144587656273845576387388431443888742423125632647631228851576642681342388125271448525373837147115757381411241735564411728377572636126757434461473771738471521668245376618714265255715231453283671323575375846657263256827765281471888815842581564446576586857386676512353666275525157464731175255547653511673746423527774711268143488184867132382228562587661523383776321433181447552276163724722644433845257171275583528364618713585115273745574317784265866541886241411472832623237355158488487582785532653567477182833376627471318148617151313612264527457266666653824324786452756722888822855221851437117121412325224727187156638815541566476422773655333583423354551352457652646754583381524681718574272817757153173817836641656674773465216347647477573528355824521362243416687165131415273841348751385741844424711625246333411484323664473671631176336254354644783364754613712853442466733852562457337836453381316772825732652846253366284248762361355471358644288452461373177128586365483735487215221278683888581576155448628512382258451113258348768415421522828543811485415662415121144367115264832565463114433721665855284888747434263274765174566141568658862716456172885671267613686763316363573226655742253683745467466318514211532571537424748365783865246854737228546167775241448838311712164813588214652113375888365551658177345373548638425311183242635215224712351832255426172855185471584753144271827853375337662625223447515311677531366844471586447548425755336274478547635643464371753858131772853341655765774712875218412545164215612268843121483757632463354783457526461282435411842288647885766366585221514731156262653275587567432113473613742268863433453887381432115512288761171584786635357741715573841662426526458842367614536646817455334564128855715462175183742672645462847144556177527844565844874544215353712224376436135171611276148153282832227313525682477634884283745747867155645475615212545348273481611513433134818823378276266535267361774631828146215336635354463687782656442565326578713867561831844317727327266556244246427182278252522435165337844711358546148782255762825374486763677417255652734327358385728788865375883541186616311517166465663235565168544141341682367442837155358878248774268645137148855632882483781273837523362157722451383231574622871444757145488237837355457474543388151277854478366364875761812718775774475174431272123187276615154813115123277462388563253612244215487235118684172525856216255528547686641477783751733615461738267616675614755344238678675851245413361311311584362557213622723223224873176351121365555284557273212554176721281655441883614142455112617772751268746188335316614128726712566518281636367444336756185566827552314515212124431145163813572567536531715341644158727788444114236234124834271455688672717724362115275184443254674161171285812571452575248372838873244663166757841237782178884336753626558236366164745121144282634828386771766888533417776733412764715521424856715627334861688761511113141673873556263576225346312718722755387534733814888173848735677462876626842566628618414364241527452485131764368571656381575412645133255474371216485124464865775385364741141712758383318438373354622352718584244223657451366146877783677632165264376564174264215324556426382514752724116465217332812363128148786383128421754584428753545114817837543724752533857435864555714683618183814252724547831438841128327823851486868174358225148883877466213663525861724431116247378251311316612618124875888731423683416261252372672485488861818886285571247323454477813527355283125274664367581138127554786385417711364856124364211628846815414317641478566562371153436681327781814585163275478218713452424126833632118282255264245875783453465834343164371422373717162855485752764374145831378151281581172872278177423155757163788164848272762867273434477861352633121115488374876441152522161752251858587882757147615467838878157175313323724126252471151227426515313447316352252173732858842335124458834155266632655327452784125827166745313672476311837176647667618663231671587184355244734568478388188465817838383716453525588773237658356462848726378535865788437183178673176572643364616664626358214848461652788724825345778561618764745558551118824773358181478485733127646446864343581421457558347557463288164371757284576381378372771852387175134641638451654773521836458677851256565247181171222432877258117375151838182733456271462571474737448217276788253363214386333317618827431535316642835441144744737827723573113487744462417515517276337455618487864736723212368484412435315774225534577524722143327181155344732784431163871756177388522322328164828383446477557858858778272715736756168842131755575711647814276213425146128323586287271767114711276844885227727711258161248575228218572414861313522168711672228454718333583276443772133135766626667567358511238238324217116227215612742133342364435755343366777527412818622265446252458881524512462285638255713824233182165522874525133814334841826172345751154623414867286661567386271456548655518716123454448187884823824785355668143732867248267855717441837532624338317372156136476523441777751512332225346647511581874621418853112114123853385357632841427572323181774317563542866477537161434388555338286655871124835426366466711331611482183218834556524354331144886542436733742843571432232262685816328151214475876164715222538712127453667678687162338158557488554281338728111217731852352136758145583733282673738383846117286437757138821617821584748675263236667855567461644173146452585875838638837172133636772462761323683228337331132254524834777335187365337236854827773547348231262727824764435618727536734423477658131244231244832358676453523716231715433524478131285612727867152753833373175713356364768134686335386325753673488883311718764211753536173336241847182576274774264763757334716374558857714516688243412651827645735165314253733436684741278345251532263141715651511775587758671243615478848748473371446131514313838676657525388685734355732571316881748224323715151862443736625467626755875844761657321665722514722835582875572765372263838222682844788176127821143152223356723262461871823618741255134444651428463624875353461767238462673178234674144551777314248225717248173352178841841435512884667478131757782141648538767714375862763243814388764633535656567472427685584718551747177723166863351567132812187715863722872652631853516632721488877485467177221633143584167744766582117162214262663712564578863327566114612441585246687436875464465867467678185856573855713245745182237182154682124381637762526251621313138253557732434447367235357241453348374374137761518835678538347762576362215833423676837631344521173776138717526665727572525823535277616684418147568282456722368423712252336622638226227658348635635343718175344317586614266484664176342188784767581635887853471725728383376554477262186216683858183732778745527257422512313565888154311476184252763746372838583888421644165642856738723313627178857243256717346423574284633346281181472858321817217225431643616824623345714874757232336837822227441476843251422884774562437737577316886424452116615171433413621628617266453462488838428111766255638542838815242672333525627818132582624172616757364324378821735275486228851824453468461622882318445631324842418675827354212778572845675524677873184144871364831583756413387611246514288862685352758641826471231114841777168261287458751248664641867132344564236572821835555642463273686651741333868673818228587638822167413341781152347868664772812686552611334532775678651647221466862177365381615446221342312572231153248238561713167562581465118537623584432242224563686878588364815843351366851244721764551738675623252518325543122367422412367857548434538624454786562474588715626347725352811853738678365312378168666688256443378246377111687644327112727856377232476835131841226271641243568414146885626172221381557577265412868821148163361727742524817161814726121621283511475652135143743867663483432276388216723856251541673776635577825458237884117735223632584561786784412661771851635464587383774587515687472145231756611636337555722476468182378451224677126665122613226338115766224672722584562225868165435734477133861651844176671763454254561857717154358825867234788325782678328833344276825158561127754323512478543677475861781545312144653115284561541328345361151841846412132115275252714318428756566411821884348687833416873785814781836124263317662768255832278224462241452211326437158764415378664287286577468783484316326523451474211814844375523563785325866726557877487237755115848645638578255575668331622771772668723527661714474454418573413422757224543167813633242166614164375733182563222673217252387862173574472188724271551756555822233534551646886856838485482858751435256236611233463461633153276236381742212848632314725138484581782673675674818274325246358553316287585746556577227756434124288474532673184365413363183863836588371175531445788131161725834378161243467772542617247853123243535626678856137868137271451667251627627643827621456435386482125737234678786124773524642648866452284852742614234141417843627234167887875445736521784468873176823318686436662572253225448145616628175361738814482617631433876551677577173213366144888841238668427622367555282445661482623232633266272673732656722634626878246647178328228325437272772852645268541847437176157534534543381837626673518178648762314136557262586587164378174462131843433411632767268285726718471821536381342333685357252557562441147726242312746217742561781773354228753517277374515375584833446632666714667427752112236832428662753164681377188677222183534441128128841233214787548376571548751651144822387223174735334587272255721518183181441831374754118151415633826387481328218322865446728884668815414527382727655147858383741621247761784833148646522826423662551111347758465277558545224443432564183522686768488661553883133188157376147787586861765837852424173342554286348867553246274388342827866326157811357387261845365855822638472433636323147283833782263132341543731568854138671471588157235621515211547127614452762288438838726727558816258413634682232441487885137212554423632868775863778724138568852722242431448811881875253175274621112867756216758317814356733667464187238663417564716437648817678518615852267188225867588113483765882677622345364613182626254255672165272672277748327831435515541371183835148554284686826773483151623552817188546636548883373566388334662817186711134834287282724245376373883486136373354433186565372562824366487218455367828728225185615551242547325646136837321113685263187716713785673744472322762635463367227221743562362874448157285417545168771148852642141845728536465514353265113825451386281154443774626761671752331161163412232562175366741152854636174871166443785767547371433758231413557537144813872757817151786171815256623152754261274754832688351887231712376311785433743553684841655245365557836574575267161132146384651757671837723265185812741811218533828338787333364127741527683128138835648641733472851785576733334758743372835277336213553186283827734725543178676444588425558846424727238443341514457582425553352277144421423778543463588275213655682588253662288442231553455218342434588685427644563211563675836722573235315281746883857357136855621731525111513381354732181436788554525466865773374752128218856662368735572212326512431524775618812557733475126118361431665817867318332775774728622334774124533727283121232822662261236664638725354553884517422488878268171535567577814643262863656628838322644388364171267333314826365116318474658135728567837631271238424416611561256138118834318146482731212177564726686343723723516334113616335865516473434743274438616333563167376164327884567386264621324282131357412863517718273644613382154383138145831516851868728524756218164537115862434468334823873512624554581373368753172147236338845187425644438241331538662741773844641548244856126463614515186237555456263382126866183435676828787268655171826645412521553322231324175288753731216488382572647168635124141112141258437815232873883637641373426712255642364856317217287377741732113347468757753337842477473331851522185471511578268654487412816738613114834636827715178815378631426238755536414782316525128348837143876137885558687157188486486527753586524652158837547162387547537733448586512562818438241167181643182578215172277838554228877267674428844742722673865765666353365557443847344667747837545376348313428214431856731186754877451577318462213175214144272117425275511126745512443171735323435314555141171733661484534622826483143658536755382555138827155871734816552586446656177687141373628833756857854544725385411734844755525582435378438288575536616388413745221818356184376633523137367351245835142338785648538214614154281385237833385877563648136247642572485234655832823873223458322367688162462128771555628162238111664758423817183722273485225545351335367481263152284438861664648884231276225881782825162485527182341185511133738811423756282561331887757461281473832212855566461322757561173756626647475116748731716272361567484243274632736134768657864572425316114388287343567247442824363616556123142286735415473148644254718632476331341146777336677425848422743684557685157865222446676548313752771652665837141657788151244364412454432687257812287372763137126414265633124212866847423565173153661685368216618246646116427152756282471767186585235168114836746441131555374236718618363575768716522116726422357487276474532883844553127485316277768771545236112673834154827753728438555678468813635784127474827488311871574181452538524552176677231423474637733232264447146178714337152676175673882858263372567362335628466332682238787346225275187877533621181185543416451124865315772756526785338582272136238815844686277637463343741671735711653365171885713275267152357648123443734121173472728512845628772311244885738368665171561453815323745685736562162562832582441874346558188278444521561818562157424465247434328165587443158763445644634836871541775374833716116818547835587428738212374763832433166483734113641816143428335622445274241181444818235383161617157543834371311754131255251114256554721271312883818112138821361228725521353287216561841537456374483776487714345173357663277733244533455738373133287352646235174145655165873215377634282277881645223722836486514474578733466728166447281157136484226657785864565511865437318156657167188144652772337445453248186878645255638383753118736238583184274386566326825614645688353831437724342216661514726677155861882367716232232243382617553261732725872882867384853255776157814625415853231585726112611522733761838741783661617552685153281874563767628842781885658335476334362343782382574381121485867254687731271315785552444356743344828447286168275845254111333154557627246883476223464311642464521486438868755855612816334438744473647672414582681214341731575212187811637465462345618636421127546448446276643487544724375177518366466667423344135517756374686816188211735761764751581378347556167872431454664224481274387115217288287535124237311156115352585342468327632186466666836237482662763324411881117744253186564418571766827353328452424758674744152114311524144346467864718383684662853255656415675546741373811271786372631642485715457627175151487425512647263427676463237763243346537717788181466334442112481438866643443872165478332621827781511365362768718521385464112561821617486148188744561124158314141165781842255882546314154877372244483754513818253446213656532563744654741881474566816877672158854168568885868764682348615371365213153771224146113315438342416882826575567531855557557745138356738548111876674416447635276746872785471345375282661275143226737525226173671772414528441676582826765416486625578721877241617548138113576348726245844787876584784466663374176632837648647621878241854632535318384875221876867415717734452872727216735423218254216633357343867272538848166647272726325444538731282812145854157426127278214163278265333171642224165215281115244422315226611648588855637524475118887688653162276673851247525773122242447458572576578874361444784362168654576644623547313171176323776256853517145183423732624831323236251762621332548878577657748822828262765733761583838125442374575565855276833558416148672636184128578115267466844381133557267261735747278815833181737426751273464655641174661268832761326152326121524362125724885826636242172138736583824261112252777215722836354586137223237134278326731735827827267451271643482858566412268577715416773428114675781461737437245318118573634144756376823246181734526461535774444217554547652736861388165652823552165814517865136762862172161228266851863177522548484414387386842673768378627675212352562887746171412124133251828116326722345538816168681566524462167268461121875454333885868343421574281317684873811412421372782212565772451183468881286584186282257156731336475541843276615482714774242611457427551376652358665167315173484722463337362151727838155666511733421854672253635348274144426116236336363528646263541684838513367575886487325255221674451318678642812563766715241816631573825576721687256238475734425173255365172514143873145687873437572773166833837517811354838163254172636151438412373335278442481332163256634766721272535868225281311261653535521748462466213821763658662517853777471788535785356342664378325185138185883578727758545578647418547315871365762476558585838258412527642631836176224223157632637567868442837737871436587731132784232277736858724643321311521783865711253158181124282655144324177285341584643525413122256813634462252357738328251518168385334421344555636755818117141167723247268157343278224752416615423188635431726653861364862155883348352222637754463827662738118333284282388175867378575625868386316126845781747363441214177322884562623726847425261568386516168367357475257256123283513127782785786867544453414381856628567176172754286614262638221586656131821154214181146484618631411868185312183631563515536533621811443652145225183476311316333882881482862522643645775865127683875458757826786434778852184273622886782726375545124352465446426663867588823831774631343582756368337466172348227152315687217147861548445672582245456211544138752823718643866828618845748462337568348834674768346611338736756238347175464246784724834143538164348548584543818868325372266387238473238138747317881273453366862525762217876321363552724167448673818643143371854561535857442477753722716653462654243586175188523328544126673274637468836187464634621224336864888143536765547713827865233735464117282723825212628347543618864647258444363281213258514163473485834376322813583283513542346446737461767161165727462563681867441722777581823276167236548388483663861471617271466727721743238685652731851242514634568224184122481685562614715366737656746112256886117346677777361617658657771473145117748354352733213162526752735258342887812548433548186272765856135863441526824542138187218728718474346278517433412244386366555332188341331686133885427641336754153361815585486622131241315674133667458146863324146634214566668214823762873846657884182664553417273528153784828855563727271177636858261726726517337428368543266676832463857271288255636176523117212537883224261443636111834821782257517538788283864431662214148758817133146517544161533766455445333328425874452176423826345411425465542263351268246657212651326521171763458828124447483123233738454851641774463765638356435428418571283628132547774381878772867113227661284324418267514656664868465353557825433617476411484876764614452217111217157241714678814274443647153612611452786667158846577436367366322785856168138163687734336528477258776415866362324155644775344273835217132156217658682461551867141137756352544616173864828753265622152876267548238436132181758647166416538822211421715256546681518535488267726771746111117827251366772674625683328516585375476386223257287254856836811623334743116166452617667572162155714115545413147676311432783487135638437738383373817865556371125141684135434854246643416632756217327125248842751186244845751867643243612564378841782153121571222238757557611715463422884521811267347167241672127632314245113157345745211273371172735526337627328178524212716882228615268746435246174733442713732563523131741737124486831885216665833468411511426688152285843243587513223613421222428628142335181731168781853327768337864672147712382777325441614261383311727537587134834116875116478348151241815384663246457386612236232462884311612575185127713414236754523178138178424148711187847871367356255173513367248276628285632234655463284648537531883517742448266774282748673421285887222454884854152278672274424565614334435182342877838388815711273362151255741734785133728441841715184741728754314571817765173654675442463142843855635317245117364117152311253738121842534187266622583267143145212217352143126443732727733875568476684614241161555484655576515177867453116275852435687318566647455142863285455831155263315813182361624576178151737642132274786473345518457721126356411572417523344381712834267128465677212823547616816726672717822662122831717132254261476874533185831576547888678756787457465716652362232126128616241444237381285441773817768635785454374686627733866514177566568637123656846284224124574115386168646448446721468182346115658574756353751846174577511453835535715725474541723372653746141376688774315821511286645313483544478677551776284626188331761335173886686228183311264167277747848441825242135761428321811566333223837846674823325844375882737138537658124748841655718465878717152618247873817286271371277411764122436348531674216711232661313655383614817764834775837552566836487842385356852811715286445215188241754786826858664215457346584214456141436115166682343357321135156266456114157171274848613661815521222518735758182247143832482684727877312563545383241744262413837585444314325538416448862187525211328456365373216621288524786187588826622436153568324741277751144887446856645554484785322275827842355468436421178631725124818323668447587526827522871535271456462383354262337867334277572134812813231635138272631278782523637571147361118823821368833832251142124773276741862647828317732644678284135836353457251366357238164651725484876624158772368136315685887345134862666815466284274235158625671583127357357883365643127663712811481642446188188732547528186712787555644538768116435467232477355214414763234266552264667617286717348875152173285235756512517352575683654542825676778461876361667161422811867761417514844554782116754535734642684331241553252885267283845131734383223344434483112171852653371122624142727343774617714382635186567834512684128523776345388786587645466868564745284346832831461882412487318154275581221563873235736338158884311333328752685231215745712365487438315656633831438221557742416587786774262851267141561433573253714136757731353732666872247523123344357222756445265166165213212254685451668654781532516235283682442724321352172828782874564541331387247741621575562563252562633542814436612664562827828538878288483585618236863485861613812338342673868615816237754416618748652852531786211811478878725543642765665461882673826437713378338878834287527624824515715878526124487285446556245542535625816345571522163327311564122647581712667381321844127787462416535871814416641458662528635481837247572657416436783268434836378435131272186463317821446216442823123538651617688446385863662564468445441651417421746284673743618688324377416316168136614671143143388627167716365466236627353144246337775463475463113223646212288342563341837111532463712318375786334344645123448417367755371748163815514764541585513225725833843351464348358565677241738262138264146428783236338272717284763752236358626775771786425321728227647656328185762882436147715281434156536223411458736867646125882268437487224587187257452411627155525521838577274178167275512363341563786455588588841686784246466713866313116718381676611563642255644761383116687836282454346588787684733235136537652236342661586653653813363828661285283738481818735478518383112556217153722162866447638555854664171611116575153828576287823531226854188177355225267474671525516136726782335688567726212413332627135115261673274382657257868841758612127322834774673856515574813377127752668561618611554718271778677433634382742278866884377851367417468547628816248816374388428371122152743586562316574734487748136673485272854273423425183661152483845858337582877234716152815253718482865667756447472316266726813754465474523584117533382871723546733353753638758837283652414787277252827884772273147328324682475858845167636228848524764881562651855758382321712111433186812273348143788474238553383858833675665775524843376162127282632628585844281231746373825658436388482348114265521111317436415147812576462634611328473321335555174838415315757684226771273575264427872366551536261771826844386665441475875515176887134774688683721857482736648353522758522878775413462155681228651725157266845831457383816318672857232564382516742666554336754784721372112768332235153614533142171815721813373535736217634844665311774651232116346884784186272438145356644827541784545125246184348238224273478767575131178482867163873163227381236813128735733246375684557643614411127286464377546628138256363648884752131863668217626681443451311631322643616758441685434655621762611138364712565353585655824158563581688375578555716624815115868857688628814554412148453235482861275742166555442132563877334827713336754528787383543865515536823875254755334343416855643882825126758316352531348165272634533314422171646766415423634432353743341513685861867215416325885336384817325532448645865153422185488331481743236855422845462313347634152831312254845162332147418847526646882638228181541486274861244714848413433866646767644382571321268856885517135821263323165126513423557576572666155774476568556716848272246781262873363785851663748573665131548854827252613573453744125214636573381426411683737457327757566656184488546416568711625718422632275771688453583526145223674674574638564224756431687546267442514445336387366433324633875735354383235711474116545836584337343835125116676156843782435255467833347255766587542665326232628462363223317814175314648625785471813846247514631244452767832422246533588788616288353233557425647686357122724181612873825771841388553728264342513485682367115226376131556364754172531187835474252623428181543262242286353423858134214443772328334772462572157451886545132652312456343267552238858357567236575345687772743443622535755746173527875423664321777232166168324161157133512564324668242573782344752583158821484838348164517813175856465228587672366543515581213313223112415366225774717526112628351744445412217684618348252838662626885161153658533482425138518476666461665385464775658252478164163168646555264845833561785636241525245255138258577878875465622563448133461538751452184475842587117486863163212654822448531375222655344415656464482715736721442582411275732261373723724428482271366618214133381651743354275685875126463711785213863461136273777433871531538136144751838153816733848214351555643223538125812766432526331451565555233473716544732315658375862218153672427386518654654583423532155264178524547627561447237255866533251125846813473112636324761687218271382231377555672154418861632482463868375421412481765114788124166215547278641628124753114382413463558763143524133521411852357286528251114884135682432118254348541724627463524368618674814413135442212115873653517268327316257358421388633228352224836357348168873172257755116742613717348638624285347147881862415723258224218818375374452325251866272652756423114766258855384245186322231362631634668671874237536448816574322835884115273262853751446218114481713112531254111463687237556221785748464833854574761157767387587331356773883781256874551823674173468774461468523622688335448374186648654764112288437752455673824122563387625278333437514761174288715285662583542783818835767765535324238415344774328557157413423361644658437437813113477873826138827235443625377816526735642552323675287656553437433338665614164886567757241448475736281131371474711523674754522733434127162564247732532587847351768213287458777188345813154322538862742443365442451541374882572771651613846873318553268248411243421151644656653471777784768854376257433181882134787115445846248562375678457527518251372481857213383811216326688337263532564357736664754612138242884128876181323364218156334458156453777331473333481835585441877663323226468423158411114568727163768652878152214818432625646625652421668871173533728853787226238365315647266448873476384571127427412733351121612455863676615287574173845131761812463864115355642455253125163245581684333735858476733542272186716745713148128876654522585171533348448168337747226112753231762784711132372246422161122611473172538256852783168172862635531538463855537157475883853845227282661123783718178613415377888486255864857572481838574382436535858778378532141338548481652356436188558283588617726323832118634732486755183647346365535128128221663637372376676485626452612145588743348244866746474287277445147585187664636735412115832852858571761376351181645644621875724312525444231746846115871217756425328816251571885746756245874211846625453435425174727876537852188845275772122328618614226463265188271857683484853771521657472665263456328383656146334213452472435855728266884553255444482672816317817336674226446645682572425446635863561842864267152522311373834343286387776647313414586256467231414354156146636433153687815543336254316188357467114835163628574217337365651514244615541865462566678721878774424143733385841845174232436856637737378422742536386441424178534232766236424648886536632824372531838684821214532565161874732514275366767712445887261168253741518528183787337657143222443557144374851258387484567588384322631662627765588365144712216256855347465768812778871831731421843638376845677545874886151741754544814537326443533733577177314621313683342778512812452248138334211348878614124864868861277387363443462275113278782473126827654662613883318661885354874622878672245517142372166215363255652261238137424342775184373117571211176871767131266313872846234348341633851385564866625378855833672358223386752217523178186635858855651676675125235615661661325222343327532621566551882475856882356654354442563664447133224446344254386758447745184771132724444247866527783475838142764483267252477465633272668838448255465241553725274488164423144715285117414321122432721787853641355343776824844383348687358785435447858838776838144426444846115582142523283546618768627738255256452225784867156635113877234351588718755611836616256722667387856158572367822127826832383227828662265721112423624274114854483425738338866565171746431684645515817476623343578644756517535246252284686547536258737148354626146371155838228424251338765844576558852556546458175535236717656683745625625186552387486221531153265754347517776456244465363561362551884416264814423552238523546788817153358567674627582517255275577828626345666383154173833564721386848127463572687632752152114433532518612862326541253321836284474773273243778312178135644145123872874581465487784866826114441515535854561387157664358331836676565356624238125415728558527814268312128834268435738446513671554325888325245446386278812565173145232421332264675412674536553231261678155837546713613172721872436465723675428537735185188216477181282384125487557571454856651833834713173783526311426752668786187353226843327631573384743163811838436766786672664754148848821123542763121421377248161685138336426578861338625565738884832236678444256831543134283822648385432561114661247717743227643774141371523444284523727423284775676625586644361713466556745252364284824515338424267155881327155227563857587747787714548313857168767421652621767375476156611585714555651817318124386175731746416586636248232688852114876814122654584432154372641456462726718723268461456686233452327855353516587231422155553261575221821548573631676758584627817238534556322234631647416853821645438486577417628827637585743288561435562115353188414383362848558611663455856537825567437587441775551718485537568852476648611646834548831584332668687342287756585773887432825126335752611587745753663163115888467858755317446742758671715815611621326417351348125654218568116487542517155176874666676817418481286382755581742466243728377247486174582878561627731235576674512153672716553743876336771613484323755677387416134548817855476414473737312665117661821325141168348522747458212275633843885251262365353321452837175352232811373482766865577668684518584186571424281253818673732785343386181577543557671126245872714512826853686412461313381188536124452566286836464778884342715883787586216666615171856857462552312371172123726444463243557624687223714656788438862417885472758457115534413525452734153154228844476516586182553318664364462555816217532436568271673211722165856381276526581336811727188385587742421463582867786115374776631723462867553826334822636816653212215628183357688617231833864682516263242776146852747624372512435386155324158115255822884676518611535415772834787841164376768342147328732728862743415356518727785165886445841774264871474558361663227568315447177144671862423137211877181381356743671738125325582262165352225264267827387425856377753221672717267828888777886877785363136311122652563235142325844573382844774353238235335356558356558248823124458545881824418872121271732757336466152544265516642211655221727241376512575288275676527534826167541832584211652232866683424855122371266784787188175233356264246538518846267226616661647417655867723288871616833536344648665571277212878866638174774473285112858626728462864237253116721657457624186217858453154275254418784654683841318862761351228848272535156414215155184332535816264375714316371887621431815878684684582455778677345878328137118631415634547783667617336428812368661378224736444538274638785737765583267616244433878738257187445727776627514878226531813581314274338752377113621841332166525742458125412485251176348611314458336222476377765676632422782665532543858611285336885123261745274188674252523714445746216415761122654731333733511263333482724824753374732136856386253856613644673483538723414561312425772142524265537766337853538261121522251255811557775731572213428652836764111851826288162164527183863588677512856117458768144856775728718481173314172812852755777327744243367653735187418817214676751161141348732655838361732453625287681711151514348451284455146545453634464521365522524471351368365464722477252438456646125447632544785222153356668485261712315633755564412522445658486481876858377618882818237528311688672244635141234517861462242787112185556572741535476778147312147148863467116856361632548814213446634648614635776187713241885577615224826282437726272281362686467146428874443146147856516626443858861634751478651561641362681735244211268663817347726656127586565663335487486148134462821644731266671438182383848136413856557461545124521814861811481367414112531836622821146173428368878867355141785734311285361666281183677472682683754127725883814233422241275648567458313841123568384527227728375838685347814211784583768852512288217772363125257244851783587872775787286628115168344473127264358633166477862836412645213727365552542426413468431418831268777652462333677431327152741555265314527136514567153547834252628152873752876813345153552728533161646178628686865164127345782843551228261131146847566342473231376662454887323168851866413374765574473746235157671538837822288656274618287744646475314148846552815751578771558187268821384884521624877332323326182827245888242666854185621247434873254721324536786325657621886766278215124758815466152266661684221337753357631883762146426241286558437674527174731357571385324426762721664777823744113648676868755561668827675534837783617854135315835543726864845667266728743737257466254842462635733658164252217745883171365482322325273356851221655574158336213465716187262811246443583361442242331318722453167733536434312655752423232368852114618418387243632531182384582843816658751734142372516487238652634842458271773145531415576161841256865437352412223262348356823547461185147453374135542124716867827784581226721732456174215473184378454541431333766281241255434213536663175335147313354278854173717657131655483744528436327484335571267535434527562576186812756438365561852343433385744873562214315454878476432262721566725285552842214624333355538451615584268535815617757425348712214225658345318162126517116715368471686516745462463786367556557682168123663474138176483743787833231115116473131523573132126645145871864527225871145153116318747328376318276183155575167225866676845324125528458185337847683812878365524238661547752313861425182425457432582574654424462842566155528273483563584572483244714474141336558548213375871546541274516877372481187725866474725624617848762668341534246718855653372262358162878558722282232763334316263737151316584736851574188641462445882513558684415157626643484265716583784368516276717273844882882154573168181681646114112722765676688166236562372231687845153585481611873688377232585576467138673758868567488335125765154156672323355277475547854334266528256222332683465618125445627164817521635831218813886631277666845537237682681638184531144352745414726154312361433327858637153445462674748571213385476886842787666253316665723727162432841211833771823312627633675646858188621128742271116425852334165714488258326143826273584444521332354872227458564776173762422655846521512566236258434828553321556682537742716867157315253681528247475684813428662656674574533374118121616227436672125681117242147242461564336157728142581485817153213321886762424653524274847683347771144743652656667847327711538552885627585383223422686647646765447767288534513154512467737622464528685462782184472574471326213643312811683762147485561428155616488357881561256673736437112348765436568164856885347576487678675575212434622416584884322738634445157651711126446626388273661556244413666768136448476165167877251378714278677285562126642677873272333885128755173866817614614574617448186657122356566833683133734744218153475237272764741164572836225253636875364423645721142212248654731431122525828257162825411278376367222326422234716118552687615332644416882385641712753537756847687386847447323868313653876265856624686551273218442564111358712343768238274474864477851555451382787245777623888857378338543133428388282847475618754576118826525376483444813777344741441272228724382278534452626524238751211742565215546571311832145226478513845143326852276487852877326417875425137115314653416457723238768232423352721367765668115316337286163832557758816424616612666444717176887225181416458767361344437462853538833311743132633834537777626542188158272666611318321161726716261228681614563555562386877573186236766316451816248282317377167274837651883225841583448485713715666325226374748722636315647356112864657548681516423876456875835648176544251178328553753331874774485486757486266354635841388888521842461135462621465228156481511236534727863261744316651855122722347551214172656363488542841384831141232576663458275882236824673456378585232656617646733381345137524727664221317751125171583551824578622363586722674312666445572687444563845368517853418225556313113158151712222634485355236476511248132323152787841252576774177853817733215376756753451758833657725383362856187866621477871364877248382328147487875648156322181858661584111622243438785184386262861622577463125585687455525723158378571568655513688675786665721867632546352262666781425127845765228123721433324671531361351233723548528854784442271248286138256828212882258128437837521652452526612427866856565254325133886323368231576514564785541243866488281672771647412282446651128885153347426716837832178115755531633255417862374317866662567784117657752477868775311678583357882837742348544378124361554323148875351867348123112257718353364865617134128115345325644474786541351462586317785745126353372127386266188432863325577252253568847583777328183655831145434484437528812714437446461484833616262381287315727666288746173411248317281741328511565237835268768622116363848646445545267136765524133741153381546752118481427724765652322546328711663532327773651354124612351388448822378653522774245766662122367628711473683463814638211761681118568858821588186222277826265531418367633363374687411262134681177346184586716166673322676643532224882117831786868476478726355463565774381176162164747143341314711725272851741834184437123154732447121278231486317757828482831124787467172763663713336282421565522865751535633136826367235814513561646373748387272554615753788355116222285543371114887726344764335176323441445274378623117383744618181318656571512656531818233216483144522426723758612831133828148757477585187586364672667328445746851266872264566875683631861747854836272374351856675311554711743482224771578254881264185775516773527846516241887511812237873187312886155225733627613368848547658785664386881755147471282878147845782648431427754551458421478848836127252258211741712584188233454161886133351622726212166422148816673374653276376627144487361588537326672277413426253216173654352886722118441633126656728612421865261742284247245271866252536738324685335278621546565375738832157673438326568888857625248322352843375322135581648868146678286677177133282374844247241843541246856342648654437311422318338568554736187633274354618164354713232237827548481463182283776776885217645551642332335765425426386365325721426866632381114474728613551476743225713544254782665277213115544631436231153576831347832581556611452133478737165112422387364336735861548618343752635866365751434672714368531342177674445464258528114212634566562844353657562885724774487858335375647233282451325383775637136352765654536766321425464223187686524283331683144144868767671282244352823765862788286756547236463525165337576626753348332255752228112667555534821182211731275536176672358776585173178281183166637845815546325115755162714121824143155547128131362541427852724746825664747264864214852285242137743418477368622133226782185728384258545535628332817717723253766241678128417138115272745152172327776137462715886688148638783437154656571847467318137655273522132646457836221372281186628678615758651882885766838684442475317161243555162656453152533223638852531126152387184181838756574266831421464821142441651336224138428535521755117582676488332461262558342581668212231177633354451325748412126174738651241418446781246832216447671733157523515336762236385246283478327552178618436436441534617312147463417128148451483341282432627488656422263783456863554687633227577583471818384217744876128775877821543367212236435582585626282263522115225851338777145332286511181722544147352748731568371583348862356154634723184655287384322342515464543716167663848848565346564516453832221253518383562364342556748481636315361751288353786646646528364362882726876651868454311771225752278326861446581382866756188254181886243778488623817457125358461537813841237455267225117331741438138342134631541464132561227556833585633638117475574474643765851483871232712244483331167357221844171147871245448781617117835517326113831582126438686627486155735858144583517125542816271653444314142585438881166272826161581877178526644386333774254266417133184134374124638771686146354525432522173824551865635817765646843816323148155823758522367132546784737887511523172648765638688764353565136113475172232678236846854563815461183463773658836213834232765453713382548672761765286482157466178854112437568614237752754567168817737844816271132611557354377626272138438617661364746415586214124655311114734785762381422282512354171347547112673313328262175482636836542626684335567876788787157237313821841121825343757364585618148674378235778332338755356855267723877638434758442735846327184461817157875511512828862175158151614733528641532656476224733238776857547725388736476251846685131465374435758235728221744334873431787113167556638217761267773882561172421815868356574764611718166331454834663824667135484123376788676126715755373155383816237465241465526168654341844844328778285856236662316848147465734348141174274142862355562338163522857547187727845335354685355512671676233444672641788137148528831224364367386818426346216617881623862421821241587476878584737436816431353513737841312362562286785526857558127677271531387413145687458873831742563721428846574747176831372523667468553651635477448458123758445381343225134424447458342155826512652147775761361627818467483483211138744383421384851848646166488834714282326742877785618837177341174447345147331774686652424844426831764172647724151857631272141571475451844475565826351318236248728743541868451427237782535346344251724124475777127525185484318868554231227334571734386571452226677331842252534438523768647521844422614212754446644512828535274371842272846488543426626362653253868723266817868827652673752455346123343444765738258246314654756524628545222861854785422743131468364377317116465773654343865241332845812742386645442318167611855778614381842657412747622824584654182735453758135126411758171716111887488474451166383121383755652867188336217762186576285614134117153467524164755636121213275134471271736261255222122361177717265877683764831171821182253275651521336113511642637724574413372223544614183122461781528158242767285721684514287616181381485355344213734623522772663378782541477163388456288217227173784476666746822684885635812657318375233145123864545435437465761231854534575774747341235458586871737242652723365472515248251715755846344534777615588222368412138541778364774355178555211745516412548646216716226181524163165377447482651614611585756811225112558336557841863587813811825485147557148578132688774642732378325267378523542483527564346764886163132511172454163582527585558281211227317151426588158215347777132253357428726872623612151631563577676142468724353456736411242141784412334178272416842512363676474564574822465161673828176571264546573168618831434172747446555135128318248537417322431831486867362282147388428748731285446524781176442465684174625478432733887375865732622624283235535261138552525235648342747237164531821442333861552337433874817636727338178678354877173358347856357343852545414475577178551325364255726552778417744577234631172655786176211338253547112423764686677447182722758841564513757123651648746556241316177215581324355435558144252143683833818235758533714365541488548622788712348511222482288644537658574311881743538175123352142882765732465466315277457325478458875718261785215587661324665725838574243673154121714487268688662884457344728255231832617186535721756213768455466375286215554871246743863632862243171551128357331243673382831573526682665781182573284833626711212772787265666237478664755857644213347584541366728555548153622448463361241426746536167757621832231867565315113471525857788652358128514388765486256113825337378744677847432165811163486181743746634654338514562715687614885743637763763755682656424725734336626677364522238456372711462657222447533151268772453134665884263381761362132172382356621663364751722258431224634758143841782422748624616256276327557436667656573326847727481261684186656675445787614261146615756275223461657512684766373743178734176833575763264638777112642128677157523842147541355728133323575343582283278116585514335347258428637312427441727418473231882738365348437344362736675816578738822423378327146617735136652343314264513775365662524666821226343228745761163711126726863532485343755535355823551636223245472147546876612342138346572382223831585452717533546521413341747616773765424458641731428861647227586433755878133882716383512313478618848554653425151376421378483418638315772325345831824528511787176536248832766534418883783782377215383438211647414487861132814641855643655115347531774475411242851342521162634252126846236657142568536154341182576553831417185431533177246726548523371556558362228645167352825762541452533872658767862458273675687863532318154748778442344458241716332845844286762648582632338566187421211683131714317516718488658437765724671616316783158825258473738648576776888443282168156354452852838672355786644535126544531157528853285112473262561414467451772658346163312746877666126234831836711346434536162424126737351822815616468145731548588624174628361184255124227858641344381818233364754288356213418864621344721832833873421417747724334856811471315536321761317552588188687756442264858518843635737365115178411215461865241528234116576222235442785474614383864854415814427788665536236386574184256446174165738424441471547168872317546317757785732657245581733166416787451634714433555451777211576471755262186887142521714256288516213337671542323137833473267678484842637643867712146113125363187274317627284515374364858774876623376268722678451734748252815171558163226754146634771122827262428658464385232478147543662148124837266143352227833845813515128183688365831751141827585427773817732875213283287416433534252653642151664738211847152254214644516714116635166838858655452372473511344163744332884578348141421884628281777457357161536787653457387225388155335212873846572533746838657822867618638816786262447765267337518188715584656647448157565236668654717367622618662241153325262541884217214477865826353184275364837562551418233814363343325846235332614527476725125345234447666121513847627115576285736142553427863866624615344475434414351257657168643751255575521728158416173362714816862776617277278447412471525284276214812264643141671267365875184277848616186667737323578364787216245713461675218363628448774434848115124267288562485877151861551487558372725885361865175247575636357874765716186746387426741516828316573577783777573387732825457882174338616681646574573762854387311311671552563847545483333611388871686214625661256316578138561378523821658762886828162266825388282672237821817487254376523646166865346245684447134836414422715768177164753421871212562434771421813326325714121576233377328585254243453314822711476345414674463334457571131446637341151451336772563286825423812214671276733366441811214767465738113364481214354782742558457741338336542248466364153132156544561461588173744161235872312657167653233873553715468433152162848532775148133688317286473212728371887264167817572686238333844644817352638312683464786167366856582778184727614118733241642546223641113417716622826254421886143156884546438328827213457676426485385414257333287271241533838835147535876278125552867634132132776764228515613847321121332487562385362426164685661223151146867558584233538587784381436146132477876618672352352365687186438284642648381886745884344726653612734347562355858456144136612362342326623858382772315283253233848863637546571754468838728381147676632372271113247844643772574537858446784425148887643828683347583645637825733187747832485626125882367461421454124768632444174627865767532387134778454246311633451511553647346781171661152723785346843613282448658343261214271638181682714475356556552263814175641451484124723878166345537661357822447182475847262445271762183653625716443771636827242781674517154483248752541445815766285388423737673634318162353886558457414528557423626481344855127226431111781428821143431377588145754667251775856422765717313166488132441316778321446426181778367143353751741438615716473688146352413828782252168463742261141684617633275827321521612658183377112667362581833443316814586476347313163131834658123451451245446851477233446551161112433317334662141114356488438531732664753642414222623783841486814682618745621655527731414125317185681172622631454138437467257611463786281374423856374436457465626287461858663888227345868523755371413252237375342664565515211775728472671314275557835732768663367738663687483762386768252733512856662658181724534888711722466133381511332682782886567186752213757435586151872172736281841264666834575351882131181734111186865373676212145555263362322124447762277476152136257131646638456347231384735378241821152457486442677517877256822716486484865712736662547462147626283428226166568435883155541614535516486782751855623836284663148425465462511361887712636623655742816444856522388454854117882254158857216636381548872347435733237522316376345671651262655227784571587818357874625384434453688121731115322361825312563643572346588175183848872751216753623666564834747823137244668167113218142283638737721513517133367222543232883835533546627613355584421462865811775554267513321763281346731672885435683546386833316684631661567354735882445415277545257322717582672634777878577571566676274476278627852278141883657258632553215158163274164868722747724425253617255353848264452131263517164486722686513423872132233618558816185222874322713214137351238564247546517521478455844513256621418623481341631355888338121342471714146661738216532318846123564867765881538316481656242817551244381355416771152886883616142877237274258687447137342256547115748526813868427541751754847334252151536214561884756238863153475587818187434182711686163774833228853338673451174423682161351574253357418468763884156171128567153381676364762863136222775363828573886277183666421724883284478655452757837758312561522623343252844187378113351132286563586523688257778271825416433664664325225658161758722546188831571864552815147867886314812757122771311534251163582447378752325153814445468684887142232658823866734715846637474632437148624752618735124315325127244741364721874178515582428543214635116867175718552455317621144588875356588342341726837847163413735316881413313544576637175323738512437512385315664686756672827541447127536288636554634343513818246128147628518648217681261135653878484543743587271546471712124464725241725424765248548516734655416775726441474381128652142651885547716618437565152286172111444482128726176236768661345433658632686876126785136462572621548227426618765272368338337446768378177414336846588326516847243331376748625143857755446172423687654616366152278861438657877386532726154517568547163763226253832777576376674453421447646348624673465118415615248165647872833746462333243686616583781717662224731286578854462828424655513135475565785343854752644476213771352185387818655758761282588128871122628376364753218638831477348361627555831518611288585113715455165844381654382834857252548817143766418227643882766584176823653234328464573587755137182845645735253583368567351273742665662163868367381831623351263524765883844545472361733617321258144285623761745742424452443425758652836616648715272313475751518678164567784486823184611542173671542658848612612681655524847742683172363626363188164647842581774188815775523865825826373416245415575531312217853257863645666252532164661214641221846633178651888563476587128783377646464284526621175537113418688416366836628564384428422868772287721588821841833272461844384458221474362714385227121831751476628364636216784851163336243212866113684225553372716145885115346454523231765456464126512648746138234722284635382442666677127822626664668614768133621164142671167186374874787821742326647574168566123177626243114814375412144127318362545853677835363247738788557267516645525417437818221735441681386845335821247462718778242572756625412863377156754555146612725877218315852636423783247472158588754482822656416813347527512433266826478644672418265137877148751136363873813867726278732254815273716657673463887546712711824742322154346386667183526655348211564734715557563241428755752344888542244424532456612364271546487547238847315681446825616437342785256251787241738236421724426648131586855171446411648875575754234621812768254754717868736455865185416124251742622254621274547448418436162246456634188671784525132252527446224788862354686536131718435436184341212115331746114466135843552112434825564467127631872278887851265575627767575854617347333367486757318877347881236618788234536566587376461341257316113674221321126143266423323435825318717757258463123672555345784268781211775732737617481215322436376456217437167462418487872152764875251775473785534318171173817134831762438586154316734154482138623615148573121541333614377732235275362333176325552857815222556215326318556162356875412886475165111332734473164481848151624767237181152337238754216331237642662682841432868335635624382832375664661336364221118212258636871847761438638862663211558634661463323315613348766188271521314842211635482717566714143674251543176273825572155144656554427151512686428424622823857564623516641844151258465655623334178827745671232653512258268755221816173317741212162648768282534736331642381141815226411182623512225822233857115387728451152114143376365488388128268381154345474511824766273221574656517684477725252777382556718167666365612782446544155482146226813157686175728174685158378384368541757775185776271414164385453112146614131127211838552436283726112321465581547346542413617551871185378433457683317882528354135282147757237873435223665374647618646611373781652128465834451781485885752366673446336241666563457425562435213376128414486164412882837415437765251582474535335134145346486668753847456258516883618813635626756338273614724766564576564426731436133664461285424352481162384558676374477841148653881446421533267618616822757411846554746734361863311545533824836663861447354625463667518572364553111335646853457627712136428866616822574466857185852127672833572167256268364348814718621884272674861267475116325375255248667355775582757326873812887288816711538555556452557351388765633157772144751365764675152372178371643656264643476472846585417861217846622136773287883748437588746182275646578517764867466815474418235881841116652863346763223442574253236582823416388614431358851787261467247885316774648278238555324255836652472651784826313533148437854141168258857846276766155344847521645536458315611781453611221353231787647753471655876313578782715683241364668557786228261562328713173334254351438131247653534363824335451163313268744773215315178327235842552655352421366651472336348265461138735728313623654215826165637717474468286863717886576836236272586228568556463511237871445362227323182246737682381161227286532648682354734643576558317648143655784252631441661321675864472513585228145112723667634756736611781816247124845233333488342435874712153461555371758783826177356817515642756415377552685476745534515461742458442322264378528225631412473267335856857135741533161548146686346357283544353127153631755251663581333182173357118187512464855432757461247138466227715344218456615738587444537582568348652255651486517571166485713845287878681873245631337813675833377284713641642748343342311877584247814566866188266668247583848785788846486811476846528538576168782388128547456387567256718315628438712374431466211457385878218738416477455486461881611825361355144547865161138484353871114556352123255227132428548745527325673756847362475268228881873274656852335843353226371128418712726638283816844466872256352834727748578766484717667428822646266283635618346482262776318283834542246724333373378833857671458622214423518762756616112146367331341872416666317285613152216885821378273742763852268714282878831218666276852858243158517242667651524523851774287144764861773245465134736681621821515712553764816386225817527131545875166613732136788834117322826157467473126835382776276463767372486215263533257183641888326315752243786563648258155117856871566316682531247343676447144266324144724825128877783471342858438453184164678788421228332142478771165618547382137218533226627783177188617841114118822566128188765685242357623583135135588736613828483366825566686514758783718452232434136282245824335363774387434131214115728663424778757382531378661868734465124547435467617733514362812641525515234658624565315348372384276322547377226528238878766736373888237828582161213235365412332523232783416755531812421652374856516256634735465616532628783838444136112138217551225561445733387683876744164551534527748246282263187551565127635565536661768185146778653577284267844728723655618188878572826846613213481536134742632441258247176375214862564416361165173665641674371817512768576611238114353842768857365118872863547587617124337756673483228863135855271312566287333811587375181637516313173646181662564555644546415232818846671188645255783664413478155466843621873745873283148152132386277242318664875215422684535334155516834112511147216531421527781268788151251612566482454512784865677245684625538748125384616623155223367865148261541541868361212421126587134571568183414467714328552848165746586466633346151578728575622511288524733616848546483281613833525282762874821548842448821344522146677276255752556723446774156886122217744136542547352528851386623735462268762136336364553347145425272771614721224534716721383254646122785582764153187475466647527382472844368641861754581142645754728577166353743622132713628262854166676311538282583762544127848778688722312651541241113454432352768458545236634277212543156851855452416165824745676715881384167281316271711176557282718557285137153324748664677121134228474412557866156184832223637377827668613433232842745627614848188251144673551262156564773431621642723722844612556357461114457388385853155586456813335576116461565563868587361123371837141227251111342884822687874576448528845747143253815684171357462641547667534665861572323147438733468382554226662837683784243141151658222836351352572614723113853231326551768377848535571166573212151834683278173632256342341768373413256553147567755545144241871825232238586688113657178168662834614843684278414286313827467542146772878727285673645428584578563837385673611781244858783264655328418448551824826423141725344551432664458422713815143215433418582255586622217413451328737254564156475223258426338511572854241633357271627754771135256734571532266778145536188724754748177436488346415453523846743467725232775158785411755544337163867474136155286738732235355734233347661573337811685172741232256277732731451532865155551854345228316847772861753885655422826545678125465733182226838276811444652567341561764258575434244722624363342343845167774467626472852855212753585165761775444648735423257718642538217831626426486217462335184661418666442255135227372866721668746482565816111588514238664822636738482856471824516243771385343721271566554351573648275576515554422723264572648826146872161674423358414137764145314615457363228182242757223561276855374885376618221226688631538521433571557328782821456464681781871627616347782186521442336215117747757825134723333513238321563783563836156624764722337744246251325267224232882123388436876247177425725534857115667174683364676342556227545861627843158561325144337356383133787862376614173486314767166854857467335558163771844367415357135887165315618351825552228164742132282643662363644861758816714863844888126116457851372672116343636676324886288375155773777238651738323456456343732641451731734582117588232647667362763452552155217235246728528465737528215834238654841172451684474746311338331818256257558373883356525611762634688546662763877688222778311266867566385631653447673248377624221837463886311811133785328345834348262627877156175178146764284157276316346121354583326766513674484555764784274613277686285347751612755661887561113623583362846367855145815423354848516612164438153863253772372417357141324737522711338464581324171512571585356226214772261756563677243842674758115881616826612286343846414674246845814837875318777445278332455613623536153814271717434517432165434527247132445168353326756828524747461263853424523534421683322548782388543183116338161378426856255745655326323735268148261631756676146351633768178766282577166113332858648115323253344467648534352762457668413775118424736728743352613217285545584354484276478225341626452148846367162763121886743487237282825627764252564365673674361736352352837786328311651656621313773814778774346573637134618724874774553644535443354318376143738325118417213574764147621745458876828683112672866418483856168751716444512654322217316528724367487556648774225526752488357564768478554413542872242652476455613476725374785657832314421417135328157567763372268614468475753621547177715846382564853318626648632612711274382745447164676573271227617341787128141855618874137425677575763412531556231264114617245647773252821835178286124225288863458874315187763342461288178658387182447888176742143354521453143363131388863288434773514235852565111478616386424883662836711531457524531317743427312641474883235517354415238356815811255522568813653544611635114678515388388842817145428551887485125453384117782532555772637587382412168486848277316561375484434531151365565781717574825624452755365462533187743266842235441833583556834637264411141358664384674635146756511277377822847721224426261615728674177411314641575241718164863356242478685716735434773765654171324214127366657738285568432256443136717334744333744553141134252443174284331226588784812361713718785678437628184671655824338113224173823867461885335857287546413826768855166317145375768721563263155772287171147544344661562375133815412312162726131446268533826756318454783348284226666525865241273324338457688348423717468664378413374245741626258827345162482274513817431842135267414464717632888414848634856866718237714467563686553777585676411474247853228878751281258425658461861568262846563223118828831426484168513478114664384121436725175833264316128152652237877741865873465727257676725371541312422888478272848715773427332853454123773566186214861512515223616746775645721222764131836175551412511374772616731347718847653515447381814283743565173538225144336613476538185678823117735311822618326611474522256216854162557747427746347812525387357833577613157332761742188473682688382273753825737868474621148462255862647778564352715525382664675714714237768711757286143331183815636584163148757141684328467842615547323331786846686312884413274153874578672151536771125344824636741444734261584144313221342647472817272563115588711273512685735678717786485161188585737581377171633832165381837161228413662641316144535523482423246156144448547682475742218843254641471813373158372758666447787837435176646168468776353154763314786714582656423263127633823475811835862461888642621424647473454618151163157684677473365315311465661754154327551121313562727778441432383262146758726427378545638412874441834545235665762355835585776688442532648355543155524144673377643138725678681151271516521146226111446682721643653785545684386616634227181157545576321171517255742141135134344232642566127584657161315264653386838145323163841727842346413247383855227767225462862215856184754751573543223173588423728153733735578885176411726723274748876614884168126325425718721526428676854118775537844485637266667157141858523544725127115812333874624637458131725644427567627173424885721715546421363638275323274468585757853684742683427173485482523148656137614724213475355783848626556131777311318875832651234185287433655643744447154348464453463737738673584665581524823657185153161814471228852164177488632137137713854282723253123487466865575884645374475477551773428667764222242315542125312174542521674276116848446451877245385731475843751537425622366841324473755733173616212256174841267827315143172742332668313318218217611156317472286547148186148274778223131252824824831645176762652773466866125533685275654756426338438475246364684135436236132278827273235626476736336663447582843571747172615628385477381124621521472778811628345881558215815145757463278335478273512228371331641381527678651123244454421862282881656275688627156243544828778763382814153218884244554223673175244732586577232642238216835438647428244655372877832753483671654251516655765227151728365756445738366386873778267666453544624676261836866238881713867848186277521411525557428381737127765837667481884783658461651826734767887543771514811676424278265423543532586421226678881628146841133657361251331212654354777474442666555111465341268336863818425354844733454282521132422282876377167816433737372453147541352346387351517356237256658862427212747673187861422734516625663718357348872684865413842526642316472335382521845223175242564578716846422468816854371236374548853672341835454828867186217523643375856731423664656678811285582281281255157542677675348412655583873518874234624784332586171541843546176442712415753744812327752884418716845282384353288336711776843771131147743286254286571571552317644468427121343611888611436673634131815121664766251133566381732116626476541147556613667353561452655612273312227265143862233554763617826514887237212671115145458577834547224527321227572157786716324351274277476431383482343428837736281376875445253817346122136224764224457545543641813675312544437125323848231215518182686367116421536536726488215187262236524885244425578113246261831334236673186386618376257768712661254221182465134253412488248837777673851822246238468287311518665715461113282684334518561834271417144246812164684356841236283648186358236112761667136632733155827211882834753486185416467717635314256255735135415647343721237222188266333336834621463814726418876445733157858416815881658362266371583268665541378686481242264455673313367716511387476524371752452684163563512642253368225445774335253355421526324823411527211558161572242442737588358764224232634765522471718373446423275318478551135445281857422635254632236325241178855232666414828552517488534777368677443248178253521772248734242517875841772715763683364142813827618255146843447877362775131713425378532323758667248855186286561765585376283353244511383438456876272344147886545643585157244651861261376782666867353637838627223125121285675387451354422686514175584577571664421156278351755441634454467487722843752281838228177358651546421611538854442616454525845166634856154187343558283252786148284518224514634363825878376666116462227478453381563476876375136611438662575568767656336776267125475735654841882244876617688177476738276546241574574138212275256487646282665587762872877343837473114468342263643626235526434472762568387271672615615432121316226332484346633145325184246732127143386327366171678787451584382761263753462382166672727514621667816428763824368242241235122143485115126574338563118578652631574342487587726678225515832538123268635652764216764675544354514475173467382855638841724151148746877726538787323545227265135334117181384247315124856848388412783542267213112742277884113231583222626465674458862777864773241782786143782681468544816551524455588638453358377755763733576112143575667816755664683587564236345228256335228476254588636711227517113648245687181265686346545482558188842533742342565575137436452287321758485438478367233588363568133572247526357781766546787562353672448352743463521141345463557246165513582425226552418825887546768456458657162642175432525452132343161854658155627183417456655757524586537665515458453772873423213243158262331888532282646732776163114651588213875412333276744338755611513252515771264275447416154852867886235463234537143821628163462541345612486287112763143572677155316612146835654127363388622414375283485252165667834618536142852313127754878362535376233575214641852417218585823588657388886867712611282347144565218288522271665268714378524813822646423441523555534347713878858518413286778463626611544558351266767367682376612121415346421832253854514166424682847443127776754266637813366682851882342376724444712155748663152154122677378336247816785563217867381682874318346254424735473832573474674221425586231544163118545161553652418181886716867621584474472186353355587788568657285114425468574468364335843532373533342172111117672341587553241648563232583545262126626153184486525218555644827835351757141421657216462185462817835167144246435528345288544348612381424664171234552236184423618716574856632727231861624273758358432162444666618161788416334217764218188815536878385176843472145784846832517814668682371354251265181544417843864462855845153312466622434784452632555857188743836387555512758682284573268528467543721483425266241544785514623458682768445123747383523553545415354826412156584178786644382767511364682628286235416578336413221763547421335878683862186278311551237843486276523275564673536128756557646423723142674373552542548421834715884364828647377737463886566274538183136862337872276345728485743514282685843748467812716133733615332316515223166317735634532642817574825367267358167664816584111253324385282266177412113871373227445778652725572622586763852515525851117453185686273165888357431177412642451254468333148182444366328718367415684846666384737685371822665258177212512462726563812481242834711213464383825248146827861357354824423214145126248171372658627554257787353742648232655361836154162723142584621551361314388445711428658374733331216783522272154658323542237324586363452437474131423384522126455126135284587162636844612386728746521621888471774444545455326871358846428153676853665545574677838737412627453235124465352321214654578154424364878748753347647431837184448264732523118548448661443684438756117848861885538277787853183514276143468744157418472164631574631554742138352423886774686614867518528271276343413866782454844468286486343547528531348681347646874411515482686147136246868768848775611861764778184577183446448542344526512842166731531412772253471644223682132444858731181278541676668377821242272222684621482138631432254155581118844215328222146454574736467681575644142644764282315245537583886666613315888733253833382658211547672883673643766543718621714628783688733454537331711541524763417265822373842743833317614253876145632664151536657117877558242417683874553338824174174565162248446575537642431168842368511255658622715537454164682841721235568147486588213347831452145147178424272727454313475621186126681868487467313486663864716361486657887358772334612422378343655158455617424873678465865567481547365362423372133337886327164157847827326532751221231731458758253517213817474161212728812642831645225374425366175363145234483323332233646464532426488314151887438686431216841188144564483222518638568185483328343372218413874754478285167268884764586823373643464323217424234832375512521827535316387387557442732384377334537773472185578634241442524685146821376577355537124785725141183821678651412418687643545488362518433361336731812161888348581623432813766382863651522582654761132347881788718121815113671567271356388143846433424156431476386885357428135534841771625218712183616872437614671432317533841642114546438384318853737815654755832213715548163314488828446751357516726732224214856433677132433716853311518113526247332634561354516675774384867633416164765333124332382887147588517244234611337156617516853117677351746115278283111312574653442572784128711638267538414461121558643554665446356481476275366571513331242346571253354274626555684867533271452146631137171257428385163574364353618626271317834431372245648457574452537121478153723812841241622385413137184352775726776284168348274136671873653757724887245232251773641382764374622475538127686467463321653662568833865514731373163431314121543552211486643756631543683526688138277476766183261463743813756387412825558524577516185727754521586633341843242352612444574187246388523137375176351488531788426231471583426343412788438318318664611273334235631427556565315633324373645226464877256357517265523487687845767552423252187763677271866218272364221445813837855414734781536743812776661238884734264853252174415562488673878321163241385512773248612234253521445448165822275818721674682732678784462643754717525388552273174863373663776473348162283773174343765527737657523614288518428457672255124738683416132527612842422586517657438541547641774183518485134753222127627846147422754125874818213241661682721536826671163225647185243266611255356364726678232342146113582727356253615585575854856758885652185254327577846837783176218378537517731216736283358866583512244137135871364817585411146783367416654572616555144623863441247657387726414811438846226655571634564176264637548233784248773143867837686518152512564412857346437525823852878475723732123588288461763473774472432381413368864518725143134226682726217374868526671751312754555611712146658676338732638417853234822478338781681372711134746543228111165241774438274552534583231786562482335821281726364873482714127571554524774461143612843461813454365188624624651641528267687654144167631417484325776875412463831424277738512764413164434216673876677833471453477216358681355363288874174141327548867535771157352371112345776574121212411433438567415858251644367241153158824753846131358737764376837615521632377168243244516511776834658458362238464868836487321551511274573113477387462671751637655333838334833778774444772743778533314175371868547173547614434348712335233125611814424766468524161481618833374422524135583382128726433321365867144168153364611414856234783877535643386118617224345285748431242876762827751265487775746345336845763241684486137146866878444522244621118415378337386537457846726374318313573346823531644861574873725424151263527155638472185825544728661146672265117381437468188684165878732643666161825215618288182562522212278453345811647172547357251743515537516612167881787836221856545445677275483241118465571723717713873326626285482117234826561673151414763561867331383111573226815464825166444765485821313247218856757568841326135785513826831778145185717857347766416286445877611687212653778118758434347465435454885377828385661444663156128138654221522874277222236225427832152347735114518143387826516776556434175374751211415664436326157434713148213448587564563156787375758215516251614676824678177262713846336746546852142744873817125874573412463542358835516838566132212377425173213821526411883651774833741687176461777776132638723678774378481183418214266625644261818665562571175753384411822233862352425125378725515488863781548537716861386264118571435343131688344451855764344486158461363688763353143711436116243853587173225632262275761883271764318883626431233461486742885638881518747347778617843873437245863387714515522871256825223148621156771365611643568717266586833662817616645771622515884533383238682384623267856374763368243745622356178768114267351441283825444214882174656426468865116458782852422241324252232733822346133278182554775186615874686388346241258445862431111236231687262854364528233867628365345536682838618843833661216345616272568453548141448487127845667831827164518635571244854356685628388484182145844354234884336426825771817844187625824138351521557626511713187874551485666516465313262486734865157213884125853421534672872631765176873371551374662416236185758521575613471527836227874654387328838682235245315456442864312633688223226222845286188361658741562523253757284488182363536156373387588628736383366314667548276152762844854663326187658237216857446184784648187133748548127524887871827274717337733274373534587686162451166813755158533168668627464852171477713436377154547335145187124277448482117787226782554536528643563854478278638113156732663276328162518582521711788272724827187731341443887422348562876784213622354414181478158132348427823888323583415527445777177283135364642812713422486178871532845366145464521654666756613143567546336167168862213314153184117458866333162521644487582468721874348155225813271514531284668137781248811535661175112763353432166661338826252777845363313761858638317141433136224253371612767226847374647568235146888272355181764335423134227565626365632114416674714451878835644413386376271387112782436871444845688362841817582846848855754818848256667361254222664177572511456352388132826554178753486668516688578213338146268712185382367663541154421458328851262131422861555711367846865723172366518825423381461824488415565722763352558175623861671461764172224378418126137158433838157155181343774457283637342487262815811885173845418825244785546413536514612744625746114816664882553372824672121578726813234622627745266315824244247414246526221268688437655524177353355465872124382681762664517866214244116726765715372768475865644433518446312856161543245612688555182623265314244114535128268732345112881673616186325588378423828887442275218665748141271124536532122571645674418481214827871164331835764311238536218353814473852183743831523317727148662633523374526237182113816861887378855673261686648687455277822371158157673535515574634773215241717667755623425385625622628444516213882771763284615846453271654454736356263717647346463268882733371818226745588242334387663811131478178344328547572857164313246762145171441427431815717587876726327465735744256618821135132542578318348285621748448738457655557345875526475666413673751738361182882348672337218865672841522275143512752514775876416371444347828863356577278463136357311813863668822437675687536732531735326713422346335318683861365674223162118745351264662688138742576187864647586723726743357386455878354524715455162463455682334847584225238762774454122553482443558126274117516434285563454553455182614228125216768123162368374874657418178844838377151865324142148866774768274451712177844327443384277117348331738141441773234661414824877261625625856716627557246648782723385684565378728774516655175778478817841445674244286236843668615642834677422386471163851444127268854343566355277148746275115644543137224227652452247445275644363367763354765315614585362161534115167227616127722813153675458583523621451466583415271534118758661248244554886762316125418621457144536388183454758467355444126435616765857184277315234575625215116174245467676866461454144282682564632676626576362543634282715452526364517287637143267286835872363255668816344511884711486585224486473478488475168416288188828471442335338668121636223658836688478571734851671673887354355722154528588417387167351871622864355573372841213527266257258882522736423861521536784384451616831161314135232634545446826144338121825578145727347753276535275186818214487585736737666543374866213251743842338374731481776826833244787658715357445556832648322852177612212474665643326332667344883254581241873232462331222471614527883833511341615636548618348587741441745328145263655657432531488278646641262315142745841553551871323178211676126284822526477875315418337417146235753523655714513146212632716784158145154435474312165331636585688228236361416234453617741632578713627825351115334735855825187588224822543717373813841564266846344531316761536244283247182221644185462767414314652537137511634581426672435171468663138882622762242321241317547834725717373754338811773347847512615262481576825727156128683753442483552313182138181566726582667565141717413542545431173356832636356638261745644452634241344334671311286616477868222211457622771877857838353474483475841724486841525217348515726311658157371415814367254184777253485222643687783142567281253562763253676811321161581527627566546565623641611376215325346566114888731511882522816176851772872724763445172545615218163752314838722156123127515657583531741132244287236466884273121762846614541312315353364627468256262826481664542744561162614738156715478678381758785618641688235337634665837744467673324438684312167115674721717747256711377628587258431232461164526428341143331655185858365541153737844568378354471135477258531256178324246181114673614757456642488516714343436744257472532572378486441457434324511167371878787783251524588271716365212566457763434172123478533684824235737567236671626675157382237732671121512634467518226151475136823378374456631823284463731315452128764728514587651541143367572528371533861882824268347448332756866865225413888333118283838776683333648325514128472845517353533347288447665454527615744528263656234754862112321138778761127128526677453755145264862877433244281878516654825244457746634417172635624537633154783283322383327223143363287551217734331368728144365453133262732348436643718786165764437474428578547744688653417877452278671411712127356377564842256748857162174641653244458875246162564434121546344753831761688523353224284515136826161836788757645167272353862367216522413664383357724367637177312257824823761111156581445755774447544133474672742327715845324212727564832253526783387385268152323131663723153367433117627258252584815657541413664571646831114452656313644341736327284316625417515271365561335376422744648718261255834732255342184575776216457826644736742137223882224411187317848887722243418166273722688413612538732434241178121513326774348787867135333425675554566487464651355883232673674516646138571352763447386675616734664453264743675876338118288513224476243668766565814465275858858828784467318454466852642554523476124334322214556388848678551311648367832734183743634324213173235282633236868623681117753772817247872137766856884818685124285686341337144183225664525651864143482125264135456125446658643647754726565654532112767835778254324773137466478334463857551354488858658721488264785574734844312143171483646223685457286276822161627571772665147568435685665535867612827376316434153376742844547176666167545684157285162634382652526865623843831877522885834173182312376613825134258243372457643557722651841186737334482517817837788162548471135381524657444128277657545782327755285245443415636568447351163333887755457677663181366767543886454676432763835422827841785641313825152412145256377127424768782571376577778173665736328253622572125265355532578212613161246361878227866624368433616215872365237661854782646784815351655357767335871648213663475458252146417741358548512361134433715741787788261663142317251713373457465153818248178285865346343184453768741173422382275872421857661115274321731616336225128146717442571457317132511645553384463185518538183185376284588746338185424617131741187554121424523585561121161452513183244377345874554474528145446851634416843757767647736858347287862343123815574452571465844256163224212815754846887342372417772575865768225123847125127738834534453154325817178533637584313551521424383625486453413674888617126871787453236333541825876157171876551587835272832122123418855654144783716421835422861385351744453247423267287817763431613815687348465253834767438725545111873457654232434217387843681474575636788256631322178527537561127311675627776542243744472745326376315762441738484887676836572848654465226845542586788472823323382344232185715852761114861161334347212764213415667753161364525872587142554585334122458412731581343726248361541284675764815613471284382566843252265611377364631282274564873816521757847565378572163737536553883358811736415561773526856878867166885553512627887878624834312177687743366884457187561477374754753456434271532634324723826872768851837577651434326254117241732822468141535457158237736565582152428465366825123224883716251684847113214516724713817785256213253625733486633175372872772283367268683416517163151811827474888116112235684517883634542714257112564271877164761848145258584357426473473271147512533822172737113117242426417614876818356211114747176516736862636866431242174152134515871866876332652341373866511728458787443783785656323164523431488584367118432148356657343383122635184685134454236864722772472131753226613865628846342325176768813553582477277366714777461174558764725246571867356724517372657242232725375222568611533843384245326262417876643748774533275483566721244618345773832871432556318752677484181462323716776837464367722642126625256465474782658341855864278114488181844452413626344263221231128614112575371412378346336883427675511346625775111646613835831432763588511241722463664273738146462832686617857351167252633885423875674363478382131662822885281672634488624344267784477883524123136342315373576677581714231768188415786444763423828245688863155754615672373654853112666213375166735655831421466473876413637313577165748661688267585256847847548857174365486381784883251232133281846243468821428554126758226718541166631252245537831716445732738774753351146232764661227842856574382523824164524113121142625855414287442776224422843875534733535634738536253471171124468251866845751177384571781138857271215873752551112566734138734513163632148514225385714854545152286278843366632645688541228443551255686661181243582582164252483668872538251317821355812634246875226887126866746276888163611324125877377321833865821672736886721463351444787844814627554731176575623226255536264722224857452462334656758631446127371816221357835616218266233482216461743233164768522244471364734541354485266116487263342712664312467485145242718577427117274872717425476752387738786853773363718242428376133218314524825654664725415138582741452817286736743374727763576775651574445271251248816847578641252588175733488457366568463727578863872755335573127528126681323135351115387217525385326636564546342446611768164822652454268642287618161243844336881765644731584582217222635735246411861518574826684771177761548247648668815731337161846277123878481855551253231364283213547252663784837454411738117483211588215344428124472163181155672642553658586866776175414452435778644278456247127314341124674572386274773282872681876552483554184654462327318711411381242756716242235715236661531246185753312137136616441721136516321214326667375385842883628666333716326566424278111132873252267273766144282161731865818311775543414882763425245475681577756454465615146583268112351157725823236283552787244472377271567541325821517733758766863183181278482265115815312735262511185683734653411386253114357268578243227552547437551821467753467358668678652717745486133384413884134828728552716474678664534334634141767434464265443262517453643154818376621363184478381257771853546844771538535564218786852876643786438167172243255558377566584387528782275651441664113337316617335578138666577638665463442886415487271463473442716211671315325161588325467161386341462635168147526714253874754886236512183474133726733537476871386885514666724471238646366322442328275436161353274748553258343237423213716257483212466555162541726746168644171331148275662476715677435455228244145473841514155462724256772488627333121343441448176842145334225727418522775563567448341681585721471617313127181671141754718217615312755882522578265273663458838644348166515582648483582331238272281642743611458182272734818214537226481312365841384577712277421227658428832442128746488286888337314375467463841586437346351677223767236472732531252237572541668322338671875315787583642368717141714527161284645875481233664627763476763334861352158732773527717853568158535111865632538757855657676452748185774457576652338846156732581136712324685772616218514143261435783637253251774453358842844184514154135823477553166642214123327511435615362775261324277652341628667367847882663563771821686337445283611563485817756724214252156735652137767134255254431828772812358741833114118788558664634361353482417215336715717463868136676831551781213437763517551615672212457245335538881432575183144812346767528732174265821481577867486787253774377886821575348848253418253462837435336371541327841254426224753442746188285784141535227415556887482688681167816622183525665622837643218455842217141186563638431244533364533565357141838784534342435547882374342133384648685713247243537835472783525647715314321842235214122724337412652144313835327651733114455873165861432816756233422623267254564878124167434622743485663441352621565155675741131717386457346462386181674732663435732635183281826731418771752585365141475544838664368836738785773221372436816487817137635671888111616144254122545462762772422443723357351834562656173568676262364666817128335853868273312561524886237677454538667622328743385384275127487772756484777864226677674478145336432857511246576363447354184538812722264552844863482337563232576226186178684138458434145345734157315588412287456817561833516775516788145113544263722345865727746728188511481164374411234356134413857661873266755455212184465358438542322352232442555357273846351818746777387752882517254523865562468481714243861744842446878146518871872312185878432353415548734465447183175318212155223834337155567547115227772256282181747242726214825752734485521441554574562481812154874637284623111488323363435334777121211571638245344453272114345111741162133623626282458712221852764717778532647118847284262668118112246646475573384278864677157858743726668777684253311581373615654658266668315864184531575443612811788735542423782123714148256417722631637136687666433755218216445452346138712874763581766745773726148746185543644362783184738666876524821368616643616488868644336834111537246248172274726785315541125778758165242735117825685525227675325585538173134418583828228268555357423458823473445274316463588644831788275526471432156263435717144825377164532787871151182364613437536833375215852282678283771432382115675614172633683332628187186327242421272653122127865231544628562642377552226657512831577152162512721116838611713278281367362615728327814884117842848746167141445425813622268753814676182684141412312635815353227746546786768285523678778524846513724235383712257434158386881485666431213257436612347651248781116883268315571657222413725611548211681474312613711617746485478566718282732555223384721812511823371751778173525225655778113275186555556414813735383835145328647277512751266864217277847467227722857426464728773766284518363126386755534375385277714487885656673445564437228225512553432332864416881563236534364481657712675444452883482827372761155125356727586233286113778378284231552421867765237438174528178127137546358231461777451322151684345887358483178458288686145474286218126725218721148885818663226738322755885314232617418485432647365825773683338333553387837482416568246535577641254252811775466534631516783854757375368421585132335186838426457635475786427343125232714453284255645126887177141322855631743862237788328226343546124324625854254576777413525225833375735786857456528572151448747184184317764366452251361664772382752785833826738156542827438728241631484345851433768646281768867858257437147248438367323183123266428422763583173175764441741546765466517211118185523522416468212717237121474387361422265272846473826312243773284542467762777186681515256372475532541176718137777751223266872124855313228122554737353237245617184636532318523567823135362677111654863241278775667675232664532128414158253633763415528417668146652361154655765862455757823472772553751124644673772685156636353511786644387215765312634644733288887443157111734287376172128481672245842578275658227717886241236457853264334448458458668224528765182254522452388455536586662635837424527652783714767784652227262674854442361544746636544657736166874313445722572536165413868366233568567525477827651874432657368476627655316418826334347547675872534281738288462638722512513234755317813188257212755247226541527567336625434135677163182462145312853426583465867564867212612386435723532262115564275314726176141125687533453423143132574552156464251372726658872422433183446776442113645134837186737554342885523158824376482662381332886885578133135685421851613312287476537572516188244516747676613778772346357462183776512681131661347374643334678537574258138824351152364583718651126678833356882215336162155242826324632562653431438826337241281117118456164547622847445821448286384451885276314526617438124417584517653123877331548615544561371136183562735114482316274453127327845833234184858822183268135142235637765425785452518647483624247574556685184583562866456413843235172114458852826418414453328153438615877688416723388635762383874671472726858814848137276567115727482875651118288771628288654542667438182523788414127867763575488324765855442247536471452148425185216466147324513345751487251316661288115328784236676455314482562477531112631413622235172736854248485547512588332814825251728541426615211775563388274116467822532288755256436481816272347731548877868327142844373546176364531351127158325283843572522784152166352448448218848411618621251258473483837717557466556262163143423447572358522372116114777635377636757237514268868443512441437774543682271877351158854781164263457812788486627232752657874732235828124455228247616317813562242635752676827667831621675584888656554744861378725742381642821163514736167321224224841115523184481873326346838247785542628388731713723263776218824324532756785467524357778624668117812624422818215456811673435337627441886168576412244851555776213556464311618128145314368656584188568365648125555236742714325126535421576843347454726134188311382661871885343624227163537237878888744738355633352332721621581485531557381718135878451665465661473534388612726654712356564247644786625235271533614643146323251574681755326658636846357683516776664251281746331658136255377616858613224543414724412361511678284363747132576573353477225178612831855556884223672818773677852783545436321784136416754314212643533751162476251511774352346852448738137715371631764313251734213427611357133866767382644454141471345848371882856521332717438212142566321734358466875852261484332582325186453862118667877128136884443636666575176625613617763738587258584513121444845655611668138314312734488888557345768781351213124124138347338713171151368734717588768254575553636524763667614544766578243747486315215877623176881222567161885884472865837315862865144556632181455527465181147334673333483621543665186372332756241817283152784158618244657255878188311638461658115766681246161552168883351424888428424882177282875485784122716316731164548572641158576563113557513278445887851417734662834141754463317836173332815482573251242558177358574375266865744367336687832636733274528813141348225588826828636268314247428277346458711774141185678456645627113733244156218438742173845746736823824161378656512636674738227674276637673283237385847824777227362251754656315386372586151327873515428473151785132581382115481661184264787515131857367841854654521347155477432318453634834337518115532617231226887678155167157465186671226812147263758343685856871286241448317555145485575886585614251856518148318165157715111762265365767471861732583133488176232716737641113866378662814874142221586146276254376776387337445856322128743853727853318381837853573377287262757433134562112511857644548157363668681714675535266652454733841428571546366824231776735531361824332144421186177765344266218173557576648147211528362156762725352168268674386836375445277633225726745811337224622477282585466848352775153687863287762251156777116513862374567425385152422486563838177821766876234628417133341637345466124454863543645755527817864331478346722362158424766132713383361276847254335518184478831448546368528635121663814358165217255841113753326515666624212527645866473586548254374727242733138163256643562123416577546363518577558644551722874226147651547675251781334152763668821674757284733538256338168726838277674166218825386432824343614314353643874613568844225661536718425271745563255826464216112736618454186468885423346213382337585761442473311483478228845545823452618114383741374337182565511153627425783463657288431167675664548713364157648133263644515554738738551576318225828571817335545614763262173275486845837835884565644223851571167443457471184638377621371587686417362745232387135553166684557577422651647866237827812821481841486525546456423147457236777247444618322732665642162636616882527581324644681712365734331174775156726558316563772521158366144335652717787742587477553216375774852383412686866721438213722626833228237253661128878238382121177852438124162783738534671812312453671614555728456833517834465645835127658627726686825112145487711126576237852656368853263814465815684626686111268827512318371132671754161154665584773131441371482721284451458353227784282332665845282437823462215117412146246815381346574242216632677283356886641163272572563162355825766866224758173738316812555271345346265245753775887188431811324521714127677844638628374522722438786726881458348748676411147446274881456764161152412618356518888882773662473253647665623185567345452172734634811451232277743686847216718868242374716288855347313628473131166121125728657571632452574444785685845761664825862838627775214342166353312431356317646481625124327516763771318717184151141342215441465772373732224256312817762382744268727443351517831426477531437442172741558157756851254346552862268512867616788566822573511518366721325326846137143517762652336824758727534238836243723656345278367721648752687861545621481313653421713841326688184734687417713826817784117334316736836372277161842831576874618457175322333475784765312345477588766314245766247566526676217351174722576224256648718541411267144747541365447144787157781412242722587841223651351655684577114218162187673473463182251868421538613313828872614861645286381438688163247621733367242373233577417881457656344846837238786877417151584851314841243464346263772327838665747655164481711548142474538684242726542726531153827516561651617512514363634244782884353766761577266735736236237243431288366328235178274723468553323825618321136236738357375413112663744277385541425168238486333575368122511777437732373235456836213843835158676754868785171137264278436358513734524548154471226356577743553357138876826743672816477561336856552466134676156141172531811282513347642273511178768666356572222661148324216777144642146788615833658252214131175521752648574885214183528862578212278525485437476884357152743137644173188715168178178141288847265477476775158458588176425815287848377822114173368252865282134584582388426433611284723723281316527612755676624785576282152184337318344847274734757341773624761456576271248751227477681678125138132323886515281772356647627336188284888422633484855343117546844544728756345776812732871538855424587412163282757648721323133624483784412424533263667376632652662848288228736413572354383562612253335167723523425457865138466356326816583165112748287142555268846568716356782648447845131487472444225812516872174746623265641144772654543244752433235831686266666585552271152665361616878517167287267323154286643187253543754876758116371763251834761541237366842737555677686382278446263512767315272111355258312188476151716174467182675138731534221274166857653375785862725626364345668618384165446365421157853862312787678325516572851734171132178648325842831251264832237553335314487778735287775717421713514515821765412722377715812157678546654136663235643331688675136277573452441843372763465727273484255811321164153353671544633738658161745455528712812726453225227523616557616211643812126324618733717265324413543158513886221241288582635687673771625438454331775446127843215452138413731278271127452182811263863181167873487188218131241852136241165447512322735172484387827676431556685421414348285871377162223185154463433586578467354857718712771672887887262325757712853114656154633148472317748438458283422345662677246523428722163866861854132333522358882358316485222426787124823235324133575757223563441641711426637177628265311827341318838288373316115883823156613712844547264518881774222838668154417371572778176171481535354682121155362352282228584226525877517281115523677558448383847761717875215175773756125633631814114476187283168741347636477251383778536663182152253766733737675573648846842834615447721713331271362114474523424544642828645683157747787237184853881562871138313146263237517838268554485432412564246654261443313555273877387145888876453776111317778644872167132372481651824287255383747678842756637236264566548772853642325877716275351421843215731384646143752467488424358582772646757474743156726532556181431434768261745521711452372146688565744322355874572334111316534248821624656628323255632757258886756373833385542753861817625665452488128625727542313853485521637743688316324572254461144116161214648447335275632614136424373468248665446486134156124442472864672611881523558783455584264277468614167827764761316346358187263256741414845645114427736582252558554714733343663743235626711372177584842624552232265577568652276846457685586372137636541682523363366862386687554231366745253317885787462726475367527437854564524711881441418474626662354464667428828363371665214257167873214265222462346145447188346178325466264667437657374755247563267116525684411831816358543623138137661846746457657661757616458321764536157517711327322623534411863421164311831542154565648726561172844658661725634522314888755261487657354543277532411147773185668575386156272488733386523358562143735374783484146777888866646721188756664561571217751651766426575512222833371411133642365441143122334742434455115351722528823161675235326562787347274731523774363388738231411666865611676258875188438321264717428138882157563811548663283666122738747486234818261856148577367176337384775417276163251633423552467234218272516451378278473755268874475331678161168265142345256543322582743214847856578866851617774545564272845618315755785837332482373643887867758355636254884253846333478438271756525133627145734262357656748567286511532183321453334421151523648386114373452127184768883313772655367222763774332114117126847226375324481342313866446676875223531818275552857137772738164524844562527232337814374363275262431365431317663584322843521321655652422472847251383313172423134555475485484265181436772737411883486224562351277821245473857331371835383615483871568522822522753844477317167131253341725518764518647772871482716231883365455627657166276711542851663276374444358862741147258727523556315685464711474138264672758533756721115583788134151666472242627715377781534437662775156437383164351118323667414876644142134138435627727735774858834384815663582668813752476532164532451161372863742727318431828444181572522418238878783545623528718773232434314687157435287265736375572544658263767653532867717612634188343873747713738542326126775832248335156751745635686346868846311831445755451883813182872458333656377531362278836115763562642142741447538178154557154856662616645341431648477451512888548125828413545171711818276146164762517723244711851552884885181215634373587581734124152333367574582272681327236625364282618365237718566455221483312378355856714883356858257664426682172412352843838147538313842343643847273162246784435767818326482152357532376337351542424751437661656716583887641514453356868154846245828334818524484833361361522178773732646183623243386777637131676527862627745758464461338747346716616775535382444867434554472251837655665415555642886637347673344545587334346635442762713536461131666713814716314654271168361576624183562446848258184511255746455777342534211281515123611317628617777217237166355222638724187857833245146736612663787385462272124336343411561355645554621274764737852178215374317538852788565674772732471744845285228823187837137282482263224221862253164133743421387338146337351628775815163455243122412412537626346462822166686373778511242674354722631164747466785855632328384568412452488472244746382416682154872843245487712761413733654858643558431181747165455858271166347361612137665562677375858141225581333357677328453463265631452623287466544128663136266431574641373643613834761786733337385213227855283673527443658483174224643286638443861123512541151378631171328176317172715376527114418823672316767732757857312727232583228451347487538228366527185625631457355171674348671812735315372263515666841813386754418368526646268234832612413388146857373327485562472846754857584682674121842851718845741125144163143226147465514686613885527462732842542487113632428563526685247635154541361286653321346841281663342488727881333761558357847628432376863155465448447161872654621614155514467152786514451717655554876777745271446643473771581768856275546871681283566227238854233147577362343455571715261677428747267564881266845225382362555213487547272383761783586237868383484436642563176386645115517388572423784575283737727387477142654431853452178172683231626127512153665161337378417777268212543834843488175812633364175268441761165742323738847338371424737551726854685757554718587786253427284581624767723545421485646542687678712245618561158863822544751863634174655782482853555354627541453868783437886484335313663623713646668634828753343874216522863235344445545878762532282441542662337371261488626551487785183584224783851215234588577462445445176161646136364222772724616174836711821523757743882132718264817165582818465661465787174337447115281756633758733527314631878257681856118778744586612738246226186245855373184228532551633561284622384423411722331251466252738858825882715766237644877832843155561836585637145751682665454271714165411641771114657846162216557218511154327876732172681242765561538416123251328486677343336367357365516738844536834788377865155887665124447738734812857776836768872586715743726115678463372743576313613677681371131875234257332324388183175684234133661727244644518366474414547727515156477675547386711488247364265235513165374171374868428471744555131875611425631756341335572514446213746184563126188761478478142532523586186474738853461111653461735448384751236835262235748384283613257781343683287213313734745262154543576426654745837642861576185337234872826625178214338266864754641854765226376216728418588867226313745887148744213225576185882334213787282214174342143124641368474515253576567162136334163727711586872827715643184511412184244635438471752283245448278864342347272524383783657617137461475723135484675465121557583838635375142353883657785171382725438717867667248828377746841184732646737162773826268553625372688278268768374386584721224468535261823734411652261783226646223342127253121466261863528287761213412343181753273545433557136556735675728845856118443133728473385361287181132125268633548352486843832447331238527112428162234345222368747848328817786651375165578141858866172728611817446164472678867364771716418773644371625733574132282136615351283754575515754682423275862667772716822324837434512324627766745861125254582728133754657217117265751236648773128113568623682662465338355184753277762185765237536374624834842516647645556363324544572275656115385275318372351838688466467422248747738781231771854183462368576114358715668532446365453412427165552211841271758333455136357377885416313426175834837828465418616181136845114763584658417225843872738714265321277771733423726673212284584865248371366261687325121886781144663188665485513386322534187461172671445583741322253525886767473455511127241727166716818373632422545427743585762745555234346687682271542441371735367187143351787758372257552582684273282378547757651721645357382761532561615775884111577452452863242117668852811274452677437662448245658164541364178225653564763273462754865634878162454628154535883656655458638342731511848267442873611568621858631615585232426854266883326454665363358131377811322644212165165422427625716778672415146565765614515267334353323221614868567735145784884576133712428461128588127534584231321786167614767368817526613634216847271755816783821166217446567387428325385544415822667468771147278131583586863664326418224374774174311756163452253261853448872154336454138347252442845325574347683671355366453768512562758827576574482346163867516844411552334264776226442588477778728114576837643545356621336563172682626544185647745213735322742568641825426338846483533368255334318725777731148627414741585866438882817255627253241446443521276165574588538648548384582686312677487458478114182115788655347861153252422858266222717157724666522232188423571224772718337544838148312825487681588718332255375664653688158646538643537245148558858241426467462734536847633848815327624313616657542728183532686167348216118537817537428611127488385138327742282688822681816774453675653623323136141255111583584171212774373382311165453644141165624578121357742627748167867356461861487855248686175686266338674774851538771241528865567154637587143881316113341772376851677457757253631221454758565544458752358286866444411282743327735741267756462163474878668281456465275816514454681327887213511728181868318288767437453126872234254815552163882115245285837664157515452185722653366336721848283287677852553811855472628145145413645556611135323711518542135383381358485632518868441268151885221884684531372313111513318247124335487566612834634365664218252255154627217786646174331143581425613116657874485324241785132243127518284863467661255582513126138273448528688581364216737738448255732324158123883135467255157332136346151735166353568678144255734355355125857733343336832457587477316857517836774446752685327485851547288176531782172546367533561673713256185613781464653187144882426717284436141457231284711652781381371615746167476256284132145255772812781833717521172561788616882164227712682168686762615811554516623781827281882636713861548772483361364771276564126866853823123546278763636478228518634244333276237363743268486877214831883554624253625376834636667284326422671334487528156488737425176561827317685223522175783871287231166571476761645211242685136444177423784337844141761218423481552771536873424441154737381753775551278652772882544674821663813525258614453647638256168528284545441274252121314244431336787487254322231176686646211785168548476621537387556364561248543548142668562672681622356325571772386773325223123467244815455336676532665646316273226326548726411257865852816253255665462865564164775148171344744183233888567425755423463585383551323464766268752567865323465626535272637882422213365166536685484864732486457143314333876366678227864838321317587586852744356275721241156384124178756755766387874718163528117317223238817168364277161728823132518214124345451726228663546175568812447314618211313887735365445113581144635615367541624715753631124533254114788451444657288333777571838624233264562323238635541345438867168253651384813226748814814552478743448168574186114868842185412786441456761612154628424126647687132643362348556845164874178268772641324772648176861862757447175738451861787346511227166446427436671145362775646768436621647586258626521576721431818452538646568442143625655125577341586385566273755371571524472128146251681424524663842365715347288317253782234816447618552158286177685672265837647537287654564575874466127242155877575137715516441543532674618332425724287246336447552617344671336626114275381457878357731468662263542884631438845354664423375337285261764471118433386272784341433637338818573546212835136485465525643743562625522433751117843275657745368767482833618374613827246662854223212841572386527122145147255776326453248888581538411814723652623411325245881734172584566527786631476551281434483447882631772713187644148733374887167374552788786217772873751824822277584316828537215577845247643364724381742733673487182243732114637534182165811241757345577532332778347826458737472728847755487811633231125736374615285832133265376646334673853236466331183788881468588568318428283477178148426335727138422823811365461286287164847428241421735478526721266584241876557134446313451243456118838251788187241114441587788738216728588153757488547865376844228736741482133522884687273323173753637785837145283267886263387757868311241446268686217426678773831618721825314732741364541728745373818221252342468425367212841245476748883613152135688213513235437821358446214164815342345422746418576155562536857666644713644111856134546648747685218253167122685868368775518347368512515441885388436681858172671812155857628352171256271436226685468248154612631356641323623334132363311774372865763124322585625328362454656861258224824875387725567488662726543373571667442353283325652324814336583857752178874631413424746166181148551385152175686784711655135747771121778384563761457272675464686582466742555136558847287538676782385466517676554444571128384751551471723166342516712354574386285735168663361524622823512471226318833327656517452248772185323482781758473763338554618742641714168767757563388886617352276717521644661121577568177187625576227573412135641581616174843546135186336412513533641543618354814413656845487584112752654282268783683282462321525131482715733556566155878644443662224112636617613675667174126728337374251341254532145457112512216513485137268774345728125576351768123644557515654225423158746825346846485644772875265244823712385816678542158426252248436228354246233361315865767242132771566772848838661383828854854477474111111334471457486365326463243461434582477871166688143556584558377488333143774116688545532352224226523473382565378548627353433313572117145674754165461437721163118877321486737854811652866663525431543654682265617821257848816844714672835471456714868576772435722237188172611866732572171522386562378667318156572616744318866285123445148351164185521213615533535248452886423224385836852881437681522684236358811728768445318136417357476134516741333315483677448822525142265536371815522827238737572542443833776137731266847677761251136872154857217786825578243554463326656174816587841483211774248332167818387663241674151837327222811833426628335644321326857857813733176685154614156586632836423135882276264623687166556768843342116757784732434878551812754223235578336552733535821238633887214661134855576761373844447428543541436775286417674672543433551148158555526663133871563311214866613226655826544343215687613668231828278786414547286761381781457745666753546728864841884828845844717616415368148132375235364528883356145882646238662327811825255484876281514231336533273276346728528127644123817236583351317167733753245171774374417252455876144723871767313685331631151864118712157342283168423546857258636327758548657252847783286563664774844883565676131416846553786218341612174517848516464264651734441266652284384327835753257452736538634744843715616272183817288162843511636586185345762116481284548725731117343566828366361527653221524445123274214382772867472474814426886617558466723355568348221164875182435718836343544251433567416828775774548455171552442334546331853541323887312721784161187832126144831235761773871262856842377353332513615765822751161714547153436416474713355681256576448471434275668454518665468658334163262357478564728348383573566632811883627284755827745687757767175637637466621757462121138424565841145214321764754858376138742386743631425714535535771181615745215585187736876344141827742656552765128732743385747733812181784382235476838455513434461728682517518143545265474734744378626475411535884328168856551741157665515835817131841821871634417644825845418311277763215387453213652563183134751568177857283824745864184116131782678416666226871885385268673266787441241755876471751136541477636578678161675342154686362726733452124635652211127543814167341624473286417315425318211877751678683361872433286715884234317875785238166866155475582325651652283771245113888838878582523386815726552812167126457433355285112663437714626241657153621414644821521646173876684656357347286882823711528315646748547215357761684187421486882245658132286718875165342312817141732367553445733265675532478478217883667232772161844862773887765254851482316521354785446467828254172163852216631615312218438415362267626314846884173365626586355114568244773546871312137333885455655752175332581633672623488212127682425631624333778216128114453876476217885771644513812788158716453633335817612137815173441657567446244212832374444685773527266672684643554338646578262854288347573487488137875811883381383176788422712737772161687524115142687317328481666284775341715727425746736446458621322258724344335255633537318528242251728261688562625757244438336365262677843383727515483378454766728776428235378116341874645544244175617266752811351338466858432753786711355557286344373325453365477771857173323727558651822625676524266711385346612633818771173465557617253322643251486334377436281352351556367381552556126851732566512872378781661158741814288474467382344785274236633336237841164221416186414533245514152431527244626683743253246327871428741721524661811158782272382433873727118545417464431537523862836165735434588843666422428487437325838351818624861733476486265513653357216248262577466483683471641744674351258631861781318482375534673227442544215315256678461676447342465338778548414128464227374778154778577856734165615436432134762472222167834567113143781843157676876876242455533516728277866867155743775722857458728374876126516761237358147342836564442274563575461722467218552655166476377212577411641234642651548163641318686565373244536724746155327427113847215224546711672775716826631581642612384266715751876765714874434576575815428885732725426645567752813113461246682555448576722224336527615546338157822418265852525814125342675767884554837156848138852268157431723286664576842812553147815566324263563866845238343547713464337348243453564451334861873713687551835518572616782854482182763223777485832355125888526486628371363421367431532848534253256714873537147673272167682143761761518228613526716665413851346552782863784282668576623421751888582383222452151617575551421374772153813744186655378818178314421133182332588663146683227875181287187258124122265313561472178662313868286126752682477265165158242721541385687754411867856444246751656482861528378868247444566314466381246637175746374353461215427824335134362534141422816175327165477122571172475277628636814111161445865878661718686363153543231243257547231125566744172612384643351218145263572365772251261842376114463666735768726215155363587768338747573285258436578331314763385664353328777225537813376147234387548184451747544168456584311721547722311875848288381133221456482615324313875836176787322378513214572858445724787766166827561867883473332454784828344738152413651835341133174417226112276675523635414354881717748475875732365441686837737544635728512517717113172622828618263641241456182335154772884286725681416136282147635321527158627333544787182472578154654885543233462654666132635121226442252667211581672581718556432325516865883712537835815347365568317436838583553528865846228861711635288676865487563886634445773637723457543881618233842277867547215455161618743244876883632165135633883245281313152315857646572354376735586678746418282222574167163841155753825532661368874225772155576332775236267555481331824387877787825167171855765248125152284623813653217788856775256628268282736856832857871637332324723537636535637255378468572251563418365863585488471717135523377268268862856131556787318733563581157113713148735843665153611254834317611581152173654587786581237863618246654733543534336741112267848775836357326431137626844342321651226685352523838247252717127722771145328174187371178681751337374863417333373537576547528433623565774267425788114541417245747735464567563763824833331462116588256365127882543325212438418687831844585126433822371623256814416173688615675281311684217275453342584175764346377612713488422746162665376343214872546656778713885475454366565146155353772712316485467822758477317718571538756177228858421146628787814452813843334144732552234442372838853451461742786253181383722585345737425423372685536227188542262827831213582646741551561375157524752732743578661711461874511882275215317632358885785676332241431244538713687513371164665756224215356235514628282574177252783176182542413144352657225612327576681333732533634525451112558767731716378561574241167664732323451773185157742531368764686114258761141272726684681762153764211426726314117627153863478258734151412277264633483828212532441884843811382882514885415274376141538524363721444717641276446762874573647263321477357483858653246142482876553463874326241641133141636248288344476811636683758788352772458867453312555858722347114676684618885624146168624452428554683314565766146744122511728133876665564463661284876588488374234687748468347626712852237326336683346126323386314612715718223662648344154467155255522233183874425266748874582572348274471337775355658357548634277581718388273537648787137262536376578758611847658134513337836226578537653483846632841147325178667282111372678611786827386565874576661468334453264366221536362513422222775713557533717456463533866735611566632117272633848568517845274274772422732177582673616768846845636367771147535324188784671381621252237712625333866373217374812862245843552266726565844787255181527177545266141618166253183778837228172722475518487676784881762742523837343632785315361566255365337752822831324643524531222188545587561246484661284778656567145616826365376564627872618126758771887762747217265225441725756432462258625688558416475482415323542564235365482874414414237437244535476135376288885236727117218516685211215646743738851784331237363416457627758672844763556511323512715354456614483676665318168684228565241711373146811816332122315432516434277746348178876543183727164727157744658764873517635613142311623381162138344518411265572451651713668477476132317346456255362545388587613482661624817554373457651886177617873822564387162462648635312416477842728713513732317328153756425656727838718428723876333187141152186133615578774557633818226783244676231137442648265346447758816351435152386224562626352326442281583634822848721546643647174666744368544235872777171418354355365612413272411733728748835851881114465145325378271728566847113817316618156174215255626736713485383473851328132474365353856781576514642156685877653875415682384535534174562683132654372318772241117782868465558856121267532156411778383766241555467235268716546632685216876273642474685835482418672658346428585342275475643537562841337177663383586468848576142214528275472424143453148616623482833145184472246668547874211326772686757287372218748785533617628144287182877436136653323634486818153171313442415728318774334321337127562717866274414215243373447461731744475381623273435724771131742544171428362182471165872641132334651237647238213518766421237165226343873834182744376241616775427555238484855185758658186366853226244246585453324886316822271346356688462331254745268522253245752115747377144123537634656318833884212756428645668467661165375785342871861586827866878246232237865284825368842862525822753556258346453275428117337842241572552732288121451524465327541136732636655722464267355642811671414131614475278284416438218488435542871235781185841382614821131852163757325177373175465455585641511711316218311723568128323141745163561816345827432742546633558142744514653772652881214172588112354816255717615232617687642665161857223264555586814262162786727476237864757125581623447638882755443318233173515258834536312384211486837788627112586343378171816755153758732786718543481128583711186837457153771777335434276185355377784782535454161375387584844488518456474216577372157422583346376762721787448285614312373782435632822372315653644178881347812377586571714154636137334756712175822122431337472223167456684571421547113248831617228544375233617222286326883552345773216823428225214667376444728741518562447353322817454463318681784778353447444311336677868476425435615183346646731441363435532166226856314227346731768275441438351865133783121543117663514841854285712114552461123538585113637184721318584267276125445364436124837733485468425132411262126153763763525147275675742833865464228621588732817111843753263731366546585442552374758564335375217584243448145814128272126643573413184146445324644137613144153663161814253832488422143352771223266674172133163682241188745578347325444873367174514147388788815174417121723272838687256384767474785412382624616313672388112722332734188617276724777141818115128762728172462273263215288481475458381567162224167845531771733461462227227834263624373247525665384136864871133855187143872632525158564353311732836411668764181334751276531868344672113327156787623668873635674588616822783128376274526586811347512887226158713425465832427584482738855473513464212678646327335884816221444661678822346468871761673327162635161712238352511738625135232641873512854166253755877258881658835465522364745778431382573558236613775524248566266754126322621872368213667841633141522276676327355316166341113638431631177624581163245532377466237487413665533225661257543272757263365864164227525412153842147126711167281721353734841766664143564633766271567544876755561711835232818423235347714553661155751153641523721738434776282326387415384566315763736845128725761886767156645733888617733147728784343526841865257678784232187273168542387281832535327341265347122461454617371823445318711587571257682521621335282543564867342445877364786433533356123738346224535321883325127855584131587382772225631262852514742347552125238734134872761466312256252312323653181638386651645567435282334242624726435342562871228866847545573538427264137118156326413766325554737434444853473132858474711345277832111161532265174426633366363548858233671343887355176326342817626516445181212466265716316484264762353227263457565887627488618865637876626285715553775858164715567155281865832452275568642817771225473824173657664383821814588417545326137737718831885575821266672173718786642328776543826456838283362247544855568628623728836366618531834168878376341385683188856476362465463846261665131258617674738121375162872868523137718532111431134112135782817817461365384358587871274435257121164127818881274432685275112141833536247112551126617553357465687685162214773516557342816665836614856121732621377372456416647144432527122718237476557784566228712575678486434233482548628676388528668377384165268761587546181168458711541712252423811745853843238348222141256246261584423457454564322671388144738686288574841837664484416231224345638376334844788216668357222626612585237182311848713246815636257353361638527617288461737754534752651536763885663247132128258575187333143485741455223848153833354356712672782421223647684615171144257476486135768172418233357711336817748661173212573715732664237888713743673145355327216762665122138137117334388111712718617522331448645685887278663726142228871178264722262513787477164335517765314367674513842112128847121682176616443473525375782873863278312688115688376173637731578224567214864226447141717216353531685258677832341841725723651384336662481846417664187484866474547227885427818766377547187384481575332283233873138351727481558758331868457643268556426637424531843538341326337825213233411466563283221584442781828441413388376568855782183867312556453884262167884255143812242864215867246632542253262373523545728371771437743435113246516742113455115163326716412288774362341434374783115771544666284448438136688183852716341444771216688244165362465174771837443347852326722672438675387123553644467172218574572555624316675518181782648184616176332826544451842723276247778531561737783458475173784182633757463781278236851838831188477573618817815782616264885683541654141177777858422768224165383571122878346785327286165483383722874511162647185578176478475771241846676346273251463262877421843355343856221652257486111122376367158166813476884388756886421283188823786284553521647568666328665686337772184377682727874875811338182162215232317732735785811712174575311652118858246148451678548316276433868766816578686814166814723614167875428315223186847746317123181817633456857523868513675483761141745125825462348167644113312776281636247783888677521177678246374765342234883168583771764867326484712135526683832485153835568586783316473112884662557544387145842332836871261621142511134718537685677716721155343867783463615745855874435353277847132327143638874587688786742354485783546236672733646448816548584585364434428532587558184526871524251486146188321444547662556872864547121833681616514753575462774357356111812767582242351522772583736882367143143811462735584573267746755186463547554126156425714375772318352632854743244541272854746513656864247166463847844377576517554646877225424842211781763556846133371134776342634581781615423538364478637832441241427165612632514564457638464647856324662774633562176875271848832353618668535763137671513416514582225847841317635168572181425315415168381365842523652465843464645157835114184422138656763662654132345713115437718742668216467524646845857882771218115474266886156674542752216276267327516436861532678662174122245181511352421613562251455663252481126841768326284334465881756367555755534882363288255514168266643627285242464553277516782687253324825845833755738615618421862754178877156265642137145538178665382722634888417355487273157777676643574568456282171228231242523557842775754131286744258548883636124283136563443736488171263114732715828742448545148445162465628576751468135584637721585552743242886141274114477161174236217584526473124453813817615684212871461712817747512667346865244647587227833466284371424265461585173227744664816612746367787764651777568453382782552541841171137737367657231278847584552831541113886817573588556488131645677776517885223311734522816814611364233812153542478351556555578556313742538842153827875726884821274712654575412473514146635276557636553257663177711727837462517154657711123122854162173581127214387668218477146763522336738858481257214417287876474743244225646313715118534355586648857884712416127448863761336557666322237432381748271643637347128254324626656322644548776744641842511836866615445252135445863668868173221584376418368161274153826844246253776183376218167376336756123326481813481785416323245886418428476466448347681361554431775181734446817644413118177265553376213335484127142342267681773538286542138847586246435765848261816634365567821146421231147117411332261883848241311731346351156478122458164138722224384263241553178745651544133221121582837285771818716878763462265142634422775644274142485711223261565644465288424234818367245254423273556437771282321524267411757475322765151125475318281372511476171218616488822188782137351841418814224735323117584786822547846541386521772713833463478453854652618657753251571333657535454416176166623466475538454487246682653637682566147826627282863343484115658381833365382143357888561634556358151254161674273647742654265648375115768335542625822623121538844835828143274131622278666723621773326215375343671436885625275581376734137861622825264783624222432645721264228585138335763763465536423282233536845754521683823455687855741712831881812673483873253357736656325546182228861473824421557443522444888628515668356243387478181158376551123163347613286143667713574756126148268855155634433737422865612123861543227862216384814533178816528243271513463833424413115643686625357287878178247478153121282856875545775413424411255323821136328832187572854686285455577726328248446282514654772274125671458436271445151866141117152417888844574421173621667553872861222467616518637156723568455134728864486456135343832463855817313628215535244518254826684413573847137375746625727682724525767238134762311115352258431681288218211446668813277387311283154446288468876772732768111277417882221468781384773182846172536832622782454371361865525765534548537464632353117554671668383336784417313763268431234636182713348114554675343531128614338764734153434474277718388784373415465355864245424332277181254881627533667218784152677185215226536652221646453478548618534422737188648235645223474136627475152513613371715236334631577866331425117148583481716566836151131526137438824675188321364874771374536754258135457175172688714854782411874236132222372647237866687187282715288187345758884177473716861533174777618757338151686457411161334823656223262813545244427847218837455251185436553236617744183851461448666552674713134177257425868321357273374151677165311264872887632284636336142548454515773726226217241277548757816113242555188416135323628313735358344867416714888888752465461286741781442222442774432736513313436345474461413213788522377637886186441158775557256455767735746718748681767255237468231327164142311713753152312588638788161156874385618616117157425772467435844656388213873536374152635621735271632666461338474685556336265458866158138533185584765768661255861768351342756646881552747846715512586755235381142471548742684755884264621845835776135728664226746835153113427285876251576214374434128252227237183776628427345244726733354725621826376437442427652336276378846373433665813374862547876853366551438872774262221616564854161873167883637828722841386783142278134818358281855385857154488771644758251676816885327364337547137516461625871252874682761514427683811174636622525331343862357224368743355172225877738723115675157628526475333254648574374461345732544776483142773276137261753664132412755175518848474456617375338117535882666137286617626471775584166127618578656865131752723531142755638771871161342174326347673864378344822653436251718546855761256717486834246576332644228612271885887274437361533784848754177217816543356158351644822856556752215236543377344221833137261288575711631377152638846487486722645818367588682316775567863422771376843173251648148676842613667783117412667872662167664375751344465186583573138334183623754242544415357478246118562264251671612813778676178374347675624156238337356553562322455124184887574815831168532423684375588575766858211248786647875487121352817832532665311415414887784664686413244124747446573875512661335727683621244771842475166281858116314778741565415725271421222875172257633288385337313886878854577873827663635638245816642513775722124621164828673513622778542246251234152517455843711446735254537168442136661713676224512515776716167655223734112766125885862171832341321171166173166534143453214188373762353373454116845227854758344664376214573328263147472784384777427618288636111251731558376831524818388178361775664528128172734676355835335337265847714358441454454462153185733435877774267714154347763181434238776632258363646773348311141734821683225575388363421481347887324238585816665581783277882417745367374343466533673852357147817587531375638663721411226663364584563462564136778228141311465843374173266654768163833134272347136747174625142522154668853881712634511243122265581758487724585883861673433664248562425281131882227556311181556341861377436462781378415562838221837333353638152157784857184475685341321441775217561552362223152621578116842188482647888428326365864637416746273531865827138785237176348673554776165134386273466862871175275861633631341725255326525155768445741327264664458716735883682111258118543874865187863164864375467786485247361741463386874315542345853423621285253426431767266421757673362312517651461747552716572867771368258323252364741467612536522633425412452736282823165724473622252116884358857472831466533384615124735335388348323462172221536458256384834745148146276222832322284277134615456766112357415774253474168865817233523417761285276311335862783465864338422682376365318636127887845133756588235411232367273854176124321356746463482558543324244774864672171256756872565653865136445151313842776271741865163672535123734237233142144123116453771713851223862624141842814156566112835748553433376225162186633747443831744732727212241713618376812522123713175355451463484746133734416487375356615385744743151542722645573466722563774888548775416741263472413881675358146185332513188618818328854538137213265774661567826125223226872312525251386757477221154518725786842621485127572871226513253128153187148655868388868485724362626838741221462475671127838321861677727733322461155723236126271553418686682865657236436717725617716854223865131714267185235125141132745213173568638526738761157432586728112734787874613233134446542114723315173732523241556784136847136161516624314181224755854365285555318322416537575388642576633661661512411457153356211666846317377314185516778326212861581454345826266346575371164477567117461443655413233775661541266533852131783115227445445423862425256686117712722721124141371581783822643531777171338612364184356473683425457284214131813361334182662274411411334723834627174424327146362835357443821338144426761325557254186651143553571888488817815727334524525464313384414378341643555645866571775655881117416342328444876684746722237467346844278524771352464553243877442167473552365562632483145671733768456362814288837815284136787628777321383456766623212262452461275778823651542814624812771316632517548465525315143783586187456631111737345544475688617337232168436322753343363452755275718542636417145453231165317857642886117513836565227775524288772133462576485886881335538336243254322567787465765533662287646581551642657136544544848272385423734366172183861374447521343416758818128213845523727716227764235521423334311532745743581723677251554248151525252683314286511713522438312437261628174854588812777816838663153686747272172528522513143558581146841835458254425515533544767462561115573215875514582762411157615624534841412461866578321417581566456118723534664534662545728186757451384531376557466123534278341412813741752555153171355785861823568285575285471758156222255331321864331757583155584632613247184161164861851715561385167722711367388224656348732418671573875364751556588261634125674737544853631378737331177211728134658376122621626155136683537365352528188717475228271565771547135382231624465451373732846651588476818481772172661838715438871447361442577242177141875144852524448242661223183412433653744455781454846832132458321634773566668736426858462175756831814526848153124568163667731115364624471314623155743122632636577342268816123531711243638627521811365172841854652365221868557578787816146418277261327731613111453882855737813542343211372851442148748532757388541436222116276813114438553657263811661887243313844364848851347867122855417883368346637274688216582176866872816818123272787152771354671673244513243768243465238511847484738435353524757711546566615814575714636755625165163511837322578127525611847185844372556458182518535667433151183521317488871417147472457574118388266323617824246781445826451344745588448524484418725628578575651323175665317288364886268863185643221261817238572212756131471425255187766114843284388252723251541121677414716447345357872223765336183264741851685142527252226438663878642781521455358413122714654781315686457164268555684233236142725432314314476538658382468455671362161714545582512444416636182654736442261167846511517115382286466743388373136556358438428314886756846222526423331884778527642522374648145557478412323547248463148381715865465122431574176284422732466756826838442245326678535462646328172415764341127142678177468112153263662135862537251786355218334687364222848275741728632486134533362631113824834216721734628868632813545667864587142432577778646854158288731635552828152324427218522443816355631233745612828861142348287748335567541178128738614436882843115875238376684435645347144533754624527831353817847236873327518457266544644467858282127225862372655735882734661431867731528178454747325477653445816446345812717626567528466761287846167221378485611475742332751528125875345123828888224786655124685113338218665413341412785114546182573532634484138634657826363682278483144435237717114876342822433623855831411647462313832361483438434257336178743573651652818856256544185224381452784737638151188577112476724512263311574458547267831281266348831132738576867215251167217378216143674531788338585517771446186823245126734468113488873448354485523371884468141447267844472823876571566113552838732663188131856764767832711313765722472814561225471248125422555664182473727833411765457346127658116172831237675343668753374267837635425675833732632686343543374174741365326421787886332432265628212556382151272361232583464855318841824772544124466844636744335486513721866375128864214287116821256265385487456736164332362665177457851275472881487712116214511773372628678527124777178825538441131148821457418831366166766327156356441714467653812358554643888363865171553247854448154314745212843157166143221464137731787772444557567738682282782526276242721736574784588334556856838553754184585231644342628545361473526267231248158178162324165474685727755384217271687787114411786563464226167548153265876355853252852587225133177536671223533831472565123834656811147648314612753454657578488122783512823514136738814738418418652418436786575286243471514568121283461157468648622886744262741648364563636312658414563812212176671587431266822153182455328286588847144754476623678388423175831522366248318536552187738117113154355883662222634528826418445817774246678836248454548554884148151548781448568482124688613125424425476514141142748674827632616513183717567567655232518488157323128621845363587714847287213865123166843532656556338541814824271481326132437585235645558275714747717846633611484645341684311647831231155764421757314115167375177262556688548881368816411743344582546428841753868235113228114443257566633423422634554361217625187137621738733662445214453161575567214144771437323253236632535161763323736378552485216235424325442876681422268822376367415241418773612725251638434611831262553628687442486458847733335611726874117727674466656547863257448281826228837752253553223715183611217282831872512746463155647764285622817754684165225642412885483712335715214832675872772448526146558585453614252551244853545637651537822763528136137223714578437374337613418366741844226522521481417722384726358568244546636212273514347766458542821172851121463527822741444646536622332232174753174168433342811784381725312365781558816863214528856317861386518622318127328372744813224472817223356251872248118445675868353248484764778143874148144111625412536577377635133252573627764268282481156253738457742313227688587622255157885225568842313281333562564214241464675185152256283585155766553287875147842465886214326775812421424473278377734647615478683582515433358274853211381351278151666145441848576855814414431657845842166623714276317673821133622748643632671427586877365754873352476735284233766651168481838131745533833856344547843175881633742768583162133886651271817615136551724536357717513662352141712313731283132374788453741764834161762548225732214531345185331276551657758262638774675877712587167174813833543685268731718132511454873272341632334327552425521215555863411637418253423522578628631556142731277181555561721655142574115584357753284252411561477653128186667226477722686461414526655637366717246477755744113666436451127656857224174358778247224758844226644537756774325646567228276418667854337858172581447154575374231682252715713582778431537473337355235761543236581227767476882871155161743424322788845821577144345487346537461178322347711556173483325836538872312815325541171161428445561163467551414253434542448844834588868521475767752267316446222124823137577817112368654842858788422525448665225863134815555362485873385326168723571427812518534134526466388337834783523322565323686241534343117861488285651451457385563358385572877386156561654166528385557853815183865412267815284868435464243535716342857311324158668355243765253523672537382732821427461784323867513372846566825562452157348467767235155821753143614585522673216478666524635537528841631152668637624662783486858367373284517776784855243482883256578182421214828773132488676347437755444535463174221751534386225247148613828573463633343634726512374542152258518635156481344778645862785314314215111631543355616821711755512646116155532737443276137337124828766216342381528353362568582411373122375128536484521777586361245387473425622513652183512277728213713226286287411757287468743722517613845217617511556627287347842326524633813238653247124373144112527764422114818166422661641448152871878885755877716652615668811612517675185625356424366532781533281762116737115326844353174363664143316474177333481677346653131575456575367773633131558836267568442486253658727581775247773522413772131562387747286688783118213635158422551782712767661475276331562661777477246575126524227177588385226351674432325783265188557453515815734672573645521278627524368363764235274512555272117858623584618647146274568772542452154456725445818223846843421137778423844523338861726452313251444156274477675735575816234853744266522838868622264534184472231242473846277413245633277333551522336451784247835532211716834236152544342777886835441717833151788488616173381621531384145837816264654168541583561828712867146475383365224215657814616642465858387783453644281576376153628664761328546185535633681115588116472626441658267718273712874446688187625351741138748872513638711223734665866346766548214712344215141853513486364878553464342882616457873153758838275824388324688683386413741784246131813287274573823362581686633537775164581328325857171821387443381486445716214186167542252667753416275384111821137674583348152563762411751426527778126822358571263416162416225332137163236747527467743188114536456168511554544866613683121365513748183178152242724855147815845578426885548244521215684474173212117558433233277656386733462875371141787481275527244143584522372668284118516855651638131571338755873132271354174813745718623456651563433156141427342678421145334662271525828873137836752375451678271587843847842547246632165687723224126667437832327843716466874616565423877216653721856678668562582137631175162551383382327612577216421524345161852546553886251563358632383656425578446674164633236662324575253838313717652565135331763534774733364787761434135342252323343522435834421477435754214387832637516785166251186211365673155718854111554667556771525153554215748684573163678773872154375118564244112238674451442586287366167121556881423886614233713586264488711272867877332876515323788713813223668741145516676754623282128674778525251753321584527253264165287885482478368678225752536511465644388837361488113772832245811384544544655248317754831541472142242815262754771183712368476372754537271483348337441551832521631258838317748273754232167851818422641232278725576185565845651245247165233436272814768211534135371277746665781655662426614283824172674763335553767718414682256184456865338646867436286522821772778342385566521666158618146367248234365631537174343212338516876845678328586433417686626684188656217661465173117325886888816455663577311785168282383224331571831861737235125617783812146536768864466234165213374314224217573464515333783375747275646825418543286888882584516248841855466332233311664753287866327131882415755426746461728161663743365337463665686812861325258268842754778786378177681635152334131285148538646271376718413173736216477348614856418186854511854655687511311223236885566643346236522888656652143876125548432411237335875841821327435276863347832438316283623221667833463725363633871232644772247685363762115144666251767352324756684358787547851668761632236167882382118143722763827822272821868245628375135874353751134463683355376525646382242487177817532777717711673525781527623332188166386618574181682141276135675174248834173654481517474483158131146367426638187242481876386288477121432114638317623523357185621484672661212187261266888855163188542518628618432124632768547575325262174432182816371311566742141414381576454324764388555715652814147522623888614141485476667521534242343672763716483414124363854124875553138644463874374233374666445374488338627222778517466173322218228753844188152734617471153444646616727147187122165836661265843828767188668457615353133185451184782757313673256451548462535454584731848435547622127118711622442424841871551837252523476645167177872774182557726383628148583263427123374816882665233557714814831571614122372553231516481734156868778633168834822541835483745483437465843471462272488584643143521587252464833344741114371442585767283514454513564125481531572412414816734138656242727886344827111376381156423368171236831516514675323327158563661785182454683231567486837571166664317767618741582835223878742457743872367312873581842843143834424882732853117447626266365215282648151825128418174345747842211683136343463554732423385481445677522383828237887466843814826833432176765552272825656437164235318262152336346435141244347871146733256822234287263284244713781535586177632654188376241361164648336716417735188745728873815373156261446855515843731412523778887331556432768144758575624163666483384585585857428684857638262527355817172286215474774438166735328128642347851881374632388537152477181438214784526171566473154775873147363652153678212156517141153882552517312335762523854763148583736526345155574126646235543854788561881434147572824474235334838757577431626846884352431858728847312751116131227571275785648865125473273523272257121411727677128616327615372135871846187727272524726347418648532583184464453718548517812826642511512136587211533541264544111582721468655435337431252871334753723233464248773665463114275637268657476353444782358566844745711525424737323825275566435667778581772323313633811454614823715654124461746388376453228576531488752835862843772255625744448511766852418841523325554264245223172815127178472825285383482671231615856634363115442267848451482616474837825287383825815716174714783454257353411241271282817666756365232788427813183141764288364848524437288783532433764363233686268328536332823275343258537857377587558432336658743674473256185335385552242236242847448658671172873418252176721712481286561122743264158442281241485177673465746876686488852817222452531168535657241785825516883145624413745378214313612837626678147244676784337663521742451328652882428322671626845517825622568161825688335521581784525613176864681261462563657523865627627267652322825475144885214526154523521615312234156755882847471844312185435857741463816628152328653655132767837572716646111751441388756848764657283173227455427663488154168516822583216868568434465582862223657581877611352412874551576863314241452474348425617658322868614726665854234354727363856156272565185442357254257357645686681516831813833871416847858232816631441117232454183814587625226258852836138314136881411431654528278741532734647368567824463263446238277848361375881518781683344782283315688111115838318728711136153673311625765741554353847481741574725642212347626557623284141872783572856637482467643523214321421326165684127316556344665285887775543225635538283552276418635581763755832377276288443534635378163558816723682855463688564367888824362451842152688712263248867756314157423751262422777851414133118582724831481487315516425827654888182546852714134224778583187453314347512254464836658583332562431244717317521224252866538844363621722313553687317663837551886776675555426472166743186452485676336476877644855734824688714348735487433131856722423466616253454551526762738631166851878525786576426327134258423547611165232121142813354418834265466324817368788862826875757712476558316186336262181868366744313334313714631368122364166658613758348336741288813722687116585815885441272783823523858211565587426114721186372885845463778661175664152574313543784318728246837732813633511785747668383152862421754878443742184817624526583543231728613886387522444336431374787688237327576224811481131683333312414735881148168478255427387275176185284454714214762782582338455561653383886748318817143843771363377676353618185336541256213578526511525255152312877785133473638263576562764688656388541784315413474622641733284662671732818654658347865122631243753437134444521717718331376856442267432334815613814638143418545364673353715671674334155133141577485518415423127464341382244428374821686574683161556641351547857453531631513466282532274388872556826337336488223744272654657217354458356434446428423645573231533821232755411825512868143611345241115476638364835255331417517213562563382173386125623734632375268854686715288344584546842265338347173273411356364581767453123523126463621333212612135815784773157355814624188424278544568776854268627517532257311646624881164241628156434272214446762262763744128144166467878365566573245642112525222371334155843734771631561273551426632631373261631421765367132311873158768176646853642652778575314673315863313745334751523432647563214888447254813653674344315743653486651541411552177826188268364633837776268777187373112816753384172746578215327888616773642854276772533774855372353245838467183123731518643544161286155677326711433485786337146317455665231342564813426878114342457618382381488141312448843442531313544764836182167553272537187612228121781216716871388745844543483428384636664515234276631152311828571276765168288411552887363117887828513458782684264463467163375283828686626681436823245683378727161785751732683167117336752577571371476167631455148751683635188221165372437334288675356257666128117731184268483225531835573152288284423255334863814111612626632474643571836425432337885554452512688162455472665172241513527518723461622638771326872121313748324612152314284135134116331863446585627538164381334548835358775258362311862561172517747882586212645275782742331374286674373224631761282482728864376715687264366783636583373888245655715433573784886783363713134162628358832377434447321571723244613652546248261412115347857675254631664846352517276665365477526386622843217474335426785875154388434227461283217222488446583757825461634111733662216682788677766261275444172412645776826586433128531473462325458826617217482417442137574136786845255764845512815564117143562342354538573524148534121247458517133615833322452435822552544733643461154181632848612425311548668124263572585756714735885714523868731476262188463721145823585378272215673562848882376884264164573728478137253415715712255878653418851342336238646683223221547617423281341217778667521823386576814546115774366361854564887744868818314281315622173743154274571787347315747178258767642478181126832185838813836442332811836317362667761243381767571568648265534637754742274814252673531565254455666566253343132748755133448463641415651168311365248573287812567348263427451185675221287218676882827861674265682542536832246346215323764177234437852154571585523722265335555421748274534371671345876216525378788552536524437711646387211281164842734813637836557154751363581711535751548882144617453455665714441786674873883874354344768276738828761237547384574258246641465435743142421242167867635535214611638437177847854747848557642366588348867842412427522124226257278324582856272838352345525648152828372384511766388321628742747531284332336122121477658641878876832248152486511355125522122564217418462467371372127483466214276687784677647578472385677137443855415337863448617231348815235432663411216846387572132366388636728847428576232514617148716386581254826562585126573534143286855312436684386642453457528738318226685272858847866826676638736316431684268151658328225465116385383823588368133653655228413811385876884588415753664685511176856176853354458684344225647855632513337546851345325171285565668673456626315811775131623852377361867637277354471472552655736865625727878114631524843524863686421254585524141314261851744585728481171131286475431424418618785423271842246583611374236563787584456336721582818683472244826516214467213214716746338413777477432527114163123814177345855637851286777227222638281264686881352885353381325238188337858644778661835253388212584246765687221218261554573587518744585648837288758752355852428834274251526232321576127325253347784313751443842886618527772768863138333387173752427184212457534482763223115774474816168137477383581481245578227811484346355548413573374838154165248714712822631728343415442561168152787377162355113411748827838328337761324131128116558565241644122882265112735816316827618422384622385165226425133443741657287845387161566211623588156274142764156456473258833746252672725517242114561383742374751326242878811786616145384881482351766876167457263317555242131457681555751758521722514258746361214114742412261144153615425468246172722673818584422627461862237848732771725245431343336553282344155623651226164527755252722558178871177462655183843414248548427272664234531685152478726585226245623364877433335316586373612347186848568335426155435577773162526375371718264481134157174866412145887737584831132482665288876636172177373182213561168228251432716241588625757441727442121176356843778234428731473714882672536715252385328142714547865247381648887765581761261435143341825544573758367553643132371432355157571584318562668875331168734543385682261263284146523675788662417631267673474683265624524464156121817173533126242813852153854415234582353421571554685178267718658366333414286865117688423524785858622261743532858824318488236656735338535448658381726638276568778431848333525861347875757278772463727857238225177127771388462373372822718228422367766343626754576242834171643887776643547852115562411355581767421215257652877377582452174761775565656382778652242473481725385747535623874148567555366443138681886376458566545751655637358272832814376385472275585262315477546628672873756443276225536231654582776442676845355618563742535344762673845543616322617488682248524423237636284162834661362626356552888681818665247135434822782277313572434855453873487356457717187148883771166187827781382624144681234842155851272738851627158873537622762414748357156751663474368587155236486338251516715411717888783266227686387821338471326448544171138226757257483674458168167168527864461786538217684816647366675585215886555468552171575765254571336163387672587265515652573473388183782651246574776812555614771887217648875484548426845854455312363175368628471276132352684617368534666741812546444687557221228384225754557716478618285713441463238342152471132635227751424865647356278245813374485183537785861763147533212576164748456423237654844644285756452723564366651145425561146847143716732287673548745346785654817744522725717814587175678211141656658447571771683157412176458865431114543883825463833713557347865468824647151245661747253722436262525623867312353172786874427218145887657377234355354453346375884471161317483348425731666676344318268325624742528848482273833758727556246473527326188886838875276861178724746123863853828687774862672557831278584637474674773524727112122176878447856623556837521736743266172647213316282853854348762446627535174448775666378786866241371581436647246334171544835151451466426244135888324363555238731655764178272173486851331274352856833584151116552137537523583661732523752381552624365737778654457523472341886547485536737877774556151387661545378725172844323758146415287328768767256457543774863127467618417836614514772887554733472682356153348585461838214324135244535117778143766322838546246852825176436346231873361223463884377614128638423461753365246356857721853657463557436332745714287424733362263578246543324765627631468416857465828328162366353576644343372158757314825415384715726435228554425744462585715623822153144711773381648351315628528464275613612232846371454724464322325175166745474732884148741786453361884722775264673285444535848538568828132164517586622387165442572263374154842751736684323366231353347534763336858214517784431271626862552767161833711815217215535781152251234782167732458163156821166836827458448225576625163288628761863344226511746778152463447855218474125556517361833164221374278847257641252322571811877575464526375661165427713716356455838668726516512353356112152483522414576658475112387481578647745458174218787756516555528878363862287811714636626171584233535136161337458161767441556563413847864611547547212615731824354216721113225672353765447522841646655876646737635162247141138738352682155327754824626334656433738668788756131111261822765184716553232243561213376672684627845178126717417324735146232714355252334385488225514857547865711588861768343524642263422183235455864323785566723786751115536155556232577276632118855454486826453726333367821413851828742123744362326548478688478746438822133157551422751214484525875378614886622156185267133416416341555733438346772858188374217163152673531832346852863375778646774753473854677238265551572726181557644143281381671353623422188767447273137555626623825511614483341754531841261333545144686443833448336153147524782741253823142848577537526852777513716172252752674414248833451251323128356375112226284772862717146232527165246587572721125127543635527626238745786583227724257228311485452543328561546281773258615685877573423424438858515145188186278486748343677221655624662881686164214116673617273218868581576343372542742727131835185733238678668432171465347476664531682683372134311786475422384737132271681784672164332688476756576473161412187512743222674171143445428328364486854873224132718256262751137438716148874856785425258783685564356746146572771424882267754776666248142385312315588164486688678247146476688572857832642864813747445335152565654285211188615356367284786814536365763783688586553758212377655584765383225716813362573858427164315515878737364668377632876847888121432121166463651555272632673164546582788511515126441647585286636463127564541884586468622287588542465147532528262434367547873832161547364175881811346672214833824751637327423251215518713654446657713665162734725216267817225265448538848411877225873661344384782775616871822341122132531536432658525182678117672162283731631767662367515486657551557113115368435358255641127342346744623525564335622128363462862822834115215856656844173354121246153482418768848352255328832275762168442128144677313645143884375854778744834523516465641173265153317134333182131813534885352142684565625638552735277862888475122772558145724455281744317453123288572722778738188173474578378838835474445655417548437887732246172782245788765766647858866613554466685664765281726611673261133541466664612887411256172523641866254814746116878554148822526624776874637751474166223866453661374273316365433446541431212758635775651182462665255628215721276576612722521182523666486662683377243647454257688321828411524774786744471262813788573352114565737221321778332588384781448815212783727145812443412482545254412428844871433346458464163362766256471525522887873131686538268677372316188455657128661787317574684744268287617584721513625768483685133772524426464735521872667187722747787686723177574581318788251678478473287745216284437533754871765617311186784666875857835847732266384862366457744527457681222313755727818168417247314774177112428485678885253763152557861435282623416857148218541743743366557547328342845487634755432584266161154154651125343123578663673452142167236876211262882483366637377572767835213718865725532588187875788464523476371427727412364825343422564826571526687358137765472225474676685284122347873153674546435544868176348167587754534838123772517681358353141432146586871458176427511573273224386113234245263476217717136762788732552561353151257485336481748821283215754482655418537155261653852332526581881288148861763622622433457641853436435114623838273525586487122835528477871522262544588126664782537653564252448625276547833368834611311654418651163635137456664267451416454261178188477288665831356887781674745864262467375526464813772235413774417852717211611211367625352713821816438748431815176183788337271367778732315323465283171531686387288584624548222743362182363448767266543765148636786841481321454826836788284556745412775757387214536443777754837174432437627158538181727268412314527567785444568538616382752438676526287116318422418517271654227836577843375753226365255842627728338856772787512477816517216631177731326277517822746188628338682567622537265548828215644211787271152216542473485571748337211671758853853372226812721775316681641728131372378338435486315735623478764327823386217647313773182168888182316326234285241777231646884651425114616283167242127838411534577188167343758141387751652185581138356265451778115216383567622312776186366151515348873318832435473633825627441616724344178552652274734845875755436742513175744542335156241882877118828267327263287136464234752328151541275655283237117657718133484672141367342482758286346835355233227583466747884282586861122265641372251217284388888373132782716847745345133143451486666854657718468214451368781226522846312276141726713377566357476741563753764422666187387283247755328865866847772384317546587824138154331443872785234187487235582331413225277211646436857242811283375161188531456842817752485562448582388754344378423255718228314532552868247384854641183682741618465147346575283775463723374772442268187328337576371142561212633865181825643615421541422841656375787321411273872286672631164862136167725838854417825376613113668132846453514332113235235781658131523475477244843875744474864812415216472785111754438141314812422221112282111275853585333448747854573645472667155242661165754524575575787725787724622453466727672232466322143434131541715586883747664877388644338774431414635187347174224178187417562483817632547264338744542888256462773445134881261213223174555784864687527322684814488388838616318772811454222138382557585668628877134114342122888523161166154273342728481426842864514753381438716718463284312726753764174766321268768252635322841835734422624147573786364373773265547572384865171365385132218436532372128268267246771128115672125423513328536378567611258818315586422345828835124461586667524168521271511877254818384666552121524713216671411188417362124487532357235364165521745113358432635543887471646723476346274733185628335366725584446185111878188546441248877547652728334275582273454831674163228164747451366671684386371833448761535551557334855556241462461755161543582785284752788358668156257521456367835346471143647464877511885512757524833437444734772337711171537144356428742581863332732484223843867413252857228117342783316721823662781171421326233155363142342741771115411664655818751573216322314368181733833635621548772525831546758474218231333737365626734266773687676758566867435877447466135735825876861446114746526788683476618547661274443755788826274831345378551777866347446678726286232182725118322242324517425338228144668573634567312836844641213343277787141637576181123615343613622856813382785838547622364356688568628368571183211354632277118374462484246511484144235848286813686422166653683612787388486652722838561736128737838635848231574664334828852315611488783417287878855576216283623566842438661534888136523245252623586352787716837673467432362832336235816363347532588442433683156425822122815773631271565334275838884233258116148248251763411472252364556444634178627816725352633457825267414411425172528275612364331267251822747344224311145853474714662731257212141171214288423373825666153414865728553886112842586348674351415877747646486356826536322534821118746845558116535413741637774875367413587367813757612564748423742151742182355673757741427553838683128428282873863415671242657734424833533682617885646154535188846762215453822732886355161877166151684573718137522512444228784168324211668686175363622687742371737121137723214822435262267438462115545455483242414672224648882763278434616562154761435467581285478718432281884124373461722376883744888838264435511755718532251843686484634287726518167413161535717135275466481841438861112451663358628182821777838822418177562511258312763575372577651482862678814881421651514716884762646848571558723864744311672253135876245445474155782734438777163725584356871383214842334686657255836644645535321446753811557586565348771746454545822743368326325214658547533245267242652388721731563645147386214528748562646724131153677536377183832634782876515746344454845625782457616833273616755163577643461382812411267234481431546783164376153265126767636535551884234634776564357588853175573615355764122763151318713538776251667426585416265577134817576567417847183282341786525877832745656555271662157844365376762126186544841437881474277742644368465555777526738377264827572378311716475621344364478725675323843487313381375826138287381676846851285817787718243823458856163523186251651212554533373386153537457153543488673672132867414472133673753385321615425185324183253777173814472888182675463477426723275512618252342125877464528837611745352836473246476716547247168766466842647883777424156257857267146254661366163635587727624355172137687634167382115146233211472886161478468312621848825637564681322778755144845723842127721444244541855565384851513735387261582737163228636846672247357728266373718488656264871387251265827384181314152662242243767153823238238683363341441878188223884587845144538212673757276238332158225114547277186813528151722827816225573471873763788145455774116177612765564887424784445548256878323476678413862317438572534322352288534118882677514518248238523267533665741676361483765345836555412728513756676848161627134355276182282641218884755388871451413846542634332551132455348418558178682723228433421644133386472745563871366224725483652484157266667435545762144416727861183151846448772687437347884584726562427755437788247511641382813715374758237424616178262356428848788167167555163323438384416588143478233314643614646837865583711423647236272313754355432281846468757464162618255611133661658748788812615411337527742278417275254456448288618681876611814227567353767346811518446867428276841243266147166135484358655342338251843616277836423778386225712237834788151586513345621876587823862782275617186218128177174346568446387262265441528566673718731333486688485224158837784666358881823586626183873812114735121364128114277843488648112154145552273421773152882318368367168316623288713445787882558253551561664323756174514141861633867142584474758582175866458671433644344628761536533447472424713842476334125185814445486444561383327748218375548666382245278631341757511782618215282616615452825358752184872788468287734154326647863335721345651824524166162866112737776735241214671118452222715125527653556425224242616178321767183322487475186256662351115661636634144421465244127566748487464521734331647874377687135332543674486127352673655482744186212742115486312176473513375368756386711454521824546455741435811878823375385514283852547711722386468388348886661313182214473236386721815835666516842757522555331653548552567511118487643223724148888335325433831481384834428238367857777845282117153284581885386732384624245315113814162518732254472637256626271351378885474485161621448585378615783342868717628237386452186782172578623187664733125427751755532161166276281716284885768572635222227432646833576848436874423786237334587561412854831665388732773441445617734363148785856227642635262533634547188856724172244582468156785127274548788318681555235673517461418864435311733473137257732467128445857281448165348886677148216667852675827312756324477785353353723731344448566275774586187334623545453741212634747181163112752311554375181781756731722558711475255842783212888436112135862114625245423616212178623785443232728837263338444656521273265284842838447116853477278216777471453725127137828777358228171288871432818547685744848881236473412671874423451436555468137535835734551457627422761266644134624283524782424342244723426512517438746747488346412882787874765473552285455824537187367861277634652886224238141138616344246688733422273755616481382512543123371777538554776312845165312888847811263318711746112821175338127255712242511645627665123465837765453622175732815623453344711325755862878313563423375675478666161287635736847285311271673485755143415284883226542855477114744757822617251115423258772533676566266517422341366516686836262558384845234215371418884221683156334625314231635427337874512574821828443385852628686677674813581877463551633755237681743326236411461878745447685421338857545411158735763468345735226622445128757441164671888843445818421336158256852368524331838233327822722437223284444112484877536325818555855168216334843568233115683267281383888155448188657544462243312531282826186121485776857871165233183843861613655635361331474142731632563266513453761546613434124536285311712426242533461216813141858851355584246437877442871737578553582485814572367357838685151625214147768371751225773384444277655133362211485661865573185456636674165128453315251668323235328787137348787532324554386253667446481451728342533552423621716117273217285868148815426671682734882144867882178258532831612762584145165732788175337761331656244461137124762234863271177381157412687384632217332344512153215342283774471558418355822627618721278865282231773616134242123612671248626536411767736726436122622583414744724331631347263224556763832283555738441484343886443622388155168754185188413666215837227515488144116356484754383158765742281443326638553488781428346432874831644264614674132884747581525468275574128437687875171522543718156525487822222718474625445742655175443577238622823688124288113113554245162664614632657634682785648628766515336445325527827761583218554165768323865761354544512417626236853244251181182274318677738645545571876476485285875471436482888545233366161428357736181654471357664761248874114353377668536584533757182535612547237788336743556121513873346445215865581572837628325651748572885871736568141365827535643118166676864727423364348567887842665758717842271461166212725575178614554246735475251178513585741878767581885436476864453218287464255538253663662821818134244665742451872841224281787614586857473875517188481755625544771744423348817777562433244331534177583188145721187273153124233253888512672377685473371773841363432463653777613423535847636412741461682478861614862864362744274643511656326115828443554481243271425264727677578425542311311454751884638123426313523374141673743145411183516841372288223628521256513768787132616815323518774157443548686712584435144233288428128371728732242271882528266646175313834657773848786753747554458522747533483745213263232521787164882536436862433646638735584463526427577431773317248186225546834847725647238824344533118555766735471626343483161528734636326681234682544386618131553717457375581844585274684256125417743128326586586637568315343616856313423626736255634246548416228786444851256782857768218554417117256132325264311662183421172112437655814344586577247278484244857443374472735521113675544287333231447663615741621537825137255622845783768561453268774215265445647376867651383818852622627875687867386752544434757325257845865647781626238585375831734225751288688687425865842241482188732826765331134471744125482836687235242881783224763232284651126228452316713475726837512352634516774814473315531636523525643568537636863547834417782557278558523316177166168651872736252134541344666255533815714432663133612134676621238313312577315483352537243486528288416283771572723667257313477642384138756665363647276522233884142483837232113127488665285551164764886313553263565163468521138283685767476547443152467732878572311878682652385453623772451727445813547681261512217337453148621878528221865757873583356173144548124582682767852376833256851158722584352564541876751355247628141831874286243716883122763346517828364511741767813822311512662384133548337715765118484143526528318835861686377284363468775333361561271845236444247345763135617613348155355424843176248582587648488265577812181221213714515352432633432475651715867278323628165124571125545521775782774811452118526561726641572685413266832313712177337342422843173723738361557428637548786184461554521182717611475221586184732688273536875166571724571424431665562156531213353817788524311834811152247833146432372825787161868331323885536762568852468813576263455181228183481371775153775252384516874636877483828765632662665421124272784588845382623616871565623633164163642845777845523857442717613211412675575768275777348138184556668148631223513627422534465865815282326485684388312238452846432434637216182127261516582386535757351512635345847844281277482717723418114137535216353678216722152531647851436422687161613182535147458816827758738576116626723451726675235654473566466616725643772487348743611171835838412326816256254333521665256435262732628683886222561364245481642111278322513115633166615673615531168288746462666482531863148611463732718534143637136176732666177872485735324584621421657632826736414511247575685664731463466171113417473276265322827764534415567131565287136744488115532644747566527451828617432666448364341766688667342427574165132644142686227656488485848754752821454882312822418748151746775683455656661871524724685368761787468427674442832761276441653536825865115313386871158765652874635542672341645288676645323818332771128365232648716341618442467268763241576751723573486331723131383332216226166733885253435251778742813225584311843287184278363563313756817463861778583434354173566134131584834774443445833111314872118251862533132433244754178737435583357338648511467166355144457668363253446831237423724641814271438267364218383235236275775664351568457441148855121247636113855226784224314413151266188881682448262278572348715325174553673452867676576516871834532767567171161615634576727282131514648741455876147374624731371772685667561118377224445826343527631125861165773127774331677386347628684381384483237463853875116616248738368337271782334473347725587712632857212352332476273617713627123548221168641545125474815127457646257417865681862283853547333146763857247417277724234334415313736487223724375611113544755716421482148458343738537857118183646821465756781586334643631266345563124146382647345858186167867162446873838152423187134867687153828322536563141616687773573425324627516315446532536282815844243615226421621534276687461233186646878263168476126541552215172871548448464254577574833527747474578625641614513867532436645552837745516552162318581415523128125762113155725612785715652747676366177113127735475864771487741126311667114568533148771283184335524757613346451868288116613241441722637867351713458738621687784635383114377235465776577723664743658252552324571727551365877636227628441221345627334446244228667518727165332231657523173455743642241871546876885374116715476126722171324831274377218835468871472527164658153763431366214828228842266715661424774532548313287571431784351826776885174284377762134681652858542844653137733425715534658155242537157488248871233247154262558481334341141214878884516128861772718664355617267635881427777623758446626855834636481687583811718432544532817875373356137472711228745723427365221876284783352475515121668112616543872333856283231651688568765527367841378218362271658511851851778248786461471565588488115867444526785141336848714446617553734821146753568872264855231835843543145245788438855861731444726534468561723652631246441628468384784185417716588818787155482611416234838263288788176671218364833688371784174456838717348261885151653121563182557171854868521113348643428113717452643617635771423555457175657244254123387277365575614726428515346416631416326154532241525875626515665841588172387121522446455125413688311573588745655364867351175878847468882434485654421671833851333481482857546275651777575772457738584454676143617682188345643525687145244452537276741317557687436355631618381151876466728631536422838614417286551772123552241385257345356128322627768756473735186435126256328525371145475672532467427331213187584622541887566322251251245114375256524338616366212833542368632778658773375617531166176334642735647433848564743482684588713647827583765633247187752536313276537553114681487627455137787725844428673815742471847636747552148721812846724158178212857545323761621126645666724631385542672664281848627248545527883216434338253531365317381326228726511871468138385381253722474726151528627181182226654243823785766742742528145771288667573487667533717422754273346154847836366816731148725683855341682118883484562532581335686567583846463481515732442378386823671537627228463168425833264773464412728635665232324555861764225784356322868435661432542552156436311611465562782336135377585431835317747223228211786644862727322658571515873373126334376832874637424563387184444576641276168365252862766372366411228877584585287163264786683163871526466636137613822145317685311711271548714677231553886381216738561366557776731114337186131774843282213647431364784227384355518137645453512556154818126262648518652811343683353475853214165318414267375165862721162188455184821448126731561624742373137723854481763688561133442414846428726865274546123617658843623462514883655744412552672357373423258225872531733632417276411152311542174354254216386557564748758643738861524332613744764368667381363388573882522728776745146157335663851665542267125623636432268424231116715713837581218756715214475223775574342152687147551682528712442818328522381284846611874815517323221377268788616623717874588828761315818448328844633755474847632264314366112872485753264175862517847736324552365855655472684575548367416181473475674566618883437352618413377184271583647756412852888468375666176566365734718713828651734777177431423726383155841362382841188314114126616346137474264184362344868653638134815872173264112628383288811515457125861214384671356838174325858426621166562623373464814227846272113732837736217725141472275832873174617178585712161871383281685216481637382425387157111251117155211542476712243165528388238687167151842765215335338137747852617676255558335222138284368478834785387123527835127452438721842282423844882475224248144512432316214765187458683882875684678266613562586366441371823113861756432134347846561136432355485471363437184555115427274764656755362441336185676368166855566717133536688515633736735581147854282476452344368134181555886632334361816871523355866234365761241647726711635525587644626885863753543787667836837223151663834572145348713818754552157751376826553743842627541173623558225314286154341425132214863812317148284525552668662315748525348256861283815882787241123261418363321554638647684458633356311388442484766432283653782267686525422414356718186486275276364715554214134637552522573617572184123477742818563543541181864427378352615433435546217845275846483868278834453733682817727264557527211265236583683546112188328145745745878213286524268648625232281672265661488758341565617845772726783663588345845645488452725241145374254754552622858517687131766822521425233618188545144133354612668651147167512726681266473622218652428255617258678512471553211612546278483472245816836436763461828546663168412871817545213561126764685338556737337758615681233138833741451275682658354246628725654834364138523238241366175787787744852363178636736263461452123885677518835712446613246172614846674131843258758471386651138582414641238167313766254621747636672371884275226451518158565323845752287726716367427716458486235662773414486533331236422433656535117223671768814731172786441871315353886223546635381125436686483231125813655751731636528371386158223685746352421244743826851644833638268318554172415437438348723255113348815847232556655382367286185615353853532568723456736734676682736114556687733833346555315568843633365786226527531548861758646364448451252636282368248321678438777411536363475313278233148448536763526516814718336851284235166452785166586716878484216832728852224415672827451775136354744515175648867877374331171426148135364177712571541828855811528858216251845281824741557342788848723231467562221331446883555237335548241242287813281744351716577283732143141584232634868882567175732243533231563333282875158184343677774855845443466611844116183743584713538688526785614535261575124632433746716286648117312114782441386286262871341588847616843618484256424483887826572253777638367577386281241732778452584268853626476876847335832211348588458771642386662787445226762763312244763722714388585237622145616571554517445385185678138734848774411267137212325712168475266566758223431533375445832475347858657145687223173252622141734381758458887862561612453514668823813354323644258521511437357313555814447654542252577557688418355777266436842872331177764817355431854235681538142276578257685282555388268538837815761572246676374117674715441317248148561112127117137888184166184128412744123632258714728547754373723854163862821441611466474758314775752624866743534857313866281448287356452143544558327722383274442165441354363515734527864617687317436126772667354788436328456235638535772225523435646131363688831524387545322683457862811872237525386238784642317734665235776381133742282258383642114514164728216613515644787613371627482352826417631731762615564743737584367832261784522853756177212323216563241338283851162554422755528156733166458243835737164755716326821852263783133427813755238185861842853584441175852427152284113258886431462254266128776741712511725347837448455654742663215123355733544287857287458224711124132476386558868865474478723831721447683222537132867742373612812285362341713441135337564733857246615121745473752366676828262213644548722452881561372688516168546513628461748321573465375473414661635861432163127377246427654368573382813171327746775318433667222175787225645631482512613856351575382236355357667188513175451527346517345275378868281788142417636613417584228587768565657352324683423618427328624318234833578752126267651657214137686131343466861474631476461874627627381568776381171486636165233428743648732277611388326517873744283143336666243421483184581828835676558728548282183481273586847148437624416488321874145825525516681825123116365582687225487382614655535181628473652711776683146458218768385883744122836528712115287541483767317827613851854484752541117185188166756436618685628468156873326378374623878612142551686845554658288387251231318844461534287122766842426468777353576177871275652761748666184351135743275212328771721834247223422133448425185861754328522536115625838417772537328334227273351376773872665238765242562714747622313651886324418652241887263182458754565426867157211773513242678671574757255827815734151648878843852825815232538455734857461872252667676145831558315434723664278451831671646466746656471728742588388621374145356171737328123867811266282453268337643158137648722628348348238777462611648253145858485853223868612647231163222371177452872472485156384676377177535344312754712858678884747543868834368634432688553128732227856187213421255118686864267488433177513356328226385882588427865266426442821144211437222432632554146832665266724436165841365274413432531736188425868584381262733855584654342883358264477755141383672273375686767454531876786863487348621683524561444268575246648888113412448488868828361823558433863648133813285162161212431645488617163827883453118484653362365176343663415325847672758112575854611521227714817388677476316512324431576638235282675572434616841321124647141788476342855113781767773688341472114325372748586451254616143727221766242448786382355617417346554882486128668146324873512113621733585852152352811484121544762374151388718156852217681341332461645443765685288813257488775624337861561377717854636421771745662227644666467546788345864137686217614522615378236682478386515641274784731214631524586431466488623537282773136686338622177171764568432341824761761312821586772873276383464731648444768434167616626326583844686788563228131267473544747416684461222845768287583531326576583265634343375531683366883572657743346562477866813418532144122212734877178411817172768315615555816281715322115612234588321224567587887215186835634715383358164435433483654886455456572475321311714726853458147775671264821234331171541518316234375446585186784316513816846326212143741862174731176151277565323133152313562531846527283765381563766243528458373627153437635558365111544574175845553185477742712374447784375485327783845782176342286173873335541566153866232623738461814513233745514521764385534518648848242636542825578578465242545178868835585864433324344728582132611836528522848854337728568836855455378355621883224137435362644338576241317881363658164737653184152477143773668787766413737348286426468442452717868457388632663734726878778455563122411678134548757344724821774432383155311634343848621824247561585538645233632374486333248457344472444552713375211426733743363655185876225223424825233765676167332461884154437168787318266111474741115247781323818885878341246687663776243684482353718283171423168273725125265827631711173271184136363865276753343688363533414332527746584251483345436877237615687646358317732133275126556718255312247425763574243611714512156574458875168618328688335151238743426872566731236272271745888156685584638887856716477846574355183426366283866342242516376511874737246167575573563675686288821752616784727382258322358578481785524158361461887867187866481536583558866834276465746233845267728185166112633628752236686437554818328382441716332687761681565832855337677552462588852836615768476858817327145867753335578682756718411343586422888382447166882713272743418142557143814784825865622361328432264148162834816173385475174774628815771177241715482152342214222381337527777786747715735221878553711143661735871868173745143125138658784868656186142687276312834312688443581154212251626517221683244178687127311862816882376166324572232633388742855681854456647164754587242456385228366535722731214836814612275381168624124527775464772588746148731262485357553626512763633824722712684181883775662617438677586725378331236758334435754531218611756138772185357121241378254635868827711284424837845421353155564765736523534618757565852465576733855354821661154375373125414572647748775746435888736145585624876833521571425358458764372483878511316166824282851312287182584584147284427827786857334512136675844415453244681518245233834414287548628245761568657187725318623658771264748536638835438172866147357274423673341458818561781588331232384613462674555556225646572161343756837775131721252483115782317378641786375117748276181677567376831646726645444865127424478536346154815572782713571637553837623688285685714257665753413758531774738857235553243155713323217346862776541716834613526884411375664326788371527216667517247825628744778736287317133886271352674212128232154678535512358172555114261358638641625655645332117264612367882883224888824617252621271222686282336182687427527183821245223427616785217814781325378426521345166536884336715272124321526386116776286832238332475835773667612873833526265752133367785743454774413546427621677415478151782615846174824422232154168782745572655754485133426321341488524252382666882144785742561411627121886261318816422448684884258578325686244841185324252567644681465555155122552718136728444366457321841788383343685815535632146388885314278353744382272435124151641852744821364242122534328884182742724653727314648818737467452731164213661862831154676873561588238432437371347751862385284472317413537672173888351543581222563315442483716816153482575241184186851815146284374857554713258632225485371744651287858624723773312782137885388247534615658186613664885463661462473422111256135642726526753263868121226434425543646121133878327615243514327554488411253113228312633363322447883423221878274645718457253573577221588352426255882477888287361721251326744546563584244672465575851165216563534363371428856461121715247535128832821566873467616576818311557365842348637477374568728467875375625145264185447615114487424522121881585152224512427243834354575876345547454541256381777532346438745162787384788561576878387548421252526663583343524317734477836671555218252181663867737567411624684244853217737873418577877588831823273681128757114264812661421458778323222127142482688354356237583561648546634724613185174362847866385833873158878638165132317341827188334523365752641822715873322142857617218313465511788156254422853572774135347884215552337215173238517385353158683238847867778667686374542322688133228674771258866356123776882658432151672154253623743545284114645328862174376448267575563777382563347333614387536437411234821223734738347886246767341262878114678268477521623475268388453774455812873624837637632825834346433487213567137823256366811365427742623871687286888555683737121427178447334227461558382627686254238352557474241842162437622646622435667443688114184771747781456681163782283444311663587647615747422735288451576844821843585585867755613676474141138361434467561381435254768683441277241863753216176888617415246142665828632831767233648671761427113885751658443541358424842763888185337524247251847663412621128221445348737634633356766545741826727674588564114347653782732776746383872461678181372235263814235384131333187714241327714273513755461628868113433564426166347712883783262544458515112418828356554542641678418362623224733668157734843787861156538438641451442668347785716833366715225272753777286782355577183386837877852827215833455132513634414733335642262448212167186627422671613654752378263135716848637618817568872837145453616521556825247764488842518251264653633738724442585735747148361453352754535487731825112627577133887154343732568254123158544785645631825156354787753617811777673664632132474544527288223358713123828842568362658264126364285352416817643681142121414278158676427267127852515278158331234662721254868775426326627732462486453631475667736548866726441352373654376556327244777288444316356735421514767863786174454726485527337142764638555714138411761133574781567137544881123677583221461761623116586225686376757452681656811474541173721276331777665513852816163583774281521544575771564555618837155512338273141634544784111541536737542873777732765674425382611142831752278776442487678123476871553244482524182336668747815637831864727176564661448465855645652673811166818486142742774341757273871831176668621576454711328647524312538486486284316845573268836328886644773574415142881438821686247872383337227364528862448581526242786132467384651135275651434137887765737158624177187377766441454867148622483682143838166455726363511863675368376715854423244641714457834182775162275188324434488228537527436557137715421242436786868231232138418385611243287436645584373311611712473561455557354525437851257852583788461861445511664684735474814464542243455226582184613116471477562713378813168255868185647784417672838412653727835473665515785253551212845188363156285361813882762716815577723851132665816375713572213875378325732477744423861643544248658845858662831722381362852662223483386712735148143385658588185462284225173771151114528731525456786785651548636731531567243317224548618815841856747743774314574681427426871517424372564528762633146738266161685335525532324784717725152255787478331848568227688841852118224441125334882817885278538756618154625118464432516852285332333551275425672565624848412113783173123681864263714185385683435767255481887358166267771861264168354118284275611738341778832217833358457255842685812773672376455762627388343866523752854751145146315713635461517441335526867235463137347137275784484361144831787858114652648161723372238382488344285652686368164682672362512175321116674125546778358457583752364131316567316543876567414613546673825755481782427461616834852756467457566438255447621245227653253385523835126482784771678775485451574823624838531788183685738551823121884247113883355542728623375454755666818627565741846718826351173326461581421655748354314277677265766264186124475638486743622685813841853432281656214514242478411864747865878158165831585745742511285425338738788435351152361121165687158513568321462161167758667576655765325183651525473326314357161863618431676722182428253348142886326252783821731386667348765444315387421465816217788621164477481746225717861826127766357642144648746186778356181475161278712545366436313575423717811855144828366826171758437613111372685247862755328488628548341334165241676613868187154134418315631213423632778322163516478117171856347537784534863368314678611154742432573124283464474222856722165373211855646834223128725213246612223181643655767436753655853535222854226561157364572747873336128385286462258842581337536717467535311656415348636162254577315766374525782372334777447822358757668338573368127375225222642313676427732216273476755263311247547771148517215246343826282624115387835176266567533735877871231317162478466741775876847553211654882644576632557257782568514866333635728865268168573681787334115112442611434466484838371428163116335368637174631323862855784646128271381576561151878763135464363415888711524277826544786653581315561665551667753633564746653164265534487221262345831351321278126518423268138772465523354463152452816832275572714217686352481822773885313675171821437854853771144213133617665668837845173552376345343841483536684827552481785326761255624264488887472874634155465526718225626451316828865126355164671638484722415673846244167352316532643574816366861318542226362628562782881324511366817858287751117278186336164612754422121734234726478726832837824842687854453322422536486263827356123368865263436581473172554865383423748744512111632872156871414718181475137635346442226124142621371156415542756763451157883284362837347374458381681178671434441863532583177736347335161148381535611322618757376615232364251657873157524473665588356187523278122453311575332448325488336167444784382763847711616411685612347475215712557118353715541831643226158248225244151752471512826168433626844772848611127865741377475248868171361364511821331714283655533252378587263853621713638265426812648377615455531282688285342266354163752167128143737581133475662468581636661564837263665354435648616142314147853377221334157348271578121311286273833227271517235113138552543875232513834426358848635383667577456246454683783666627618246171644322654768636132355153725141728886611212516573188683826821185753761855361281367248786454853418552456172332572846832228648436468616156768323733853718268116155875375336878831763765417733435357841411126636545254843681721486415127678526342166632567674578871845772577271188226647548625777653777463668155118653521478128233734137387433684483336688241438658751277678265288388564413233717677185433137314771643633573565664548647883417268713835374868755282523675453852631412645686354615252774411814476842844372783261761737157654453157226451423751551577122273186331481454161622188362263823485476471321437486428182763321177512666278514888813713632727457661473413372345552168468516723531478666417818413156462271431377686435858524175454166827271712758261648256413156276247453628783518361464356175771252628487783531115335322172548734563274216558778651666613765626866756851511528157268877237462458713273753832366134422743863116228543513511352764241454753456216882877172268675166176117731156428811864444645377643475343167647438164183382626686732114675271536172651737516478445882635466151771553158384344783162634812415373653141645548825355324324318333785316144287613623283624161124453534742462462538673181848741156882883477558274178761786485526526174685868263576584583544122414154578486181585588856617242657131613148378425276115233468437436141122338425672237724372373671716854125576124157344425135538635237418128733454666766432844242238784178228413784657662421121855242363754322264667764458153174661547287114548644524382576528616424668775142112541756258138764737388771874413731425871786671525885282151124818886757668468184832582884522231352812623284117436337477716425231513411872518816232261258726838732481561812217651137362338186464124876457657547286434488122238423682633558715834735534348765761116166648887773336875634825582852326475762661556764247433546444242185113812386551515146753617635745685215737315784514788722846414341618153212836441567388478851325715622148262876352647488645386145575247432674453174647867121382686446822382765134585167622758145632576762422813284317458655172781536458868788122334277244234234773717648118175626348777252157322164568461265547283137632657683186641346371751662345411742266321382674245265754225581331182651133533611654284764287137137745318666826413435658332228336588158563532373438861884733557885231543388486187633617788358815757836748778344155344414873652844557761858312487362214514348133373676727112567614467415434417143711281385465734164116186535256245656422511584235182176674752315683443584461864466717677658632358175347666513475452624534377323248285813386437587581486224373214844587462274666477123354684832535564588153285288325184711821348834764433246873564756346224622511118152732444684526824215337328871376833354248265567327832564136313664682343868265782634584258623285724583341838813588541553772414332242561756283276386811318575364784771573576378615651434514443224885555582568436852361486322186671553712726382372238725844885137254828877635128286234644866778155355811387335216187465131746748263857857348644755824476671165574755776437485462456337414337723837144646641517225721864464548561877446131325156686454175326127733576674232716448574768544585474633122774548886362427747316227561115828116654623124757431144621564647312172631141371858255863642352418324773682656612115841173531356475127545451728814622773284287831877275184255754667335256526782184145663612287678657273714668732834835181248882815758512528414453473434278175216735766448287363177267117138866433784125731776638566766816211442651744232524423115728737686438337522766648386767472673888562783763215657724254741283624267324467368565852472125188883386844416126755237856182185173588336528847177821818785581184813476171578762632244662188318223116181524187684637167163524344174786218684248877211842142115652516153366825644858658484577486566141847825214138148378376543435384485546265688553675473264681543413655285415883138121216737265241834851756845243888141417368438812386421852465824644634573443656273373487165527853327128748537165646217211488124477372547523454828578741864381868177665767366173156815242778522631463733621682111487521215457674414873575563313235264615373462782625226341257644814353341644112263354537254448486878166722841112861154631241283651248236827662387737466777228526755725111771851557183343657178812381778868257217864585674424785574426184767228581334417313358624678213234878285687676247723222647551645647877173516586744215431726276526125814557225857823557144617485711231887681217845758146625741656857433635676857714683877357246474487746322472217681826786728713848643176547476743545653832768723778413256316788771717467287518877376726751142156454354653724845532227544248681541183853368737224352176345554181665521778337354747371134864176616383762742812284576854567513652438423856847635678346284213341853657148113775388343682578763415855228446365174256274743878812568327583642745353411762125847575184557174368632746314327272457228715222282811348334245613667874324227444138874821365127462352448686456637457777565611352122727326354281126858488337667725734881815818245188343436375686432544752767363886468242616653411181764888512355888242732245645181466661343771628853743763448115125584612381277854312815238242165325684766461576152547156168164436477284537663853327673837758746323232281382818437266166143285755777211227828714273366476827166825865572657545157555643143333318145637217754638627854547257674843488483753266287474327778662412575731713636438714386843276842312573813664686577425674227665628345236468863134567744583266458321387162788541414532838464151725726543846668888323831226385564311864323222377582125273182656143671262682547312368828245135764734873237666312652866842772673755346888446561266748547772713221652585217777341728244267154827426817651436256474884637661277368456728241826673451615257457757676375762486343787263121288665241817335868248424284576387125586354431857616435572128252843284125337734512656284187454177868157583421787718686451453648165157747647626432561372265862428615111516852287884167523253582845512144185671426271657364248272651626812341383551558375545387374453885311578567548642317162475814815723818862387263334755465274244883116343352135154416671128741477148447281852747377472733316753278284153872225716533116348646734766825553623246665885421325816378262688885261518275132448874723114347346841487852346234642561334356865252474623682412835715762466454363673484623135148728417764711215751648624548775832583763841453647268437735835365226671336428725161555534381257444143768725457644515467285856746516163536455267443486773483574267213848582668345281421687438432226131166667676775482135722686423758182758877677168112521516348416754573466875745434368767123766465862121621755618616532513266624861547453327626628836658266521783312622832277524111212753257364183656821663716326143868537168537761643525746452281168288362817327424134185656352881246762666824286285657617427535628235618682166337376248283613584682821822621178332831861123267113256686627645667487342643881537536341144756138664458243546662721533234127638188825112434644144448268436243528536544763777233322664375424443686767161586818237178663648661864245374677517252288888355372221554752555248724337618142258158651887651328431368421258221556767515531337637461856314872445152641652555318364752183678548863737588713312117724646318252167755522463163167873844626687177518646533822645827334778728441377516763868242631434577823616287224355612536743673613126464141416765356178433283488232826216815356288852861385836288712215721145568346445125658773726778316462158126872877816237615875846455143555512285413863712612415487541734434531536721724757314352316163834341422348642538674475166475883175853674566255455544558686867546486225363732216528286534382633223667866254447328527823276255425655144326352161766124273814822261867282455158656865454316464562545177347432417575385215217716641545265115567511156143277128564636647468273682435187115777513461271473633252438128736346328218657676225847326555835581532343832225627238456542351885242858737447248761833545612231221323432373358137814135785223652686556463786536185282275716423577562631138474321343258382146518368136545317552638643367686525265322751512378761772544351377623855366222426681735717381481544464362786558113546551382755337323357484615548567835767388171165262818556383861875553465545242213617227314664568335513788317382753318115731683374124253335347168756647141263421338524817526366833437728657768876685786236184175887137355534645687134755764168487778262817554136743688533513134716425273857165865758328484135312566535144678626717166747513436123751452342634638445276353513265741171481184263825624163588132158751711462214674544731158635241865168446177523418286816855438758847822552877361535153856535363437657744336288651788537658257488223524116181883254836851652351785216342477727467117383271411767437288555632654645748346667163214685227453515173185736227531226484536137256485656341226525325328868334155564578536417787875378555465158674486862114785717314877456218212671817746454743211858114132884324145864436672352512776361561237581652341188834522261564862754743166377846228152125433854635277341154628344564757436676623872444172321438168241548121266848651761317475227744153162855158851186155623844251153165651877411518717458364227326426718144773461528256383547418342646447287318716527637618631163257326273561754443418412683616441763472162324354638838241437582488133854478613274654888334775785861488124545643683357241415784758377277172762781722278743274765417112682511253184325127517311534381584255722887257344663513572135862317276333681255816388767148387773668452856634618715211486362336522684488777138567863184868517624551264621153652812518287323747347866342715686517472452742126171451543457224226831856151166146545236355822867321473653564488241484315162827488131735341767778331343688728185521548526312754562446125521238235141333561687654423333874631166524167747567254531287846245572434231485862156241363417137767461166833658342656832356765873228468468738637424818218763663818536316265471182176346852536464111527341866353866564388152188112556136756114385728235775854222163163635417622817571133715745133345671187163434346336556527816372724738665814633753722461752683535721511865182518377438545113824654667387331182568726725844526862822586215437737334167153356115216848131738518775552525562551121166661141651127555363175132827613157618366565621345574553478332366461886827463836238322555166447463577255243421486555435872813663823755868336362784561252117578655283328314465674271626534642181842411734876211171685675582671854638266283513682882126667444668433326375125515287516712681485165325357155682457538662837162151476463734857413778526143272477661428833688144873315236516823228263872121548658883832474378324223247847444344126755672338613147615714731657377517388343812231212584432787676678114176254633326877131451311352155488484276243314562487838153736361857832815535253337154482376862473886661876272435354614322781717822635483571277352482531123673271312715611886384286672118338214348751123321726565616876576762275112425278836668853783423528764437442164114444584476412543745611573367323655212487381187786563175161734336378866585483716561353624356627217867853781215171724377384738368182468123114841352685581687682743641662152313472167156346857645722577382527883544345116473154352437486332258731162551638213186831111183548521458121165126233256324364888478664832328877847133171755266332444552845746473475121477376222851237627511382835284863327136575653538225666732771865666283726835858221855753651336583384652757213154478544844171832254131865322258486534556836281642278522237321615611128312652156514672855211367377442134782474453628433781135878338657821314887282558842318388671138447372267555254528245268454812785161855824651678445783121823364815736634252476664362243168786486822873386721242746444635464744541552445683554123247761173288372168285225684634726672846533334584538214842765867424552818425875677588242528322652558834385678384147826757623636626213412678812532413867328577134662765788278425226263243672665764562265586482471132312663218472463525737437718487331353212167736278887386875354846281562873714352263472756437568142148531873182155137735168846384583271727437178356137412584412168765215422528244574675376786642865348558224454484442674283225838721637847454751714266223245857583785155217228421585255885368817624183741842662768855483218724514382716683261268623213551627623417462212132414161315511554165157567218283846733882351773727553828828416862743136111356585113767615573673213464116626243311214481247767587428657852766124128523353781548854185423847327247431331224141462413211535636652216445627842181264358445766363236123723545626412452225457256377416671113114253575868642341356446283122137542675883676867438768881788353657817685583813822844355363753263316722885553847438666217246821432165623774472354137367534268823511234622337578833173341855756543888835522484741112675855351832728525313636553584464755138341814482615168617824573682224145773231865576453564417878485878543366388161366732122578666355285184135213341246582136662678225842632317242682622771762322624788815834764448863117147336785745223542487763121756288827388227124355523684821343275245818857633766436725422734843536442837771335812682871453145887322476455236832466226377871441855747723178452838136831863144465126323483513726552523713773235651166714258515646214842372332273152676322474661277686357587368341668471683362388862247755142468143437121482354568448411674885372464664616364687484434828226518777463115755776872143465248231848867312884364663381481871375141826172878666557326685342783837654678348227773248454875364663367573424821545673342238158383285477225126452422216644174328871623634133467587543447138678166326234362412133865532571865334527584325752366152743251652537455311413628848557455167484513243352382832215122778154838288628216774112445133723718157577377168561154374631318811778456475278478448426667384352241131854268372686754138766761585784851318615686854822241555132324481677224645565218852333536123125665427617142713865354681843673136636416532371317212181485416871571664788322433573547647125325624278431626621526718777715672177486178886358151731525833242245628145514322878142637444173657341747361172186385136665612422855787114126853585715332352858822446518178217581547531575481356445685575328252835878164453843321675734868848223521647183212868617281451481655715286772125767461376773846856778245562617264474521841166763447756246657723484163317386564277856767756773248364423474381823453845825162168716323122662525113732875463643622881161824166731343112665416655264113315625531523636631154568836362462114838478472781388417714688621241455278267875121421167388773171126122312636678164664284582658828378642568116445286133852736663414822765657885774113621684173378667653514464418746744616674178665855811855761875378367275843837563373814418383411442353758176727257458436736887256374137563321728834624667762281845383476328436713667585223256761726815776663486578381872713264115374567178474373383164676818182886836763664248247868548188487185847658564241376747485867314218513654814282572145854778822385667332261336287274466286156126226173826384223222426136645575528823438584458722588226127131562738138152215765771443767427226315213815732138442865777155142634357414884714722247441586452837437581265266738382533835363574548567676682483665523432477123671415611754187574173282324366217271581518887655162884354731652645525161536231182482554661218721375716677782548625442743118344346168878655485548815662254767234632154546845534446138367412252557335638378587628325627211636631675423674858778716547536224128688634845373641672637757732135453124338183484262447486112175376325516313684571757458771367353684348541381263723673766576165343875538587278224424585836384566758311638547121358412475733375561572772473217224462447651315152352637864882685667535381837584664254613244438663276841816365368747513517338567236488146573136828853522248441844645434635317612561471315151765522331155612617348374846237182471413783428251756646257745353243523237881487248817873631316357647676533155782548585788524831678666748564635665568135334288386112824444336718441132112712525756166256172631466282637474315627371485338723715136372365814763261114756274448658211253647814234757841854758182335433837237418417887687878458638335184375475687883362221537332247442383182731142141461856673147678374323851745362521443783453417378717257531633544664214586882264153431842688367635345375755868416824784842486238867641667833848361523781376128125231721278328638224575518568872511666818155466528265343813378161431311614781335118427214726534546833867486425633655538773272725877633751512667825125766133576114727534783125464683233368158361716788646227381365656581664716147547145126286636716565467333815132121211254737467224131385874347886711856563143456127558262464571517814588138488173715244511548133437348566817324483736173582455125166788532454266851535376743421861427367218737633655817147425137552832242464825616625541782882874476352225553324252521188255558625477363426142677315757555614226618876767418371667424858784561762843345433521121833413427488116751773674862842116554664232127388762474666711688566313148578467518553761254255445255414453655854217734311565535821423665876753554841545626588651321283871866516166427127611668228756312116744128136331343415785117862644781622713843168638754666722174683847866563437685661752531838227455754464267373582483832581221718673814145752845814387446358865255711465818513115344712462451833333787236671771166617663556168141645411372675464341417862544757481255215274823745453538851453755816553318414724747262378717636358867138682533366748785358665631585414265388476317374135877835575186441668621324834772561544775643267171184386712488661581643514452244466333215312622211444656323884151448226358347521546564633123437355481165621212813575556478177767886216868735772254548158167388683527135741856615288178381568866754861658172185523324227354466184658821887872366874172722722421266815326766882748647767456183465565444367785222628127735338625812541563251658565464353154574248554582828458233311751142314612143511882782262328273464278285635513663254478867478732863656243474863576783476688728658611761487878767543341812571124765461153516886125566852717735766222728721436224861277161562665343653136258684458276714284182443838417131148873617826578278877572818342415185386563755181642667613188883817678263714273848565248747482878452652532117442272563153245345188352473564724655146718657711448732633281515566247312312511223847626133575237468716663424118717671245411774274676656378587826615733855552211776718118853235881817652286768186541852576442412631278635352473746343674785113416461821247135187111123158871585424758447143474875777547124348353834685832124412888465826558384372145874518832761248681262375738775711815572138624358856176724743686311635727627345833566551371631211224838853645314731355156716873752324623124272875685653266751821633156445244172146432718833374165431538385584473423681316647136715313547338677755266853277327523253275184267221685523276468313531633217763436467457277833433836747353254665115672167766167423676682738566382651711818611582725614212845653452377166747136872664783854464342371762682215645146311147172871824473452613473411522567566753765472313127558517265357737436465258476286756358162228313482131216754585557632472183713132187737212574142543443456322778763661251386432576442835275731666754616454814212311856538352378215626874752561816521477673332156718764546564315212658236167178581224788535443127417517833415338178411187644651666141675485185371846631526262218182587142628766874482677647281226142455455245664543271372741833362833835565614341864356378811753835867472147213647767275563446726341537235651484625837634268171862378356134265247882654744878335115868534244167862152387431712617875127143851517587752255722331586377831157482782122813882277757348412212128462565343118211655882266713217836115161761756786564137548565461452482141822732517118736565484763314631542446823637576713724511587877243746426875882473454462251384738262613354367381461352311274784354758471556288553175142141144255814828256387313853732332416162223383344578267312258567641364713347864132113861832623674727265716486156154133617347552443141513353314646486318362182325784333361613187381582848582886534643163743567372132882185548745635152887331426721216651251278785453867456536227265813326543625788715655253448573268273566764582861441146143531754488352878422685645473181822357757246114115881361116833167721861474687132815781467315148714644541475174447828337552655264675484846312188651621167554176257881434668325671152542136547785321748116263236845451381182516865811448643488474786876161248725632772864123366223232666746358485664854434533428363347175136345125685582256418177335688471173338688352572536541857227334631446858864151523686842548288312715733814748552276452178165856125243538842442274238148566228465664811266112257463453585645375157188117231364531823226371286661856452424678222853771768378145158762753348884355173881578772536436886152186358515357113871628838224817274782612617622713165876285231262254734543554232684656822436427763481724481327633888534744677512531386671541521161755733684541868834412642787165247452463867463353433648472776364216641184466442652177561557578561527584756133133466824732882671733115267131233522714134372151747733347881563521567353858543627364475271362767673744284122655888548678227634426657734778288833234657247243864746258822147524735312435772348564682174482213482881684182223858335463472115115432552872438141582281436855736661212662368417761533187178454484777584861444462716746845568781728536683415132384435712578384324884556244386831654553861827444666135861567635766274883386214855641348865346816273674641327116413314162141316476181745211521282751155851324646425183554325367462478768861476373527241636742314281581655161411857181178737166674134734622382617128634747223171556226715887826851417122852141775577153417423488235453575733375214317475275488587867685646688331823862448746764828644218323834652665582231878661537267244314448571574686332837327162488261133111837624618628822371535513832684113452126232777734754535864254357614748851262516766331523316254337224375666423466143853233778148647758727282881183176366746571128664126784613415365633468167145284161154242148232187746257763268766845415321336335234641781384644571374588837534683271755343513588386631433587385434365488815175272642258428885551385487886464123333542154744814151883664243831532872325331177656362241856474676178237111786766878373687254823345733711472454584257741214666145114137817635472437311551721882853253234126244873372375341574847333278251568756335284753365714827124654417747616517732436811756815728828128741311676283555266352263562421427741386168128867565568563631816566864876654847316758653762325188435853266125234711132757682661137527577864321282742188651286523813144654777725117887265217421244178736638863355515388315577123528887118528876856642286376214136856156641384338135375473837225476813835285636848573823617481364752161762284587343256163551481557516182135282277368881466134528685885446645424176583835754161627754725654516454351384716254346887773847631481683828663135533624178846181378116576774424663676152637363776841464781146228415553435656636623182643675564471416327441177857816625638237271436138315353413238133631761324318375341772247447124874158856722528665623887377248626257245534524144238641658336723244141562324367514486235345872635267111344116434418726422546643421686224282225515365176816852637286515685738114451814586141547534744517147638825445528132175371217258645821313631367413834268672176234558868411856181855562835743721541157411312757823727573332878547521712778718186741623271166717188745522683781547233581345468271148384327363654836571258514754731166755722642663267363763572456117753888644363455417336578375841174835464118745638428815812612248857851132438285516674258337856272311781464364743781578743511813564774766532421142345721632553363321227728868565835756246314375581371316852823588182537731234356511857317738378144346714675577522236547173253662345681817421543164872436237112816281214751165112282437175622624756324756842516575585137635412634766484461756641683224271263637574416377782216248228233812388443257478878442518654326772644313633287858526534667555867557875713632521267565646577612245165643555268628271354614657512576141257478611375365432644574363441465516348743665352575418731553366772153872836542381784556448454814767862123463816568441656278856635748437873778171633531315286715686845283238161548856571548573254232481536321131747275873636177662528865822581521271154435146582386212313518578132223338383664763447676841841146446651455715732567848783157828184845868882313425572752824155347837462284518116767528818445421655275264173416211141786261112864488118166123675586542717334687185856615763267522341444867742662856245517854547184483283128263526726563675671563715377226344216782317832557381177381223673357664851445672871411681423227336233865166334565783566352718832154881776774343266875726527645445744546647775714152685732321681115211742247314767452877846826231364652831662646682123687322132145343272126545756377621566876613253175324343774452565513777817613374411144784243231614641484362471741566277436637767167846232343762168514268453336225455856575561113434337138524675666754143365673331633843558458484246721344432741861311127548613322614264848823323344688686177155264122868113712721651488821118264755337235158378768724888825372863267537176658342331221577646451243451363624786311448538513588218886551774324386676745683521342161857231881671151483621683277658665841253261528882187462435828388658386222828665582563337514684623144161481275377633471121723874641573312478277474418175477277523153566327252424424827775716456722456156674165386857228662531224177486136543784856571313662475113867541212133733245868356517582555174372744248124251136545243378178363148558255548423213285414646434148753443412874537668427848645117744488717342537113743847341433382528331354124235815848371425412362263312642621683813636676472358444821752368183248263636345348572375754411687681281824277458121127462687351464575251344716563725282236278886534354716588345618734621233382254825377138714446351478337624338236165348351338311686276127881324241547774455261432347332455131731123157474478771123354173287777786362351575252573675428614117341734882864314112616814411442716486861421151884267325853485281777565175274111366212278788156677866514424477347756545542866382237854587565866238711348176666742256242415141833773475781417284554283351125124264537746432811874516523167423123413517685724536831116735443738265672215726253126724228283676164284323481474321433622272328854481525441772275364548316326276548615872471158255525557755212516246387824687577118634764742331176887568537381252761715175826437273545573282526486718576171286415653474541366754264778673482213113635442778531652844511225424485657683465468472764767181116357474472555171571282716787427143736621613263265311865886744735838861145241741272552481523787642416521424638536265672736551828684231822812724716513614626525815453253454886426441857253153171866631637681876887314333323277457446386824341314513436165215836444874142686152485344651154267646811841113288237374785146177547633181323511111734454882143462775354423447761515754514678313268587545327457812453575848113338762854634121178818174548867543426363724758551856377426318823688745833768771872846771712456141147751733468668151148273788585757331288665214371875348568661554222216653713331564215183143426238144672647124178724411312284634586712754865566626726728824467421873244767446745226777587288848572516467418741251361811268744414848162766645837661688587668711583882165356671447147583876352825884557827817476112418732166548715826188418775386322485565617618172147564231524226848521447347354561775312353224714341774614487637417815588476563578113853246843675342756487256872817862814348345286571457544843377864175361483183633478217556756453653547167743786864735141488722146446553256681186643358673562513281517765642277453722465186248845235542282277123553578276432738355344216187517147383224667381618188351121145685716843251187348233538835615168655568127517164723522465733745867251328733488122555782244375583843774642485468547848756536522485514634233313326783867618442616672436624285266732274185367488316523466317267318753452115537628377667835133583257841573366245384166753415412672554563262722443254823573644578511876471276747328616258464617167788273267257842886786352654573143366722742486326366755423756528372118226381455228571845252168136141482722362623514187813371416242178733324221138424228767648816523247451226363412811857176225461872776644617586136743626473274386883615467355671736214735388834223375421264588186775366247846117533348536358444573141582764626277617347225542362474731427636488374331177855224163386812447544221774786586232384145611537622112825413642665157683185867535733413725474252657147441263743885746626624322626338328434734726156252511317716887784843853656456617145727445143383361118575118581714517364822826657346636511167658244132115733722761233864856712341226288414541748712161544572423466774424618385312357844648571748182418812538438177262228787761662835121471645238642433857361583815434464462633377453266232155485682524611277648425221531351454851184322465467541781276817465711128468823312348466442324376782338156575518416632283827186344662737771184357786865338323423675365828787263227825878623477774581641365473487576437182655616761483563225335248832132275658464413857514512122221661525778555745541438437236277537715231323572126738876878836157565228341488761345787864618661288474574137558368653685454737168231775488728582685718257381188864734231685538723584775118382728354467656361466345837338124265851613547187155756114473128342532777782264458142321158112741257676585431263586381765364348657551733846184737331165745682746621523511375138531865354731564356418335713552881815248666763636135672625132242787435541316524343647885431565726882172744836265547245473286752843328812113423582266658588887173188478358311851527214727267353436662678778338823525365341566222227715671821235734353463463525615521353133735821561317221824767177758587461858818367661887124651616285374372118453182234447813832272266142872515372842873667788543236777416873233615568155556258437658873285145541784632314253741263728324668714772123225338526838723371888234683837743822255736462226426462243114242176271263441385381533867627148633727187853357717354126672212736311568842563631766855312583155542376247154734647723115727165174882871665815588212548581554167422353635624477222482428584825364616424115686721331163633278126788678413351554663784326521643152671681582452463835128787348588161524418164188518154254515272612461114415844731768785375285147283735412157376426153731273547235243376238833264861217373532715812632768767435613776116545326758562565517323377548314534482218123773813716873288134482343614851725658272782134284636625317773676277172287278364732787323625323873711373331844875871816132831547253556223184541381518633352885128842362163644437283684184765181185215516672785443421652751412755325232512757155114214841716553567843347332718667623715858828231368177574888746761552636427137685882464531181577535832465543666433283111875664884323157717188623614337425843781841475743824828165282585176674118554471481672335514468446114247276882625741173758212854211844733781113387352845167816475273746446287852523112431882184568426313555638515676883466762857658671777412312865536125681445843726461883541355255834182614765577323266122536627685827428573438852365723874314772633351755487378888464347418672886157287624765161414641553523854788657843456387117685857327117728667731442164483618737618174731235563741858822438161714261557524785523821482524118163884322475286542465658365365758652168357822664478837581326474131677854772486864383341588326763286822276455684355245517271836646155336256124422677672456748323365251635165513247877333758416471256858714226533818178867621355863718623554858667377761521527737185324472427132315577678361854843154176282672512572267878664452737133816656716133268525118435137218286315841674545213577753888267717116448738612884512412342436232636287477686786453616714581114616668325441548878643848588382247417235468668231345871565533161173781487725387851147433725883665578741311211647216117754385171162745256348282881436524351448482554424514758833422124525243433112746523463841251527568132345346758138367771426782557312566878672573418728411488282473343676211333487184512748785822754852366872378268488283334822417345325133548131763833768877261153536635136241434266736725754411264245548872674246512456844373316343684682375235687164644388548114255782288633854147147853845772471882884461723151525382347774135675684874671751172213226532335467431363418112668528425167441446521281482236725621628186333616684162236781863833746348325787322222241158846154758618878453277815676743141568562336734544111658282614381322824645161384222775615358426153533883433471428717138546747166661278272671838862472842528411174365643885755346535785318686238473465417381851135321313263733635644376636871145151544464785342311845241664821416655737312536486117536516643141637723711782734765687742844827342818381227882447157337325881435475482683513657311848745582461721417564522584651458785674125811438621748212837678436235358756431352635488223261568216311352482311263315565381582585144113832642537182168326713175445556171261875345676117221885364671884617887488184315733161447184464788621327636334813661617635876613661213711236344641447212634458735738778267113364323843218156156853244732826437528355352422148362838674285236528223854618431555814645154557116312236718785662682514521282116313737262735362634656865684851145412528871618773866231337623646167528264641487641487533752417387838738317347365858564661242265751881837114881571584584514656534225885424573124161456827755452478325433584581525715176353348851664115277636473824526285557175823447331116511545154576782584352652573728181762821273133514864126585727351567467623766134485787111657755713522182481658142386117835582787746883568183783633147532334247355618644157333121828885787144448833625464381113668643681228372558724744363533177431748627162274363257422847124344127476276516182265713741653518663153221373823123123634222614876116181173726727223186472374212625112443363155824742874243567267245226486558334261451454235387418341778188461277184243743265515325662614161561715631158461836787184134621734416118238123473523545452287374231145788618415583224262226448556262775653317682667661421785671182341542137522776467216343854241718621435453558466251266346467554858815188548748842624224421586357145765257848344755573811457456476712873526885785482387253873341624213647774822687821385781248626612673536216146664472347382143161688454878633661148767654661746554572538284888887277744133748875838382127313814214815453764288653214757651762181723385131854732561837634515882641517778118285244126684857341815374143335774725343226183731383166813248173521537564434163882718755171272841478485865678828325263876685876433712752845341218125477387142731563133543128625472642534734862544517755575366211121574211171316431357367372431876341445111372343718127688763588854578655538228173584117156746632655141856871414156264772335433863755758137668551528723831676777421342341486754474417458387718384338652343485468321551314875466357653727352284434634227248578218151138476526765531176683412654376743526351534124133416743242334852853233812156213224323534632743584633876617345441573146265212418186537788276436365624272135113844453273766856557287126815762711321341138142212214845471711342753368783768553626145311626526724256445678848114687456421443852882832763545557445722245725386274446481213462454575463557171714457856638631336488513118424875332415635322524225155383372252453788351342667614867322231164442528823766315137141123183136237575768243433775845744244427264487472117314233377458117726625252611831312174373171151783478558532363366183214253821635618586114735251127588853243744751881551518177158622682642568376611431355534135843366167456467668642428678253711611214513262752237842133525353684854517312524827766276546347864688764836655357774152115213672222186751183335311128662143813545146238732464214775251618122641788514584867887621142758645472111384175736432654371535268683651746816226465727241148681716161653781487547783236536561824831677431336745143688227871665445772167145563335387564622438468788425454778541714722281785152555277641752832318478876746223428471417645352756277438511658225385467144766833663383834368626615574178548363586465156824628876686283563783466646142868148332237457721256777264864116828363812411861835385685723214854781636362678673366411587244747727761361555658851654578481335143117262648467744544877117828744182686718277285143518587638247455855882845288217764535881674755312271216841486175817416512767867461332236636326168488845766868816422425855138874364713812154364874446845683676613225683125476884868816518715161774617854813387478266332532385727658453523518832681686718718831718386725431867583717311335415448457566332856433865332537643767878621487833142668728831478567445362221774836218715767654117546333611153278827175283784146221555287455727843651575161256263681112222888681433221788867837134311738731886487177344442555136333558645876633653445561646566773375731447422453838174575487841215614161537451165855221524536338882878338184722173226525434861316423522243717852337628854258883441521616284562324832783627115813185515261176314183854738556457746814564324147386735124126151774822166175538123833824873645674787655447241654362612787122882738311167677864142678325371771272515546245158652212811725778584762264752685556126524131787473558413671564845718781627814287337543255436755566433737458625283365156743413261822255351148775814441851165543363313482614485175466235645352886688182174457532324177742713511141523867462667847414545512365165854174846535876535318857265442657435438778746446142614735255353146453567776176276264873236581141516332256284467845734112434676152715535132575258376252137827442447441752666115313813534755631477321867328611142136241384532255876778418713884181337642738854185166665722841633614721417457785378276861336163524868141727551781433377251223563738886144648411375111237566518841173786515253865733325458816362188663643563526578411411571162722565262378857248822351746187543867546733835142851641415326532426663237147446324522121257678457421321154546565368213716574214871585177147668724851818757542811318348563225652151611351527645483481172544625573781731678578285682822685332536671776732252353242146725558785117535844122583371857848643641636617523123767713762788848388675636538626116737342227623472426357673131332324183683861847311454661332737742262273234378565157217231563463745555817167244148235414588475864248325874511327886774436255345125772781362255782724718866488243146345742652523617525352645658652614153844681266571812325486243745717545185515737646461736518838781387252218637366755782823762684672425562327466262555835837443121151548683258454655281118513538187412848411671726866835521615681388381177575246662816567766144732518778876377778642288515618155667677215565688576641841357586833538881352361385368764133825837188463257846682624723267334771686771115647564334237373458335318428311114314513885774448521463212712554673681588348851215276844143465585656337835778677768434161861512743124375165317522741227878161141546131662674274422453212513514246244854464432844753863551656435215523685515738421172373856774653446346347518485686842443888285151127334648165761448533861616881272778545425267826346746226144661685246388243762142654676211341836351558762728657726533231613876772724133885615838343518877848115172723634477235555718115426756854878536748454216887663428853584886537168635158658352561831281555515274354412774258157416658726253164468654288526652833457347633735128533135423185313141375187413366322458145381811541712715341414547254426735616217524425887413278478536715773138165628132341575375144857378882632355281766325827488684824562548346355223682715155416277846142681762717268248163432642731322671633473663853654483616877368288352277416841542647646213358546427857488274618573767635834288755435682634238855646221412235551837725712618426545182853776876626613832148768438363777366813741287366731318777762181111674136688656151137231822784177682138234257884414522764553617115845656777131374838116421614817862234882674475245847774356217614145251831257284512825256266588647853185288673377315227146451267174251511415216113648766532756743123148254538483417343758873835515126311114824347652562656223172348555863174826631833871645451522615525136461517731482768271717761327211284756414267238461811457676436278687648218121344678327833722852447661732858563168771246242757775768417636752821256512286265575358858451358688828562421755652164387442854575666677672121847544246637648845515134836228487736211273257264461252734374567227116846676673183838683585864441141468383162581332437451711652243541324862313877242326878836871213165516613374231788551721557415368532124718232783321121667288341524684483284672775153264427547738557834268445266456331445534736884741522722472241371884518662112542653777832587278513671738248876764131363876338631133368712683844387714327333765412181543148234641877837526383454735426288115655585815715877381522667582561225112873772218873466611521562342711182581822147281371651483378126855141657185358358118235133532174564715545465223253178264563558831414668667325886166367611417373786118177615281336224615864874577353875163135162826426131667773532178336478531785635577147366684351683267853483221836126123647547457283286161522756833338756831576625261734582574844571625264258354711235658254214355351561674843767657186488761672518642837183275514562142488473124365524882861768632761874485184381426327222814485351672213621664354477183272245564351214244363165643653468635826167374757187813843585563851411337282142411378653267336343264668576526131744254676624122865645614147465251258718313516836171453576268176873437717252528575173645752258711273135241476521312818814622425111682633261548681513841152484827758475148224124821825165287261434466827574832451566338744831254488684455643414753436884832857424211834356345653231754157676557713587781578171422672783326653551426155275834213233543474828557625746282652546615534527413346423844565674445821612625422311288735173877123632722883141428332316683866148122815861131386321158665138471557163544243588375734251767177371768246454172848811141382445462516567345468411881672833474767241423551768714313314871734588621153423357828458248846875525773261754111843271874517585168462562647388618677785855467667144178783375274175325145732528226886816444621611521234531132763256845827183365721378827546685876756346413877744332634131725556773585715112276385356483172562512426876328383233582673361857268726314472652141521364875434111131556451488154344267262874625135884838215473432281233668853228876277355285447563216833148136677251635444757472281816156777333414631413881382325158546447676411657271841677774565688218244137646635131575813213655731211725144717747248264154245127611718731438675715241837547838371172263337116746742854643318822742334166748116518846624678723867635863124478757861854156841762878562123846768423767572258788776728525641537332624816642158337828432728538377274546482764882255486768875855723535112335448664343873876446418471381128146373687871878367374815565755454438362827811573671262267183551346426833427223417567264535431283818361815822317488358564382614131772381252433884316687815216425475277666372448816821133614123537257282858865486324465161163165331783856744754832756622143765586763525614746642675477165618258135775886751827347841722417187166245683852817382666337745564861184486647226111121423367182518657675788435587853148248487663278611674351575441647828632476485522686257555824775565321471111533628416361637272886522242314778414754636686657434183877167227528627625267248285348116216726123363243371228775612833754746442724884441313711468887444543226457134461141325517662523625342476218237221325544775178868758223728687528657514673627722724636486816841567582618552622375418465358388717641423257548283815624383327512317516428333416225273525411644248222448232381166758178758455453583634773337257263134341165155245333876758663633878467123435711648411623812815786832836212774628283178284885528161162737521134637422877813768517213652235383355631145182738116711714758534436761727877666721745724282886666334241655411571634811786843856162128824236786874172387366768235412214357331423232825324221816516753482144564762377743852243374674272518863717376743271448755885581432624254218112747752332776148423673676358677788333575451337327643575255235726278547322826634823732274432268267535145353337355324613465576217888342568565878864324744773768414311288683165533657236478353388712166275464631273544653417324262856818834777247353483524156627428227235864381511526624771545463723452253576814773715543585683731573885757828123664771565775773472711555655582546717216115382717312581166681748275416272737614223187531243147685817557838151354783278351236868753213662246481314266583636714534261338741235235138371683816184784263543674771142341232551317433147831228382243864411348243828281848372337767388451232414232248581352837621146255835861134187863482882752453457684121858586124427328564665554184515851654826282114362532257768464758475182568588814265486448135566217423786221516473187832415318274457443171252134214533887136181838674334648273586663116451265512663631834326456237741137582156466633761515231751177734128741142247668162438852357474728366758618524783827424267676634164743435364666535581216214765444533188288684331273827626188437515217785867834627657623648827848148238445785477131145281155474453456814662376775588187548878685384154485487621486334712872742384754778876842877863861173623135661663254552227816471776456857275257735456861884821747812875456878487574148512246444355873887588276262861546286713655365552185888124412862525435317217282741665784171434633785263463121781771885212161323857423315314454522313825864113831422453547324363465676731484428857683177822346615368324335352211575876673357233668578375817638461371758533467554763361226736668714225551117132528464554867845454528577635676522813824758735262354481622362367746121656623827163283362822643276341286636781838343768426463488618213548655845627782673862163124821148635461148623182832841716613171526732831215687334413886686416588133675841178681826588438617284728487437181436532326747528687826643658478773477115637285277884151775137137466143423684738236467468852645871375614225314751244562386618327743724283118278144872518617514218767867172166883414643772117173511377386637657548168325546471464214685586617748315668135588483364175236712125711536828844857642268536522675768866455175514274831866133326555284141265636558515522327157684342573586276877478651657848477446551733312654178711675821816242558325168352414688842764454342637145287413443673614771185486754622227237526332361458748456335474672231563147267887411288536187734236566256612248531141353218663621555162213815167741221284311142151732462444117265382427514377112674618655861465231641558156213244651543368517563243872334631715677117545541125612486721516141422611776212338554533471585168374272543554875188685568152754586885533251222236827227825326424256113123626485571413526442452335876834284213862616424636431576127481434887264632187713566685356734656783322524731223214633366637211221524381427223751716227612875182664421581636243557442268214155453151758511272513674254812284855211712825334636684828284316488121152538321432475361541635867631421675152324434745646826475814342634676181622258353743578224357354576512435726684363862375645676441686327183777847582718888661358663332783567688621618274324753813448272825821177325615827347376632275226588232723148132343772718425743134784136584488276824623768348535788635458455563545855331165142871853465447278475425846768782834724462462175211477816228841487655157138816645754255478745462365587252711743122168536356461683883233627735273743178281261338773571611133431125267851836714148176868287246881647773587722614217528181245276887318187766667133425261737736131453885647381345767165284271573828855837468442457346134485322555418787316744621143275456241231726151855527768321648631363821811717855222288315744181317438668833437117823113218477184417156343578637238383162657683573285586347357558637658325762366358782676217263341748764244821258254246845437473536241371557787883772128666658844463348588318358178813163481425515164735634767543676713347344387356273514821165671423477185731823458667717378764476453721682475682686278661142174874662451345272388127643726484744626584425764684555835372871814643541137881142622528835252422762766116163333335566136716285875486854656836567246112133888223657787267725116225553651163388227677545744464487456155247875127628415756555357143313678161763876836511433853322115436281512762338742888857476537658768244878312434712622382661368142576136781362827181146571444513223148332881547143137445287845128815323787148381665322884273456673625733863277434358377557574626742286454465272582742236518237448264585722331421826675323586315716183567381635555376258116622447473644877585132377442414521517147646652551183511534882618111834733582143762714311282477124657766855488783162387212636254331164625543812325218854638163732515414442332556488425578665435482712712351553188273768363787288542586453572244184868458213887781822655643381711261546562127732341764454577125587741557572434528552214368833562777181835152666616427657636581174286318168147656557733623727777488853552137855334362888354488772487665654378218358824532424121286367614281835231236711678881757681422862632262422672661318386375823623545174575867422255783672248684528845412332474776262184237364535587554154185681427423418663452314587255735313811551754673131165166314746772183661452131815358275538533732863321343715644253826457682714728585411727628714742611254287858861162662257878183536382687751284325638343167312627386864868731566634888744265265412571754716741587528561662651378384143252314223842657338587283275671843386234267621471533315657882425885837418754437466673454164365241142816146162366482288317726881455777825624433862173246571322585657664736557816382421171167626773137746645567685532757635452215341431263833212543483662534571831152134842782645115755547358371872441733831367613756586386161355778234787186626136564178826767328876828725563854845716127861425625257157888542332258414261772411678211711813178518516888431716843433526467872633674365431861762725183521645281658536471367577571133238371674377273211582185663632411648787741873421541655271611552343231265244576182526777356566831428247317323657674876161561665128486176337572265423822787731633718877372572313532632432138566318662472676325334111854375216754358747853253561737823112714252461672863263383531248126388884482132275274828154881216634631772186131733587636118587128123838175643768285841481556743468578744333417652363815638466154286315376475324332111738128255832146554281372264565312171274523882883776177245478738744251134673352222522127247455282371487742343813486716555774273348856511368484638713758436368662437438683152188268785715614282242451337425378681627614375711838263216436282244678723544281322173875645342313631545817756671554878177546126124312258814541143832662841152211874762736245387435761276686812424763143852744388538375344326526375844818485362682263155878487285773367824661157682135343515552276778771743175547238558148456224343418246478538465551124383423366752186184312271138667352341223721386758555572318343512373156638717816684664342545166668271157414888148268657765528687124842764225617156216223512172332255235253181226441341511143838217463373648215315426238884261175631371416471681586686728435444721465665574778557515327424644731424838227848471714666525585874848112655251417376255126761881421186424575123385632168677664663178314881742335735526882726541751281335777714285665155476755876111132713155451417728732448478187464881335275688348552321133156877718314755448654736285565116584235745737785815237747783482731547887342145121238833721632364226166815245661274164588555584512633864436383286367554677363746537414668488251654754685412136421631437468832333721244145246552151413327676316866537517452842583871576567222658886446426216515472525732328462831556186284877358755714384624847116886258256138631668165734728532831235326245177568154416647664375374788126838186615646875521127626363426864415161123761127112781563878376586543561846144443812567813353651232653718182182184646777557381424112882813771651171442716721425162183487381834515723615642587866644167857176831446814327748773886185114347116338634568648737623858635328287875154667581461683775416413352614374467681338141171382488537238648345264881371732181871362166567187172376422271541476488677811742353356834688247776627181444465587418377685523712446324872747472363475648171812267762513782623522744823716531454288867182642347753612377885464857852882674525657611356865515624656757866735562832151358217732577327148381242766243241854451116272545773472227486288425135856435816537542627564754781362157513618154143818243651831837324428357481388876352735687741242851264248827188456431732227245254446743738317177736435161143752351663288775122323125366433553245547228853688254412173234213214723463444875357836143128845352824283481748246114873873724641437635278211766332812786664681738786242837425122824616667885366885234688513171685165756834376412465573565847563636442383175413876113447133146174118428582363333836672872128831328285853757654534654717614533477881663148345268655734323674857145871144734832645183366858881571821484373775857211825521617154274726587125535361855278865755421114477512355183614565217623266731617663826787265331437611445332172624225233554436786248375465352172583181215445127354367142726671461211883882417832812256155546761262425661523746358732575633553166314483344188177458576365762231311626172171545876638282511517668571427347311313353148442428324858634636783245573761142264281478236383584243618575437413728415557661213246147123768762277654556848768883548573434486644748814337238147231327786545477382872251347512572375615877825316582527257757422872684422831338574228182876217852288566671158511456717652238324552644112817614376773838321654662182258543873578552254674235353745372718687145765181577288121686324244447163813852633771752477548835822164471143777185541174584817776235532465212111212473813132771874623473744268452358754311222781174788424824241582782542712138515545461457518587578514775126827144737856325872857276226131313577455114824822842783537781215321557857233713351353621572658873758334762565318337233743158767211287234512858324688761557657565581633344812621172585715486533518482665645438734488275747452524614741313411441133675423163215133128231735515162856315555157517187617426558457871164816471223367636314671611576867817851852462555536843387224785873412247655474346526328212532667273486552445138454782366383158228378174235338264314176755647263171865685118341356226441683848875185654362147688781121352276176765887873683775751141345386276812441726115311327137521783114422726433688421212366742352655563661547744566645142522756736831641284753235251447275671516476455148277584413227644842412534357248681637737835173717461741541657128831336832167332244174375318545722271278185544636534667521358217355133868871784464375784577368424247163114741253183247646353665748714478345417188235551547558567476733347721811531385127837164633818861545456731153273711647535821868283364721833634141488268231843751864336481485363318413752856124721563736344114868556252424347546632262652335242247362276374165183637527465851436661318634186681842167158614855436115716252728754683646242187756852165484638633553638584624225666182338588251721225741146722816755347772721445613368188268322278463683828466746427768255367871883681663447331423552188877866858834262187226225164568211626825618481342744515485588255683485455285368341371324458848625663766813774777444553252166474881622167247145624166135511175778725717628564117231325224157518621213514847585187121728332618723567355512584487127518756252688542633615473128814243335148128331282415287872167188836825566754865884437585847356444441171357717551316786857552881578337888543314148552627827312674164161146441543117248158381822682678585811133617575463221268135238434744511348475552885154315162342844672657744881487872661214773237413117674883638323884753251122514423141446177326218181262231841647452515658541275375837884775875511742442535468657467534443227677217834686268834261128787813678382485875187868412148323481721132211841614314874476631471786546844728478227726386176246375457647864575876242166366364516514667576183575184222274581413314327388274334378681651522731265534515856386718411728142661857787335457341375766788366258188875323828264427874631335153682332385543445376547386564111685623122187653251413861413711668721862157318578353645338455233843525667326334877146738731358826116183545315686784775847675227218356248838462317765156718732283118312152447865213846848628575346386112641421357351545315423751786478781412521326421452185553213633743283558377121167718552324481254668184533516648624875686611722385736573745284467848485745486644237258562442621437688658613168881665827664572141113136325765775878346354146331551421622572732233366873675475124131427882613352315388323783164374778481581356275256152735423546165875752781237187368643788272118752176378245267577563167848253548765145321144633311242826877722783434817543786331125251884637776814574821387688548274382184158646168272576246328148725686427275644176178657517842635513118855257286822627183644367424176146463656753628388456242553673266144688827612164335481148281714215144321621277558318423664213242116583588755458566282323753135356646371425321165565435513417841312884166364374655156616831531666175238454156571461133531647663136425843246133872148633545568734518614524357321886434513874485652152563241665184638381176417774526262773271728723285882754484664687276755462285382444135685788226845534761674827444754671743371615113663457518568785322552264341786428678826818833875171275642132837282412882124684544512874262475822642847472441757784725686754176423315512644637147741544223436737466875417633581548588771446864815778642338136363538366174124266386524326226577642134571233272635248362433532743851715473115153176876777278637331335384325331457823425453631673857832385672416541647688557723641667368751148742234363147223345762384771318374548318218648873832714454867777282364843841281416184512861713477238456618522241776655324553157374722567585345264336282511228413347285655123132381773751721541281327656233427251333282516713751131115576564183275775111261247576763835175217262666227326786164387115143716447255685181841431216624278365345151246578542445145378758663122235612345117287131363768583515561781343172443446535516144453816788267136437613354622538314427665174558314444285482257745671154382456424474368815186661421637327846615755442316766855328231261125756616665335588112826186476578373255688681536635856577543884482785364415681531824176636525732873551253437653318857362632764271343367746833457527273358513261435327264814183476675866583462511556276826473546334843483751851857473614178171642552876864428437221542313332651754851535887687276647745161727865575174317264656623672363424143488657156353263686675468663518353663758853832364752546226443655741134454888163143553858244633221677125615476662155813167363615221222373166313431454142528214785261816161276345248468385358145223341445541563228314181461113632323373421841423146844154854374226236176725237813844463812677531131556836844414412564858465154617478875263582862133552773213652148547473727865755331542586338821863235561734187532825668143355413781218458822158578167228382441253425184167487282335617342214483721356476872546417266241522776157356864348128685415572262384436668838122445686822131838155413848573831344525747331528473574548632157342763884751772114722238722576877445861671126535247157724588351177464627884881763485448432145824358812638553637444188185415775383885633358526538533118467233854677545116884516216358877554478834717654141714855872863864417476343752643613481333814231435751562631888863657868551884137817662181777831332574542326454575611367758833771733758637451431526561184245485216375267885371851582673421471832281813788671552228311553611421265657482632874718121264543214153827645214232547575415634875613446836768315132456675321337217134718247438435574247657862815646672115861286557555783451525684467575432255473412777263537215241144478534842747361645617743474521563562141836885344784745345458753238525288738677816574245564648461486575647842134422882617677157526414863513323785486351885477761516566662756153542726161335674112543333837544873166488555885857622724558135652215773185485642318487386673234346884871385386264861845754414856717872218416228322878512188484271377751172723861377813774232872546744177828642311134476152463158718865252432367226317675483511511322532277172434888143151321288645421187652486782524255844617662777828428451422585888327532563822125185635278253222786185846876852684838873534728318161523435173842142827453511327543336533563343571242312316835875265727212134166574713433863412322234166548274173343632557584613347733488317755716878218273844361157387715642388872588362783431548435115146786388613666547413441324516187711267884421347178126286564556247628428185227428825115263874821837217683233826721337631344746452331672752654525624443634784684837266456716767865448135223661528284227162632518866266384534465678525185562661224388825714448488347274513245332621354682378584715755838527418314226831511767561748737581852278854613543424727173215553656271636774452623752555765781348141246434458618268373133664716186283571823146324555711335582311628833154347151371548864512221351658153675775414381848873443523513315565223331341328317445536628678272214128851483644422133124861444847351216113865577311875365818167352643343422613438243188386656157475171242152854125348223378225183158511537124467814362864486613631314385757538274728112545632631471458735265588846232686318863216262886167614412276412321885117613215266237175544254552153525731416237721725532826718654827786488516467532657525635485512474354556336887854254437266641232426636355225187822771243252815347786752264843812264773652344642864372814688547644754845157457671425131136511656573354687381643356773373855481386344221165845636565161253371137668884266626523588223252741385636661134388224663875846873161132516655612745481448146528175213457758666813144327167147778465388177323231248623268383185542487666732641454184611127537831511256726173151263248551716851234124582732522533226117158322312371248384862278257638763633111112726441824463875257133442125681275414283876255251442167333848613277123186126171134632688185684154736854842116432655775652784438744716283333445185813723882356182265221782286434253222451284267757438617828885428878285511143265118241412162172335523243844374545311541571272331343167175338743322724683626738127625384186552821882387128282363882361458363812176425374453282611685313453232318556782717452827358176251833631673472476845623818663355341184238584611252228117433118124685161875644562253827251131862815486261343577488252546273752577827281255386153342268847717665213672645542582134838433647333561327518278111381433775652811256858371672772166575754112613545413658522167218221281645766271257684588141558686622387627267275866566427547217723267482137464736283683225436667618847782142867613432558238387361757176841165715783332341817244645737441147251582245813653652336841577267154811681773286857617763483786471365171145325748542761654667634142761687358782864613886852612665117187317768682114476462644331231857782683555133561185648567231238376457525866128512546634636413878348547367866718526868612785468841168557843182174132622545758328827571853518137356387367244472612635318573827143236475376373825235872647458746872656868673712573363266443528781858848763545671353376511321648824386817468682672712241134323376164882283788167641744384184815417386582837548128843163444673237335746438357844736778854746233482631825484265566872231785817771777562245854224777363824888658414274646867754117381248214755462472672551771528378326432841763122113784878643513677523128875241448562226315776214153711118188657167826784243134424534647457712641171763534281664727622258583464253587856651586223134853361541372421646627673626673846878427181736823577268511437277741654642283634163366113833164584317267486153466752352318378264342136831342311617348815682874668617214412556884265136464876837273154411668862388341685811211868731117826755241247747632633133511515818714534122617267742537633352282317157227786223538678111187312274455331567442382368335864552343757646125737787777127785351647522643752412171482262434161348767176346157363688574187718587754718853111331412516847313768711333453442763843157233414365218824326113681857445581522726234714366314212186161654664478685351373327565777288622712261346383416622851835587718885444516545231624138658515613424765468488785448667621181668632647332582888376674743576672858822823154437265186325823834163752482664684751183255184323815185581783455486232356231276385454672286326426186886625618235837766531173231566682318666353323114877755184355576263413645644818231157524287643522617284686571872624832388565877812433686434533613316335544832252624635331535685733786123446723863521444465264854637753121678737663554433437242514271132321382121856844873648566441178664163646271334454837878666874226464562325814674766454157786511134245437464816331716175441873733476175324235147336183134328386222443221243515732636322364461575453317261282447612687635287431141352556856126752768748328711754737135558717576766383183888456886177526766214688248758518247883612488414242855656263378725232555875243655712227838567785723734763838164158611648764878625173371825577648472448453437522662572423654163538444128881458431155484375175658136582278474177235181563512838442474861258464446548671434864427273525571851856877586454244557582671767438252456778212771631342532232348156252154755711588785477683244422836152466437716657446662228427378825784655216123233725187733453855618354283658811357161783483624822773778566551516442878343452837654412844385262367553122387424654137356852556466353378658288475714212123124616123753434242782177671176356466334775452433585422543217142768284276777111485424626684247368761144163478136726584136673732883633313746312222667166433158438817752142834446818387328513781457826773561422866286783575652546852772315358424377574667324762488266357152613515171688471418241467471814523561845333375744726538234224324336688822354115215334253766684226822181141541823334116312244436821235261153242683147582548441246765135832877471877567627516868545753317768138825255581266315351854826534568583241355623367768175657533428365521861563756566164111325221265156376875772864676465544113234762238417558814321263748113274374487588744438686756127628327566441513228624578674456163588416173747358355131374585568537112885536473313627256231387882583733537483516522468173225435862161135167581764723576713173148221362761246332164583544445148614512888213214241374223215671722263116151382837553161118321715523738286716333835562458784454842357674666412614322516774733276587754588311663252736836628887748161353563114716472825435714155163738113875334862142218544268585583647626767371151484484314634117621712383354647773226383575458425351575725662816381362222221746876834281631236644446641166541587355356585676166836354351227445118512283286633721177714786771811571681321628231814774516824535413863645331351753745347228521223833782165278328383313716471146816572668785224352157585163748578431574138548886835526168277785584876722883723527553277261871828834772831825735641788682237741612681377347281774575233646137621648261772264868432672571183571428864481682573753356414272184737184365166563424744414513251188426415674661481555761478432485186516646418745584185122685156558872355162847612182755887736522141164844438387862763832153812258512421442635281253644123562325724232775272713766221138661724738182382275415865517613517386838472134742168241837366418252333168588447475535652845714465821655773144472111521453378173718427486175554768627165166835671547661186253641154183514831758863546341773177322626166788315175523317572248883514288318486131177263883418327128782873531741457533641778521132133835643165485618152865125662448756584731327682771834781316282564687185548664428344132272214166515837551262621763114312387655783725738662442787781744374587655115664432553514834227171338535113748522686216281448672325817228245381177812856441135182653154738623628182648358811253316348812148843818865171735666873287257153525563258451764647666375716124683327844864738138342351128183125165618178463784525515787757845446773463262217162372533827546458265177227171882724334621288612176213435742312547548875336376362211268868286354663461616687152177348835571418258434661132646173884232723385361121637876371474136434442173144718554225275515352282122767112152418858578524672388647351171443468433862428157358441127644684734563747316772651336681574767513826643588831358184467347371181383818774451563341883472272843132545635433133883153887563656754363225151845755156763382674412761725668865184367155424853616141265261116418324228583334731537725182537462325223125831178867423423141568185772575575514872611365726636766766843753271556572111164811363765611853236564521188544725858681155625333631562438254477175225856436235612215464527272388877231254112246311675815165656887558152745713612317217535178528851436334488855867267856847863581124423635336872655163154888761823852553564145613581613168473647443768822752231348567334653444877231726211467272252838156558864627846474233532244417785333237785632835116586841235126377842524432515555758523743711262713266178275635436631174317837745844453748437123382643226248612226425485872868516381684157532872413521274513185628157761183873565284156882842133174172838558535631474775487473771826671635414868866721381572258243334723327652162873212853862865176811286274615831636855282165377645672756458434274756486531814886431718155845347318736831617741387142811135824725454745861636818347587448556476346741584242453871466158444743382265722716142536887555268373461575575225625456843144437586724785262561673623684184442545444264113568376781883345716371164756163822872314557456311834274185335572841256872865526448245185875328583412212673551787224576334545814152763183465435781686856247727655464661162868143134781782147878752873586673735352641184131632873858147573451564514553643663453386751131352734452848463632642363787883342571627756555184473843288551616652531661541414344631358325182347443451353175776736856261683551566386215175788375271661653737641448677156881447851162227621176381634856146352238175723683275547353228322325422767523514354871168837812483474454482145347474735281716114433767321471282648436273417142134487354753423753213628772825222826271465848482521634436846178133412525432838111411555446833771454583484137756328288242878714586581311478311382764452873531364813274573473633541674353157828527481521833716547281423341561212168354553566687643361455373151547454637781263582613583837388465363234461772765874277775325446387517175228647188558838837346336713755784338882685315115363277381125484342837236765672484885687175133866117813316836658776354551178837634887552743531253374416676676452846474788283311341441433463635137231252448657531113135528345863265786158256476714264363532355835563248844166336335561452568413166465413685842575716652435523666481835477714763288733657757132226222312371415567467476865355266365125638657778672887131178772233316385645426662188261681444516815682664127461135746867754652116643816157745877848546253678131551826785842364222512374263581218421115435256781888454344846746834171122458737642368462341135388547317626877475373651257283216788533331515677666178228315514543826585441755655856741774171327648586313676754533875312718642283317352587874411177464221143556847186272282235577525584654765447811216871877558844218687237738648713587667662624145276451565883143252835166617435656381722323424352677451411384411864577436455565337541671657231458114737764623737474748255364287331357446525346514838423162767222341112382528853758281614143147427447353657727233682632576724766477377557661816847833377154372177367241846333718378467562636346832887125436317237886783321457568867568847671423281716735267535187716883457564125636342351631747773753135771272832457824277174276131723784444775535432865531717253777268548354613263833862832731377835273811441335815224468785621546328137152175861737787224838563478161517662758535121515533114331423568725183448438483773588257515875747423221316174424137871137613575244538466876735151542688737226182326231143148832521376522136615836647114643113632173662747466624648834453256346558751666771236762682543546725438561157888821586482726843171782532367482623753467823858811533375868466135368453771653448548587115644822383457531334658528417432335873142632768745874432827717121212383686324114835411538353336752242771512357645654335142736643621627541715227636584443384182353366527758714852338832214655352665862622735612813442776312255825688514168224387243182882142382323454141213741135768138154667354651824656874527332616261526575757461711337687888372367171368581778473873857332515447123417478332613272665147786723247327578816553733257435316222136313616146717163325224885458312464681236672486735661677226627466266321478427127178735453178875314225862284822853278654434832314527144341783536136474773211883362654265224741454737633438116361386615675712144451875583254861632738273647414744486528852128641237436775726353441368761235378286713864827778264554583641476545365366187528725246826778135843831367677247346666388583248761586644833812687337313375244286881655225153587785726526425362281782684447486455532261127418647445168623677716126345457614626853625231372876873446537163184266441546881782482526644675488127576848685423146371865633413648123116823343754858843572847514731285774325568215864442624171631428546283567555848533352462564381431568422828542357678812867213646547111128682763724221538577742423745466414327446652385778534551678342422833645624211625577817633123421528366582242653372174525188266578675613667551768467412535752312614582155417326714887668666812724243414472845148771572241568836532811537423126761615476118756672386685672341318487817426881834212683814435126278336171645541737423472175673452422224461288773468273355524328876355636341273367683247157548566263528568712485858244126253666574511313362185642446558452772536338616845352545836256526564715583121657158738742322784787663274465236741261518523733227113346181467344855337166727614812534234885622533541527182814374733814315124383658167531225527277311136683282454673481566823356222156625766277455132266823636614812666142452187137883357742521548853223532781861812541335351871446142367834476134623476447778863246151412556331876715683418723383142534518175658821755164812518576478172551548548285657655163161635875486431212285546544878424347785243734145834547256862775322632461147663466882668581665576287351432885173422864364213382434784875276216781583865545848873116712734176142236211343384367331155148428127413461113122477526633533622436716322535883881885413785786631366818752345727768652225852873137754612766623765361674342653713883654436863511531211146667717811528244241247484184641431587161267225567782782527751763267274538665648427675836157484814534623723123845463876168271411775264314138211213366331287856864483817623754872185772754742747214473553117588134457552536147873452568782333618625368341756768717126223441257342457363581522361526326328746326581287174284656137367823434256833716828628442281664841638625867858585348726367852344343188137216534882443753246775424287222613661766188458125226453172537445884625327587743211523313353765772258844448567422486326672311164688122584626767627762263623737621236627826243468228353476466476187363633641628162418548387353251317817818774547326223715453428432675857211362614214352873453882657548787785527632362464136235483546517274578677724171361611312688558336268675638265338612534533771866431715363373815173114847788227622235822386331655667247686422631752824573354423366654717888556456448567765834318473213518431521558846674366753837177814363661136515454754588547573831855451585127746274384576465476642188236444822445185816374636321158341474738526568332534847758428216646286722611555578331482163311418166888787612854716624232484422511744757754451373258334314242532147341686853778611864278442311768263874478646342276251345571374362548172141146627483687727276758364747734662757678518737512441857423583514451367126515165518356325881632664487447436236311445261485727824667688584344157365611886727642433142733436857412441636668687588445544543161753163826555642331265231475345871237722382854367422785312835287328445323415425141662354466142314455784732144623326678172825754626261861123652163623663338476347587115118573554747158411864824246233784751526711645354418227218444773712274477822645354235557847864364636868173273744784257273771887754212173612646872284365481172346436466154125111568618376128257247376555724162754335235734123738883676632627182772366366538712672643888451364185318152433558441628658548136417282115871762155746181574264551888733826232523531677552552785667612653172238551641827253843552288734132318373587731467585711317358845743631345351534253545161226751631862563831847624471544367535673275534187738711724848521168172111347213813162352557658274821531323547336762154145638545565417746477434377772856338516324756457447128428537783641534113237777831438773647163377265711754264746337836118753423288814486111448286836367488778515881314686111771663358886586733418782714463165721124614461722664488667511781165478687814424186328812765512723147236613767175164538244741371357241126537516155515774571837654587234411816182242133773831656465441222672437113665676215687516833125445611337783156255472587522145342375477633133836426677833856817736364756567646622662567222827436171811744815386684443462453517112313345828762642721226447476628874472853562377775846272155275483821457136412347327563567486885225512561257455447875458284637565653312836224278736736715277855725277142115283787838763887425277712752373252876344812374262826576864657571385642715335463728825774651874757458147515241542436416831265452817355142687882477846743715626811814573772431753658367277448154386128887468577517422638533748828518468841256282725815154267311181262774656242254787123246434362421153546228185616511776667576853164431737565284474613628352427156858555658561487345167643744727328573786235661128672841275365364373338537655778382431331777348683383777541516654183515513462421884385645237425755847827246335153445173427586267431117285834675216156478447358743257344111424351354484284216331714216821651447318352674318317337788414215612645487468552354528754613465153663347411866443362323886448838636623742132122271772111388748378822338347318173278475786465887541237554231843381513375482665753165858863655386163115556238115688753537176787175811158553537722584817826646284758721417231174611157446351143537845211614288221253324358573726447731241341818836174185537848831116114687173487464413117225274485738166545471254873227716757372371568147158677434128417465825851864574167347774143312728457268328613684167821147646743766781476672324452682656433511126452667455522831486745354736663784166118171577172384562751664887442522828444867563266144534646152684116354678554115557737445586731264612577544331382564583747665641112282576631312553731226228383155238437535263672512384868763827637257832421342813686175255874464378712368388646872725211256758664237185183758428861835427683277578558233377223386148486638724811324151342166688223218475731633521622147358521334451568872885681887624361345664373632757356285862127756865642248386712153751722524172465225468228255286351631264683532354214167152455847238288557511173867235425472713132435216655236286671384363283817644748811756384175263332433518167255623747851846331736487411123482445727134856383846384475543513854581617416811653223367586783827337767662888358253435877351623253123744641462773612372677126482277624667434378266163154343317726554554118785281556842175133631216234177414663657267445148824263327382778738523537135521772153544135763162351671328456788737856553783636415648126433675568844137472422153512581745176738124137212652612647614688543878211454463488816512545412651386882168387876452114388751432788128827847243518533173847735255245418347114386437465673832747687752284737855728545258786477126688163868554588845467174752525351318747873575531857561161555861211836563575644745455657446572566436116571764365212548517381273884733284335878153771322763337768817781137473757764371628267153858121152143765173327864663344528166736647284215883813437782236452288364551357284866221334142812115542187375451221352354458821633677388181768454243428161127474731755437267414754863874212276246125828124471747587336878665222515836223351142544672335267667668774625311762537636143644642374841761133251345826185141767514136255625516637732547438534722525311624151764543812732326448634544121477183277872678734674613874556584142361824337563575134111688871238778846488364252463148161855577751811326368244783266782875528682816584287442431141125645277887438883728323685814624565878537513165654345527382182678125427286556318288488263228784318836873153315472282222386778857115331273824245254465537132532831514573478311252343687581822866884563874355165364464317156867375551255171614178682476327654282222247267384622632776885544555338861754212885413532246371776481686831423838851655875516858878282342835474724822641761121285123118238573745563534273627528684135181326353151584386115628362786323282767332768778217335334454582277888655684587442228788743652183477626546334515572172632435416574182855612546525384258454438812556851475858552134548661144618275851843373668884731815745461788265721217612738821838544583812245243323651441852412444142432824678425173572165751733566858255775187478685244646213112317541111311338157471237418455543223885288327163238243634183578173164622563158766237316166253723533685816488523214646232185284226113436543368525318457455713278436268148834343214834882222773853227647328428326543468541827617175474843166543242385135337881643636365237186765461865227771378742363617448452228363636276188817437564645658141851386256363465852763462177753528666852165164555168886675166225528414441127316883155444324421752663223741568316133756668688381413613213443872588834872652421813228826718375753553276733261241715358154786737626847576767261532626577618443413321338446646462632137732514747456188673813112141163247711485258423627254856413455162382248874557711362362537138363445147754537386231563782821128553822562447632576251676256516872656136844146227268653657437214746862555661633365136647271814257366767357863476237537146346362381563528784641412285662413335185233786455823134582537387368175455413727858831273246768254537816282517133888865311818321637242574452121646711652145815342157232642653652566462241542753316618484885874374248623732473426323165671612644338253585656857761546455276236678117445252424512216882652362482556543181877744142478786513864575324843745585686573634665612133681554782444564214854264661351237577283118548763225184635833868625581386311573221671422152375153784836682777372651536347451122215537786541823661727178463858886255267277272716428262718524847415772313144284376161166523881575423428645612732235168545227513746113236524361267483137886153761172153615858743758124343787313633752247747315345571847452761853627251587485673777163488684577652761227832236563617142466164575562521717116538482682265746532721422615341733383534417134171278622873476154157454144713436331418113428385418375143572132683211414147461485616328627547253266866751327627312342488647337343587214337557634867663337241436828776575516534742135561751454556864621158876853364178514828716185756661245727882661671337476461515452474177886578811127231145455358552336768362451378763466831685225186754427187536221742572842651144778471666627331882746322637455477764864674453142373413126142474275256248134538372788565853376644812626736248386162512474215252472371383161361256764715756334634134242318881785874541226412353253631864225862627466514221257546551865854558284825427585542454175654727512715117217726545588721658166154783275575277744644584642616628728133142156324743181431346234287833441654863726644234636273118156871682188286222742314446747533827578714631272477382253678466351675124365358342518488123614668181265518857431646735428742246425448138482677312478447823832478225577437231267478353182868234836847858717452878418414818745442476173662274367483767457438375344563781772242616132665343276572711636852388423745428758773541812517141388683331736635221782621868714253154416776418856223763827382447254382827826566877242844458717232118335746342167737182855364636746165626478318725442828361488872764565761415852783784147873276645714764715718678288237382532352552136382612724542388536633314546763252367218474484722742583525363582236336538767424121637541568615827812466854856684524112625835172237321238255661244255378223333372525321421333583758155338471871637765752616231637161478644345618487718454263632141257142788516246818657454365436435483878263415387785668874272211177654478577524257744186328577231851772545114184226657568575123857722381458242776858227865812222465846732643748221344854622811785363716451734846441112736363553327241462536236215377386472418762223247682741363564461127253216755365617344766862588727255547846534661315317434464742887522665858431445357758215318852517732281188177776486143881653286746278185586182118662771562468221365621576216553532781446456888384756767737481841528533882732127471287186485413564726457618333874543433642355766322564876885462315821222842482171711346187725383285584843232825881665355565351368535823445863888728351725625581634222351448213387272372276634141252457452724337877216483361433285142272676851128833178863747165357651265321424682511542358557331271618825253742846431762126651643262318467487257654531428352285217446665586535161218224515417184462336233538255555346361572233623826124776415214173183274266761364361841247245526777838755252281625322313652651135855118185758323275587634784357127487337474773745342111273556158524857187841868228785227631265376356168448631554268848131542328768725612873448534651756513566667431311325535182786644816545562378352368523656327675868155751378138165563773553637116277326376453416865635244666425162438287168253837788635737612716757538537356884247544165222147782485515586224451664148768714315766725786566686426458677154537552434541776332477342823658335674633376188525862574775536317314357847855243155283478451568545174822768281374225667267682644875525613154156335785867231816753457453486858435554348343572371261153715772368463226464127667821182764828417317544715338688462233864638423786564144366681844841851663423663886812125877887154678643347474445135563772651561138537834157736488548535154838536431875813545332153721823188682758648741127175368155372855351675561737456548617854362226614762358758165665371658756288737636337743112483224825868552511184821113215153342381755263141687124375412228381158642764181147551162775145754672526813253451537328657663834283778115481336556271285513685316778874535647862356482123365646718325245236223635346622656647535357661862583243817754147513218344423431234381382135221672667656256425268588867374564188533745332427134181873824226337742215853312212427356721248264866856813855174252428288488236582454678255121413831271731548253813315581747117135136183818536773621738258573224433875146515564228175784718883423311533264826254477532577153744224266454775562852363338348488546168657132586476545512277766747348223846776148873144637357417321456838448521135482143435351625468343745364263573563385532856687278417523865235567622575721174725845332847833147311612247284348674171241645535164288165154468531834246241422865181378214865881258587255152224678771376557151262281255851353563848425722545116566615437131454668358747684624836343375612718174768538862685747314188875876117485288442654316165576481272173765226564416834254314446226687251712476838563331558844388241228111884834176663146348671182487286553427536156845476722488314316246316643517163581282674771862677342377863313657845645767527157463627563434616727313558372555446746572447747661558656833763238542628346475337628823464857147271781361572271367452821536184843226851433672457275124144378157842622245182264863867151426123514756371371344772128756322735645584528688254454437618316454235634311128817432455287182367683371165885832767862211662822325364235378443151653764167131215615371613124721818646123233482543272522352586645542332585315848811834655231817137828624877568511761644162364748157537874766778887884755653541621773556626858636378733825335874627154212347815624856416733278174434214328182242412838164878247647582544685684375451863114566512743767137277451444875577776431624167565138135672184387475121227747587466511338685214334233862641562358512587713761735857231337571737622243668316756778871366631288162152252165765661824181522421834517615267164724688636876571653646434643812818577574368338526513112612761612627718645887225622812646346417443464484714125467242784142525745677478623742425145267331885225438421641617534265545583443436118728632122182544623746287335773477443447864316326846815135143416256884364188211268118617126145278113516652776375512856628314535622374576548856334382685217143545885228581422616427184547368313621385287234762487847273487157563654282775346588265288646756717421525324488274142722612882488188521585386538264823738725424476873385275252457225823558758774426352335272182267226371758868277333182783182755766728265664478612778547355517682735675473134277878828156788485372331173538452745115832818514115766136147748771582878471412123368537462657462858286434767277463635364832731667271426233133534286176536466328321276454132644687258335164587851217266785581437242328256144662487384366814354361381685526351116116547413363853452363115672778512734281114414448524234868282235742275755235474523225512728661128832574755224347264681878214434324837767157217321667278622514221721745772746422564164737484545437183415474755611265351736652642288327411141822853525555213151746413264346717566241854453371166162383823516115257236234677124412336265685777626357155162523763874621361342448531425656376647833823741215113845773356331622412525425511835463533423387727874638663442244873341572385382418326445268445273874486473556651638714212675213837884338457223784163641863786786154722551684748141477314643367835251645161735484642122331288383675262236245731882183816714855317774643536718237771731727431447364721685834363361646344833663758376476824683141448152327266448416832844512621541131474676535655587754245663778458734483867411774741447723122133116848773252656364627626414148864567538273746121487274484678455862116555575387285158345613282627825576483776577111153847485175131324866233563713162886343672211517262533546248874222188583143115153244357833824424736541384637228471716631416643433185782651124566421536151362248147581374745275423641367612874615238622211877231834836573655632477667151725817758653545136545773717137265327848822175533821567655278244834854263687458171228846318534818156168254878467466863783432313157553484642352743752766374567245756437137768273124811328725885556364282873318226457461272728444831657542722465326224588781575527576628725231488524187821126532625557472835612171714121146851412714524473113411135226845155142441324426445811885658481767184642563138652211188657612743377846335777231816434374718742115117246743161831177878785241128744646156231475271617578452163627817775886653528232285186727887671738778515724142542365185276144177274845376117688428142151786654184477584538767241186648182675778327851647575661848152677658385448316228244627466454518584263842568835848485787742228232328874613576562441244115357146562776752156215786711313213622251133883212411235248463668234562643772734141522738413722157518441846361625713781738856165827213774586285524737381376331312221254884418285212435526135486627663133524481714716258166723823813827412866831287524318262388615888177274372287776827743137171874767135583855218147214877378747156155223251248734687161182347778361132214318622176267626482672766775345853175828426134183545748268315827568881632347686668217714434425264471767711386128324271356636854525643746133548574411736462878615784124672355166273257511272831853617554347183861626786454518762668664271786741457865888733676477833682613651381544218157621675681278762311667441471312367213178124333638788726617131138253716343186722876533367652252476852551357715612876822468613734678831614751446584847478452815345753141282166414323672218715114565775766755685172266133835316255626471538888185665324825478461647422626244152551721417784686157415483222282522174182833121461683452852752428211162848147712534127268516168161157461413343443182126612788457782517431581654883148614355384242752765621846688417573166621178885121282884635137236588614685563137662573736736886484663572225465857774521538771863124143156282735534165742782557263733387743517517457258831547451745237748465871511128766717456145632287616277581512111167783735218837675121473142665451723686374215421821814786717651162853416818326312588367361142217761556148245783755627276832524365463574667573311123651885442527684682742473186585684532155834456852265118363428526456831755874685782711432758716857716585541671364216461555844857124687655461878418536826382716872425423845885757188665655143721715362476375261371486574427766471666847271378452443753661331155238625735378427426864178358344542685136761466865445473173881676161542263621631286755832261441174868154276667572627527822423543867317288445213876647144855163762641731588265455884535755617561855582724367311266534138482847741813832551332374314377571233744734561243811546723853782433882582416726624477188473854228421832855664487331681123746856612774326163477787315832553864435164122614718634745447132332117176867485178833876411351385786772528821487387345755783343746257446367188726173345216237128611676723164321211787387777422125852844212331368588483137264557573583835516723831816637787856352612868337617614348371532465764381433354478145751876617442638688772188681518573844613633521525748243775411762468485568786551528821221783533334832441873261387754544657834355188148268412673123481316315461573684541365774745565276224477362717612871337222831825657468644856443254576772865451277881451281733377583777784547114188543322776766282486751485555812436352732421643451665845487626128226121686522443553717736441734366267472175128362288443783274813556386385637771556525681142723225164313853748157532545682742855171128681161756152768114524877737141483237718663654235238135758456443221816614153517778488452477338366255631767532634835557673668286652556625583753617461241634752453642627117517482741117351383144741748166364622556734735453425785173344484261142841313684547413874687217141433473417658577418484521671287254411464714425336276747655427837684231154728378272117156456466522727373673223284126281625658114438778468842238283864363388158314154322827237185655147641641413532573271554528128826543136875616188867538248255143565331286176445261513544138231268143865548226181787186153836343217341654448163133656676425425866282762154463541324784841733516521383622162781276474721258277865781683687141136462244811761188884623645275345377223866288228124613686188227142712548642862351616675573747878764274333228375785814261282367585871851258227287751724345118777261875254471382355847152726413865377372121515868825118542182612223436543433886858737774148548153867687241227337373486638617274288586853417867632267286828444217227646873617547424846565817612152543837615863172232335688144362552461738515416454734377321358766688711358873841561474384812314474876627522626332114472158835665261241178382132445633443547537586548727473248123318143844251538531818845817376288717737713353375826575724778633415645681668457477865578443425856842842442563374372788782663155763434683756246321822625744775422544171843826643423668115358673652265172761121662567457386878633154873755313565553243532357562275743648267878478527741574112842226173441147723671466774231665316753454227141441121523223156167125122522576166678776317626512211544683141244671221871888612722888357766888278861874231488338154833557636888868342216334783147458632884762361683382127763622447488461182168511736163884452886758835164155385876556687636534341728571178733246848874778424371434187188341447433247458886288848255114658616764718225432426337461161281666134842351227155743367871514435431125547225261236622374341251413672346656346247674766346422662136555686726863855841884786137477442212153538287524828115145383226778713428831215317168261664824218317261437358471826258273551147466486861577432148813211441611218281453117167235321224738126126154211674384266517551762131878315333281268882172712572611544885262845886711667416718234445351771412323826314615361163113346426278122274751853747712836574248456382713624327631651655887717615425642676218561776547264883833763768733475653457128858156743643814582184334842246255888515117141812574351322871477547223212171226867456185136411416345862475656447862487137488215723511876144476168188274263445612153758167686577662823185623817211767562523451147318235725753636543687282136723186417337154154465283354564674856184311313581841221547747835753734716275586231622434254371766248776327513774838752745547487232234223622831858448446556718632756586573368452524157477286213442577426112137444847667223488861247518757864746628474187612555822568335338766328733858573516788864816736386764833123226114228872535782211238161672864846815177486862351144576351166312741314338334335818475741352432386521626532373183251225514135811121545375456874253137538285214227268467624441655843245856621814887651873628581282636235436762482581224267781676341171715214367586651111762513166546518413727523231414826345367417811276667827528385241746528187484213385326446327314138764412587112655171754485874772648411425522781141217346112387314388533111535484117312441683228425528247818447514877622424378664331214133744387646156277131625514338131722752755144482341431175388238631423535145125526576285371578456121865412455284318615351153243822223245385484564274631114538682268736473368384253814643412526337567113223815651723635211738743277233525784876731123374385257818445341183285883737375622155322546576158552478416638381465663127748744161562672171776581647353171667645573784632242113322424815414854213586864561745423737634178774254513318711323556268143635815646241724285682575774554417256881612264247282833444878635144734314265222225153541241382611675673553656736288882768711326824366735821234487442685344183631481355117885716181637851751866448883215214254611775422872882611145265317687212463523765536652141274563216214577245536354474114338686582714642334255173833227536782642311746277846627245221765665126454771324425367547742824615262768633258241638326873615687174251176851455161146644823215425517185133647834348552873232478658376437636442638785171215436334152144288148533862843583811472522766312475188353358823542686757365543354574571238723537456176114662652171666162862346374386141273331766523635362346444433344243334172757275556621612767158676148813774648833871767467177171211471211468446756881418144546885443656563537631377282251618862115228665521166536368573215613164463123216317846252318547614865521667642224786841156673562234834354453167771262868217415448262366225222528385321142336764443525247717278828422113563365643442227453833883764155641426236482642867361755236521381326854265341481751863161885434821824748575442632571566448463617151285865151154877617145262873135875273544326587545143424824814681133423378143476457355427585127818334722325377286445672422573466837288817463827434137332114762325268887743437461354388136333226315843466217545714575863877431673355726548577652216138681456185684161553278425575881477266683273332123227686634622117618741425564177244156762538163854423861616735888138265285132556621837577737715562777784636846831773837657241274261741225728823784717436785812575686133658616862117332277341717462556516661561145511333137513665786421647232855541546264452652816354742714423315641255381432458841233136435484553775853645641631133376338868772321737154385445365823231552558578437621147472537681726164324535551515878481564881158218181727882816572116616883571572472182836683361687481228256188327618834166651771222484162535675127731112885616688121484284543241473325444645467316475524423668827158567815342582668634355654111213638517183233458375658358442782355241272527618445865788227828425827133254335768544113325166846264687336263664572624282358286443888758258341215226288741442527831583421512528572624537168865562422745378336221256314212122777184384258457882646528837562223587454674748457285741211382518156816545842545584572385855617547226646558253786472443442371158534137875564172522264554723383624624731856336144745867786668563128412381475748556712474816366336473147424178345865534814732441615664465333672756161368841534714343633134364226455152478883756362871427752283342647285628165736372111618686285782487585447562433321682677723387576351638511162175816357215812351718347861626451643731643245778151711636417752528253426424242152856378134648711566462557558248312278683767573222681844376752441542285773832113883738267151323517447346664421263825464338828283175858448211645131513433511454362446574844816526843377676776254646368144468622241854126568387843761836576817234276121326544232263465156831445182251662222524866577331771327544732658286268564211487323816353837571313574176886232636522833346738855728423242431112522446323117847334725341857175147118736242848122362236438737361382261848682627137721452861665338144753572184676676163771241566521113851477265782135254362645568288714772588668677575436681752337717287875621131686767672441655825485474368727617554674814648745221431537858673615284367421627848681463533758117585113252548561242187371685666762678471246718382554158381773857118656835242346334814566236537681253865183754873481818587577732264568561187865717222753177158375771863441853735321357521184738816487276384877113562317187816312613254245631287472112541678787774138843712665875181843483287662636512236164111648665826877771117481525114862417145125331386178435665866121478175452656215355235172483524215238182682734272311211324652456722783857453284738734347767555155283757516713757656228158143542816366143558151755275438376473275463254751113152366142223248176856116481454177348324745643472116867422518331675742586154686181387614613821886882648612251116463784712714813684768835883858577211418465773143518218563815243373684554336142283836126825348432622478517868235441121773662671452643411436664667632777875262737351575214837241513854428582688144615711424885151326228784862135214734872415263235363748844644651813752454524528255855636632123224452267212673667524348151714184525543724473367614113282357423731442412384477156132151851223676771163383118341877862216461266677624782125456188126352845316527147565445744227563322248117367324624527454817558871638185836251875672587776341427351788182623838413565774183244248634322261775222136736352687648565547733546775626327723128241454426556438663555286141677852135884461476258746263714888816577671843666381412833253732686621148216515612267261487846411776511224617338635242351375161724516468383124845786422621223813817773855456525266387223656124555368658368682512877251336458614584145351765776544232686821716863848324778333558838721621222348376335517411644126314174766786624228328232188332364417815751815682337326682816424182634654883613883576265728775645524732658384112586451125284471344512561223737287355678432187212452841244178313284323423113165687826685214844876637427888151321535556288226274463722511268885722232457288483252152343361573435863423364112656228623343763677744156431153742245325825813825388454221356671212247724757737838865451783167363632838552813647266161727243172886728136558665668421837587556616146461352646185563473272366676286667835255411624325177628885244674128535631717331248324374248388376742475721743262141226824211563765488612855571435678732467463883842883341511181574634368133326744441373477418757786474464648383125431813255446216173284788845733378838588563666436874663417881626216867431565538612165118213575547658166283415748158776241663284341643376285343186157355175821785281336767432467686771636572332122455175277364252747611331445286825225622288835353244366154585281432372578887382641717447775538757627747817333326218654451463622225575476552536235262566424525812711112674243313754267232275281545268464675373352363847321544766148514788484135735122276166273838436627275128371255642821318424515286743281243147128453218861553476411731777543833884184231384262271827148574444416548682557182626582166451284515567217836342762538875221541156636678311565853621272784418648574847558567613222781463144667246823781273414167621225328237774578157316836322866575331556153514711546813426672714236623875622288113624388812748172415341785466111275755751451535666627884171167283215568457676751634348561613233853341745337765173231231781531447721336174772641254342226583343572843368474676458384343128451276654541422514855526668787434154874262642526613382756114124381116136751473413512421115724423134222136542327618271662622234586156348132166456736587776823517572571567736718416441834888663568464257461246465644661456487347316521681616225686342241212161876157744276772467513215812834118568742284464523633528385664688221556444151778386235247347653455131117527761185342673875342222612334855321331683342433175523414771344647338678418873456872511876758443171542378456755661335471772842125357856455178176128883834218571582614275334138156271773656374262254487642776113361661712448314733376454721147558187884887316445635887388282584847725262674564375136322264438253785568475364538576415512167347162432426655272748428288118162357232116857738551774518231655484586336832121676618276435522717676333721571856825671574488446673421716633868132222656672326435583724782745827465532524555412441446514454266663346262117585472327772773824385562657824553378254814235252223776623228717666844655347534242483283436271182712133874553252652838358778575835536163641538547854887356751837688356563467584275331346484647556834382353632722735777264686512116642131517127757246272367145815712528273738474363611825131734471155266664118773555844336278832877153276788588163873426755374738825454575421213515621217545467765284758816686236731425647557746458431383314154314272823622376488138241562243662812243124727542538341847263673871541223175511835538784666833513461844562854133115233716348215268544315545667343754375644251166137726325772448418321434122874244531158383564643458348134628487586331811581486583448447256361661465538535614854467781852544257771526636265652286658445223773821763273226358884372514417376223663385786261765253721871644236655488527756221236425686542162538664868368163542261617237476824177163426518212173137447651323787476212444441326168476671648773176657114528442458223464223353357764673848868368548718568241278628421887375586675477412411837254327763871825452871835767667346318484582754664733233244165328111528677677132186186274272176136586242227674555883836425711583238766135718861834622163365755118827587267551713247578347614511225581657783437352155686674372877237142518425478731627142272131587823635872417578653323888182861416455865627812212648871721312644136833884341477173128367764681576174733127357271632121817232276586182866754324216864777524758858842432323564668871646732142634464231218367282716152177313226231778477661131666455622311117846554665537563117253223671433214153753464554752227348145118276155131152635856546858751118356457572618586341636838246122838362842865841664168657338785483372426657766234654136474861418117126477645335336761732268523456485357455163638151653676333257382635144224458427434787351821213548382375457321163716657628281347266573664554226423425131421544644132247424888683175352568711152621281751617766727441617556251674354854547431213862247586582846558688521577266857486417116531155314623284477682562611478614522465667553327771881576138485656253837421568585488234568247665288323537751316715177232667274168264783476311653425487287288517825375658382785356458481584778564687626384421286662734781242711824327766313314783545474865338843256433143346518772365667287114614126264662716655166141577433358177664215554536618858371638437512473514778442671251827836754821164374876678615182818735252322748448412178212815281747666561715474712672878611238484527275172531564471734228228216472872644636243221542481875533566131663476242588214574642231254461854544268733484426745381356171482517345748567381162366155377538587457478657827518582857612566311247714127727455383113883828732141584743567635668884777552371366548853558343568188434525355347115376255747514656287424226384251137141458814715356118645263521788875858614187444552263646252514543353416228874277733861862285357754857873856827433524258271816187616653746811542127145332128248745276758451146731416672357618234837344315516753628432127424432871712157255783153667623467248241812745182554782733721447265747867632181735774618423632532164284651382253441855687312425867331631812352445337348845263557625511371873326263657487425322572838285114265856821175555837834132674586664615671853578318355623775776462653184627247218626224877112343234434351367375746548556546178731372814125458423873467133477677431171241162336743327487831488637148276354882545351343115515646442653151451525837716428517621283266837767433241318336174437283261548224157582173887131467136466538877843787534355752311227465332562333744612553686545142471213832825535452277581847822746822357184856773234423256235131173751174745267382168582116252421878548848876433464141267222675248458382137878458553863858642671112677452716641318354336348177171824171115623523267788823628534457358416447566872872374245486278265225344526742686546568514383243414837387245287571715737348575672612664234116241311456323363517574385758124381443747538612736586448213838353247573616722382411721527183388481456731488174578766157886888381478651146215621658333132572526345482384784765557438874786574841548428252284447835864676238643334125447353378553888378158377533824221686848886247532853628336851541327563658513583181548883112146271575467268436438718542481586367334617178278861536856883133356316154184875442411867566377813537874213581666223377548661617887416732428316548886625865631888228815646417163873548663648284418786226272621761742436762245342446321623731681178256778788832137461468275821831216826418166642541834186638757582472873375355282133721878742168577648145638674228188675452325541133425874548621385638326646814821854637181731457156285531453535255544384483881552274756574731121642354477265332654213264125857855351782316852831127256565763157883563537262561166656672553335362143324732847553546554661763121516577255715528627336813885773666718825854756682534516451468632364136524815864325254574584171178865737826716633622773434618583352774481264465366353734883222238246624844127145621375473167758156742818187187382132567541817813133838378567181414243537368621636772183615168461535131148278817833325114466672485657418533472833871153411165538115285618428265235266254516852752173388384621525825514131245566155611477211348542714345745546184158311358413457624433828637673476162373416718684716312878232844252757615553681852714616314111464565566375351586214451465178333357661771386436243626725651527512713323258682436871781237285568658534885677853463685248615672723283812813846682152523746453213562818213752425447587853638388211157156475468417385376687547584242372664658374486438437564188216834553288682124853826183487637744373142137626626864767117162557411616167128478638367352817546588677742511677387743845327236377453423471843353771478341271378741618185883113353411576172861136211633485338813367827553621134253265577461718355686732824223388354636631448512815731356721528438211268575253365114576871187111458861658724747745467131417735872118584418426634435678415566684664428817321413875544538717453156771658644632137682182275163381376183481443135462534165114322576822136147413868723751856535884362424422644881378836461167547625354217136531265732481182273164265111843568238742727642668753511556471377568723774647513716224622134554613764847726235565633634362122267383422831141328865778314818572236411118451726688482772568586238217252331326547667542312175155783516141334421671456415874432184261255746177373438823348387652145552784254538738227821877415812635124325844138727332732731124621286836137877226223372816667481273635582621366688317751562433681757822144862774532572657653674671226522772831536661487566827831458748534686638426825261263276311387222321213776248336384562524854221223188134325862558225131263166782521315624832273738753437853247713132762827433355628656423351316748658318571136457776713178714664763455214115877178361486427375686388536385483767544637472178487378872637223145213437446686773476358225337157221678775862815733172122616822246566278766438132552735556236242717684178731117171146711527266768183658318243225678657478213674666747514181635317718216585778538325233732186881428537586442528366314287731143457744635274715675783425448411821786151573286573484785427475133676178147546816415534353217268447632217885444734734673365174787465528385884342557645828541128721155178317533883185568641578616552627861656248267221358612417251878554613211747585354187517753368236218416773511211472666428152371646132618581617743621432342681463723124342717675451838433488678881468535277648148864232628414627677412254386565524757535875315235484421487332136823525275234751446161483737428413233244488764652451271881641647423671134228817156218817551316441764155683762612585882381533621478252775638243322256267847547235578287817252686856237371546645125282458137518414426853826472554861156866341428578874545467772831864471265785442826578836547647743786585338336877841245583575117276532575311614454424331288662841415448727137372155153485565182542168516467855213266667188634183825874742841885145886334422117267274213854861288253852137486888583518352443675318275331334137621368114537752285234381527835887711181533365513283531162654244358616535861264415265777323518676757347783762323484848627328742335658255756172754363875326364815173872841433843226773262436623481537838461645153511452766231858227833556646362686421482874167683458318722658456847362258771666347748145715156454724472147531558546314186333745337643165764764385287717861621728651522837465548351661865828815235855227152247441421181673683715578852738877644813478458586544826464533381371352517234321781374366174451177165643748213617738247421346642325427445234262688332162377315454435114821228388451312167222421835372326625422668551776162618544865365883342146271754863172847312611585467745872778776148267177625816383236156178167888322256515748326355113264137258611786342742226825178883187885871561321352428731561113116536451485253772635845242633225363363488385683516164863265845662828758523562372143154863348425254222337376713472834365268135782523165472726488433887848455156862364412684143351542511584311473636144172542153168313127271343832135254238274386238515246475213713334733313774337646181344653877425224528213813732641874375575523511612748318184777725574443524265826122561275213457412573416746521432644246452662246174464623667346545384361873216728252242178268124888357847285886635132453352831786543565612687833586545776276135856513267773376414161868781775846635583278185823882777881313557588227378551581577233612764246186745665823563237772288545565832382137455772884565871834638611481338577477218668482272851757651218812582514453738852567143675621352321767743711735182487751652648417633158457724475364283765636473544362852345313624267477748828845371627475624782834252372241214633454836325855437768528618266728555785335226646261886544258751244818287476446365781323286284174185861377764363568517747447158317143263456111642327857657633232866415125748376556577684312674172686252824122566751558242311414867717414334874587258257683343225423671671672124354287464828628474544238144878836221725637878312671141481258857225672678676226741474633675164761767748442727318213531882447436474558323227673663555768348828733613817341488234886158444328746424778314728127346137754338347684126256144672382586581856832427688853826342132317674357833481868275527781515511728378234553522551636734178248725764688421478762565863527454524635883171211211662745853128581584856836743452278117322571346688354683148362688163532654721726135288733527246368634523815351884768431618588145132264174486737323727875452671744211481385816411386726284578841156366287555534586446558787573314458131822361533141286632135375752284457688575233476588286254533472358771731538587425135283724458271685746434661652482738662558524825327763146376516525621454773355622372614547788775245814283278375752757547821456781581568188241583367788211552555687775377822658555871284487417537622831728685866626734748584245824625438126521116337585856175354124553626627581857487382361325582734264573886741273887281382126264382541422744466378142416731173585761667373178622812115165533136483623575863111347137632422772337422724384732674232461637715641222621454536817844435536682257774515577624634644212354231665731387114251543653637264548562822247813171544657554537855554242173723265658111162772676656888332663383251657261357528227481278367574837173468546551681384288623315343361246635284284842135637222618382658326264786466252212487144751118525817115284234631541126747264822758486182182615572544335627226721138645288841216674481841855344661851441365227274518443678387137767316675273278123521562621166334813514345471343826174887881724456537555176672546175612728713678214453154748443631565231726722212847838346757368822452355765458664727437336515715357772366618767644747117718226325771114886582642145533111862315776532764578237523644187124718274247775224827522512371837144688185163318161376635314623627833343413313512223263883263426341663458544721361427611765151452763852842436638336886161725361171748462881657562715352884236624215786743657667725411445254166643876635765857371567412868318215316583481148815761226585426784578527571144477456578683535858222537465217675448256712842332144517475284521268645311568874571185233551644244725258643367363861424388357378661218355138416245742486318531531848377861651517265812544831267442751783114345454387854635524252733847766441777423781553886724652571513861771385482432744851253556412351774523272832642757266633172746413744263354722286536844764883421181631347331475612516626778761648854373455771557664212714216724461333463546185287722822876166121452531436618254447513542811645158342344275845631356633575517861552714688373431676151745888182424844358667621446742237835148227383827687358426831625437156875176156368838572836543853415114686418765827155242353135411681175326558814443171214478678536247348352785737175244585775718813227353176737415687315674175122824231223646318588356317264427211827878715745468256458326415428465324562557121743484818738714363518283535656882836168536186832168418415237821185233136288583874556421658621544118335225487312151664253655588884656436253267232422578187721427624243256234157282613626518466386225432163672477477388232473453385877248214476215248368777573238426158741331188253686724321825272251663442587421343374217636251815312418352732766261747633313273223881786588328278426823782155485125168452128343647738282677768724225214734535322666837564213441882646486821115757183112134178741831628883265733571654174345421131432564614456443556626473272831765427447583378472526311147515425564414155735181152148874521874647841361618445358732285466328744632214853246721767876482813714331157354648128137161714772412371563738622122652742472374547526771562716832144748818183672537725376561458864126732538138686881688786131421647225228435163675783131515423452812334884246754825518653723518621448425625624521116848338624753672726272754452828348614533854445133116742146146273785268185113117575665341761342728122261617652822565828566548227753421544412783214356434773328282864816226553117355785424485272247226412874886486642433664336514446548547763682548874881466583872635874166356547531583226472827265234841552777268765642255724866111773635258144155178281816767532181282856215628438257467836664827174688622223356346626222822425832457726552858623552354273843834346538676228313852412256753326268755845873185658856375472618141723347172768337434411362315228116185387345466537188524574248177146568382635433468613631226185642773351231811158225636143365475141627286734768383651414431884646621285245778316315687762246283428823685462157343358431557272743745742336263437661845163735221323782744318235635546838676651878274222354716221178465512837835111312768586431131678844418668886817681225672863518284318367448375124588246125287378634161261534368537467286536886228457514241153588285528443113131867826545632461831835342437281142154185256861538626661826563818388485487252668281227854423534816157661616388266834442671824217257535487187254878565655177538255882257148711655687846112882356327543663444341562113126332313141825378377772384231375443378344567225434467817212214373282578561375255723866576556258762286776787146175435331361482756723611178134862434565533137637325384565176687273281265387352382685484343651632843161533183734117875453553745357847532687414251875237851884657426725158413756518577725873337667163172677753276111641345166611265176275411252671243185644283152155577637883752884548451526832367354551677367431865277567328622624648587642477127126874647673122822577272866555465661427243548332587427442622765511427822582776775125778432254463516575848665527184635312235858723861518753263746113651158821211886351515624286486826646741312826715228548851561482121126777853446338123567621715661462431166545253775338565652628432464617837277528674558545166285554626715666146667741355174336481551655858773272184474456462474551878183815546832263766513821215324883336161633374611235452322272125634688218851184658266245751324253136453824151473474872418531333154133263585852874181755658225857556365547411687264736255676582114518378218685725311543554173487781324775344616471857164658331367343787166722173828325428225573734521656482147881534584144131672223788277268522212781386112687165773256485884252885644647385187332161514683817177157858178284222431748381261415244725445727126231277463725836832212813212886237587257722882564186871684552674811423273883348558421744588286517762325425246631385548211838237872542775518117746847222742588371826182722315413672811755577128241781326335657286442225246613882241354141656323647713652361262472878445835426544863623842562383155276173161168422371133114631376243745644364445235517411111281611371574432127751333658831572132823151673653473528721262828783283648214185342565348226657233764344738487314438254663128213415332842382245183885467144548555221642778232766788613861767214646785274425887571441534362582368344175233828463467411176861147221683621534846275717758487341858552461441348263232251178848316528117281475125534581725566571767534328331783521143275713434635124768572822411334266462512676435753777861871587457568321717872746877181552775762438833765175153476367148611621171686572221583677278462182557437136475726721865146252127335383882464242735344213247267263614266412411282715567343588172666376754668237324674552566364217628424671837828713211475328458721134861627588522576523142883615714166458155636722327831237225534545268356848167777784478687143835651782511173531434746253371245315128631285173311624183238117815182538681488676662873416466127585683762377141241357138517752518458224278271364718871756351727531161522714577754653771355454315682841187631382568357482266335178865481225137414388817314612478421661121584215313552284135748164343424543768127577345723147773364835728528638478778675543314868345812242254462222468314748434134448284245583248216417413252434674456418381274312361235475126487435673887582265581374143465437485283381184282544525546172571158818342152557484871743555811271656761166357686418438116376123731248372683162466444543763821241677148771766273556485435636227464745248882243661271647836338413432284835322386446628262264727125478284662633275464747818668236877773773447741323581426665886715432631225255658272377578543685222275364125751665244146573463738632741662435864643447565422263241641468751415368622321516816741533864358832842533768182157837224526546515135611732845274266145316357518143152225737657234447855376646251382383756247174633263282732373684265162717761354728544476275131668734212728461451155341243512275224617568378723288358862276858836846156443334783578641487481754852823434486566477658683433552125418374657365417766226334753354425348555855446612256454432124168671326714757157114437225746484772246112224215831434735481667687857264668146877172733874387857565855136422786833431374617573422542437882156818387182325337715872645628516115167821426812175178473674863276618373366216467443432237273744467346414652565767172185677616767634785231117545686521673841215261227837182125217626434747488857255657465311566112588137774324743238852811517816338468264662754311512156327112117222532454158233421713364862348836436721125454443413646248225765784517257838627688561468353273165842612885272552153722128523873545315632413225567455871748632441372155443642718314325356877331223784766442757141163575612264377745514373154527315275753728254522612811128818285167645448223554428161134722885783451182248726543738143764758451657674263368675422843165186624817177851115247855615558365217586516334562434451561525612284681815634842123368124826117438456174825226751166772342158462518518542472565686556214357813512454785882335876411648452138214282227778251513436413126615564416837725248418284764525747716164632643846518448688446578816658223363261131611236788233851244256665338857218618371616441574226737182662432657277272811778358186163633525836566817835236574761828256634114632851754383182228316374683648872428542531814558628131836413352271738726657635726462641852223275517464614732618856348433424436675621518568555781887671632481418167227863365618751241541181685252146838123235144574852364575263535553211364635411364157351776838422823356557866483885611342251254847666727373346322425787767648638126325848454461558823711562651212833787526528636736648825611271382555881374474141751114281245777113255282512112742414372556773547358566361555578644846624343813288416448138358761745124853571382628518322317822142513676758387437782474611866222647324734868758551521466647271571613625836755741767576211532473348417113552213765651547824763453727661278678532473785761211758312331118158868543546167667414224455721353452422647825848724863485864275746382318658233643436364123728186414813412747374123725534568841434762821176485488411546846286758536178811587622881486635745158765187785414661114226665385781576437361812851283166761486277415513641868527771363526331833557161237813517662233458117254436831838453387284478285181716748238782336167633151434185531118877352742383857251164237437667171137867778322513777345524153638567661263337637581517642151111541878166475248333642531744121186646218123456182137754666247463245588821612378512532861413187868836626872778678748152333882326283641641165631714152132533188828437186761335428617465347526286284265382677154822585422288661157166373642236522438284612145255514415867422846627237484641283546815268733574178736563512211871513728463113215111886636762813628446258243652523886771485857332858175825181372766454668631366712563241173844173225466566224427517416587713511376434646581282824534543526325278334654216588677265155338331346157836777715767476512734712747251226832836677338868261576162366867644656774487243268353386136117841355122353824772823278611266318142526348751412576158877371274757734342673225853784275832352241841382377111452733548872385171357144352175125471546111666452838657664628722672728842531445235842748844456255281341573623655278727223276844264473151133733367421537476781281278737628581537537814655314467628322372632781611651165367168236416482137316465147867421848553681524883838275577477545461261311473744771216125532627824418222632743324466633475562242312274127521788323768473326866547382744275545557734176478147878462626343351253153458232864851363275278256571814776232215723884811132834863825763324264178331525631122544312555726714772648272341158145186771848415225652887451742761733673685371358576837316635577482814576853515613514171266265833662531212723368748623831455144525246225664278748285823868248145847343175433388163477681125726717251745863535387815387652187816368357688152471776231246416838382562741786816717886524776618434674418754755277452573486241261138121176276737162458462527531223258271527732453432264613352255777641428455176761778882328417871632681322485733155486837236438771625765364118114871884863283466178526281658448272352632756544238784367364646126332861612872123723872537271671647334276475521521226575733745833433878213727357825436843833811728817188771875473258737476155485365713832858326538181443246424755623642285484741252431535288815621876665375216436872384311228433866116231684471312832483411885718643668621683281125783236173834121347675886585357176451312332773662425882483131726518353335148274612841775426228427625635563874638188352823213763566325378534356458541125443857386123313132785617511267562855825368128333761646547153464256866164442781443875154332778682564453421474354688344453238658771816581758772757574442764487833715867141612155583425274286844722647235517581316817575338786375628583844767115371885167471245145561116612445721718825527155823415174474448645358186411544384156181774855334617611133627314374685652484248463375212573184887817551572112134535313846126881631172182617754338762248667188547714711247827362885558571422874823827158231215563373346648336566886262525136423853385575828513168535452842771268683424135237187833732121853576865856372221337464112487661288757235377838877738811758557861688753864877566214434845672535735434123487326454823521146877455766853746742382544177141364318285746232441152275358173132436512762751133664353558318878822512673157745185675652636257588262417746231275481834778464866222216142168563776877481324478486735382422873485773868138526261446378152684663815745387548657162385882835327644485848427841242235467335882312724211733314123285583868341766443431564561486121482542512462648212766755446447586284852415783455822874856587236153147762875256451621667343338542143782136361323236173518575686644483463648435133786377641781856733712254265842515615166725238233128136566632857547253111585615573833625237578335448321715188374545864738712153717466158877225783217454123446755337175546625476225583816661265241852611338386338278345616174371347713325751377632538654483724624474663731746137342483826558482661142628333412871635116174622823135835867332435531364258777554745127214852758431358524876482348625118376777534248224275644885763851743813423651517233556178846827238588837862514858875766578628383645363612755114435563715624137123435334284152554414137314573353527747652174547352566485722628575258817116784686768251258888418324683138665448761828583545773751473631422288334347387153228252482433271751832775834235814621286762756327746783145547142682544428626586828383781825451552751324823383772175175582122531851876311556575712636333488587674762658231436286373418127485643888547818167122132671147114133224488617628471118751116858823773328757436123424551563515216558266255588224636528721734118124874225227866354551318113276553515361138658557157878867628612256314821352575162821774247458176752748536348678285768374741166332366182642665141254831831513718766753714486736451737737113444153285536236763838443225844852456276186135436516286423241855433117348884127362222351358541416718836156355145677743826827381457536128886312326353786844136535118286572727463176763882414131341724838624786353784184616758421257325836865783171134748426211257533375575443147621567854164387721128738888351878482881782737337423714822114516846721354151752545883566441652853384427657357335741864636761756784382242113144828173883183311533786422332866668675118656175653818616523863255248488281543368174137583148731517386126672248576883731137753725265661253848562346375158753638677622475775465465325551275383664218358454258463833466757561646846847528153232621633782242256117724163121831286277487483168272824857187267257663446363767126283237277222788314648713538353625126474183374556826516583633445526478144511465145158131382763477183463715666473577528574516323421556768881886542664644521263124426351268718846433432774645851765444868811866723753168837614213367628667465247187428386468821173643347631784723521861515221132166351536472131288137472274243733462322281718826823262547242267444535742348454263316585516111386474537356332147322384544834721482521546237832344318733515845523286863462186718717614286566223444526458248557721372561577565621871833383888622211155582178562477242745486171848837781864616557686664643273352345287737373681758318571678274371515371267361221442686365638323754342586637815226122735471378443624842185748616228675283677174616548166753168612813435248286682445241873567273818441723678547181846442354265316728773141237586722821223445564114664564561151318623323178485621114743715443867826834877614253518548718253288635685131738845676331644885435248164674871764477235533248733557558338764261864213513511675328882486356578725544425587223727857545156522832261557712274537655226283218558311225722371712581621125663775666362158742667711832725346215844367365623555158181413347818366816376566313651334235276871563863383287574784678786447337264573243188161745378256657266832866881318118728545723175618887356176748467565115454624272355286517217236284465154362667216844168886113455768262547577867223754274225473261332435622561866554682157861785684468447333323741546668267482464375515422135182555764624877815412547863585358868245652824871248567264728454271467255632522357227637751146365544647831784254185282335327175861261137157185128378736567366654462277777247826582745836285443288137751341485245144521472662273514762422118573424284568662881123775772335215574383216873531681624852712715628661772466188133877161771186516276846785516365511452513668688637314471432866867627832116683535473788286763175483411557188164541386627161827667276168553441167622285846411615384417833372423388768453461716533668437868615343148533635132724772858645746325461158248788343372633157535786173417676731422368441154264212532114173264771768815574787481243263678858344218128714151368821542562573234622242371727347426366756156564123174381571886624215853114813313522886551263471531188527881882384336648731664547466453371421518286525517441888625281816148152227841251854378711464761634258464815466815827872746143473222255282666383481774512783243273157225587422613112432321277233262356183137121848544668843225324453383237463218268513813857465663161284328264622114332643643378747383755882478662728726267116287883632612474363523625125187656575266277684878227758176154868237656358774276372253523434381514874632562731782674652223636315826522345286432746872468668567156658784155156213877412755413421627513878684314336223466115147617456762427121632865232823118871815883153782374641127448536851558438243336217434376718166362157177855354574868375156841248474485634718662365755638663344855767514766626282123881442633342833768534634258734624582418845211516881114427481771473331132737713255658713122345231122824714312867278166461277166483261814427235566315355728468124354562124278218184611454448617738678612113157387281664376531484187483472367714472712457713668316271334532218234312671723688471638782716558578182711368252115714686166211685446144318232481281421352628653187616181657678752541821451126354785381221131316814217322115181481733643786765768751462677544417664628237633252755821514465743185677763238877431125515761615133562863188385251841642344267182767817358746526452782618578125684264355632758713623351175225658247121856372774426685873164784161652122347825417258641675756331843472617173267713165828541685365414146714421374444242335625564678358812165464416663522162435873416845746628286788516711117878335743441415485764233482726225518811471562232372324673225656585178286547661741815852286824648388756333231862227345772224641544678673236888835651138422751651856623373477268345234112765342374524643875478261886837183747613783823866586114267518852755418152511721685454544235242326514883883654271771114334412421364155886182413882472877148717673717778653655555323678514311768528412767614718162656226251754884216165411128846347171531358586521365282654182645347152358868287116478164418878425674586822853567811667254886725435213841227636367542526863731471487652688822225452534485277865332865454445117243474153248783658134848247615345822424673571861562154518885348742882641148151775682226687834881627611141354438747274311115631424664813762416482318736584786162268518834115826781424632488156738374716711718185171846285651214853434228874632315572824626464267185213477285766532718386577143424742654263475511567348784263216763112823717256431211328286736758623873711618618486547835144872846428373337382744212263817454757242677343663278136484138715864624148738482345635257737725177675215166752275337127817628645313846172362371452322845214855561776874164662253385655743573766388133421636113626614232741615116141555381754124263752144471387553385628681561882477758454688872276435472385124848222274837324173546622161453365615682636212745684568647835565782874746168458246342571371846886765858156268453573621426311861334371738628467621172547251852636758614826511572575874488135586421473837777565234716663651821476718667376814272781687383857586774816656281156257164814352627248825674236438216526544483533888818181176243571448286451723241722118113823347437385626381767156882171676565821813451886872843438431778328387547354888462837616755418488422588724887431255348442544117463334341754715863258782438851385483652827513827511838657471686744233824225842315416463563278785742234681848882464284278718316417578424578328243885515184624258357268242432448433125542532833454813354788288418678816215648652237517585633661783528866724657688841437554563418523222473346568663666624826584657427587661851114555448865176466658281813837282324513128858628832864675168117314744222225775144437761747774621465518323644723728732218735426535826434724437781817377535518516832785362146673748638747775325861743258127622851517221355343311468685324743811777446853853812152668488213117328687552448672415561121426635117381852824648536567112458384214465778347581658158353486863636381875783126554256224542484382375784222742835272584221344371433677825686673478721151481125386843723482142112384518372172686773657777344276352851348346376217631566567537581431461715365745383852565636445628647528166173886172253172758167884776777667728282817686284475851544387424287565248554458812884766615427412454184776478773665485743831883464152362444832814246773728782876765386867847673115616546317175274374311388637674873377817333783654113427868588616824158246573213371117356834136158554746523421585685424328718184472615487772577237545652544478414526787645732274642721516614621832557678344534435456545155723512363571274458748287786851287583274244171386457117848533526165435654725243687325823587675317748528655818287474875441737345121831147665735118452775884446488231571315236237666865841287723357687735241775515455716268377627812571815223133874842327785252832177756877674644358314415368867825577351225315241755323371538255163464755575613821788613634856435527462317485882556511428711822188271284583263172213515777568678213561771863826211124842317763581658227557353561386474152713872871725426263575347887573668128481313881617356583451736745648568526674185757354871633136233264852478463857223543721731336844368167661533728574632873826683117456324282382776521722612447742115837573752787575856518711665584228731227518724716224457463383232254762582738745731274385646111416813315254136331816514227778548768671625688813854368274416757373153271584417534486267583514786278785634487475475422825563777867127586311212175127776873728166282843361271315362116784324348132311686761654332723363542265463672866588145747341185837834517238745633222567444837862841761653885112684423743476552768574115633768425667861716588188452146663145436523824637623434882628731835316174411663753842773722733283778452664733753878732116337321316725864415486481323661156837424785257616325648686614215321387418518328533854715484157831766656326348258386631856143845465768522524636517246223552766128354168762225561171272836223467678658255714636371261725114113141841231444121654161876313348247334753265473417315337565237264771442214715668857357143572845314185558234772385221813625211158826742788568321374336285845587448266221113527812853262827318467734868433758742347324215451615612885641378287316146741643483136737656714464482532783733883687674585772442815436158757866224636265373842416223531575631811125535658221423277437627485341767846683477434524573635557838218766455552168533887463811617814767534212684677146564536272843784635856313511816833882558725648782545781872154426826821528516462324321858852327585384876133243185682747586863337415632885752887865223743223347783581783365271424571172764443853858576318442317133551371673555678133213856565685587787412385141461528872368551751446831748257571437332873247325116527673352468768815215533247821481472667482842447284376511515563813755783374382623531527321177747477847733433888833638733417775853173542418353718325887878435677167756125545886832282416852584525447773886616857114774656436287776572142358852451772825585841267834743317128774255425366878164138487568643232646331562184333138278177248132768524884257358242243488816668826555485173477374217381348236273875475713778246717528842513843736186851562716351127483654146118836422558223662155374587382454424852143437628722252546165125464454612616665663481778145528353618371361538715117315225652344534347266541218188123363184768555482113536735335743776226264184655367846212523751585832712542377574755513766245182846152288832184146575768365441231312448576257134115746247533458154135341378332285264288143325524365621733455431487878382187181844173346474122588822751256457421866516643863366667266186347651678337155815458774346215233211287853173831565585122887276251387835758465788414312812751234373131465115261525823246823453362635748277238218241658638843745356143813785682718671447115247412257665673386153765746516285544721533847738524353282533333257627436723433873484554785465862226128862545422112613553131774885546667742671686156173436115184442734518417335242574262855413587178757524478881541132878884251482572724432771758735587255268741714353766127662663132544763532875444726287567782584238644127444515438378333425348743787368142774335815116643561246166758426551233572125528712435362214247722645325228133526615144817774767424674826762341273832772468738126671253432455862371588564746188865844653821286282442155281434641686668576861667637746678257763454611833154225143824274478268561488142687555567267524362641872816467742326472178117224647425448747722565278125263612481718458588484356348122347546352815427113568841871224126474484854658148871867844877286246133545348854326146857471516511326215535754343811584122215282175762684237842151365744856141786517823643627532153243773511573822685267254131416513125783516347266343821874376447424667168175181288642875627724466766266648164254472521438512616761731364884454672717251273774314426437274772275822318463251632648841822776254321467365241388254834828454357738418456316844343546363835377337763873717814324252681552245731151417752422426382841653583335787273351818377158154356863388484655334366234611817216428712741883463427455751237622763276452615414616535534463636846354337578588744386678412643234865726671885854583451457678486346744476714785116388133353364757172828645635786684253443517648172258182816521822231225758712318277252352442665775851754855381442277752616528884314682436543878451166145763515817564822457334568445517122553155632771787652222577446261633348172775732541427475358587757266861773525632366248373828312467158244463671154532877186757866312126272127655885223835881543447128885774273263574355634687243588848124472648545314648248441131845448461222372561866622853313615581271674457646211853431784222415224413465777458262435654174672322718551886581476441562657586642511135572348242136753672215446186774582546884485112136632771611453126742523582532853666873485456257351487747451351154578733881364727378684362645145544153748185446168834118285717215825638826138255845222844611773646823656513436245767826626338162275146868868385868216266562424487321116853371771182143656874624532622815342265868855236232135173632483142128887715488275641252518768125624411154626762175868855817156462437678155644523725254276114473486746444388663165422138458563556817217656613528123885484565846343552877547132875567417265471745883741654738747516775336358422627716773816267354655745242544373441123762524228424381163346673551451323717115113827833765168535322331126786174126126626488815265744633532764825148281763521881837271262735328378282762444637773545466238114468677874322745557583453478876418313641352875768232658153588586387545135314343236276382137138861225446557157618613475478464126538488437481321111378143116283122285723731537472554644678423677365442123648516663158715631615833143285273588878346442771213363482757271375545742722446687323124317237617537176235786678277175424742572123866752655438171562822624457438613254342828314236736238771374281143471816835181152682781124677848314866167432633881856611784688711456263855315287864112781811781154625866456165232456752672473843821385453448847473351542176858658442233832463881535653348876388774863355378477537458588533767822585846843362526126141235226311368228434636774124812173436433815221153133483445348588123868864267248722425128647823386674283552741588856362441878712271163358438263155128818757366866321681668388163128872772332771832175125814172652517855152366325256336645751723181414716726581582214785163517855431422568468811844232675256185426581358817274454781831482371188856287125232141354863375167813126165155253868182323242282581858864624612827623226213272618727864635181616272815364327358762364247143672761122445278815544835584214166884283783484483152485264454446483588677177422456527266721447224483413537841523523744371871136651816414485374352371543526642871113773648565716362261361444616637286742516517234874881525247552575857167627818188246258877456546113458136378331763217163154245465884314137237322218773842265761538748677473837584533246247768834321435171388111247628476641653325665683822128776277622378844761814568543767682677566683525816344747715578525127218425478414338588538176458162721121387617584463428228562675158638148511711543576753465523256264846616283343175185477385358267131716721135815758265627635234851458151887183875652177527214124466467272585267881725338527613435726346171555177837141146154314466846618735373745748512862248278817575232517268864768354666528854182632385875821617357315527814586223687153582422757444626632668676568575318347836135373731877445533778348315625162684513246136351256424731788684711675754657454512236214622312158535385718618187553771247627271227462538128881627868578877823575564225283342466665581326633543341347471783884783148536884248516165378415136275521451373585145872361854833361784166628724334758612364561712632761723245576552514516326312218212126728525573265176178212255844437515544616645253241533643636832788153618125165452731675847436651256756315121314717538557668864367282244863756532648225818575675171772826382461262646284522818638812552625837451235183423474531434125428524467177327822147338882323776887424875652355123836535338361235573326414361487567682552816286478558777521154141472118551737348812473471883557183361417561253476868254555823725831381228684415235878787238861383617613673484288581387876815552373543434334761516814463535272165612281332787853656783417724846867137312367223526223151374667337623556515627882315466251583157246773473881227546764882737575181656432836415814321518558772313616473517742544646862478388477631242242166185744477755464747433224777728476115856483648115371717778364488322181816325138816462721267831842655676557433432556356416223381731158162842643387768864543415221846168881338227885353627126817327751834764776674776366758772764311565337877572436458872181757762637678487228735434252132887383886413418338824421785343381663423585535656371273312848661238441352653828521768881443168252612887856518278831747532524416771766864815157246252547234431328152363671742672365216685722874771336872327353375661346846732555551214588131133888318857783823638676335148176865636312847661716234774374162451676757522736751772387755326361461614845121318585722813528247555881621275728878537276364875226185315163572112577173286638828435462561147837661178654813133265281346228837238657366744666885554375348444336668785452263736624485725617437687868553456515776233878434342357177786123111812284382821571144767623723815228257413571632788374223125237822881762838723143277455464415766883268722432212145882163141441446434882375481882241628611816783256877876665811274448423411575528472347637854738727876865753767164627767242426724555331733645368343657332241244845424156864124278577358854766122816121542858784656162857181256188221428728331836212121817655632347133461876833757382283477882741311571884441421436584462834113837848875658753584728266724181364263246652526313533622158312487124122117142325646373275287851773238648818353222252318124851364152627874621616242126748747543316644147853754675673225746157861468773681328711336621548554237377884615345347334452618483557174516821388856463321318134676331164168188785127212488371552777744331181323322754572232318744281823287632747186646348534128575746151685658161273356386832434613573213333453722137276461726613656162171117613465625752568272543466342226872487725265143672167322541834628234845171521171332377143528465722783181461658285338571418415672557887735138534334462522758675361535773781382151745468453464142178278754881732438553786674663143686541322555163876537525277266156458235388613581375357615528111774882754115417454754173264814438277454186825357538554311856586816714112556552581615754768873378143811883816458188241527885248731332328337241478364342678756745113881613582148861252766865645131848244378673685333613142132466156748356156337447817881751876145353417727314875711516586874726184281785723844425356243534381767277718546143251353543211514347163647656656785441121858834735286547186642574171538881768386762364345332787525745124378482161747832387436118155543781321867687865374348724583813127234461227576653416317312556375523126333218668738883638176273275132688537484844323247213648421882166248118614234483646776774678867654135141632555842552577878365632865785122331752572816143614358611814177856681485637514578736268472518564823132845125783564874612248761662125573372827564663812843745216531348312173413652737317211744771445537285112533716241243442352244111715626344343426847875653324338772244881354312583373831831781287863517627876836746243632441547313321587876261855368537646682458517181351467337212114651686482172246156766844735261524848355765815236835745334161265761726137784227753173643633664772362424785215352751545546383844455255667124815344727818635861355612863543352832548458161414871386283783763558315617746653637355755368686285325843245471265555838353215237242627242287568653851657815143542243277621678573742215536481434388734734121276752816787584414872355487658471221378774756627154824157881867242836633683657531766225742126448278676153232445711714683363372235833382553811432836168213542371236815373621368667636173166612425517748774868176262685343228738433817763184712236568825478133747643587611275431623384854582676735233247382872336628656226161282183834621478541142863455884454548881685726278862766567556425855613173585673478277244786323115578226133155528225747147587632714415568536682722863737458282647624225341371552361627744186743123872783474657522646644164523627884426878862334883344716856757278675173713223314535867532454485134288832786746468124442751131825123673721841755622265773152237121147586582283743285727375713352138422524462314161248348318441353872184274534844761567657764548268782446586411856231466235418552227561668117347535288137637433831771558267632822566348641213874616746852816855756558626141185864388633266886648743117837717127837417261783553556882461542248131553374813534557441363565143731611555612237857437815752727658415866174135841818151664263448772227628124418566488711561124222554568714614652861684722443617461575346571145627868243166244356242238263244452725576856143373376547742146523637244236582771588834348845826311837553213126766261117262836666841381682677821231427588256373545266571347125265462267784665282538767752832416668883572837818571884162255284362778635622875682384158168635413386355363843635386183231674337434241733772735468686473257765475816846121822836185157414638581645364237238773836332713233121513888163561568445248313428561614453137784481372212482736313442743631177113756316456224576757171555174365316174176227212818278688225532452846621681862428664325452568748877244532128837514814665366627137168285542515413846224833553332518468328422445137577352548263356743484541111561767572864765718361622734847381885537455384765514465178886456883652754551123628611721414242233253185881687133428863481268356375878556823813674263833764643624543211684711854821882676375435585574568631235268667135167222517568254131775657357225288536557215276565876222373174148644726422277735276212286863455557643761662363732258864652537542145475533118785844632786168183124513331281882125158214762455671551336146767264711634368883673363512318576146515337731432242754754563484662155145175637162615554124737821785574261755871362413468766311618387311546582331782371422423421635338184257774885744857846436411635283823422817877827858532387882862188762615381728751845473226572754883474561333541718248833517417112865434241643228734287452353668761111473312214874316434663121588522855777375225377113457422213327422182788644285184363582783788635265523575176152514476182352574278582627152458316235861743831844267215654783857736237717383243574244115822236883567428272276688676463187252571763838411761478767386765735261384765682211152618536238252428853577558463122683235123387181166468858183748515851182636861233684426377756578788588453248658177866136385416633112712388478524514136583525375756354523558531835465325175631144616613462163722781447428878452215114628484714677567463664528638725581454663637845465817366284575672148574813335663386566321486447688656438284464244477375873182382748514287378271523366732367283637617561667313618522476677423543175134314728672435358535816352564828143184567722826332783232777842571651437633716335341712451417155542127617431341121323281638454133881313221677448251237614557235676824133625265415858762587134727361761533881771448648854815851857146783311752228665856776315587125172633162576863321678526422372348344622712733546524277388164725512784145331236865861651237121657332357861161887546433645671438547755855434411422827872571784685365177235135382742457223247511534565787332715311525123665681368177117444587613154758845678232316437653862146584513342384234361733873344246513178448461785461782647387177273518576348561886266831788638254464134858517166385111244384624424552345226654716122126647328765481148665358554212727487568817772817712171358547434817878687118344673878657774828424135768368717347183634716128335175876548667165856636877385621658875747176321537755881143752142587645231267786626762361812843456852387826638784122788571626512151123138557535374281378282674254523837622787137627154764546237585433531614172158583118847422872447237434133766573687245284345357327123544455525258861856618182632633686688736771371547812621253712423262672822245356477141742463775612516844267323381817422326676438774174863156384333631284833342866223323883458177287641315568213272788371854817445636662811648842784677312767613266254253424857481487858178137851375114485664381245312547715233115234458155718862736678142136338236454415584552873885567871257885741322543762231181165654882171487418676671667688611171363748271545438233374331644615361816742112682484535868742538848688243458215443543675654143487671785118437882188354753175465651166747877351112318355166333661264654538368636265846131637884116588511813812684545651843827364826755584476772787177833356565513527468178881763655878155538552657726726264681435666541632835333417628355448364862622455455668228283113774863442823351341438736222433324861775514573725121821462222475142854817513188725645534437118686734656735858461285336627527357224322287731165465288181678257435643832714532238133736258438254118728872634754837422243216846572425228725284442428877247855517368268453663836234175118556133431452168637155346124116166323176114117453757885414746466462411171386781446783788163875282714428847534463116283587651262787135358846173352817634343551554672825787317247773165141664623464733587674655123125853627724777626454354276368686563621756656342167518826412628673311666221315647513351652615636555247425535763464572372625136476345844855348648438252358588186145726662431745823254624858585675627145171766338218234232464116723433416848215736867174735661387851474244584122287565761387225678321568434555244762475113521366685736125518465524583875625735525338284183412235464637611166774836545615546773531533453716166121133455763154211111285845737174747158176428363315631562242865363348382366336641386282836433732264815472756274231117873174163335884344121223788112887366466115611787677642885244512767217872884521335623188881644784646373632551156171236314267764255733473464867511686542332167387453816453456357318271467582533381576651524878144371484753481464424258183864265456236165436558444145422766237476631144175867625385484187628372146133724777477711774347384685212468217113328561861645533182217827515234741831373172486514157677154247486281327183134286378756167635881764861128156244353358576641127538742667334476466278718256876826141861813233385716166147773137134241381216413651588438354854875332872281661572522833674631634147746237451218646387436468527584878141587732428264532442341461387358368487472376754756762286486632714753753132888538518232182215365555454116716685282465635367356583874372586662163648283746275668733764818682332633354224515161273683117618553235457333331566762243656841175766456611837371767368125354827217675416712346757172623355521842768563433122323167622817656485851461727732785116485322458221672551821132142681131346783633611731556828823733624151227271715534228874365132175627828837764444388751355537864373253656484523668148613463121466335344268567281341762877888481481422466816432154661816681674481117214222627147386816321634735832334821666362623841888672518838227218821337252243875788136613617252185742472267712412316183346321543887621372483226321175285446277878318323143617864537464482627436615615767831175345754461365631168366218516312377226187857123352754682658175641786214782142312842365625674287136717662655112863175836253258556124317781786758757613811651282861573636221443686687754788233288655728157847354237311878644116751446873284622674577644244113457757124186541525775664383217313615254468815238323225733433678271382654733215624557522578373828777823417313861457446871551672814735421556223447771244665177252651168646276827612621787587446277368564555355481252818326648388146588464274881544163275816225387456885314815321756743377518425118812573557254712637155884675263881756376348147767854841446654762457158667127332186134181615428384726868313811224154814712642281285748767153655881441646285485881776451787425143324485236774427132674743823583636241445848457363212355136384643121555464433526464421818622387454616734485856342332713184476832141188668317283581658486154165282258376815778131584361575222564455176434867223281175884612683317555627585726667153637241868484118315614477645846161536418586225165533112774463855282346617664431161287284545263678337518443342476358648873718253272817571556351476164748713616634851652271688488465448485525426561561483784747335311382211262652758786788313671416673655255833327173327231367315862442488715688587333818724663543371551441834552862781345634484226367631621343837667146456881166468325275345712668627131623246322347526523114844421211838842573436138674528646552715837252376566866848555116754884543776278247468334118626474437535736762733265446876817631234182316871333426822455345626886645465181245523787177326388544252413285668841511133265711282875525456458175872421214854412472128456111167238635876156217186513248778381836257854475574622543544178726866352717367343444438837471127771677636526514584117511374535457143481522182122583717874425636221835671212868328834226167163517725828758276761513824531176221427248271324715233222861564538277521457261173325241425766818785836885672515523464872738357613213771783366153425647541111244866723645433723341634718187276534857285231875865628717731552683261515533871678241688437457335173527532875761537865786325571357742232374628881858583578148473544641216577635387465658612276537871482243141662584877614676154281742655422343356457244888727222213153226125725332737414361414815756588848121125522457475875637884444411378132434571565756856857478377435753551572437835314432461813111727216832722325818832213468738384275165143326753244566612352544144883642147375142642158811227654581116382154558377823777784726518722154273677631268545364751634851425468821361143454475527482521455132224568252511652444771586844486486844653364643184134856635275237552818413628551413212755711315763488144341585337822647858531882775347253777645184613761568611453371413873162242138872377224347627237763816445758578466114446246427262475868386463378281435533858554123481228126355737768851265487438653748138237246746852573421215627223837466323863227323764767374148346833366372661531821275174273614251576343715186483751534157614574655184522554862834315157541372348541821816578351183387675481727847877315455117625367566244323451152351382154223566245658362731478724141243564268588475311158184113144214125861541215458475452151335155532662172132383542537614757784453267635237328555742273422645843858666514258263261873233274377388141276656438741736341775474547341713773364362631387757812655615541328818451372722424535823117162221681837748586413518272246867533237117572546877658886554253332178862265453711313228458365516472651232636171652462423874247273188163327766136238145577366826683364614182248471633151724342764332661551233355215742673812386174151686684212747453346532243267826485357778527378182256881842718728131116345342877583478236672651486832257635774772563248361877115454883447588418272416427156522745871452165361148555731776215122226865616328142283714218461873836368637757452761228712656785213318272715413311428811536643866258321518323161534577851632722446523831364837717461277452436247463323852265446174287646878725875871728743825712448866122517235486163538112761146282865255637225481854282444186778265774677314132588683775584783466448118146781625455874738573877354612115551726386134782721364487552323122818435772851328457762728815111837437411513275466146413545377118125832762653763184248147347144812128866741513552388781383554827473326573514324285372638167674357111752224811313386621528342267346345646584548584216118281286758381367233368388825476637622128652627225244616314576828824535672137877553833151236211475212733616551472258877121635334338614383311765273133841674785624242236587465736626247766467361722556443467474656553341687456852634737417823545675681723525811136481247715347882128147156321426336224246155658184335556213267341621272441762745882145124826224255562446315675473557623531852551822114833757588573584636564881581471766334864677622148164687346782665155385658268245174578213868665227623364771244228552763613612752671146132242266831453737475245611163578178262168131733144354487545576816535856323348827426473816636687434236244581478438423285558388263844581232852551685625471215444444633722683761728322126754112378181653637827845581567663338724248365235442468673835264441178375726483757552256556136421313527681613888834124148132522846142647426333165878652271775687571275328284526156876315232733575435354851558578665188582133673737666861275645332674638862436388771515347586283317587388653638511451331241561878211642662415642325234412246613715515472236576176248257358715332621677246831436317867447268736721278163472336528431624342518126584575721786535748576224454837824385335746245334855377875237247273663352548647513243825481353176677783134832175678183314432275868132268312216223265371553836613266861228435418585562358838318572188358834351334585668636614348566721571521124813355865452654323783782754661542486517425775746443625842528164274587424452768326537772368673767713385344581321278848247367434243385351514841575848568782878262733676347422138321152884535518458683817424868636218636217551746315212521525315615872727868834644871732232513362237137267267368787564472276467153463836782411776746125476557267237471373185755622738863374118586152467484277713172456615533387337673767181247265748747151423231842434153557362863487271415737816818451883566271213338711771357443246238723645283312577241211682257823251258553617545564615778328663715553432422271213666622558476865233358828658234425147721461665857553116531628413844165854716442613465663416184187383244871351638757328853754435152453453458564448362183383233151481414453286145164348473346655853772461642164657814814674486287725564836736764575216325631123226834113264651654877375478848363837831378533726832581213263568431566383324523456157457676744215164533671228326377254464844486627784841178755318248818836431278133245637643517441186814385652764631328436576757726884734885686817762722373227621622648464466437285713671874712625661777152336716786181342157482271276245214752155638464358611162448212435271234628488348157584383688866145615243653838226762128558833621818768831687767147524262222214111663551622172525243415352364362376751864228754361718731843231455273532761547832518567372248637311123324274663488262715632375163655571161475654483251535253882354623157437517866563852241321773134142636126272878122425474852188272186551341742675634323476115213641537853557653428476148647561562847667311777175884333437164333135386535715815146532185636673335145651323418221857222767128777524423157263313781688548773632782136363784861145576552851771723518827737421452538181116435645636281766166316725211325265528745656276825437735362176885718751415744266568564414627124323733526187481877533188256348765181657485737563463556381654645562742754552343784354465457568541657268552188315676637153684874346323287511224186585878464143573352666754151882787714213482371841335435633523644344362676131335641755821251827758483675338487481464786678122623368216786436652742242541857677716671444671475284166686234356846767176857713131366712788528535586227353326462175546378575447464473775255144746751225735648818362815444533866647422451885373513633453253584517171824656551172671664666414866216143315364555116723311488474748332535343165153133731256127727545855883254364752438578327283361574733417222754651661732237737323113728448248647825188336535777563572655883816786818828646428124751338334367354841744512643557475758262767315347462411884187685612868221862588775711163743374358144443281733255575333428843652357673684521546864361174738323448631227367262812218433641728676143335263171586548765137574828258731682384486871414633628231383838751236217611254587587832462538116535581673658224412138876671143813677855575217868446526821226476761127631361444231273747774118631742545326122181684456426136318675741784116527338724475276813661882558855252565828488377163127625857286873782468422188284257851256888683642823625544516711434781114862863382425852346332832575278271454362761238585848128155886337214661611411835837778722738767126235573653314848626811667662113312421663248281324114273657327218524616772772242674224311867572238161775344134382636283172316387341812816835544588585483826222671882822386446472773522165861352343765862166682678258188354478253476182262822387321373831168312762355216124885547545271418726757457322548238281321322531325281476532817251315335576376626717885542786552875547518651812128436212553648821422536127816675844431162584321371818763317685558333754122413174251263684437774216771412658737173834784858233344442228236554431222812513565331521532286213115666647773585557728672188558756677838687881155171536616446752523167176212634378363837516733872774437467585522242125523261443154487476562835386457444651312745518422764722256637438384267845462541258413372353277374833185363252761527786711682367865463615281573463483731162443883177523452552462158678161218776614638765848341213442241525333818112863648125475131134147377684673728744342331471127261844861748277783487463531216157726358137862671321238412364215517654776581777886551516728474255873781656354832444775733621172366632733877655855356248366273176884578675742288223243166717545463111641357333637452816848812616367677345873872763162687572187575322714876648716576521121686683648361574775753686757811183184184862154587233637385544784266812671563346568183741377573547174725184743512416646616631748883375352357561778536115432815428333643584635267544772181126321352263235518641522763273888871442638558361436316711275124182835583857462823631417731236555114734457851522283668626335173334517887322633151287374752871555476722385843228858657857487126336337133841447874845122714622445731683217652817681552573642738636375487546488854513616685467443434718126716435433767687875824351387164362137273113618821462732321717642335325627854478743738335737418676256233147668477151231538127124278242448275547588131181544745754643681477721273317572663447255132712628658638588317453451811351841222625228178587528483381515644418456146485718153535545463258252832615336768835541511644844154565127873714314537856851677772313814663624576367226172864625472167335412281166584775673471141235844771241461322886224653685671648747458317475748678728748363752668234887132345476284651671317673277371518686831587322521235214744328515881771242451848268146477845416884847772572516653433737628254726768774233327357523216342626338131482882577438378235225233117174688842387811883661547321122185111128644227378323778818114377878227188632635717282557522235745835275821863552472513226854712688248461454815561138281133378617865564515156725575326425333365367352271166627436854341347768158237225622734374182663656877278785512571128111826563832837341653465173875317441634412123833637683538848164166446754347357364684662766866542661752857738786574377458277371526433145152781168756685685617326278282646652224273733415568623871836627552838382234141127676474812485681684483668838274685224651843648768184335632585737721841428711487554538352181141463552278372525657322112623373141458566114577771323376481782762127581626764382218856422757262287513828573728725747832534237777374165766341164723716388721484753866828764227488742556715618551573427553576453275353635173216355885446723675232337631341375636367614766481578384317466472216354126127581371153523878423545637175173662715122248545774231885472416228262467847625685774458241373776384112683648231841314824623856548641535448138556158852758766258382115824225744116382637648618684355727686412716224168327151818572564221776578248564522778684436344577732511471348326487673242751182188488352543621826525851115882351634215881535321111843233338163588228783733514532441263118243524564712266367441867758313372678781113535162523386438362312844562248166174672611165784318363674732534714267342474784887228612753274228155115374413686734813164737336374383358621887541781653453624767526256315651722152577373485333362465618747848784453145627772853162488532552138676737448377473586837311536241824131311835414334261786364814526832336718186584128218624323435668125412551442746618831542727853821134684641711171826318581742434787344284877175722726735728222427846431778743865216642767178888118143432617664688518622677373562584426211584334154714866834741565167814413382688188153252528257272866633636825253847235546516731338744657635462845352114645482122582134353877388355164531227731437716375827543461324541255433438814225637468266254268141173754866417611527712564826674886785536677561582261637441446144635132267328843347648751112547214127358131524622181863535852185528533555821348252665211365415551876343237653624568632112517485256761576484223378777272371372115237448817247834473342151144322156888337437845641333247232443614235138736255123482773638713275725723324573557543167861377676874454753124867857722536368828815472283885818336315151283323118374235584468372862167115752173853573842486483538811157543125586127531278577113615888265738254812756254432583483458617616714254283837441782555521782537188474831567247162667138474864725761334578724764365775737838162651818713286221838147328642513254177367843646226153465877462242831828541832166273265236485414442366275738144358438865766113254144677865734364665853878658756828572483815161713212352657277852736335514243646335128754815585654868827187483531664768188463442878678363616874734721325357382583136757184823182156511314747427173158671744721334153574636187435342322368446473338248554837628237352633746262411726173624463462432473874214836566882417162546737885521662534766228266778656361756582262542716464332565785678754531763718187711357211237123136448141255488757736483774172564354557656162427718471684248747688377567416355686452667878166672438348476445334221573152113458541442253636425545388252883623442372833535285433728873526137713857664657225171564731813115131824686763142622333635246676847387815676826332238142556161814636457731821365355362131567228433756455712426724622682177471154831763332654132167317273826847848615228328111272776818813663121255174163175473671547424482282386668438337434567533541854782672413255871435122417688272181785686352111665548563531477781157271373344185275786253147847346482185425254557248155832714821485366148743637435862176563333537786736223765664814842168473572262524376156544234558822754422184115774276617854382553623588114738576661716144232383781115556368536352235245473727686618186338714132638111167878224324663518688573537172354358771534331473661311614624863764673418331321536528171374632517612525133144855513381681642768655322441645563881623387322688468121452818572853466121712832763782631842127843452681826451817144721221181427478637515548462388643725512426541427525114167686241862244776281822172771457573345576628865652152186686326135233423685158212132125815162377871776766525842412337158134844813257735686482556414456317814867576534252325832372445316225727865248363531145234746552265388212374386476174118885146622382433558363457514714242722876285466873833853875531252781661762541788443651877281857478361688648176113878324723571172281732415612631446313213884678252742315248885511677862833266288614483333436455813247328718171226577212753624626218854128338165737176638612428546186277448284717772461177875436133337558426385838514142287444645361126361768588288716563252113814417428418474814624275623384381483455854655134421178342551761686641462266635351336822216667654486713566833635477318847458475646184324514435477661173122821724451428217428717368158411441468586282382637817248327748445176326875725221318636454717624252378465255417345317386425556384474157476338664624446624545233881723121726776757258561155514714853565633873774675552181728858552126813456571338626338452342371282542584341168424253124262277423833841517433568516442112351827314358744575255778533673241523381331361727566581831412118881431671464242288885564638776337138562331282652783843422464581282163145215881824576344365715536454542475464432387381756243667861845111652744655168164147322851315181654136621772277236548464764323341611745541183626458158185728111225557176735515418657174774571484127615442488562451544166544824817573675755515775468356877184312225647827872122865461661151826365334228253877558714586125755221343884176868534157668756315464842782322561114615756257463788416424414572865237337488461137676851456744757182361151377657278251537152271712423458861137871171156141337778777247681314383375241315347233888231624176384141518364453217534653618272317712523735761254125734582821754358844686235364887258581367564835521634574573525138252383261264857658161133645634547735316553612534425244652866335624652424232625145511815226734546364544627235742518433684772572833563212856242241746756718263432727283466415427868877763267372738762484243365847544711826861726173247827222364876286623577884316451284437386153212546375324166716653134743564367552213583232528165568624157288853386734877348858532565486784511633517243786888551837374531733111563421633644618823846522745716161425881728327461252416464818188563861656575868887577234384361876667553224228265534152418483226517374311272812568418718458622412623624526671276113533674233776166756782368845181177223217622128275263766276218436285561342141645261761122182642112852833158453578838854767744412386131186782714174711576782832262431612342176782126217163627344686665772152217224184842837684281358775877743272223466342847476575314314241638871263136568551274856853431231132274343835452716455375366767445352472863352536446757615465856878181536266422718253112445688375825465575744337172188155714558827125172318526835131727556817761855834481588821364477733313547426867762812676767427118578187442352461721574845766238445845811683438788452413854255842448654185634288581232525651826486856228324357628772678411248152843853462433628576833628453242542631388353137481542534378215566352288286387223558172633128232487226528314261426216513236587545481617428212488658726121156113378514274112263731173513516883656458261524586816822748672135178364475361734667845288325411651464253324123662147328317364321812813143882256368651143313157335115288518717623825477686136864368277288311625378823577226255863174581343471337582422662718644827587448171822886773177364162532883555487774263634878587727377445413718265647157284182116128738712626116687731555348763121338172432384647725473825746368222641866765648513674216356658158361133276281768444414517485545836721626785576168144537853614812216334227583211564587884788344627533635754328858437773844352373811634434265333643731546846663314875246417365113348168328772836874538637723784354668737655827317854652145568531378113317677633478346281437383636448331184345527767556137273825164147657762173228277823741767282277554734444582414412475486464783353458486277136357486646745572182564264352848386468586537183416236562214868543211357888275781568781255447461534454368555888514334437465236414451731384418342173248866437238584657716644824363776753731727334147358164762344262774331342475568588262424265386223433747525436546175837638572818536438173745466561678682486172365648568183238444725751657124465715767187346571488265852845178678186638285413251112617241322228835728855541257818228438324165461752356624142472433115478372415615188544174487224541453623545651141326471653561263587266224182468451825627571228576726777857672775533873642132756876614126176472681821242561466846843174336112384422636218773713522388671764776121676845877214741331653443827585786838252254558411574151653124234835521157138333556533474812732581363623182824214682238611157211448364317423234674182215323211888813556474831511583536752278615235671813874264137152422772516826646715683566275447776321215381668433654176784634531483732777411825438628535852432331312774444225371663235316528822556513312453354326113266313785657128514525253848718257154277285615717728518725471845885721248184314855631621864662434724764682676516157584635137711212251143428888722666855627225325723122353856236477373861578561817658181355615665215784157362433878136456113271532456728811315121866186751438246178248284128833643162168846735674145223418651486261668487266471868267772575142132368657633512233648447422574746441841883383855555577883581384272176282768782587814683343552224458711214811473384477758733855224418117671666866216783774612173418426371787775713655358123831852182587336552755443376584237341845521642222716187518721824662125346561348445248835823647183581235842413233687136667354453625542237613653516674212673422375451213625238875442264156788158471552854116565725117717168481644286766874147241644587324516624867271445536432488175457285371383257815238577775184723388446616158662117273545116646367437313618688747733257337562248323332561557243651841365334246113468711882776221253845214348584765533868477652345474322768523851547376366645547786226477128876576241341345737753224151825851214227647286757144663262826724352211232448778655231334837687843411545631866767113477211637717146567427744365822557841113232573748888386418718587233164285323823618787711558451411116222757743512775565842225766221146218878765124325722467546463434285818364232574534581338122231718236442848544846448148835325285172458457673167172816444771258144628267422676345546161184843264515867577217763763278236416456328856745367214771575352337731768153533873885361681143258836743532375724177527551542855435651378664752486718241361427276331418421361648334764212722833848844712123257585248211734265478525653815348415282862821537888562221664874876347131761381637217427838848735125263654745364452648715527214254178132655284564818436137555378712246472272516321766516888156763865874633642383683845886244225311482236771112478466552843154687135447278718861587712385246433133818481153511688677818277541718576744375636534852554347656258847567132533743562641248673371777615725132146631552535818351787285283835771124561213288483587863122481815422182421477852762671383412836478474713712227645544726364831146338124331332353127327382226531382656557486812148558165876532831841473257438674238727586135817117133554525138165114154337243278858546338621211632156437638774138337745654534874667183247481115787882536424615315458718162183837838873426283185517144876452441211538551322115147145357548546543527885328846148185475563332765174381765721612754757831512453341364746838142854855257534623485222266243544174162423762234388568531143283531557218583327213423452523178651824272636237781656827121665556318745852378526883764285375186175465543331523424772543687764235144867875343134167452242251183114676121521664733568155744447443414616774245136211645652356281387771164155622787335826268521351726585828846516528253743224821271378364244646735516475128238418365171332524854386584244668121457664235443152178675645358537672311788137762123117683483465344722367633652548842633744332161841584675216571834188282346461853652741665227525175665487485172662326275848244853772126214271155812468833718243575657377744181121131653177614527723626784465656324686127526877733465256455881743283265344133528815745634451435281727777145325657345153788521312388268865647673888824133716362223624828711877428213462641864478313784384457343145544774574753234486635637333652524316855158624375376484522264833178535136386138237288281426576661436878877161127717375416468661536462524412626131368887477272162623348774736315184773481832236433286467173455278543828118868853125362231645571577482241487631734235571111364278873776181772183333541353776736311421546626123216862235574178225627745433553782111325361776628761584277873387264571671511272374511611256241537612215643673434522551438545864483882374678834163867227777267348552866585254285817768115851687516368826224738761768276343586438536516822545551434663674687743736355418185382887517316742647252137187814448722286686484387376147471545426842537783284262115721771365268462613382284724783528538823871561427542534575484673117823766388618865175161223482523288378682177433418485856482866373833451833413341237852125187287657832683666652347812355758734548751323243243268681117715236463342242351138733136641381436473843256215232567371458378647212888663812713182536682365411621152283273365613385528567828621518452728575424212173768817236838251176386355748365166818235523633135246227514528625674862235131543232135843887813213145186444137636186228112331645755782568224611188413236666877216325118277451346685462141616145856178623132344811847351248457441662451387536764222813248645611758345112276862712742248167478718335782877378468781712881577842543735724311547115413625234641884654632766733384147671156144416284226473572786572387517648417861761235843717358323763652324658732532515466425716235222185741578211634642734864622413226786531544414674766681651525313111586573833651745738854221173445453475886557754677614422758224766343154564354361456856662175712583653422675742464256231624683362152151468636518574124331885542341288868231521284642516473442468388812275882274568227353138273871782565186346877157872617858586645253176352183356613553683163326427245855552588142143422535424272751718767568761318367556112238853625674828771565458162713672133661562548673255882722237132436265151172714332477438313764161487213477575832774122871776433366117345773258367874318454881538318852481214875536518336675543148464474557766581284625176875743147253234376673415765813641488136834332252246312542344783777681834846478837451685721547178557753885366255663223116727185871844535338483143137672188524247337318827136415615335355753626646425462728568581254677151833644864236124585257264658327176516351426377718834354683613451821844118767782621822257627156566288661622365514523614535411287676115242144735617347145178372112475387247414711716442148266442535527164423242184312744227888133727336781318744525467748663342318365181152525438768843244727652157127744768164575751675141328213671873237114223438285464666613852352748551131746117622572443866133651113277633167262311184577546874343334346152353541132168456151664826745721765334441233161226462464637241247641343527377676836717327217127361173482413661512785472142714184483535357116773362462442641257511234375437712714551355735758437148722151725561847875325514551653721814334214567342725468221837718717877238555662348433147271376287557326248878676521566224171616747468361635356336633558176453854373553424531577373842785377773717313218316487726712133862386134455818585368138337182812312732746847777582655214461272156344618776165687485424347548814156287746673526761245885253724425123164575524865363181778614853132878273325635784486638252622173278765843618221233435744183181872212158251171733635675284182346631483375335413517431253366441486558226434345881645748777858837611667888673647441781582538634261754574736614178137386186773624117266354418662646347565714628238511512573151316831637638713422535582543815544663165175327671444134123277668587568817435724315773552822131266865171267115826464613853361634753254618685758871621366125676313224577737617727816181555611432337535273412513868552322837676781533754151338617572432824255861432558563636224824532651732865586236275855326351742783461437851585663362827784746465617688544848745574644615844185163873258517416872736588835328563288232643813728362776583371384741421768258684643211782743876268528557758527268464478883245527224731434471633681442381775611141436678355823224825444126858252426881686411824775812132258238856615536457743222112882722564843214484473867824338482478326235641667376277224778256276774275825635135466722628478851882351161116667754743886162238443814613678463883577333171121471318427863314535474463717328434357362617273213431425548321457815777347266213417321784748227648558376153422364655573623425534246374212143813222582477881762872266517272615786666633135711317735381282717742237125512227655363627748412415348163863833686637653314623725232448248127272333558317176854434823574526561667335626177742273765373845642668148711662236212148834361154516353318162258525452261754733447366453636683115484323234844532638616747378727634175172512261172177331646647576828716817566654418114312568284822564833421212358125246272173212826343625456231433544332638365362166188536131287682661426124411485283184685176718612867172184643885885867387368817183257173264444167236355365415224165565128238737441534877567372785281326331423648832711215576715635171881225884723222175452424866412168535573758245545277656675187615287863338278453443218754736352836351338821432843715327125758675526774552657478815485562113681521535722483383257675378281261172618174414325784622526845311873781321544253325343746612874352682628427175685283348636435715737675376451731286121236347435486436743277754358551654257725113433811327745466234768823267557388628462178288331445271587151674266812626271676288664514727846648436518228728353822238872418867143633353585471871172125685763685537736438447141544555882158176173463536412248355745375225451253865161126237235784174783741576457683872171741234513215828651224143321743185124674817117853812624757621873675433668555334642482111441256562317651285533474732268511182367162435218227624165243263728683824147184685423621478286414178663183128717312648577353322774714282448413258665816463183686858781758425226784647758154883668222418343865576233624231364373665438434117725326458864354643387257221776727884245451753575788685136475433877876577356312635342263885865168773788382537538883174526763787136833557538618853586472654683552143628557677821567328367465715432286567352166278743747854638873268525233186311167484841154131421454272241766268868214181776844275246663578271224482677561838162416661768131655138373358856717327821275447744865631286428122482322552173134178643542514246342243468267667342164846172448642616146631711261478281763186455377348668513611637664456581516882176318557237627221136682862371128645523585857525883163464885287465484487118643567134554148574625846557541652731376153373753182181114128515535575265475536712456476758538152712545278146387638618227711458638815821733621644565853614455671845261135325167625324328622152541366762811114245862652634236383267342831356114526788327444631188775467753715161447817275674865584247334426355614278773453545231151731437634235418784556414735554247381351733533377187863254171173334834617181852573174314848884415481283865213373651386614778273232636534388464125875673734687127646673675121728853444578345673314213535851827257377831235653146656687577383666752381224813586518355768447525366418873167725366664276244711678133765246786466165822373288836438515412688371776645381882775424534833471788388875577223342483286187125154778228237588572787117652266241275866378237532463188587471542157734756518755322715848541864135655811682556717414155727354836575414862363256188172887256847337784182486157685562656251732732716158363123138647742182866426514437645355548731762737572218214188611673831412877173165314868788458145856463656228713785754858288176828857325758851722752545861747684486658771633566762223853657752724668554438113478376188843772353815858374434445153885356536763647424361274832383834185674626825275723674455636677637854425363236833358545455156432636453682663762765164484583181474512352666852348117533537782582666366347862726873768316122174857242843557741154358743627616151412871775537647285522432854577831563217542478823655776351234326722443727123814425246634756473263816214245578315644366251435786182147686314884637441183715782865623428276377144845266588822523446678282443532523776352627152535667471615537426157167628543715641852261731143361444521447182116672838133487574613711467225733116868412262231856276626543672465722348527758516663223276371175252278555727487527553326814552768117673382267384385722117766122561318763631362772142852866316185651748658356235552364536571737848532222858712827732263512318843231112535547167645486767178335811722551131551728516736537487833264676274385174812275132737248156436132544232351228137744425337758336434878716248542161323434867654363752418674364547617176378562178356682581825373546788175435514313561324616526577164618712842378688143372834287717771256737478266817176544776156341114857514374633666127562641615838678311656167437857843632582275661261675676721754527474221528112387164677868626836287178612643566442248318113717486362857355451276285732276111837387888841783757641483835578163347655552517662153886227772272718441467723578744371153276278645326215288154565682262135275284862832671766362781312144326384425442127343226264135111733141452835112351164542147681663112428645333566183746853721322874746545814485318176257337335447544113146562223653735434228676433218746281247464772668318841112426426736447272225417547852443473278574124754441283272682182748262522157561425323837456573152643642416757335417655587557855657134645345382572174871414343563887161356552856345444563887624163155658547717268355611556225311771382124324152665833715211378645222147225841256537626573373681285228358887616356635467383211334812266435613123484287867784618426423274416422473374852162432514318254552481435518535661686745538141748767478466658561268262514886781381812876623574458837424264413848547322884885267566878127473277848834465222471366626225614167354675548435768245127261371772527416325364482537331817831621517232744122768357656461413154377758784138581166748451747771871235623634686566728324825153558861383284257132453685467771335577245338422553765613735137622867344435738723758171176365232622156657457355377874455535635425316677588428124144363422736258666443553462836662615734383352877115332175872323815748655656448356524653225288783716173134643742763475624455124473253727337513466812365842866288358535365271717524161423347678548536136721574877222684548285322854384842283818366344186345432273318354374884513177664767743757471536384511431477542481328762411286227386817548717478576277346165767785582212764766514888634546488585774473212441134654742375611281744862652344861158745668642865142368227618661762673716718136473533587338787155768215238655781155152776235285664433872678587873834755133518822264888487457224454741635278588833565224468852172682153833547388778341676236623687423174356711728882353665413813611126875223115454534628454825253277646218881548636763268333417512537334781483153734854627731382734563467241547447554483313725445345134625262844124718521858553333341486632466852174713556643478234176364252184774736643815552628354113453283483133568548223278263761582762643386548771178741266521661384255556673272351452245783244874431244286564754446734264811716528312422276422124277333654873324636343843145577454652665167675337637134145535653813175521655441468258481523418475263287742432245213424245852245836725852343186475166754248338275356754545327781241316742415723184732558538156146182678452328855775633264527268334744423316553323468273832178667844752414733532842376284835657116224747684151747112414234775283755644822611318874358148677647243562526558615557835417324123335236551178742334782725138141143887171763348357676358727443814324434238671884134718267223637728288445218414814172887886417614311454816243516861584258254476588818322611243642818356547724525215831713182633871371255545632314668671516633614737244672358758745582637114813762338231154282718311856251286135873133675471627641838768818563641838215721242868352282748348873313215311828243366186848665534532711248257773557833278627814534525186717472883427347688568586352125627615812881327482828341276822633827712653243163548447671725422417132757323515785215814666148348575327152413654586175185152474572148616721682148782828151347155854886657421232722621857678135755187335438622465282316828248141344633565455183862244251223818631665263262376315287242517623422653856668154515571686525712661581122761684556248532476264877882144531272311131117844672764461115852462228726364168682811763315234624361776846148147731137425125486542631853443351262128657358117453422174636627844485371184363751333323228713812481264653566467568616711348633131857564238861418444727256864757212788737284453562755837635146438688418158488152682126413231582457114827336514111638768644258563855883352553867265314816283756881745745325124865643582535645338315622378242168828314366347782264873586862182514153766338822845225638272334332821533312481774634611618548553557337372321367563448314811647518555744245313714411284457528123333215344166775537816645245825572867745651718683471511211113411275738617448651746343136244846563835621813185683715858227163211327211761322753335536347382615351821335556756641852653714556365874322465483358232716677237441484561365885364343283838768866128275735155417871114228441344835685256388442732577211322276667387674538463528727378356461876826221276628818433238828548615547242225188161657188142722442453766514873285472452563851746248868261733254773265452373277231256776284545784534185276768144285486483282288478324572511887533154537888245328885755453362111773265777184856358678662324533717464218657448314268287132148462545227872112346558286567558355385577662544748468575537578271551283456681452857436666874862768511753438121518857766556514647364133545435243432782662158627886633128863858684135566762512128882164486867845472368161886763711287333564676516862385531383176632151556183175464573615583253565425284446654434657371548585445866837176755314834246618348218574216533635747782783481741821625421331761513577721317181885253252226782283117481884368224621727324612258346226364642778784855121474547772174658771344412527811271451561852523863728338621862128473155132477118626146626756517448847146458763857526663422236726533776265173178723587244126163114573237857342526646162834726866687628136562866414157477132732782117286764667717248131816524746781124341138535647544545623784743761771337221276118254666442583746886511388716688844426415122471268774383454551473211556752778325764258722335713831256258462441151127887737386642125656742518766342665274845817753445216468763515782747786885755128724226171364343453468383451756564641243118133185786885561176746557276447654313641824264181113336276468488264615821833663856123581487263588151542258555351685344448813886553726522311743642566682325215427351236712481157836442884281257178747682741145375726465117168815461846224885713748357373138226136324636816132367457832675555171661487524564465465588222445763374375564751888264482443233637632455563385344666582434574833754648253617247626634681873572542116132117818417382827671755311823522474777234885375732762487567827254635778455811823178717556425877432837851787883863335474434873785182171142868186877663354561844526317722365434851623354165166217221666528281783418425417886637354428467128166783857226383151615725773535167277827513342277586155358414784535212247251557516257387446823154476572843833573817231861457181353153624435841834685543867257666673628367342224354364635164454378131444853383735242517753833325431377451524281385552577846721266762645718168886348365447381161554187211767225338854741582588422211623835757853361386142476571363773851523352175562843644327664827277258618481815133736266265368563318431345255768611154485257176726475737171478842385235844444431682182564238534588666688633887637215775787278183882585765734416673327344254288551433111361281132337138235438424532361167382467576352858675535731751675614427434452551243874125425255351386133682387148821274465743717273851627126537163527622282577483824111277262181442251457417754114832132422561142532471578631228244511638348235115614231167174558683518438624831144862826548147133257136422866238247151755786364143261513265873887856461666367354733226486378168836237771836126546273287388686321677263273448273787722145773842618343241772211587443633862666525212841852543752344727346436648574234758663457845471464541174141351884433528831461523245244176372877318357315282526143561643824632515886324745553827226616177578742671366872438771153666143337436755123151326416283177761828413873882578137618833284758633763257362531722857685631153115448483881225373177455317144622257364225326283533114852256325413421242157531636717558631127433543552578653876278323742873478846621787261535418241132561235384247868213277628866425663544144363887372517734848431853365345218771251471528846641211231665167218773378866547757362564413135527573351627448284384236628145472314424675233112342786633573248753761528458423248625722334755385622343622652322873131578882154214713757477854726731868618885171383468255412662861523525645733423253473878323126851267477371211712676681156854844313845147552417686724873114413132241465568434228343184356571645347617622175585185844334822824285768856838388213743115622577136324726568833548683152264541455275833438512185136163586566643153661327764474177375744243441813343746322727127468145228615733136656826552846423715726633418668261567851615381148735588237161817352488657222535723266815615133235252321166737855632256144142653547678576553552253752217858781765854473732671773781855248166341831478822873265813776462758383634874833386325464427255561537511473247516845474453472533122816456453637823271147177177362148335871488581881882651754137787143333862335851878332754587867433227661472728233778475558537846524766113174472786584578344376867414145222114534763344685338172373878782217723741671358345314317573127422736585566222772814812782612857233466458575582148773853762221832452747757863678357238353826158616651822441744535627815568756662114531484336814144742523787722868412686164557544666311275554511278542573387282634573485112647466547377771727451651334841354883124178576588533165312511672666751626513455248654484628344486476272142827385238263717542146357434167353278423711833252157874263782242643553163142527727578536161176216151132488138576362822881435237144724655561455418743842154342752842873182334284168372538582774243875118678141786726564161786287532362286531323772675615321582538311635213642333572461476761672838582325617216627786185681637264646752136883726661655244871441383647582217774825156837177174478476782653666517281461274847838158458263266647676664863357825181232255671385133861783852442145367716785332564163275577142634782142877486624673272175427256344348157731214467185567672363741853256876571238282784611418776868833842823653561231243612121742157288151575748633263538542152723617156737867367758658856755281733535741566742626858548645851212255647138411787773266152654227738388747538837636365668535725473245616656735753171181582784838257737885284373171225174138838751518636628113782236612733844418433185238562783685744523171458254177615754425445476441817457365762133822512346256166766243675616161574231383366551815436134248626584156313643566215761756451754358421142474442484136872626247438566582683123556347476542523336337776682551136767256263511785424224642121367287235336125335241866742157535862354167156158557638165753712427416237432551387614236455637834343825767757888218655836775153737616768511234857248357252515226875854566831141872164111175476685217313174428613227722522515685581351771265522248275373375854115233476265642514581878146262278213173552883312355382588721185767733122518562217741657534755166388188186742686161224255335636636556858573514534746628717533353577425672854871283724786181364865857545772577854622663885585577836747826353886876358272647171388746577458886232576111361854221558711713544484445345136377816816182875774885873478528711128142213533121144555385278676488843224838236667382378248863416833571682811768743388652383711672112627684758123537732481272645864447345164857234326433376574781232226765662681682563133446721518645826845633575227615318482116175158734714254381227555537378118883124425377367652487276631778772781631163135418627285358181767552175341328644255315747212166333116864433657782613284144244577117477268761876612334382132117722664328214511528621357218818848463674186737872253654742573888316578785231445456465748116736335266332867116586777875517638138714536723361511868451516161624775864215535716687475687362526453841814445633345247422751724238363653616416615758711414558248547181461886115117718832382612555113765143115814632685551325126817848585682542213476585314512281255436717822817822618136454231381574817573211382256717863478585645738531611151753571134142546712464113164183531451266661177576542877531314751114827625768354852552842541535112574152336635572374466821278437685423513743172831511214462527856123837318841727573437377553365536457821473256626526251157224717372171616454435383166463512133518357174667526882181573737648221514483245484533653622547435187443588372588613368653358543158841616888468622566754785687721738881134581848247657681476527833712222437286241482653131247545816248451756812452722337555172826883575826751138756627627213378662445256717535568727426316545572153648541821672166542411313434345258285463362576337525755581744641137345718678765573641588658438417631374418587266655263245755887411721362745522544368775748872848441578342356641185344772478227363824465214653242243645245456763634351633571823523768815768732468782167415548384837487171716831335518212225145813135827231126152152715547376613456316125548354148873611281454615417122387751554716575384443585358383681313855474462276725346868234588146281578838114488416884885436126413413121576753122175364472844262442754128766562545367413665631257583586161154332255848764874461636761518556523385835288378171343666732177254762838541524158616361666287422743428634516581171485756635821834575124281352862411124867767258636187675875883217421474682481123572652535818114615688885227254621837288662552348215515355174664282238774473757211271487486475844231248266616286777544833416328616673828458111383485676718368482758474535142182156687513853264886637682231246247488668176223417182628276453685132878556358623453382455651762722657142617361534271165477824372866648463138536427684257817772627555746847865236537826442427645718122342814358687613333428241851464437527111646451676886365416688745271127567738125646442558678464338477112318553456437425887244648755143167473224887128178358817731826816347571745348367243776315481362218828882341464656366142673621137144637822587542337516453481838376183321788145288278145635326212316482232564348252366573484125583138677631516456143178156746444466834221156824155777465422185778585634155818254613717627884857427821346272724663484758887167335355843278646687726741147585528382675747672584787487861377253438713721521645441261218854166874581634837327451554413355683236815662775513881418362347564562278447557637413242365161552365373465258723817534477414115333588254246768156237882455784443788471884116773544882458588362348883646743213512255711647437622754457541232832347635575732136683645812566183568456186611122854683736347785532181378256321455253647567323178722431773862347327186123147737627624278718773853838572176286534344277687662126465611274651563672567614782841175448546833618856882248827238877184215736542273156442865864355246561262174184381237252877672622153381341563183644584335655265815533773626423416356833353446117488557558446581385447572252232276351271288535882321745671411828744472742153511768341888451875838165648751352258766582857337534333688811312337424664634616263268636537213834814477811241247411731854814167528878626418172583716262367568451453452676852183824136331174865363524334355885534212782866252318451762143271141761641614366157753317223566717747583612156747821245558328475825631781821313484456634715646715857237445837485485421685487234213164268783515812456564782551382428426644238862638528472812727275621485812745665653223514387562246651754681176464214448358831883226723474486753147516672268475417211654337455355751871144722666627816446285488145333868223447268481818411844858451518434588412484656824425756186886183215858558638423846327625215754735312312321167615484451376756426548172714335848364365742156752248717621211277418545846863584576257687314167128111463135838335348227725584828178524875528347567551132886531375855152373153362611224418444572445285538778814618286448531742467155766455888761312227786786627811872565326154357326537437722688165881752513112365858833587376761767227617152532776737273411684165267186876188643224586662446673272385168585433725636161527487825547562611726424388684281448337777125536243855336323882221218342761388464546266447331661711766735154725565364647543615638282751128332864126645331824852166128685644184735677135165847623143633688416258211414181725861611568841718127321517346632716457257366735813487373877325785472238548866216616584585336674836271412468818227265663715878332281418646553641556582716346638588828217226677667653831753852487778645534874536175672134511445242765816441275342574215426675456376473638845766883645366771261543668455488123142471768484832833458743858458855526185617213373327157761613726332862464684551261737481338675766324414326661151344166112448675764577712612865868582823154151661264714151132211764343158348682144265876233145686586883763473337828325183424714615187771463841765574571563451522258188548413241145885887521348148652226735863275323746557726638428727623586314243372131843771683237164867732221552484547457538117747741278818348753144527738632414752657744221563545325157211536817271335315722671658535675737564757673834481738532847852532618466137665817578154177563211521331462627433823143335614352353845747718724162437535457615581843763678527677876311686116565111142785527385461786716613426427511258637563354511112536521158613855114871331764861685512583321756454222366283336624282585816221127372235368283331138855722287281556321241366853871433468366831448866228817331233876128212366463285422341877341453614588351813173867524661635135714633487517383777371167132518767214566332383244643551152538786876634448146513358878184378217382553476678335511253784776147217443675645176118553552586488112552782311585861787818688448847814442416583132331662375288266656846757313345355672421848641434486616188422166142757845111172684143774176252436713586345615417857816282274477347834716776612176724268517878755342584464121581581374112771474113643374251212521852216474111341745154742185662345164842487182868717135278641375576851422471168732161716723617374637646586382534876742315773648212246112681651378482332367151146531758725814116623765283422216827117316448527551622427326822634784241472373764815333234841168784644761213454686565846433757684423278387331188817182753866531517874266168358425746413782727778727836215673818651661415427151284578833428142634175875865155527518771125246535531115628255251117637388763257377356846432265278674516471772612414685573756673156417284816533314272568174383786126615721654715663336465735766264264385531364382438736615325748165325315511226364378348676216827745767421768356873758855616332886655845452286622528588451643543444131143335221625122445525615323154126171286872217634517764532655237355176248871753872722858775283853377784523378221757513181213172333727757511447262312488684261721436314533168333716685733657512674338364224434755465727151486611534635632322583163277512622533383368213156216866353314474166271523887676134762154411381715145137823613728116563426316872472732867163815611163655341426714825428358263812433618681651881236188145466748248786557333486748816777442536281675761588851263883323137113145267841738862216647442426662817854883667568683748263385768127763377711516677281534868347117665535247867251618878633344247188535347751534484425253774526517574858147345262821852418514712546435642358283174772166865121345825228682141474334781728864513273251726422832576418254117127724555114455283626288521462335463735643888224454326171538557438443615727435566737822142278232218465835678865158541715784272843411782878644625281343751731447463146874476824424774285738534868257545764363813746772614524227717333152814576476141353546574388774584288135265854252318661622331785263174855546557323814778451612732685531586216333456246671413562785252685266177657352767238316382338754455817281252415511818842225724756572115738454753451668636841158345148113486244118468816565124883853765655311487767763321274237782643173558534384563116368858714816673622464855415241121527457513577431143757663571853845738135426781221512787751258586378623486558177822663516146443757347231673181523463514348748348618368227652124336766856222387347676348735282243825212186743365221736541223422412614657327553152611574774676325613365286516878152541618211744261512771427674721286113488223852827767222676813161747475735321612157177532717833837772834332587857178661676778716687147886583387131865874347627315234152261554265572123751135441855511822311233516151711865138424813752723433743651873155412868855667423881588614264372252356511244586744225867735714262884435563642343377643215176734435745766722438558115223231826764656423833416161531776514816361762852164344184683472423466131617215582128874447372584455733647668145574818818821168475331847518583658668645162631833554735672483273631817363584778477388511547616527561447475338463731867652341545486628567663436113254112148121568168352167787263645832465517857173563338222134521122686225864746853623832777111732335485824661254881242177428242387264216646533633478674112216522251425458272368467872127517353878765677415243248123476414287785324226224854421265322582153755376144244445281122713375534152464674766877513547542537367156125334745658217232442882267852165773875866865313782815177734773138363128246185418764244444614815268448541182277667775522831764342276357544685131186238282536452522738772177382722124245642576161462448631833434273453324527151677857564158417428263573235485753737265283378425841285454241815541821124315575566767244112228778267216644421221658743256118487685567377143148546576387163242778347687475264726766522347782736172727743567628833668324172732655158822261532371676831224871434318341522432527667252344674655458736632746346663646542468126473157143871731557882724771173216128274668684353345317633335335523716134516326777654452274225413854524658563257123153868447853721884515383884751457558272386227454368684543274264483356587655827475326716771354126584823622565654362562244441152754418615426425487656827632418313176162653887654645273575512238658585874513281876832874411135121645858316626744425858584183222316517868678723632735284785856872741856843111757428882743873867773822288173884477426366633415382253776665466431748854451637825383551788828225236358354356652147222562148746432354422481325171757754181554834631375723761281518482617181814837548487118326656355435526688686848543511547361616783228152353343633854611336274726458414762786356773845244622167711335845847513525856673611767515284537851242433427752447846618547184738184787382148783582663684414828758716514361682847778838555873588614132364715881815712856184517513685685845237857421268636344278846355573274551286772453567247515215823176776351412722534154681824767512384247313552222875332325438514647166743438681338743672375643714548648758747886844637641755388326262272165164628451546156485453878138348665524757278782711837686774184588123316674746467344382248745846247787653232111663646121287352867175462651677278287158568878343558237761246667864362764868835734517114253327621854473268572552828477235285337154438136443745173751262588241115148737585616733444377511287632458831413126852722284774814114141386424841327462616371145353664265183833887452237176456428678341544573827674417351683354587465834816253512283751833143758372721651723465651215358551744611615375677132616741832758414737216278151113856228267118741834412544587858313646883867177847431313387526248244871687541436448375631555257566313563134128442156183763716763661356585536323356425276325173657143548254336363616836278385428417614754882881735418415345646228615515657214365517718562818855514636582421187177387561643577831736767782868433722182755863127362421383271788834671412248838135516186837376746163112287122333414533676775727745581825846735121856882538274473281766413217584431647142648733661126138888415532241685448516776111862868166753645156353483646164174784623567525141227872755188662348481584625283847346164374746145135253835834781861371785568563564645322231272167634486345754758532864472848416887364434717687732872767724262476417277646763178761417341373314311487677221438723883761254177174111668667268648388421423553643785461653236535684564212556638762851488664568584153323782138243224284441645366681617552417121368534146115244758126885738173465875725647326223458368823234877322716538681576421644686476623526248115346126612452546124477116514534816125753242824562582612721316742126326362321676646183158844165816251816716525175667851231144648383548875654187141338582745226451676421721157632347313635228255531588574431248432821364753766381186322784451852415246614765242412487882114642666721314543325571685643811513242775868581683878486125321476642425836222141867871836372741251263612154188671361861371328124224515247545747743585248341467645227588555367681854745814326166261441647257475857244585587521816463438517637828372412346882762788267463348472573144515434524778834664775124455555147475436435557251723775526132138511871748384538513836128665678326211326764858543634713641227384682328716765876586576252124856375211278822164144333118766127117464711663285427114532731147673363264488717827173452711445236724641182724412872344446872681548651624435662768442331275851386731562686633341585857755414636847584584375115286146321844454618241635857866833414754381775878315661882847221414777612687568835375316566861642217448872726536675711724375322747311544233223111186283652238754281684123277283243328841137846824435878437184387757541236686782225261781811516232637427552241543416134213286276357861486718325552167656558645771885447862182276845372434442646243131335683211475254277262654542472238875777875735827572456672852221425731478477238564445736624355214145144188563634746716741465512114386255836554273644148182733422553122851613875718734875436468247337645727715534138322474751642686531843488738654845326816214718767536425744274316688877287573834324467376313266845584557524777775685837144558452483461186374363153254164881835865832634614677481112521774744238475445358748733572773323271725454177218561265713416215516161151675643334157783727462713212632824421274418534875185783826628537764822623537645421821478342156627568731787357888816535335477573241288662387677845125745827458785418172823771735123523877851157758513384115485186756382878574668886473846524213824752511228571518341381717527515782264617663874443611246277377284466738863621821365371881471287888286486728113767517746567631185546115642458725578168555183227472847161177585315365712612774653774256126737827673162441824235164478814818248662177478353763785571272814532381756716756282726577765625657145134833751371145826854486863418812433241862426315317661375528226844552868526451287863665888232662632738856458852282343472112213768128655616166673577851148737833527512563711586227627573762527586532172357675543751432453228241728621633413175823775142775738177831516787628312765844488361845721723878875138721784221518585511653346254462472827747333262433354373755645231774853638213465176344425233728641863233617733841173671768147482354756737515428718852564251123376235587784134277358275381122167578612845786243455878681325474674584458575688448788617575718832847254652311763617354325666456534565235243574438148818784786474827222815167863227551675546413563232152464485511644372755344346415781434624862882782352773164746424226224587246768124773436352534131537624752355377231613313573583252327581158431524727154466552173687377864423171261322256455337554862484766117547113751664464886761177842745855525626227683828713547286187677344111881615624452681183622153668515716315436782526627433576243656575738476825651675864857157855277542788214126317452874577818447171433161472675542612553615338344614265628163134638677573864223873766827532564684636442873235124362872234727214773744468121135187713734844234772735757852626471447673387888376513536768825721618268462585655178341323161827522848271615363222172183316274226648765383877186234143151874487866382564765366684488214731346182527855537722665224634423332262563188853685628133246214287756417583782676181446225365384685388657313857234248161132848115645112855358712678671817413716858417856568381415357725147776681687146611618837728782551854527648425686175518422456862713614131235837144135816742437583262654482736558146714173463665123712648444673244862852813736483457361785135135661143421785441578677267428224766766518325386764578565333422316546774213245818255133872272541812844338842445475864575126653738751863813534378375138353461432328683454556247654147445747288677645547275372622332568774532313512428462117827331838663845861623717512161881122212261778757638431157788482728585121552475572168413764345612378462786381554123166564365423244646342523862124618617247668278265176732853367887341651813514116736662177111186538463817873523578143265216173434411617216887335528274365564552848637845727347211351831572714535517131518444658825381781122135888534223843744743871878832463237446432567318374813861468228582187138758686568652342327117165825527487353348341838348411328672214478442348685686316656866261363476814641263647471678116128451646473674815532274476526438638317564877677256656583321428543443247668451684215571156116656612865385482682373573656384782265863224334823328313483674123357388741185177342788425367578445167187622785565248274313657672274427236448386413267615825358435274214561846212614156213717858764241175687224874228681781316437475466224163641448342246223227437275287524862451521476466182155274174746714472457721721166485745574143244814485131722824115553241253241771881424878866128341127615777318241578176153564112122423781226275145533157526741673372542327363371883583611621137242126136343455827516848716842724286561814116858575862541538814136484553557564283187586885425434186763548668214725573867212734314881277236514645424783668846215265882365765835238277485733383387616355852756745853378141127341564233366366627464562824244571644171774576167454477341428833422547161774465614868232124366565462511813714315438814128447364431431671141686447863861516267676513256376161778334875731588748644225416333632442757477774353731686354865681317884632766755133883845252457383374714584568113466345584878271118485713773847451852168435835646627536478785188612552451634373352671155785538446347476477332576857556455211412168528856644662155637145275246325486674826674152166286157788738521364348174352512265526714451263858632851281283761447738261623636115368655812574738673831576268643445534225258174844584671532243252381362775311168657581324511131531416536615861438272565855838685662558851725186182468253636623745414886626382542667348437633536168187578777211764678851126721566252816331161636611453443553382621154748785868418486363622867817524151683436214166268126772843387777175214273725678354248412477186251187113333752616273173535462884557851353842285658144337314847557684622164443227253653373754665712552466461587635268514426131388536388656553271248733467886437583735844623617235161674176458635818342168374528444332114532562587158778546118813731472311728757673587671151313514875412622443177552437818774124662562764858216723134422685327562323783824762126816882851256545353717756268645741651741885167814671786513511824153462335421472277785864242155324486716834141426662538717641446875484467221237177417188421474536227463212433487548477716142578343131363433682736341367466153356333574482673773646635466486672332278726231813268647853528744333228718341655112685571114532386565161321643373314681653832533112121274633421668683784536174138317126743858412311172288757424544273281412218131521127371463647645873274183663114162675183318226423643731288763266117267521814633288623248171125412738617178832623748118725276625384424668416886767327264852647822572626271211644424545422168357187846634663375713687841181743784371281335354358444733552254346334574626858824567848651141563637441526351443717326632685838471351231522783872414351167284277461515235185535344434762266324274346577483576288418853557466231361384723881452452352416342882534217465324845228372223114165144211182411653513132161813577252774323614362115121613783774454734621568213833245611125833544365328443184818486248141881175672753172426483563257671624825372417822238545618288824311366566474866131811335283425464135788582767478651683557627166331586842128371263468145773884154717334142532758317765613252838481286767321848828864131281636712872221558186112558248358735237664323718438178234121845338816636135345814353123465558521221488313533524751385653281442187555818744746182747735711378342182446828351568122538361736687262616126742375671753634243886365458144321373367871171881778273144883552575384778486137522223278875462476126838616448484663747731436311268283716376254444247443163242553436838256742741746424333842623611347563414827383823833716836355656653243488341226711247316537238762253628365775264641741878432688226317153888433122273434242268573514587228368277853518847151581582286268857144476872711167437521132853463653784241577563871641247714851555211657317316714722537616731674511626872137333421881316783678544218384117237343333811251574322518173436153648876731458285164376432432361281318733842756382325485347225815833644311837783624671251778414182547465876857168817155333458732276647418268241646153287278267543772566782744873325856427486782531772168271241336541721382711387277638135864386837772662713468218776832126327582485241382146476452672271713228878773651431375846185174835136287166411886138882614135126746651758835533774528471575126416482863125725667648273581836882876676153152238183837644858438534281772544836633162823764188817148417412446457652815314226674352188613662773851848631537224876772267571778317832777241465815334887563526242611632352547735545165365117134551661567834652337681452751246552247246381488466113226152764426432542778866215538233451682788341165483856111215372547752866573863448361328561676613545543313182816273122552186335735271281147422436215215671771255651684716685813221483155674384513428338181453865434331215211116443472742664345535827226253514867717157252577381452532388511212785748342825518318365625137546871865236555766123671732188316648528221143228237327152668358557437471624651176331846826277821287737422434431257555562546632154835211767668712565773223624826348153456235385376837158267635871161677874184466115841318342135514442532478716828662786654767181142876734112236734231555117251111267613363227655441181884246281736277772346585741546438656738872676218483424483438287446657751311586631565884816143173425844226651254162357785285278511137787478233641454473865352751623717547678241642773133428233831783741823367462111513636254511328858764574523571726786654432388363757311126226746115525884778531817548562577718158824288747788477251758316834638561746758648413317316241633315735253661631623885868447781561576756471273155666264833642635358267616352168214313636556156318727116326267438134214766336861366475584181618776412518264533761425124143313786786887441415158154454263484238478723366521126822644524252865855223725363765442414513278773618638636357547154137767423422487653582178383222817524624773657875534283186674837357663524534823652877624483231213283752585654315638766623853558788186476472884241843766857635461262631557387435258443841234186161434724112871238258213633586844662331833222268458674175675114452884224423468358283224413641347628642845738388177151612121864165554425171272364834245817272132734724414211731465673321114832174766135245772613741486352875115143437372822473327643248344456587656552282721511163627623752818214634415515156288528314164227282756312818544814282426664314418682158317616462687872318343747652518372853144545578223665847746831527376386761565115435721888221335722152637836165262345366162188417448485543366143722578874834633125243546678556657617517287621416154623455323652664737527532322672315184221311511355755172487171461128556378678238826716112877126656472782642646647855165141221248853771856568251784685432448471661176447663132652488656458823375728158744873141833438847816715282128553762151775357877754657545717844171658624812126127411637163342644483156633611458136881164538875381756764413636633437454453783813473447447183888121185318487344337668253634668134432132228341442225711882224122832164536225523762557718582222825644385561253616728542261845838255243411858446616226833243827331583852266742281722573863775272187788218587565631427133121554682622161126465136563213225636616554616722284222624773368728381861324476546485516833834238883562645734413771655812137366576533477614474834588445165634736358145688785684618161885686448843587778281482852772632261283516116644343757524217462423373675254481121356422534375313824838862464325314836515726132484724157733616886282837116543622354336638334324236753313814575434461523483483764338165264887317731843532125375554234822243141347148337662274842672281338816381324566675731136345452485368375833853355686484123444161732751611342587164626785241358465418538738772211318376478648184327831187614862252551851821556178756713422723781658652367243265562644684772227373313632347165735442136117614454343134482816783273586336385672846178786612846213516224371457332183666183823224164856678343751723818287118842453278452314331817847456733615324571471758587658214243581453286315513763766874255767868162783265335357232634437611612571751561384177284538446564765131884621185417351162521741677616214544564458442532726626687781328541787287155826747463716114284356647116483343516662618814456222834617321712861688426163218347772447825575521885421552727157381222862381585281862553454483364422147571244334523838142862682373116282845733667185733885341635365525565572326171635746545287438487545153254734477363572333437675176782164753517524274364414826818466638772654672788432362218732158427234248584576581846247234464811238185633131374365817288733331847353887687326351417454536362485675816312334188812417425274631687423216264355275486685415363521866347213348773131766272161148626336477441233634315683345215365227553337576263315346638254426477424612326617362118446465128865534363551665218683784113538477365523531441741773666245636533175224528536457573673477487184275137126783432876346774265328375733754652444454675276267864168533367528244821586155825264752368656347485517813354452378731458574331521654114557471262181533455165274712326675633254272251515178443775447687183727746126388525236878853411621663837848143131187238615753138818677151268544643355446462376362764357282867831676451518563121164767355321335457784823658572378684631464278247171167766314782238344864614242556662128573661565364874444473757634635248338178157758781584222241821335482465881572434566216648275663258536235773312271383238512731732886622254374364768331176442142248333674875318214346857451877588743634167854384367114677585766163365528287241368645564773152554417581248645331684112688414674431878873486761135466475817611642468374841828554724638525482158378213164733182736773833688662454376477313273558612565627742154546128725186518586648521273134376585563743664223627552842657252336147441885346173225755722457648281715877655767167134521457516783183368848743138883842845685165283634155531887458575845686666555664655563141714177788438341813728183622351168622552131816813113134336134336826681782236323667682276658787857518535114244738322843374428877433887585827154378353866853454385312684745327618362877438818644461282633788157844562565766753811134842824316376624845884474447425275433645581866657474611314122426443357855878656644416752552251863778636484586248642815831774587435235482764875636231732853832276562432461627176648547137886626858313734272873733762118313674842153572174157665487217673656462462368233556455123656186715776417273412325561445475114286678146447156882514222316852416563515543361845474822211656516835765223585554485372656884317671367172852116538155771487627118744383528236783278263837754126477172236114888254155543454418288568443318321636477863114663781847523852766452838381572223524874273547788432517111511377841111268582682531152518714634164831634471422451261316581272347178283558728382843315544115631316847787388837833677335553517358871286438614542777637684866748742385761641366455378634775236546722634553586576267751172758678638533555185522821145431513765276675872454537747727126518433616147518231483865467577737372126237862233724323231412242387143388382257137146143242588255838216234424783225418322563888731134446263847578173411533342278388223436264267654636155476668676815386177466458822413727812375647248828565778763334358527313254556725178725726641245774634147418326672871224412426472413554765571827663355473882684868215584858867148464245724286652221724725634374484221636647412537256437347427148467513822877846441675125584434785364343441113265264726712248687422517844457216768161626714271634335247323782387672647677267145272778317614488687724751286146656645133727563512177863147444867761455258468461532785583661672811288827853426345236171627781346162385885586153616463125672877562361546638378866875558141783835822637561365658553565864486773746122251785842136411744255648614278423871585143338328284271246217276617846555438248111455217185738527333843172385714372345731325612838486738651538654671123731338586311747424756486464643742785123568621337886847717724625344128251817154448232665181746637644271152543352251524813735457316615688866434852476865522424253172726624338673537356557336765846687162662387482655118181184768685823666828444632763487825212651832587182314564183435487664544856873782536673244738844447462887115531135417661548724284827864336215452385752517135357163182284548587442555681522771426454646533347446685453312615561475632713173613321584642623445844586521515835244832628248413511436742838875523661757143268188183851134637887433352736114871243574765848677824221361147228828117176588231745511314212178433538281818146638772476276165821418317768162368621674436537512728158374265816438412628236857551723317273354747627834643215138278881848126134681325247763725231152713328782574645685562367884587518234752873251762156232327217111544867827833212871314441753113725171132856632751575435717433261522386214185262113357845313212385348354764678534216143347638121211163522651348872173232656254218848587344583863338628872482111133316237473362846313673475535283126578872883436123176748784375774573146257464374523248241564145334335468746781441252716754261521565611817773774251717381351718784423723657642385883657723731774176525186154176854761733353745883644454623182783386236763115625461678656143382816447325538171647283768283235218368352432282248628344733386851261341362358261822572252727114336326871153657324327852374655158267765583644252583482475626548446127312824576633431158848136748656336588868818541112174841515737174362514637352766427248223668371336462273735484421262843574361562146374854575851622668668732351746767467424772778588543454466744814348158817465623731363267477651466155818363354245716451536646345266113783543732734458181133855253325632112844386834888118461243476783223485742675387413617876671664417855444623315815468467416762317722138523272584732178147211185636415731223248452526357871163254664628565444831174443581585748218627877611557681178485411453424636766487786528857774283638112743572266836184721684851362222387118132658885236342554751548288433624387378344814836212686331187334468315528574645735173831467386825253462671286448434452352311152776787474885214458783467775828725828247342114735586728367263675731871187664548282431382852625461125557722521438434445625185577316338663485363161881288464425424543225545866312371732378245515488242386463248568762258352257184871421178677461548725263347286733474266135667347834451514215778126543214346742634663125354265456453353878212488274362662188516412223735437577784224484166851447334822271444546714226254743745655837156572856455863348784428455651858111663786533751644675472472352475226764435788134344611461711512522876731253815858542527742358614883831414653142281423587728878826432517217788383686835748683277856154145888184288812574776338465473118422274668163427578531315534625465164625225181646171431654843634482464337851876228342777136578121546816852252642255637333237168565823555481666635156116321711286166868625253476532354776684383154261222671555122527227858886582168856312238484382816537877528343873324357177618723884256371623721184638854265638655184275653283715773172431274235581816546818281138587145543446773174115864741618335536674282474478444222575754665883767274236545147122215248631316611177521718411612315555484328766736858444477176187747584574847886467472341333348164655351764814544174237674826868175155745852615437661883627361226263571573444183884152526588414173425134778642435326467374281654234653613426754322837756186331531117652552263264535264844132413627166666387628247713248487243886734267377814312585641847522174437633788588125337872758434141266328627162617727818354441236853668814682451234156363818434475424511167123715382585442887175537783757361337682356488141364588452178444223358465222341623146375631276883334171771736737578888412263133814254377826718181738565627838354552755631675511873154534531237536611435583161148634765644487255657142655826168186725265653426734188767636447362777488821216563762164848647488355241783363465233383581736156357346433371466453564443587645418324138848444567283785623543886781587211182457317147137811581326386632562228857826864716834686878668836786215615387438238384478285644634343832183711664181146817354372342563327821644266867458557425278868224437786663731125284574615618756773533317411833275648152175644448345562775435538255646553177456361135668615528126322156782147332181726653137645126781778835576131142643475712786773123183422252564327137248364175563523784131158785164844766218641183355838831346625361555186761433617723212262215386678572215224247262611474848167865173585444866524751277826175867527186377343815613846546488774141626424223323845714543382711527731167324538776267285582543438188324186577441318185551437132782478137166226688156431388552823544448788145486577251461241672416877547467776346636687366764888855684843317276145411141152465277848712467755124762364574744451188454421318882668775617564646254256584133241343552167754748742525721127172577583858637527612762215781732518225787856817264175535686268617782565245758541441571114868287343388643537313411714684145813672371347424151526165858332473531566133774888863321157772665584122542113754181227223852156481775161522476767176434357378434317676811874261722388284581536478617711686726535255363765364142458445186223524637844658842344653461417647525632614858152137634453177332577521268882557356832667842763553374551385624374827665377678815651765178664733883511485471146626325436563442164667533725257868656725623568426217285532337236287256626614785838836877527578362766811232747664711137488584878744288726674451152431854154485722265147366315184458855271284831874751432138664588776227411784434586478287643847528862825823857644838314516182463113856487324343153516618735451216184346666635483826188138621153188713367426646724456864455755711868152622825827621327824634128426432215177288176116346332514765411852132476742132571818815685326267241768861554554663875423337428118113543283284164143183587284644418167772252586471337254521883571322832568443855871773322417214817731354617125618367334477238711256515743778288165142114513647326476121538413644143537212458572146317128755452223242836386772878412344348622131435348663582552265636113153425811868237183161553415714138543432314544187283242881765464382861117461722722646545457868822138681543648566864534325814241383743115354484531126118833538886778445333312687768877517853314754458136554363751756867761744415623673324183773533748572787682721733325786717148327285638582524683442525842642872638863828715521276255146488711884568763586162836323313486118675575581831544827456786275716773858523738758185554715248573664466726416561215732434357625245176715433851388718424235614887158867764486456473536437668663544616462228253175747821333748434231738311881416638317784738165762767616534352844617287242687728227437114882716286313387533775368454266118247848336128367446878817755411132237183526278784752516437827276224567824618874225457511735381373114548814163824861256185338756476214214227312475178725241275786726237261127868218485266434288841561234641332465411885355361257676162875522654786553655687321145878814213368363484868841388773883637116555723118864377767588322725138526517346157361126648134732412581762433865162188128373242321574745441626626343124342374231618887831376161348142128334526267414173147537866131564424424386142148668584654437646232177557883538856184647224367168644534766832767664821556266481675235783136247315671627815233845883775117527216716128712417327242718347885334611363411416775253352252421543637261657818578822261117745135887622757725657823226567475775613375184771617368784216464485264733513636722361375783328674857431222172728363216667744858684747367655756384422164111552832844275711762712152782416557464724132383218388751682337643413675543424621674181726733681536388145718324562515665377381758426543416466542131343714771253758818456814624632341673247761241551436614871612818543231571168326458547543864268735244756632778215346472815538532345746675515622674857718477335132155484858716216475447142524273364872782433177772512563548167288868378132757125325778451171186848753268414614328484462113345654566565735815171687627787683121535142363476726452156813556118116533134633845581655416212536228513624185762247675735653377378686648753736737472511386427318434254882511816554635325583166514254837624463717243152213536813586887522112651217565771745334416875547845551668347758287673646134352542477576744117232612441682445713262781154566454784573533151733161674815243827243384746432127622622186556863634814448174626725243512126727752852728648133348116741388635325765585623113132463133378457454811222458427566715726386617882142145164676284124874475667481648287687827365254656362515214674217131371515627178148348864563384635336785455857317165271723465236651617528341587286624352525754617158381445246331437413255226236781536223167121883712282225236128733684378438725553547147485676245261261877716522161287162637626424744266612572868184528655563476615755127752225123725117552464438282622284617542758425582737635417858727357253237622253343684137176814826586521327646237285815568313124122837582782253555785383763262176646332817885112357512164357238884455117628838312216381546425387622288472878532224422378686313852157628858624266321284484148431831646581844675646685438451538233124781121222543516836824172432534382486323888647632563288521717246142155175774243551432121643827118623678528164423228176745477633556472167628435278525488682362432768513231536713784277536757574777665266252237744161787161533438645766114875548764354863472712775731245382742533414787871853712257857514847833888788147755575843655461542617757687768831853437387114771377428415582352271158881322472761788247567386736828545863587462372865474767167263133122871512481388558441156568327255741166234866875885751562254444524688462663413678435176153811723781642323213215243547817632312353552525127813236364657515828438581143258373826837573533624122312555473366888146278716327556142552133756333877523374278326424874574884767382741743155225268437472477363534677883778336114335627641365671677683263725335726356718466552428518156183845156381328261385342124542664741718377758232741368385363336867877885175737284366736873125555718831135286584658481478737417341355454728246582131234514277828727562278112756858274628378141454252342352688243747451686754357842324351746476617212758525224333713786176826315275188217617264645148868725166286526517863224382567754228243462752483256218511665153643518488482861813313847716338383813426128525815742317687228111647338115211652675414585116756456132655751136125634135121638323272253355756337183142833584338556275522355812417758433564754877116831325778281542464455225768588536627342371535781437426524334827174755873367182133213336722838721461611676813536311572143327266326488566578126377888268866422315436352177667521316753781138728668543518243244173855235183256236653576847563873365447182443583616352821451732787572265846466448662235122586833817618475764313587534871546233244153864873332657824521641418648821757337786135117821451168617351384468443567768351862611484577878558565843444815256442533635422871125362327144586333326731488226241147827284524314745535487618817645343173771257383635566438136786372166543264834771683115156522455625218743677741264767521524412432116372348573465472663521415541541533468434282583512114484455142388816234158577248435888225311737846558231712443662841167547148718758168134487441142537588836217882412536721627568288526482474834854185335214445434351184625585267847462764434453223565472847724473534853881247435378462544151521756512754611353541842416555778428786455735381628725327133586711181353121368861856774363372113125836286415178285227585276251817668516143126215122148514453674356516688281156185724475513714438121172842371553143448382444687884121886523547741577784584641318263121533313133681337414881823258725324654478128716124358168881617363238575311324387271127525474551543282236427517286647425885364211533656711668574161378171256476626332431283737154287156261276416173558183123617682386377565754314826618544312276661561568155873161216877425272265647718672427633421433773125317552253277828637128387748412838784624814435728346314732127768354331617275763217311755824584326381157334336148886423745138683548327238311658436545648236851453465641318176732526556228122236827574118623622864548426368418116344765287877461717572175374576266436215543582457474174561736683836251516426354554666221868746734132238638616458133564422313784322317735386631863778251848347272245237558436124741178524655444784812617614577124212314748282784515137688673474246723517326366482752486147762833782885636427122167676811142532866134871276642487122587618611651287275525582112634677257173314187547175338366766465534228842636376621413515143773756277873247643827386812774354888813228563252472161642632273672285566443314814164352762834224752743516282227257325746658175324175535563518435823367511744274565237412572211333237555877354257533848764665728387572834866374871115457328181715611251845456262628415421645578724771783141765852175485862373152142636552654481154846588456237512526838673757336741884532724412557788685848286436242163818256725321448726782615844721138885611623671373786761466143617537727685363285551675518653871861865274211312838431428737442516877625738832872422374572774413744616636433238158251377122741522118662356126727287662486867555235135747314565431235165883166733113878651624358311524616435688645476416674564848225543845115376766573362434425226735343814446432575145488476448827731183848327662875872255643684131762853142615348337276811672141121183624813118472385254583783123812225444787371625485773354863514728331285641644482473122253212272137835435746421537833353387586736274751148572674648554475855856225278257383862854872678842421727457845143653762855626474764445515181356142565874823571247453876141486226552212626773782845866348263655737647337265336158583663147643753825353414135652543574764524165284527374686174351355561555351165518683235668752116474467424352351548632165177177457338341625323261111477166657464872483447834174356716347156381687436548664686748844683166868458815687675265832154381424744643124823462225712614272288573546755742531287657878348212557287671184183572787354811155186363832821231172688577254123272452241112235357717224415127737237114558341864683281678872457854511144227677872545243516771142267872132568528336235527116114328826244142731718734322347247366751522747813658178435745431811651331573246211738748626318553726711466175864251878586157665842745675358464816111622422675138416178461242564745144634368556762585472776511827428324881427771275574488684832287664721734662324216186685871235454284263163272835111865857827311616613725313654856783338645412718718554542886373471625187787118265348163148284742463447881737724645336362811316365562167214724718255654476458138138143465764216862428426167664523662122584431478512125348133636234722714478148128184481636168558173861831811626641415324357532246616586167725454418158857771825622421558352315636224562283726665421686461125361423415683511765525618263484783668145247287232782546418222752485643545318165712556232824177411237377331425124567757447738581563124621471868226436121847872857416767468572253134334338841672753427237262782581656744123315447135688225768253625848223857548761431483574221557414685828567452375732261826538327223673544863166281515451412176748131664336235272386335281484267122633785884217777567286687721217155366723532445837553634288543575171744266718227174556187224284767556145721131537527216473574251466724138271686568838746241528847727462475411853685187387478436761155778445148367611221174672364254125171741717612436781237237823224637255811224337747778211175112448727772134266216317518442531428272888481561627264672468476523487433385517272783175763467758488417232716215245835477241564867152281634152214235243484865247636441666885123646381533157271838815153128442343373877553586258457172853335613518546441145516441465261548164546838511378634448436767582312666577588244711167377118468568664345764538871535213364737658758514867627842444612353137668717767512777764643151454878723333841148188782225548855254738714835717424416234125817162513156827687738235264228455375655834688574264262643578514448325248725484861286884744346213661733327472313374264568537633481614862441726283243248377147665578414481433528674222634388166232632775668832736635874414167326658125213511815388174154123457437848433885562357365676135652483162212231466787517773188147683178341421358124366753761626658537874531481444342612525681715822446745771876728861416515587371375711145888321818661613311324485471133362287248643677553332845371187541867124517458663213461324164611174462417447345132513668223273855323835188575368458412555656355357344454852254856485638856727661435836418331873736741852742646588525582283831475833131626842238717841375742264588464371281658718811476336674763888652188571872715137816342825324375387256233622371834487276481267127417133666116787128257572724447516874318176624781342645543667316174267434828675337822167133274557738664661474728655815852836465225715128834325773526384671646285327537532625112838737314872347662534816641731253365676765212768577464741552611886631116451237752281468747137352831135276246541662734757786345731167454142548641714888553141686351664855761444287582661862256433238535615536178347388481121838622765156771137718864341364381466835556857683274211442442183883436747536588324766617357642338673725645664172678535788557177312837741368225156538183731672223246462665728818436681644512573624415252418215726482538476513782173183785822527142587652756373368286321872413774645753576338233175487722366653134366128127584615625741271513174667271171322354415753181516378215378163173442464534458685327225785314866414332412121371676824786725486376426875467847713431656262321521365857324257578782242583827583282543826326374512433274553584227252167786438728437663325574476215343738864758777222268786584754814546447123211436418464654784563714248358487326885284476543858146116115224546156755272114624366184374625821117154526483721635533224758281465432474144738856647216435655164318584732375346325741541884831618555354154452231287225424126482451243776273473826743425658611524248111821464474361567575448882517864356632248686282433371713253343563121632538422254871557138763165676433536547868366786657788486154142531876416617255126147485333617376477866363771573233743622167432168612635838326675721544276885421668544362754681431812186242351365533715768623423513831361146345137851528443448741646145167617481137841382543661622323258147511475187836722863481547523528282238221283536438614474426573858171253537376456742345562264681762477328751457328436626478478467433382625528461758141484141766742425628367552766673553381643683684151274823273353317178875631835641423444838318742447872427887624411756437666341254365786561155424242862384487753315771276466274144614486342162286288646558865587366687627611858247622162236887252148572163885787617537254486142414874562637741114821878644771462883331158574723663773124232381817543234242784378426524716812588862413168228444455785688484442446472546711487742728457745764152652565687528184425352746344781755484821772672153278722785176148323631455613141825516566335845374423383275215676887513227467164623113687825248576556828358534483278641155734532333724478583655876173638414281561825258736366532268688434274671125385378211844684256422458276843715655726537714141651671645584856518832673851574435451241665324578577682528188732124164445761384433126877342512573335341827286533538122666328822282318234478142857324265325816625173467224683474215128563834837565827516814287582284426717364633757224277426653353532812487678546832532575646514233643763274782837528488832487852325226276214748824234412766457562383718838385224882566648132464314717576213214762127878773117524772244713621338778212683342245785417658856665637843353485545353632475125111145264535176655125667814476566812314344365154247127835174771452887187784721844281181213683176575535836241781458333123562846567877553518515475267873188214154234875215745248276265658738542653837553251563312176757751675712617548216364732174512732268716481473726351787327111472155518813853148111754183338635673888334873184176334748134653278664253743777118512251742267626737482545815767738115816532874117815428448468627218646113413482168618153442447114142887776878836414657625547216416648441877336412447241181173471126544766857387172628877413268575344572721452837321754851683358733722434332285737378464286282488681635342481374427622737836243433481112756685523457818431378836846533887674751175527878748426546868312514117428167727673884277768481378883688811635773165586237738772721154143266166786846167732123252377682544851887352434375462255583838555168334576745444143478568224322733268724884671735464753586752463736156162146327535553763554857272742163231778724472717785877616338214861584778187243367325124328271475337657763156211235461175668386132713868725535815651213881443152425476424477151567438786243612237567263663538144451224114827444341235283348213871154786272264742278668615273215543837368252313113712723124264446531625234836374661476671413484534116851472582544342354342284517214711442247863282138267748162336454152255627726431667224287311845476474688535277624332524512147641177323311682614441647225132483241445376358142331777113424631235485578714286644474688352244635763638785458611358745834846142126672576487662858452647845253774183153833826445133553368535184651678665866674577316333334238335137166543411735558722537143542453738158756157421434842421254258624363275647875624488714551865661526215366524768853424356375542645244673252276813667627774438641124541881228352831814368681274166472217136637565847245825663174552426856816333182833614438258437562684171311726215632727746836635624854544733122625387423314236173477567231477887131817565425531257433654171356568573461827142446335564886847348186571751112832137216717825431312141682113237741171846522551873173756185813628338433138287144437258114126843247716513586171481432873684743415575252246864641575664354614814858364886346334241377815657223148885181768824515468167747885864318426468132512421354336175426721433562838417227447187453642258371363886723778581445412534514477567674825782623811111266128213652578731247333157536561684755134675373428534273155338463254523312373247528236228188842156386883417278251845113634635713527311747326724464124135861322131785731417533837441367111768751135776765378242633218535247825716244885573122876234473516365222315368346126438833437264375357744263571623865656467651823417115671453611155862571427428526121128177655362825672344644766844446825361626563566624264677254624386316354746568166786325234165345834576173486216578152217244877235163656876516274255233264247667477683147133722325643747716262131657772334138781833885718286326523385183451534625148253846886667651852434638113621131884157786276578584416861674622244658834138612585526356544262575445286688424844861413476124268848554176861612328824582111151156611635457236488872281376548534474778724145117127658274444175863471738874663687156851528541638846572868656617876444854638636821736375828445437382381637552865722542647551823243712514467487687373578331542674164883675385717323653744471518714566612775188684735245251784613168554854241545158264873841311835761427666184173538821564341426836733775634657344174468317825121454225722844182722582683786655561257128636216231762742456566287886118728256557743476325168715876311884485561755766475627772776688344786766543463828135481361713713366514471686261144683344464372536561576238818212714868823682113141552165212717872773586441282556535168317156447646512243782325213245475511372148678427383373812436482343173126158162854188325155884386816656544514151666815686368747871813143278118381818561274533317678287438152634374834412513243474318486561616222714778716875337883347223511165461654522742337312385526824868841765337343785413343314447546763724556431355862845622586581433476766656358684624471871267314712528418227836825754153872648342274147743751443427452157675378546354477816772131628546635143776658641325365475782115534451261886641713633857178344865111677365153767415374171751424767448342333422324273818676624457766423833561442271256733244621487651523651861726738718164855828176442653873288462313112733374612778377725874317287385567846566737837478344268232378562643455823462483316526783162474481733881145643726847327327646147878287784365712357346761272245572186338626743524364244411124737356586353488377866382511474626324261867471611383868548652687326628226687122388724455854833538334581224552734664788875522714328325138386637164481513248846548714114142331125723283858557472587882312574587161832424788563368542731765253244425385168258622146427647532367728423532586355744131521488718571486848632744454177316868361548322785626556466588178437327827771232218138546236323814412855878321734637633238274743682523454573667162745867174857577754335868576335863715731182526442455787712886252278335644734762618881415155685446471211818628523485472626766837722451337848734342551217487428581588622478334135247772235166163631733364234671113354774247343341646365147781157615727885837777128662688465652354226386623525721831673462757135248427325445312443647358181725216511246168332884448615461562821727737436888614137138358472581771631817184337546155626313357744351878737612461856751418834128127546151271834331725345533323722827657683818816364466771435756746448612472621462856272864171685245328724558656585863451423286362356341615163451477567822636561842433186276226337682684281727583122337218442236288571673721873211276368833364488875271237186515832342734253881836284116377358632827411135857485532557713834512357318844556723314766582532526755214266124273231381624521245583818553736563277533322115741645252714733864516518813133512811125447351115677463758527818834855518517237318643733337632123886174625558647531663433288684323456783243511768884616854677222438345127347542836353212822588482141128121623745552245484258638633878531363743547553222426513281835576428316875617484284264875248113762447276444228833713885158644587446524268343674777366372816442688414516268634257682374821557163121587857344332137351426853354373332288581842358426684724658747452281136272715542723172473235141886768828535881347854633152663154476887884466417316387211357335186568687234242467567657485474125568764387228114873775525535683712581111371816187341561341614734482542588115522824837183845882818668781166214654825755283583312635773445752461142454128334885323647485621736347183722115134161711565648154472751264172545744632635245113336741557622145273135713665743173476137683338886742528718868421448141422647536674572641622666784774235637158458774121414454182664866153733551555816437516181234234121518427237517512368775366818425445148541238338733875813824586386243515386873612816432627758237462252524177116117676834835336151661134383477548412466324448541655466888556177844645344163417431225451826155482887615241664177677711563186123612126848485655734753756724542862735854174124787132361184544371452262333542562852471855464863125537478533447665347771481361148624145633723673281132626374478742216731641831558158275135727182515388577116242367182757378357363134884872558847534341455821628452536773667474684478864121624272452824623672615653176555223856118233471481314731672857575212375218743212385825718223746131184534686382525247841631282381312287461188326568166321761774116747156284634833523433184181513846726847417534454724137411546756544868355744771118636426773181831122245426312138548235446271553776282514586521138471875863323362132262854256883127484238726624145748541787664521265815868683485542838342143451452147514138138615564186177437434487171551672556552124351415712476582652552331422313221132176154721516183776275871352542725487523236654686461778458644276261634746537574222378432188875174386582145265334426552883384538266135342546256332271328658828438254233471254583152563435618172287275713186735345541158846472246253531487325755573624168342631176484426418478577852168523225742454351857885475127565786727633476652715283455353541278317334817842772475823425551838687613756864782883866641236652173765541128247866756436165768225666754528721132387231721141717166641866212551372813638343777256474164282661448614577317235382317175521285178427252661813375132273816134673677833388346671431322477413772456373166166628675723286337665263783231162775568318333558415365168278746264626855174347153262212317737143343567575352683482238533143248311765521844628813227611361334612415842277727136442162452413724534377855155688625587882284847473586452755277172427353827576742641134828256463574513212551543432757182872785144435516863346218834221714575112522111522331727712838221752862117884366562678147571576563456215486762457433682116771882751681645247663113635865324271684546633744175723153546587341841733558865757725322122447348153711673278178748584717224846311684534176232561126862884444383643827851182116235466126281575246442156271152823527484836685123748268852371675217628713845272242575418666272626412634644576815572245341464331555363454277252825631886656537867836283436247647346848624341881776686617284262746371256772442162787214583753611842174786738438815655527643651243585835454583157327178288666256858626573551285118631232781551344764872647378373881474524553423587888542717614753337278377152558474517125576625431373225167672861521343751316883722114471254316763456681775513177688476184477252388834874632748335525285524125678383165135611355471735118547528766251468466168851531683515646252487726248833648425556342138573383168442453572572815546577535864721117761673414362741726535727462186245628473325181117564624464178662271852731652356458737314557783122682414527222512847362722171887128425258675858341773366577851378463513456575564263747766363515367155757411618743167615747886271448427174722313381268281824734722226325468253528876621832427257671151736158536444225565615213754424746246554131732541172564572368434281841785411681253677613648247666428487282425251232476737741735462455251143173177243447532732185337787171348585556227218161848724536584285156323416278652227612323813443548133613363554466228318426133321733382722451155421716583456467737857374387724884777224468587421431563323462164474412885767735323354187757375833528727713712122818428344785362435747173842431164616723181741627585628124271825161633885545883248648873634762532537351321881751366281586731511513356663754277584581852526654472662746784183283576587384286454632776553315622263415844445735727636381322583785773678111652482415236717583422285345485751282663587573324287141416853181852246363535631462528461285751263268381726434715472582871253133561626484334717555177176653618437812763865211433421522225732126242231241515516451362443367382681435763731747672257886638742755266418715715571632868581831781265244643353662423152253255337551286445542888828173328783178752328387452854774626224237655823163517253621537315283488144627182251533511751474878834752627845685173721758528118446171176876875477734175258864325726764726852556881717838682682617423754548438551244644783311463853432534284116216253824142462713214814718856685851813484254514114441225368621357525758473486163255167782487387258556677486123667336873673723535241856113256851378886157117427167385456437781822232287648868667434853466485734821322686556541168672731876662822332881451753822518364355818428816874613216425286822433158655618531261457432837374433543885737586143534223516144164651556845444231322482454847614644816667571645626764855387277383335286167515785543615445267662561436247437684512545665321557372677454282856843281321318364287884456667486724627711435147837117878432132555252228444333777243127846114641676283132622511232868387718288868654155745674211515158231725327138124165137375134815834436648285878525451765647288512374483441576135126658462643271628384428174258113168387623881753828342356574624288246674632157814152326631458127613232686645764875381421153634517281442434456677863368867867833735328455453126278433361651376652812482562118364757327621324754228578273531522678185538662276574623868162131866114577554621557717725521864832864357357338175422246285787121477666477214451412717673787442544837711344167518774484254327725334471445131347238433478851178885843721648811332541475684372665815878457773723236355612325882385187885358735564574182137852855254217161268121286615514867154653223831675124788714882542882235323321427671453178322215783181626817873376768464145774287314314584266873765848814382663822283356771824847617112814451764164476154835546578447832887768243712831278266826615555451637688824816246865177376443573247771868462112376347612857275722824678742462134627814861426764136814778547445714418511733685877668612531264763274245575413172834833513713273425121587815888766844111114612487241672584276654223511735636274673667436148844157361846443327156464267828842233451171145574377165254382157538238462741341378428831146883223552113831133287384182681277385877336747358828228515366136542882818412543388257576151224281853176256337713223867635288413832418814183827756633818444272686338375266312555146455221826756831387558826512828375653627558573541461142728671685476833724621225655148553717571283156318181536445826633764864347543363154861131822377161216234654858122725664323421363735822437647847154568444645131415616485881783787863453165237132288464372753362355357442287734856137533227412232245265588621538867616886755136437324287477316632228474232383623744412634732765121336861838564726862376882372412141683656154444774248885256231167341254654153714477216448353346545434114554845783253513432627668822654475466755254516854324827352352716878853834265424868443365548658655121615251772246128841421484813384212258548346165857458473473218787174884118262124411723183762824518785721164185144757456565237362168547841531248168744458585372487445674286541682146828827813788721263773784352116341776356438417352128265365584456883373618316781846413438542874542453322132372253751245168633416627582737726524655584316565181323885843713112775767162825173782634626166278561328845871778528855662771817361888484243452236648555642551827568564721568467246322674337382233366416231136155533541511354778721353445674533442461365342814123886834113886254832366414577885375771426823465767843464124323268336766628311528128343353715214238865187536263216256145811366141346711358825384135567544324565348131458226138521241387727123241335824743371368283884338276683665324546234236435748428753218383238718121747632436733485761275234433535382364315443373236231558651281871821736848117666318868424518554741772437366871653278111854522116533477371838373557842853225274732638645664813241812315721687486741248327123478264865778541721358455733174478724613432785141166488272153861263838743445612476314728638171785532656148313154811353872427638275876363681366435166664645578477868125722343876866388857443846572156382671688424281227381333312125571656636376271864556241484477322336137844545145468154478787273124287618831632372744282468625221785554532844415671144468637668128154582222578733526441738732788455156114825674563341875645167468652176124832282513251618351252452887283364817322741776323747331438276767664574645487362252258764131133365566346435863772283246352246142113621318151311128758777775458127365331827426341818361323848784484731762264383876333422685613137535727287435874248763248675613745722824213386123866322126478167282442757812338814762281476574352634418585817647482851536136218748222444476747566274112875542876766673314656163754621258723562624618375672446468157132837843767322275621642248633623731178244488212562238418333635766521614165333378536468862351846386245321587261283844827322563372481236468546223781525161381331323273132684278734362756564422168545377142468486864813274356114271887541325287113656461648764856177337815621264854381853342451314786534335424281581728452151338328326287612573662142686425155515241664344852316761714648115658854123586263521372868463621526245678574711511473118174373881744175513412318428675352683145845136745442674362777831182163868844755278771657151885223556438583358488364541638373383637775231763464851743666135217755278428237832246111726768222144186576145273462624444162515463157688443836755878378248584341678267828612577871242161683826724685647135132682281872723784826757158436485332835565131528426818433147614732748581728362487337147172166223577286436152511117874561388858732436181328815182364141238215252717281162388784233784713862365748414622478164586524387487666257552222323233184657136624286731454631443323352455616515278485231813782243138187872432356732282142656526531125425217615762226842518381776326226447221462216534775626647663316855565631761372854721246522735276258742417352417332528716138281664552464472645376386857854121271644568232622246864264121325386317126467125424652277373268464725714824646546626553477647542556762355761224226328122384378628744517317278558831257422881468718222636517767856327454446155687828858888462487268716417218832733367776622873186888724232352514245467353422728422542868173823315361664444471173666511831611168436877325458661451421544321576487572486561466511232315117577327382541275843688151628521611175472831654723418442737314435775655336828275461652331116682752752343748826224353315428217746628146377833436488573315232742468627587813346725264366871125617238723725756282858585232171253487764784467646265245171264441642574147264435665136558112478288156121433736233475282651456243643345267325143148281158711115664185742735625685184318537887817517236536831375871675252747878586678428617423883152283144753141723812261181118811424242318284266172737665216464217874627766722342261888376416346763261186121158876271652532256863745846662542364681151421242181875282812618153378387685313174165165335228518162155112315551258763356412827228382463724687154355133315782563583727761687456437278276465421323266148376211147114517678747666126367481218671544168641437388368432547718125667566576787673771457345857134166721624211282734217254164663135286713312627557483876578761474658215472457218175311627428772324216162176631515673432533618871573326741172266686224537135374584518882872634211455718211574631177376771384825118412347132374453552162645411274742543111782118168665725366375822812477115734475374631775455137524773856861777178352431228358562786577416845316272247787336421332443224134267254853144357371117828124357831132852484333462645311857238724417715757835286163741352142131476484857175612217158823426235352238315787256731581678627827488163271715762138553584554862746126852714457651431535582665823818837551427168542152488253316785464245241187431448346611643372517151741217172787321338877264421534417321461384466716855254544761847241521671534165278683336382355374763585532387364411127621828138478222352765824166381715153754137266317566284817257361284121278566216176176442477851112813417285334343173411182151423884242655834135375843381265465623545338281838765541455857644876858142887223671615633272512567314521678554447816662512842631838752273348266451656187741827163378551826478812831387223226743688853676587452468518456562248421532575383166338851752641151441554251126748861551752121543385515435381472866376286235458833782516461274718385478628288364375435216327325427552761376263712531888785485624725288532783652676871827447468587314684457741883425763821844477833134142584456818128724771368585134831473363353632634536663438763832185355624615561754876156315375517874514861136644361378822715713657142675363277724561145274432358474333722481641227825435165584272677216624884433357412342754842415326811562826551721645615464376738378342278635124215383681638656253581518781366866247541251552258218167271146642376583721712884468584875152646384457537178532333477578724436454116518416275631812688256116567467158577712524321886777743827552216852338312361817564348268113687867584142651268572785357332382552247721478621247671232143766482482437427386845465432722745417275262183554653278241617282855516378542271742212874451654455611257231255874136467133141866652752727185326645313557735138157778123554352787878277211216345273636837422145827731736682531624717136515542154615473387418155746821822374377554612436236148816242646614265187337377852351771255165248457537415433111616112611556552222558521556311172753157646325751325472212126578113811783477672282544246382747267476611152288382713361168786584211187143645722746731142477272634812561655313421164776475882123863526217828654548685537843265553524123114623541827462264715724644656222388822487776273156115164315235624584152176171351124681317422647352651583282737841385733416258763683322586447724458843775167215246766462743656518421444747683873476866768348388878856231123677425758325135837521373315374478745667565614887634323223455853261827776243357581575571651184484863268775812684347451737272541347645117161777351884673242683744222543263687171825876634535346627184713563371684617556723763575635125544274864223655477465878431556776536212125243213232663155686163447222441734786716432887388652855888814883285618738125513772376721165684374554334212753152537877273442214184735212571726871226365342341734565153536873374837472454682456755848571624114524324638728522651675783652351278241328136613374616344718878155283751871687384277661437552611527465754247555554718416581456552156267761276872844483422847676443348357753531162277688811648138283783156583373266641567326315574647164842776357213121717466122237633542122264736247141466541131721577214774821631365751883418848853547661857542176661484217811247264528663416667376525125556475621651215823641165572373388657834683881726487734557143477421346575844364611448675474423557488373662311161816468162481845634152541146821523488134756546772845137227861683222872668752434284246643774236568638288827182838818511688124711856768332553764473652464166124827836223648217777814817465848632142386811645486143123314468616476621611447874123474858346231326727226265785623445617685742376413357822632134463486166262768723622132812662114284683557675622765483682716137387335484377571765652337263444374243171848264512643735871662783631287312458658417543754651157337152448274814763536387353471257385614885652432165186616468813823173234228642178411466881884888623864766147436527348381831535862266768141314734151165366486514161144172445326854738548622632441184765436815874635224762562426765711526326785382665657685852575115511852151312365464748237744671533736311746446485242638757255571214155732325113723765782855226268775565884568332314386421341632256856416771734518441854186748376368387577566858582685765517127221665288126348654562871488132272767256736718126285681666181361273385223555755861713142428678571288264756657318623144723242387432444534471721345324114745746648871172731762775236644111748387422265368246587652126733883671857372317862446715567826677313447753778541131218744447116684838555623141171547636416175727211714882831157478545884625152425346813724666858133767542113281712885343484143418772274452572237656613422271164154857165778568214657222623466148627675368624626633532676626834445147832888442755358377234138166718684332756531264446374466356871116724846578763168145441327732287236186637848717288647333577145624643581758144376683281167247682266273343588541138336753481647457247542758882156276784715736211616735733767121552235861415128265848673677663751623276683822563324271314372478522483524772674442668331158682458787356584671812488485523844173682822825272824384887846466215433382755131133243658782168467548442375644872822774584543573158546253643422211376224178634747321823478466333768481843172822772313786846518123778667451474764183366156281686665228853876443526727857782314318788357423452276267872685657742117613542177816314876131672251638761521617381175585726448411381152384815768771674647665156633451847464426465233855688157736735451313373352412551873827575445533481283163483488486222374871668557541862473624231857432232514134841575425124241846668511157676884523366828112165441677717256756122186325358635742171824548723757227285217673575365654584185243513522834476687713718328356176126863487526226516235433335123653384253444271451537516147768668126458115876643458627388853721378538372553654274157222125686641134355856241714135177671641446688215453465314518317513184571288124113176461647143452881748776523137842448466716528354765642425364581584521135164233656132382573233748241233468112625362883816548552232788331268221336784852775374212863341232331233768472886783874546781748146152652435276756622616155737643182728726644552546852237578755622185221162855775126117516727227551812447272682655847483483634574485335824426568581163462343156586552374433753556256675627223452822864814621446473428612455288164257741637222785846632121344133855726524853773422321715882885438238825223853422141145541132543173472363148747312773745885474785588671731453236361381487237244361273857312776536447826822332664548174783276487235722314166761232536245133222784213474543635762855173812353483873774752823245454644247232722868468342418454484354148321412868573238384142375865415721845864613658141833446674122377662577264363882264251256266253746274866766686257228113116446787414881436614466256357512637457451665132133588732386366275165745137657488642133351158627871385844835836668388514281647387314562162237474617747172713818412323224684722116787683356723585125531854313853764676872265363514515444321152644871837521628116152517267554684611822565436573135223334618426188638755478878252443421184118445122661832367827651818248117888257472385661611377127473414326476126365527227523186723841433435218317266856424427848173728523627331337657181756877454784862688384255653173276115275724813531381433572371724878418574562736723732213252178743117414363466886814147274812231475527418356571485683137773112513633683765366882688321575151671627342844624122317174547314822861825768887422763248545272172438315715377412367284458213757246441716668488548828187827175325612583575151532116677551125625378473848267354683585734786461531228261338171768716767344584368445343727575271328323217751134618414134416847523422238412827122112457177864474255646888877235488557655635616131252261253627582264627383875126373584177436735157273672145832762555831263888421465561728345867831348541831454677187747367385485344324343481427477154873183124344772666517377668388674754637558658582541223758323473876741538172616588734781785373435361317527718822865814244662851787548624472327178173131142485246834848684267442328522347748472516734573256456167536563476427466813115412443615522245451182216462178745773452587575525834577155486365836217818247742384286127721117433763636143327731515622346156132257713255836317834756182824767772451472535234428266374572121214522835258318358156264227235212182377745157656565561837382366857574143878344235541212758781256311462682813515345814457484453735168815518457787378412245376884737253714681156152234417681862241517173238786542586372365437327721145358386157311647668682846125226118534644643883271666111776861616554461111426183372786258623375131311125866225443232385473522386841434812532648778187716556547785786384455231533723842648655211822867656374432683822235524412275758413482315411732561861188161185881721141865337875512117146586722143231711848518126214421576564743542215252286356325522466431275655238856457277578785134155342628834526635748752427431822236653824748342212787324122531617547466381131882862373714684747614566535423745858131648145874388271442161135582145415755178835682681547777734367223533552225322711252458528185573623182878585342618831384561165163846738181717441581731145211775485836838362673435327271442357424617772238434171422127514185862174483275373857143347113154288522426576847833612518833128762353554874235684422514528715881668882277765175626665588821276744851588466271478316518212827756787371184552126565645713111283453332344265242437133661818451452374424716357138541225164453474512442231842521453654116776866371882254821446544343672243853636636686562245176232244638428332381254782112188872334166626456337177426145618512761521412182871751813868411814646481467775531558675825658715544634662676463782863464127115722761883442383437642721268783842713234783224436421425532584343432318778545613556832182551715244256112241635337132266636436587266842563352512622178721757261424881463235864854688747485357558443725346213463443313645478685154174212731154528622325754444745323462735863748412168438384643481621617655388663612751768178154471683712836821158235421335588437627764515112268375675615566748326257713167382435222786855435323568185533863823221273414346225137741111665533235455441767144545321664232454218541613288685627563427171683738278723834155785282546568357154355556751443514186831488358783843133318356878471747824147656885644482146211474873658143815447632568424562673137433135545113657426871441253236838724275527136326378147712211573527565566847441728175837571151235243731676826756863643124121762231546527751288168853658287635447773852187517474114883786724575228357235175718377423331162241763376316761763154862366524116763282475717527765332787282381363347787747238371761822155123652332252386723224637412274621535545425514636125865648121781673352238357243622834741882878673532624665128158275558353643546883781625783785516612312231732183675756311415362171337387282161483264231271452666475784657565231814111327683654735757654337365613858618788781276633432722561574287613288647163137522231825281845865675541217471673465126243831612545216583323777651235432818212875165621467252353414566834417188756385315347785177453485554328821522258523184154173548227516262665454614358626432243884623328364566258681181168122818763573638547772647747112125878542871273445531747142383658365728332363112788236278517367121584826147327862453542673471257862168344621838843477155142417868852342651674387535625343156358741515314331661136677514273347551384634656645744663331378485665656482612178755465521144662235765347255152532531234212857318412182581684658546637615355437212184832775827518688246727313235736815514343368738286243144683781882661574837462625771872374582571675563834871831483511264411753158658558861145846461274375741737677685252666774778813462375661412328572835778342857655742547626723836362135284251251857725378311688758515771775828284275472654676134877772525754374514648414644217828752738712373657644654118438127151644377586236565221561563434181742381217266362145776218726134435121161788413762463712232814642588558258717531884471643486624128183754546671331368255855144572555247752336542583824357645134582375158435828818583153888346477311621162823184848275654421526552311853261344587822476123551618657218334176538455262767248181574554615242145588428784483834243252568436127633642856772266767622238271484122841887817786472778353157278156124114661285453377124483553777424471613617218541366377827588241442851516724248618464475635137745838411663281653452141256168717448688663867458412266482122845562255661382781714128173151354455367572817546766273564222541281686823466641733532473458151432631778444871153744513433617287244251654271415171355743526447466845363834625625326635752143264167562661837818711867624821246687286332784536884576327744417838823315617574223518516552531137724818542447885628634352168381682742382771787728483633272865228554882288621653312511313412516314831257757782246837644623537755162357567716635857873651538337778344512716512371741418726372883163572632323738864856621144418423466327886221337833464447767821368368742838261446658316837175687133678412824653884665784644524854666741477182783655155187611643687458514664587241137222565622672485332517754353481884833314842588882635238248112434536417224785157674887135613474876844811268874247521811742546388822257142512327132263844774265841128578442178245263723828576355285775852658575283254538165516564631551141576828286154711876172382683432442583273716368527238675864514521152585541354553437352223857837826674625356427838366753511266235144346241585356641658533113351785386784467181713137773165875383163184414342324128224477546742688438232846428865476747821622114667543422517362368875888413513824277647376352684462557755547326825426446673517115747624855781656267633337831817142861871325838441562615232277516775261877366873122286782258741767733458428331436364644554753272238213556422856234825785172127782452358164852551868658467654338261332762432248185176577277167828534574828813573814447317824763531178715714474227587714374187872184445153163628661486444111574184344282856777718651838845851544722868747517643676177553321272668541283823253467355534232243473724361846778137735583681814861338565822258155857345327183687375511536544641761767856268843773673178513848377763461512431277164831772135846356821885338325215337687245531245136446456438575523264711162271662712686586338574252456442312112412727545212242843221848375231421732676154487141762256167835557631324622557316313342876564638654421564216745758821833336155344362165386568853437227442771115174475113356716444355416443241228664273265857241251228574877457173183747366183245747164127248413746725384572831652532664814378761252711584511315254657164663372444582257816424144188228186853214747131852526331836121815281871574835261878244333748327584524746422757117726853448254573455213233886822723251627372733248582834558266485111787121227226754628723112883585276388553341345226127467363587257475171785767457727532576875473178533668388356843851441236616422126744373368426261368117816858867428521477236768858512676872315884267178143627162355578855287885436286618228786524266864666115172153245241627364215124137455881545814258518317838815358327446188116457653173565361428146575727572385747862423653267811442485541254541112647138736518551385575631346736313777643418316535633435454238526763552235354438116624734518367714578182463558474876372721847213561415831837552231136628622762372732713681255331744428872781185377213473148553847182855438127486445145625668441341557687464115223861477341263675534582872838734513438715545712833832217686558678136527611772776566336442412147131268275873114573575241646714454617337567871215541375337473458878235823113316667218353761722678124545386518752843687267355645264565831552155664687353126626831276831248615213114157327185627832284882531228524766863562727313885273334665268466467745674488761383443488615421876233628875727764341416217822311142311343135727616562312128213325668152128711162426463571825821315613258561383425573172187628813872788582115278438722171613185437511772233651743647218674534811288481845832342656782745212488521263441227138487343733453527717575164235124248164767452518441213518413761867684517276557538363143727253322616442146614516563551887158214674265675715413457666777474722832788323248548558288221581135137612348434751346454848142444675786113631646851178347382664815455232316445488186521163162853785265558534262555642884455452256723114218635377824354141225132762316678588842338622641268115341818354884764756462716236212723123512735173366278865234675347611374553374566723771322841588123643585524586766377267742152277812134712271635447651844533233878762243136216328188138818228333135851624137676524555165538668375832381643348246267572821647522628224656724376657658178763656218131273326512243225761753176878733881612115733345325773885558834868767525828584872683538512263387227332352348267678732652415862481777266181141213112555787877357416823122231858772123777527748711481484868236578887638542575556318425776625862848446776778824424253351162856642455735636521584446555462831177367151473432436844446173642762317353221478677566513328281568781572726834275588417415714465444211533876874223238124716578652541367544523551584726524763321422148561762516444654382687146474421474266646422114612777315824826758852584563173327783556536743828513775683463383885453183363316751712276361686886846333135281236681251223852174241366422617566853384257218734841213575722683155742318565657737768142471215314611153873638868456861557218168773453472758411461118486765764185828287858431788785643817322486348428155338884435378617355738748378587774616477571856867145148473586185672662775628626524745727223283671488846531672454768462727278178413673131885524324564546863381456556382624371582813161578835212736164667263444217871835214478125437826567774661846173357435888271583477326877467252178471577475524263256344576868518333881162587678377681157537556751383883433556771853764333334272671513161613723186425855378537844642875855625245885588635284242586551544862376141784164533312153163855572265663434451223342215886883378331218118642274667341814312142267435578453222238661268685158547733783134585364811864771556156862817338287645543815216752386756785715324136817247555237188737462123665136261756236866464723252864876784583876587726663676441884516188533663172818475276263218425143683551461116111331165615268274346824313355427832838677553244312417374561632535153146287363718113764616284235413253564285121783818572231862833423784665755727188633417521648815566186884121324782182483632832354555271383883611153513564635234386358737226525762762175542144238837147442558168538563611684516734328685216586827417262123637211546424867546645636835215725826216145181761781844286288541361751753542227527324543244375877776763381388274246878575815787252165147288843858624251684178821551862328245548555764467373834158253318327754576715555537881844658782633171886788332515131815823475762414318176381345681713148455777432641827856553445453818442318786272736831411541273386275446724438147732433543648233535681258558331537782422451558463734414131377564422165873543178412422511866665221735777512865154758786267458823628356853436885575664827814235631842112226236236446882386543768832388238166233314364448413615282385438561572545562438885848452632228147322524414322435514744652171223588358314743271646144811346345383255685437652218435146254485433174276684112125325453658312867516866248416588378371812533175671766835878533825884327385345114483212713455741768248723178631284361243645342645878478164213581318848773342853172584754727783465311231281721718352338734242837158584436658288211761224554228771423712615764515332128663381736682154268448167118664663356711713463287637471178865254315358374766822374525454471556558124135248761554378467717447125152421112456315352836716682137738142361576437784456611134668873114748733828684182418348431217216684115827867775776234742325488625223687226864162237663854172384475216782275362375431781655117326473322347157714761348513772268174852231785185623611812762636688761846713728813415543283563238376425261482825352334463762361348644234271621813758772236638684276272231186731216473655466274581166413548161652457258584636672626715854345773585268653437776866557486866432328445216768381566272785645541353266182543633228825314257238726283763874244725182371123537265837174447866773186562814454233172268348255317778417271488813758514632826263325378366118672683837586327284473877553341166852774245688318866533834214267674858125517326655646185728622151324754142317137785736183861621358388562738744138226226876626277476487837836251261615575335244334848741721281225358136388158774772555413155414535815372846646221378227215552321468857655137736632567742841235678566264485818538435652518813686782233886825474175671348828413538454685445617487453362666434332522647156583528167428687741372514745187882882627773381762267651184124616825563328486166517571581841554876682182318534563245382135556482446775678482288676873234677451213115485227664746354278822637333554871334242177476786723172146434362766346143426783333814528572183784313287354621125232584712766177168447657663121482885741315815656666522516133411138118587487367263317335167576713656237443243447251312166478584432578134342825422564483813857311472421724181837352467533184436414624135461374554442837867524117436714833155474636471882321272582278147377456862141525718354351131255883756478617633334662881458676551455638561323214187562714274532172878421311537748254837377552138124638226516715573157417542171837512871285477135711644545168422232727257123626157668634387118575216878728344187512136244653638847262118368183764231648776445655786714662221414444353754483471475541516365836362371787222623433477446716172178512266666335123546567137871782782716125116571757737146512575366546832353331414382541445472322544356821525264173873655481754667888345747663662258643615173648643722334418767233385243767725112451111261487321443764158118534827675861738562736476822435833656766177416247436773544467824747338746661137282666286282668755868653263562788574174517742326358427736354341771335371856223665637275512448612727532241175614751118673268351837828336755136352153844643522145114465618414511852386671727126883366684686414846172825286855124236577552727763456234423485771511822734876216528751623524514681682747156434378414452516885452854415451861815163625682555885148837532434173164158364737185651373286251737563718367168773267447762842565373717635145627632432387125733255218176231412612115376773318475817884665456733745735243764457884678725841536121463634657864827226175333723263353664363472837634376726176743735573777548843143545257647518361711266754818574515427771644156448672652728887364724854832154554165115223634188786521631585631176167615631351155865848535211712348778377635422326735141446467572453313844438232511627286357324144682817554513317147682118722287764755543122844876751335354426725877386148734548583138746846452164614153223855411883584523677115882488255868363244626138553731465641865548837734555774371648152345283163738288264341616755687544654812486275711127415123244782232641321423533385675642117256124588148736282544718571161147854625832113376762256617226324146386413787441672136743875833627771531184373444482878385423644251364326832152585828511716741834421348781274355324141376355336422337588652884725437325453837567112738541446687452535862511316834116746584616855452744876683164218682121472172131421652471346622883447314576283857523341833684242874778514476232764246663281124871168115363547228251177261256886623323681238476772161527152115768343377731485283561241435866217745453442326571142735426711841422373332516516337354176883686357675113323472541848751853264623615613662343422881637357745221235257762416155487157365464275148523818165713331744462335355288437425644815685678687267627264383324234281725235814555825222476188518443428748414474668385367182422467578143512117752553734584336174341558387736144722113438575565528365255331874153552638161278464644587216871588484611886815831447786656816168787755638216782748561516312457678178231457472333586234611375612243423613785436485584464683778723265577784354815638434146631841672243673462484464777846685378176157718457532747732443362551717227157268587862237236131885562868118443623868215681248873775278724824673167124352828874418455861134664427741858358341748133683544644882536751516174678333857123124843823531553665766217677182387572785455622416486152388588216564584667236126526454277725224852667234542747738278476134376666668551448251831425443481763345123238758512412677237818855521464625874576646828152574866633125171486251717744787783586435357418238352222563463623547442683648616485553872128744131178217134175424267483782185374541557176575762737727128873227243558151518882834178675548168522846585221137375617284255317215228758527336735534637832124338648846378645474566344688351377376144587183184624715721375548438114682536585312816614821581434123856145587426538465647323487267171431287571627184466762512465275571684675562775112174514614158855747628617354652476235753188111253562543178123255366544172823544825344384454875137752588354882834426576327277845722525327143225722565735567278828588365627881437137433462355772876748765451251241768837646287316471171686658472647423864167216466741825487511145828151811355275667235434122624615816564655275737362637172627821242124841558185616443525433742267577326728252316462828584328584317731685374347437475378372141412822568662131544547355844513514814815821217866144186813756852581246331181683476187714814516135153271778441522855163327283746816264111353146788377555215518151813234614871621613736454532646563757715842856214136371512382326732257884134355521331135716654684521458674255347114634338244712454734727758317677868371125428851377756546444134358888447726182874555722428724566473611436838872717753387538426352663872761386648356878856383263215254662135738521715422751766573746756756727866625843255254553736236366754283673865626155688772751146838643868712362368166284211477862581581867174385478533454482563354868738762115176122625852512535127551482547234354857826537885255467456783716718181664373867558134425485114766862666288411262633121775324622322586534123554678518657316633282365278741868535426587181711482261562278282311841445154418438448626866886514271358132161348478831113745581381283235643716244134184674361743778526865728333846624346574134568426225623717265258222883678374658752524481843427722558432321822538211813617464844444363338857738443147474656375745865845181732864421765831321532654536774157541837612547327815144628515333455464168856224841378545173858777133836178766254737574752245768453716517312887852744635431153563648583484142123446476162743224143287735631648178565456183374358637512757718756426183628617837842618815331113172265556513865553575287571372373687543278588155573678735456324432714441813421117466453714855351238227621158541243585851262833677187742731131457322411516436747523233386578678584231883885381474335474877421678784182476511575843182271321736371664887827866368413465451557483216232117553224785621873238716271517856857785238768677841641767745651265766876717827638714827743225378188513758262165685454217334463287272126863657155748881763732241211364356245132635576578557458665665848183535578631772434732411726258175526216236861288123448455824381286588741644647632718111388136668136174263888284565782681813182711353535881