PREME/G/MU769081

013083193616916340570751913617595306040554978908543237591134992802116250663699844918965513935081833876074128463197104618562448185318315202128173775773008280779673196290590500214543712522342387278221483003989365459379784967651366534254647116769373082884681793712846993210275779916375840483265128454589230743354948274328985417009895500030313050452219583198270063335972088179824990250758262477383106455832230498681739869070526002251099161126953674671011435904434387115826960151733901040156860375303859334418274045903349826671827836258426646785016189229972389265049672693377595528503371631677321688229109983266619535014173533922170327490047760580554667488341554970270654404323923297718229364530976345056195199406927873547336749390509909970521322919430655576392324850567110209550614237633766546484371158996466820040259510469112272723102835859540378808802796408874959027655234852542216703743143431062482418356151844641468219036131318161658655939702376778989054887347788398928751563277687030118711661406799973422110072702053627829882921315548171699850003386499634241704493674826832514940412654384816440174269684488169338879884943724035220369222072189089089559238568642142836986191110498186624475118194363081567844003695402163485041923426051790272880631265742855675508630875181658568072408799064357977530130316333850300600549694815184012019043923133471477637827074875176541902796849482737462759857239751217496411494770955696724930582097526073812471762976722453177983264863784042654861032532303793597589786717216163328930489494151088426171751307157921810303911502740170705196828804465733673962917038673752714501468185824202641935214056297113958114359827029442649494074183077547642986043764094597305399156353198392545500033963255294067060743953730583187798295933636880019797717667225852726135777103116190073425821028543542489356081131742213131632105312101503661451625413804069471518045489640615654106313676097156236624693863173977081199330060597732108531968575304755391596769874096034888432053016810524577718940941788119228887572149945536170160761365918319513384531800922835442939198826019376121740090119708379616135860899594348131261698217158008988323455352249665376468634443388276330385642160957186386394504550996823557876240238350031468684002617888117265542824429688316743591362802380653881659635544701639572414193073582951478444075369598022502988676042728046460926448275604017332470490432539447815690687910523928028574924611362355902391034564830454631910146370957553024862105999051893426686963117317966496393274087945736044046723035572185476579794208827270642227130017319163962922524535213057309242839280684071114917076043929162124751028646645240317778894715850519776239968862771206404475499895582038282582940900569746546209646736303337796268682314666380078671312981048091384347368994555924473057752039483789782162276843194660283023794064432966695134814260773041259584990605089111410996574604162504077028011664993122020189221739487138170278347506065582629551498161410597780978601668319459108418844635392634256483415433452587314575562586952797951087238376584985357659890376235560640092949868058989811131938525781617888411468847093377199000998581078778116254607456792049686260709824287636251578861169197699129949423599223718836836529770758273238811932364743550602097239978125765124460620071994368384654714556397745788656365504665969406097335763525076489922718573910778823356787242729197213028151352779322198141716499257228085148948910550617498170116018390549365715302150014594169553986830385138639727980621777169933534865707689446928027963855618710972748196957618146919690410280792254326596228693157255159236342816081798974089532157176390590336640429985681426132999911111631339289415066593716427853277648444762957577266928657616024543269602854325407923641780909628054421152798177197363321857508017665184484801772922684712227312112788400956124183978945825733213502215943851686771916216457729952362887586560905169981691587779490055548609361815363587645040177746896925939100048737567019211690933637300009849280588569837773615480843225283919418295440440602880984469270361697540226448337281451405260980753362886788630114024183351690125425705827334002529569144140099028755647952535440327284486044986108740019396506888177067949630621276701719314584860507200205785407814281506896370191742173350991702850787877713392945833773141152342136768682259524952737712836466752255010214263360780685956627004844771751784722607151600524600207221266744280458464243670362453341307000988711452254789779052794793109079191005171377685824226248765100653820388187085924780796713955657931375094680679384294290158197092243417933251386905942020280169395234519995178035535708290174489744974246587429943451243303461800578713954195027346700417930779851304314969921911027978862706060978525145109646611188896729853140945356842675939121345364831479683956563307610288585412604995328658934557361722509609138616021181085160875623230448560039603921760865858981806235416426673551272777274400995762910371894951762126679858297189295254537171066147920607887777644715879155171656789708658917246115027280456098796765979428285515482810436438023520300063641015221936853498989065047893368351348008510251591368331642188957737383831525363416116321302473042513355071503253203947206918636623894319544218207144789384777890923970396571957452843374522406660931544345524075933623161907245453332188744425202803006830984918417250584519925449008500372602165148698634783150651904246345505681896627181043906451976725792143963561659580553300358328537252827089998817593455232764772375353460058375092889082539463743909038482069994040847343658978075117922698838652915385840396725670907288326704606480931692353067587228268757932559723345183859589028106686819153222477507863893516011648591755536922986911995712598663783423320932833716825411845433189336651862228195518312756049258357311600618326178559132323200395428392608813267224326462059926056651803866546718446736170258958812453160275971568501553305858563708999145813954571908138968360178249058610216288791406671937335051274414554639552834279684318603895133465742206832408134149206186087414858251965519923221415590512900044920289980600438929582882776362014541943501882479020246855474288201711046736411773868818032057289090993978728441227791446891390290314731018754012826403003038735969181439472889266632384405279132513372053917472194881984554249717512745761888193497190228961019666285667691193446682912497196178168686623863694502237007697373777662103470498012529980580302288195781875725650795914464546268975862575412800044164183352871838089289097061943983851161943513164253424816189011274108569729517736799502948496344544446577864963519517967428174585726828794844385085652701558515258539111806276655559381471871046986941925901646569894589243269625857435751381641560746165098306581807957264568232440679463644948054393107647533621014756347317188593977067118113484509764840095189030732962150188533874557876291546412622777128443868646024530699862026308505021031038174279118092121461805147386672267349418439799904991813006960550233501673066850331158402878318974803983711026528064999459931844122086790330707377104451811424578411836978184482018812630938956986864022887461131303102866361047086229727803001421961379744062192419265140056210759267584011059494968038505469117575063335826995198560806743975774247376928339072111496496810124531942016748338583855241652653781464515671499504768041958671366679782623182857350681428428979803006999276524849154630960490518896260745449420494287947768296814238749460254402526116484974046414121295657947879381856355416727810388727133650434862101302647097454573781528126138013859871142051157427424669656992816993041852127927451611826431057958376530874097515136652379377040721849095116116086096604845781150911761752521763688775314300058395431730698213463119352032537006728619730071481557575895133416525462236626885387119378720555217933360187440659010900722761866281652082050201417907734613477086817435390838960624420306185248350519386835601824951435151333077925421460710945325919202999508352593670100278219497296655788486580236338955359607422112189835167746386247508235489101058377614124785122428260522527635465719898365376405246502538359139064569713340917900340520988762544407145760396233028245422299091474308621306725382211115532212444012080735346519074091048448946227978745775425382028302622242363017247485821390958589574015125187442559831958859300375357462898925014797456395678422464605111704835677561206868386621002146297647639754353958779850107887919910151646616343651198094073078182495262412469144120284284383618338924760477990076490642534948902001180975497394277264813797339563419235134951545174999453489154443064128941920621954272086066623537551903634844010157043484222464941264148415072850181238802454693923139053727746190296123913877513050329047490714972229293018584172247849484094645695991769675643245102438708270678571650713736405369635659105550786164091604127325520558812194377705234280572803580553489166169903350838756745425622330465086504332346023381727513849730868681592065508438657206101561316201161634074101155390552338590531078031160825017522865393403208262357174666738263921404561037246997783774349986645017714019053872730069169864352883706441296528963504170019405235424783788353043171745327783507463362753288203303034693100489794535972798886598001781147076614776241613393577716752315208875022447802996517875072276354667586143731565091360064021234713762778480422423044484480578290153505686732073043037980387574398683978110688042502971008740904970651528712676268213790726149104445883326583270317261318946353078163366482624389674184294250450003217923335201046493133455031394717005907577439295867907543847661670666442196605499651284151878276260059460257717749419444697964360922245506816892766244253188307063510114223113554893322274078331355389562763570861067816122280549822881006086437682496710098026294412051548879669271732068734628072205832686917136648599712182666781380642321873942916533602559397260536578756034684752833778944069654252552445531022780305042004022349287376964104550434668755477732118475000599660931437852233019515694665777427403583729058024523970529408746845561568509909083817485323988395964538304735460779412581856313134860261631326117649944772224618588663911396212523850363948407842709445912393702795523707844820596188942300044585403699450151028287394203465204494513322878822942732474145639733080839724556545597335511635567345880732359499555271251072991141908111385855634238865293754664437802369839039635087611640912254152349198552936151257049033982615758322214169173995748067152556374283601305131339836994544932707446700100301885126461741272580299014918916158706320829154630846301570658836670507473726577670016133102775360486443180942204008916798113828504777835818818076032546261000969784933213772727297670820052365748554699583072612737772897155030053787966800467889061445348718280398082097071326127598459075999968600654640247705494891681076281019458109755200265086825554796597387135929208841094484069824359218523947202895471612615740449871280207654395290998537066616493592538623369369861532963495813097964855036245864018680198383308916687381195202707877917759414952746930860290943621722718701818304787994915371664053822941117961997915353679496544488473627268669069514939882836118905584881595440522268113318790014729873807915276181754912034654690359905369152536024949844068823980123342194318350778889210261873619128463340022705282279216618463028313133750633400067719090540037558880386499250276241033617645480708182341162410428573442880621599624484461105550394311696756586318210666510606750921234839250968226517411053120732512143644094775508139906477259145229690767640153204919202598115730716113160150043033326892821866671717171211621725703998694506633687998436610446245411576341133001870606186903518743304351359608817130611637592288282996059226877275283199268330754543828781600540692887246464074229292206801255499796835586275055635758986287922467880927859418490728686580866389618103475263701480464927538630063204048583346232098706337390475553328904396506225200286016418585743059113358295681834358818141700908913571170236555382540113093285432449236920870321855271452726650342256036263988906699179945610715541363927378452701696007638099073443100202695779390710985136034096543556000247695711069189993287775429805431431103973687143066696429812589467209462158863927698975809054956963981349895393012688217208292114493953861717762575048873954266618789439450216649983587422452692561690918152467476695267768520997595758672594103579240268032767828798729618749365976469550928459767212290326553171876796653459617611389532225407704056748935270525822088107889305258874912702183567517969405604893041891535352117131076532812731809571091923756103916916512515466189749677250740340655492734875584394506227218308238298838433710062399084560424922813236162460424599964854378388628688029821710233202528985599143811885511513444783111649064089393901282898311515237745671961099349842243471804722981213573080720014856773836188067412291223594741195187258065170360391887761355117888057641843820621421234350136518414425403646651793647109907497877158042579186428392340267903217329828187208692351366296787921404142144335908608176838622080976795009545005443169386247598568001224485972344262158107539586448754367308641629251619594770585740587791157696656474600613097939750712086813474791101782303360911073154326043655205495479452667895901266105749842047782484595414809204245134151563884630897451713434993831784496804659999709812033346173186789845236095320474298841445965795346511371817322344788936141555459846579354129462471827665513637121002394622389331076258150132491669382040953339315437272761584151032230620260025914006091859442530512002653495398887700036237292122916041267306346832486225212453441736900246868968915158897599303347758472748544868868611590368854099679957364423696272090164932159084792882965735558885422619182973964039818832486490159786932976399309941181830983370673816374917245076379663457715680297521638140591706721649017264673329200519067972123498406276177422830001390550238734700295499971313135169312468381036235651108651955802779511736574684436009128279169843634987183461998757096380437532202376666263387480355891330125071503901365372578399813656344167498290501426462160482201002015288380655275465510579700586872491020847012754187611925798177573091217396690867178885014060943072113226485874224985731214669631819786735282566399722313824931344481459093655958168028108826389273310603182410884289158576610648759969344943516557848427496844948240589823250707269989000840743317091074560374868128500170426842897111838262154793306841669622903571902070265657266823306059685895071591693949149061179051920191610185662155530312227462657134239188394938290443127124088043957156206141027857595371038246252600062959512569871790879222009770023282645825767133767925589553507670867841425808425141336302548393903363520952156265136687465295641694839274728721227996990728271776167890849738470852213035951754590355414317718838497508284002250113062333851542188635946160676025178481650091182326932851262153038595889454146169636561239808268301887873902023377337979167203532560446938918227038615488059839903909039150621271462973862023469508278563866194772748892914133271149454633793325397446168318959246841205034242517208024184641793816198690250354025273218322613681369055081998197979019236615566510324272647754804608709005121311379748707912873766559634700006390875944050821204824060463175560016839787353923544066955978977447305314573093970526275865274624552554865844868354563134904188594541216781126537697593343235869144840110063465411231951475571264186845311649735334567234656338973208260201142760125977386787938339015152305842713093628962408094698167054994383358406492290527183274386548425786361539049152024692674108777343308514873448137007822618093244674900907892205017396934438704118113826356636071076014751227136160715311934466277311669767492467964237077905265779930031697227324580564244227402496731818466476189884314180506933493370641157010966417986079731344408385505398324229858388511982688017455781306841555329164266542719014811132831079694556339460557220920652643939336854326652317220487448975552301652667604338175040199860697045084177747508304415807833704736581819231906169998085385624311122688101811618950112686344637103248063958815744416747375005496558393993053912807743186461420660081372791677295773208923618653134660285335406732991393303086504549498696239107320943663703900570521264486981372538168952506139786168750072751900446623998121720276095531321560367216104504466571616498551767500425224275506495494394035833504262846576548567415784325205724928650373214584115284616383985138183301989747478331246936344747632236503045481735807015907990651523706335215585426170526228224221942994782351450935330652540214408047131756558152536902768564709359666134720892611708071306902113264866141001571180671850935275167518953935648528757651965506910410612410598877443406458551333895618934025119068861772493132951273122569051450061517587411823920640750918284122096358322799540795383817593257126636213337183680140036957768009608018931597040801165745871089389634271561990654509626687964488914805849452847311920085473457005106083886656656758005818806811958765658186723374560741683669050722256703717489055664635248192846306359040462638005358718285160246014336968502409922230084503673139053669764476289116755111577855387851274941432599432641212389183150406598437290332789882895519243333206497449129924989692402561969649288939756155861788334888661556680316619037698731792983807926303819593456764665840659429377247420264586612912018956399054502421693164769921724542240583040062277603352946793783383508081192183770859752923731853717967378450870313937335288258978033943849153154804438486090105296931798706843457391629759999118066215604994726383913650240142972741132372533068845302583923928537403128270236835892118578226048861228941837021801215364247195301322182825019097291325168994497366635908725728992916641911583633881446327816335914758962813165516931243211660531762068391524931544479232278327465239831737058621398900460054913486987046372686373811121103984995246039973475471716621023005850760851279637697071269318878334971621767719063618767291675830389183144855514648208222119983271992436050540223628477938278864355544777399982891788300578237106366649255280173680846178073475063443638006407551151191287884873424742798882127323720814058683856742985162782204705948811105408968762460595181969899654000802712143600071275815417348224348497394321510050479683571149300843726509101035686842800972814111064355695171481946432705947104687264206610602909063523453203865117496519087337981625126764400530678121834209285960539827860732903022576984910053036256303083902264085914223704669364875026859957759841704631295326559881392828214641928735548667724224036720485002778696692508131188385019974860133512818502073739773592937248398181780697200759003360801347368457154467385341234373312753562288894305849653145328191733853959037616901502566303189196301721016775558178079402844466591781967656495102727451397105155513163985939874981420135377030864499473305270868037031438512723637352778883104245087035228414078281060126531305704137271719686329831233080754285054040710773658362741883353454904615046871411665769514582013023845001557639535283669940570604770760989861038631276703820282009025795247480433953033762708927725130858942168939965961772573115928925653517351083064499545691705568498832347962999770571278504751062379711885256855389355813249634681265559381136758968803454586951421885132533018740511214724819151188455875941411619467054615517403648254787388656976803654852256739867093325273175273990173971106897584478707733852273218082931470522189907349357620580957319220315833953647765077191434934731817500266951722003682830426913400236360430757266193607657185439307759003502275782377998154981302834604649549491424118233995480637267605151092211385201305240654285327796508031474429364514126470824982520426164070254865999952606045821636866831184059365868202015788197677211665798871727487843842943510481690803918636221602572780720657923883600176934284931990897829701489655285827854079688514067045458481978542089584152665986604398508427808878637576314097582654998094590517568826718371520290608477460990216655117624979244660216464701262643507926749559851531728240287191451825947018721568184793099547922936282994519457872519933937509564354432857137009958269621743999946263720087589853349004534263206296048072035370197868730980674517950379374400371181028137620135768461862697753035177809647270073462369709500315790849184723007287008835143883197017951064517750085964814215581842479921602503523082531143909190943522305251337649128262851120936654394963369657187937754571834571027521180910659946277887547465469116384695124549501595246302598426853777013909255276927252748402332471663127567992198216001089905534193330162108309265162472902716394885328455102440041633252815045504919417690244514212825661959429298433394297233133772743866500045795029907614149598592468330302873742499794057248202831108774868531947317823038615037254686219169700601225815064798878785834109647179759161003363120652641315243305489227736809220079147296141255635515982559278090626510906069442501265126313141076477510722707248092319903465463281479805659333806154495029096094659663008388126950253345136198454920903578217418546387116286673759801082664814366697031053031155149965151566414479456714091113206980491722558952808685314399139554362834516141593982943725806050031284965753656167032454646899073882798491514018514163356689717981603903745957877864377232691049375132551368386732010636104185668712561100957650272509988809283599775352626128904223570729534936508379909437655579609981848820413853141716229535737113321496111435462688605879023360322463003938688839884995087257293293490220435944149579794056182096927358683786602394971469526681084335374070730585352636613141632155702707124082691167549826348942231242693821755392406871965709473918290803503227225361567327960687828294073863934835477560991757677063593673462286430603064505562928546073553500154737277838398647488612101466720595621520107737551308069065825681978572798992361922467928136913034575119071432671715846018677627385950829789715284310380773504712394503813221252226608468468809434485605138948698746158257844924911512405153810876882795568356292211349850885468039213163461276300236210749314670775287196915254415614900614754134699542475459923899384278558315869255958715100743157293929492426863764722624044549265361254860019515706122948939742195372203544391291235712734233762852062435553249597771354617275998556251016605422012546170779459879971350375554049742224821564210760874830070541629426133048823636700956930591679276063829543597404304808131743616960803061948108522497697730118671111558241292231305342190336941245416592196816030008524625045457610185518648650821302962344427930490806047735700142331760076049567706535956052081048931318377494436858883216611672076371821360137524510021206412859857696414512170479496964403411896217635863537805904434130313040498507496014699750443648166063248401943762997879592019710572947200069081037366169284341548113430836559518406917176075441955757165500018672845420012535798731665251232633423679145260882211497853499818985661360276724501074032571854566780509134618456734308708958030474050821330142305058187346685850605678659317508191836412496650998566018488495076463455240747920827920082912111274674085213611610524863853148491103952918382745896149935712112253371366028950348720354915177405174748568415685352316098032238508217846816926180724554166396027759571297649950997112499295819953204767197522312274255515799628182596826035308260090449549669090460735563462791644261708084925577311464143941362495097211167625368771694708512643037382595831415343891362640911665298289593803639694830194477083808394071949099541632844815736646059958259323450724441545793638984418125592407152708260931353433263421517470806039860941119279559772882240734611336060834941617156932486368400032495933025325334203010167896231573737565921361566797216055198265629583711569259217451020892572228478011703379126505666707849780206009314544453949327943660302998797245015341696761479350788770205579641240755190822439107083701459377702015965255485720742795497080471873278193761076402210624406053425702740490230240658551737199371980907160688462307534771456698856972865888785333898500835422757154547114981640910033457039157129670836772458543555560011964071797135756217326454957121911291581346541511543689342433858232451358466420374118141584731816936676368192114175233627264259209919556814461399885106142582435457185878731878739762402665549812021380720834118377175043283437368088694524486646178484712170679433820558621807268353948212297674521966248600697679668371617595046423846477332897189925851513053950887076225095043431463414348480129070762047563258880134289050842456339971401111559877887329036775519701069693075145972642658478829165666161188788963092162017458551885943290306168653644439328450834782456076817675208179818833334208241889919812379319368173456017221791483364389698572324713396505549720422765502360086850310828147314882080048659134624696793934438059162955913218868549300652426563923674271742627883152324025656522063074028081446198701933562725908823056302100441246417035231235421006311444976372842387378744868301189480888045473794589074178739689905465950863782241414152277211520596520799815911165338585444109898770229849607259941683286920405760548206526585169225370427335400408797198201765470387301120785176536678610059446378088273012778548083737231200186006809756168945137678545588728986955729377445436956991425286223526470478176754751385272430103004151999964759508142232034075407917578854519767724365964175491290193582439753317049664623101575667416321940222811125385024559837004759361814459279986443535180245447987691045164118762434584801896969368834811056990075228416099599391593493204195994463056212817534001051797149781020843197585919702143204859449339546167095214448039344063652070302727020052186165603010936886494561551249548097058414931796775847586792256316278910259600434660543512301286698159723280760363155729351260232324122465598667754664166502132845921784182342021146081981005855762819970352480281285522821965053019787537381578650612197163062956655227548273720162852802924757381286936321140164120093204885118754834981592192045539803577445659824893764375233859912205194133559900106527618389575163335719359860380772082130306377907393374868759414249447965464025846853116014639747290065419425124038098042803021575023534112702633912140869360475835566494251501995546976016223345550424228293404214911621091254513362079374643942852089710679369284817423730086941771406821640791679690501606852544072357993538937154853139911585574229909932828070598840044855625067955625499388417475053697761477757552734093588422748786148122961332180847636671385917970398133159994129858678645601932716927932991051956818622406429748325818221744329113740458968909079467634145758469366254971613299496495256248049026958746486695538875258349824551275783725374344539238729809746098388201470574837565287193803685930014417793943011209849995745173409091433150318559726820881407797474345758905726123908955031158711959561362649915321736583955643089916586024824239291133452574308040293825490356121178430816885897015134236959351198125170679314975739473116978517484328420814368651188347616831512398130141256913155579461877995882667108034671192330113892646048999246523935344790233259900052880867424262933366209403054773904527178902306206589497051260240437322855629539158721295227437818032938001908878032131952353404443036138846652742925301834533429198803059970886011606120545546062242927009103840407953947584415763468725059774766031494708122374638579937091906312314156251094628982706704688762807553277585318997392313336421940978997754958637162797009887224112938906584090843074450062837813811894364220035031616172983862224919026948171132632055305829199106988487932032603172391875609892782825824243528272741045046551922591704098404381232132487400162699545290959314029094472287061997767205589112223916947248783240320933081265557366408548555684883196968218268328182030537083844991071207255288625404381312210452242095233756369866743311825846790533189702924494806704146344984510399016037710523110249937483871419229032328769642957998691106995795590814827187604216120996256951414546398737312830924308972964678764774587020710835596020205238284389843511904005102512059041635042112624814599084915740865699205101214919631364390297246725829182750338473946489157746030081433424931156422472708093580431809406228403763073638764970648843206615961866333063236029001195976370080707505913202723177531156607757329637220193921210354032786664714368470358742799655562086494319256759960535119663590185421816014024308528105208110940012385268748322850541797618108665418986719804393244630295014452560477305888054692624986530996949349083311502705170039932819474622915729039019289074174473099201512572706727217542162598705327638828686592465432802789391259993029612265892656286051732185355809550552987702194380138123179284230183455688981844007622633551123904861420478129736654120003229588608087259800237794531496190563521046748231132083987191907856815306483956485613259087527337978283395630229086545046729301252044702763301002640282505297737475598254955245530219008812565161033838661479135916526662644906354026824283705166796448879512923823636859302458077727295572577227148311507055814983053491166277689947295731020945665855470953968852427265026943949955423283982739821501946341898734490535529623744072545103610639097034061564811469828466572189041092538524843439802839437582165856337687159185148705721895716370715944592942357972353650050241365290528807957291734122430812280737895628868579063592203570769859103956845607775806117243129919571796799020774662032581766609016237922896277974691115457293104458025255068547516561655710350248373790067881548571559308183810469382542697782527652423830826784092506289466821100826594738167792382679132551158997981282891309344986253339111921058019349931297834595922812347019078003807513489659804541700528763301071228820101025216326986172483339902947695634866455071178431589231285655186264783636627559375240706563389416413341472496832615246030886454626531866286116461171376980724717191997903288520028581576060840185924906330434953592819951898291291470755740828529148970465663199252680599205229139413203753365374095021386743530850713422796038673089123156514959129077500668625297668716202729960764581916052820835917104094700311825662751211862015048177651336414655487538444230136172441738983710866889580796894251081776183870797170940950456777725366298454810170202320085648181896157661085996270063891262017676859218079639286042375895117693030275407594844269792852631036938004364188686725984690515172343900948110885481105493019984380240209154313358827171553513769410198261967861912757213332805376032664102860723007458817494792504264351952915144587372057768290371790936726913963203123514766811360616784098619112872947940370530456566896286445654869825744717082618231927579238331418745636295248651809378790206094606161362886107881659734835132444668668347958140846940463331328996823199736656314378952200951402291945286428173492900997700465912926305432622791111240890073436331972894957391740167391014800125321416848736840970215982608161074768050307677999265143973128900143744758829250012228409711225592643575853028713593676363673426247744523270516452636160903251387966801780682798021832167107336191878423590137016610395484693938592551278945444665925645621414352722485433769962386969452562525532629108084015128894782021406707962502296624966229137128490535311202217644982027494611385644942505019603852458201357594208236027196522690531556611729529336564966983478465015978281553429766592036004145276339467345745702936598815676829254494152129404198155538626741324123376783395441325760949702960645384726428399237740257401376854086000110180171847413509488134122441562650606759559530417865071555257680292524052654510688613940659924862333936006142411703736047820432436637147214727269059023693798531909244666111180904213980412537612482972748065596520557878073139643168015356707272740461270379229538476671268814029917691516309946775216811604128220872179540919007584482550679279328547370593058570678166341894967725845294844068716363098920924301594915592956257965536955938011595040192974882362519679354908901167495516806987170003537871590747033231992872476478076311458110034799938988156854112624492785365676957641052471393974763883754118187966307792700241675442754562173068422869043816460274055228196215043501260861489533411707273466815931476554883899723731790658051247898474457173563456538748968091503548792277613596979684309271462444290430262627017989730071586269824636982067378294668773206162669564167770706868013659200968017159975270427236042325476029999871673145315843550392963337803568182212837363803144094655738323778051526934753721503667900793311864424331650927754051712329257466465054100245260753707272217230836869419225851882925332374995957873566037100283493474999895653922204790781391228756922950655216273331062490150613627238008869118498081758635425223810054655780824815056754070909223192791074312133810706996155354381523617621083831499730695663256921422066758117209411004283392482967344620491527078658901421250805574220315752037165077893006948102779749489317594959019278657268582201840355127921875219579306991868431636970474717862720730965228864443782785998889422845215488070166334961661322284150591512623393974605636560818337215743473886801674663047191106997591550195061709047620003581110856108842988881773345241180975591660815725565407494659654901166229935120766131739000939663959565464243271358023922732578520305086650261258943422635454221273004393149982715086075412973526167629694771139606254558757030935745168195713646421866459648020696768236111925174839865803335401384941695950900134679073115855253041657406463889851108498342698143664043504298017828831374871560846032025982507900621802637193892858415685039967569457331218638610812806047566877969822663553706953485430484984732703866090930934248610549374877508169259292631739138817534563986632319122852083119985178360080050881306869682710359412103040289426006350372416844336828707192293633904779977521656982219609111131769678937117973303748992069845027776027265658049517253102841029321387454980991804396780742185581549788493050797500268148321684631111244632032966323667996246317575930004524526240444627882637811750518278169036337067455567985464456964368417013815294730839187050376003862840006080438493409815973646610496398006571031830100052546723210639040549423121895767309097159059641249695905385416284367424377403718161314218706716430161644602167229761176080211102036263068987142647598442955846846806819611971370559666448913705529724932350643269069535093456430758052180588166208458723126094587120450686131839605425053813271077131192842569296613771521322220649090378787612638906017983162721988999389596059447248025393698611874607002894020047992168313364828319359745955825174726318255872595076342433786854133213306130597198573979615838033480911959294393993176314877166897162660322831298592763775181177916916260301234779708817169987707314170800913117994300895078463741893804000814590607081232350536921759120076338336497798847782870849569815266227811124283769431540253678953425877222093586209795875190053086328481411190271821251986546708997980503868071813296993056699909337988035272689997524060601785477685291961744663745463190705618830044698471588055757767860252255133629524475023841738054625891493164071673687785196579418248486861715647112856414868998209607137165318871477068391434036841871201666390601549177546105530139189024168320522919869738629520991865449409497682181430973235327124758656112395125320738858314495685068966004655260714977894974418801161332753775091992003843257390783125277020641773453489663547791619039643940446589428820660875910542668941401538374748321336580845877053008963180449855341547196855931319565332165228394618380596195760585783700676239857706510546684265231423591693164189692978344773728084532277860808997052971417601843979012626792858161400848546478698373306524895592493839135225707570505149379385672618303836564160566583590084498696887159877153918077057704345531378634601043911609043505621115595166742949666848617503281129523172650360731583880800720272722233001814219341091763680974440247550547886918986790880959539032921493435178839869908970021657825914203653022988927287683860885196115839847518872332311250359597821809423139358990511715748494708257038920197658267587584881716840564258641886243018887694208709986120220936295518384609251541723629911614738561948811959754986791540187213952815087139694153166142574537574052596377998707520719996491562857677500747411328610727446086050779324331718934808113615477053355929010076758307547913507657871708702157700394906749736688180573909147070975746841686493779401634612520982447297639816622117101505906994264440353931518518639121996400798843297800294345183599169423184518769668142092325330284419427092963778768515135334384551686301931641500432714894097349631190862628412063339970651947234393978289250201304407351375085736900284261987549015750278019951696868746603461198137995930901966523317084701945161610885063106556081884527209783166958707809598655863944632484388258727325215706778738311126809413163533537979837934683627109546391524438708399700778481873182303639104743547792139356499008190866453610715110599337229790610357099922357931646381567512021593807089372355439386997085648495481451634252292130341938130141731058581888600158788767133321980517896802009224531132012180615663970842597610468700727045127491247438687876094734461502460192787005679447984564954346108429420002244316137291279429130762259892737609722629485342492809722484845936404524150227580632660848998526122564720301531243621258760932321617186115217940035475765924764615844989974749713719768187838586669642205478392596509755663872890110999705393437539039409888543243152490909729109967675903890865394239763495435069446810573065958751335824531581301634894239646488031653604788757072923380423170154138135548148136461120077323110060225838012466252863287169557848260427796702438796459081863297614686695250172418678623916780822978359148229232760664797111994520564501066172580371332822788440869733696761244661327992651263684881033345329518930755372183398817940624601768238978115034325198282403814753249687652083947596648896536404422848039177256007166140857621629275438962052712576974371772911401690459556615314036267055488115847391160521702603806234995260720890278117604696744500414311045767713290878238020767833880147696169354547157302508577045585993636440517298856501292699458293050906777504955556149337080436685971677050511316306897147235443023248418857123586808359849181472976265167359121333443922753507193754218043292024514022602669142477153150786227126889593249576034843887396834868284928902684323941853930705878553207196836648238581554808664563554993504457883536494739629636051195868348412789788448329224499446901538401686461169564030200838250694124811898198693065009180000512355322049520510460641496282886038349533408375453575394913563924714296766615608149906902840658413430940349863707882747719960429505905227405931913754293082620187892450669498097869298585803701862342478743400705702481864687301322195106737000306516809103012204252910215706389114087810696124910736121358541081980999429116445283415038558866277638083993036794457520031039678971393515943057083168394804403320496812694260096391552685026720815479527933105617742261367097712507753802329229066899757936095817219197808077394262682740825937300485950397682339874620658472374281632141068957538226897623794451577782921493201207887867568470533738429967022872324053458096548465863752841443800876932703895614092874650736728053452926596710737921033208555832920320413207850924342947130790181833002681523122341076934575676471955155810407135565584631250356028173198381246201835197569301227004487565621888060842223486201599896169087675452324297514217770527412586749764189966820364215265759953750348869684884027100797625677503755918718447047308203831164639076788810739619377876859924023193702994418274955496993698994884736054121848690687996205261831596001487918502990061319380596221170649218238406186312552008724076923979660245667682446281946027839677504411408911855101931904749129198204580538270440129634407724294212839141340024449954655748153199939242108096905837211826080477461226895274146408801488830501368751015268237720871635652781116301124407396899465538141421231116414595139292204684051447349563741331486044087941642594026236413507302247018059728760270960757975234164003509437523421147506875653070279026793083978926772629464281164484828141056488783368050956772664245811641580796554123460593175757633707447698536451981074933485584969320663591948260198387702878037051216228387494899031563304354984812267539872920708077074296928855035044023225190996055634517443603327786489543535325911843938633886630632113966019358944981248434667650179936625123704306429353291638979037996723225039170150776074246800879028275725651960253542266453884370101502119641005515339664598996239868610127027385506739384230372869413273194691501079583785441319685287397948361101042822252981894500398404499885519254211431860060026123475213441668176502606993816939182324814912094766739239472306173551069931556479092194620929454214607279976131088426122324271194791745582910016789322231377086804999274949224303008087715890458208334309794941455804931451193920739619932713033483152464112477000655852661742011720633281557091245849729312976987012597845849933006034857040070390632498837746289616347064162035088755835092218428581154014954979960882817069773905644958792952205758272657018177486617452279838755825232605330524873008268971442840791908125131036061184134085959342883833968453935240556405926950385065590705846019438782378847006621970535496017940568905289641481951341272257979852250849618652519325781898850174269191919320071278748826220104513891267903126196113819487300631656624567839478370750807937975029366840229763598926187413669262157506824731194129918121812392463632247866878211389416657301563606035590382151117178298928050279577377927768222826824875788668335587691996540644205586978030549650068853353185384686203363718064965496572205073071250328385392630747392693814424238649749168840014800666159600167040341212952447279989041026930527115416776060570920978934304682456295485231142834874986762780637127005423079200184012015220377245619667384051021199225996652791480787865530114748001615110020374863651259502610014994062632113581293305342094577187853680562074970625549808238149534964555540710935092552309720667365177795165823117030069601363677454702583565159089533657764054112173053609300886132647759065721703889943146755342925627959493117503421110117372828710135018485515721062077083338226147767756406359367501837127257829492263980248894416689206918983360462918512138949182554879500152453870603377863396977141465714685288801713954946072932396890275439691347760328227079055582830190681227576609393794945122162169024741058079011971157853701704737425155772416953471677115072707549584420521770318373098525418509854301290887398801992949577522191671922438366866513763001291513628749183943658458533125199142092947906800231070524414667313379033785108486509304218573793521253032451369299621786449259305923601984952451278481192566794855819279933907048829049840304037325209314127933930355657371167498644068425760143608355324989100872434090979390373227344640130301378914698244618437361983487260106908886414745843468793241861858842009795961564731179519230039381822366977249792478369014718215773587980419278832539076816904637993430352185628804001123665449362994925769275262947754642021685139395229989237747919750796768278450716024550970141834653351074961999156506061131915722029835632373088574621749315426295014446577424758673652375850058451000950390330274512823054319167497697560740065079289333477333672389354780846774535575448500796803560181313919221867760151341995542962286233551812216343418706083881726852979734191321881878962941602967719681291148701769005122914630028839361562322758672601806369255653230330276134851908018848811160082310106510405725377635700006228287683725057868542099896765808351510841229392224536407342107650358089059866499569419900921403643169676656601668750538000202079875052039485186648217774055037165456644600412415845690564844738432014062112982142142451865063077858137591864417715431199392496870702676597318277626158678617435269768305199661921038329101613803892928141727436508331138669577846566818893802790722455636988548926835262087454511578171246733833339317112342612201682189742127078438085771674033727529355765946819178917471845470433243199141491152697346473342042494032880858503368982466994845310424063472672619539030674912449360769468365523573284745191354018595669959882980066031280160871087452834788314671885597571472854993279856172155817592973001487839308189368455281603900101716502726378411600819087241073467494244009649849712760048111607314769949203370890712011409831701175928901422157638413419965469794661432869571456575866376941358344434766646601433120129233500758682722791050320563899506698289387813178960109244593980610082644737696744773004357938393065966638076147030882127340792212609496204156110186678760173203358646740188289853300925802035192107196778751926355686947154304283266557012533415541629325935427076492468499766944029747988768606211109618937096888925384695154919552252511969478026528304011190438713195137688048761344257179983782696642300452639501065757580593237914730451005677124724074317069854554910872419799306183550610965240625858613755713329302836746385172162991728016486671978480377890951760271285539519036540132672481664191161242851203871571101623594677624476878512171964646993383156581853023337090090097793048460645395151734625537596079819074138392311743446401610310743505012805363363439566069477991427269209810415065636500265149972397834961537164435875992910995157974464087864011963090326897313451191199305700212557427880998627886397853602650205576581359087619124532514264730318418172001276423239721154367275272201438219673425164064303308649413080061034703421350242251443328177440891943824375319109451322723615655900436701793786700155110782571514120337618395208632467663102955188196171039013683746564850788496924255265277754185753350312583656501025046434776598243567924402055293848976940980041229786020093415760161369804967513963714124186706476639256524773656120920190243042445115183110897965127642895050833586878393523234916561231166492088001444216437034219067546680252338720333698329986412627400932926305083462562927129746905216233385632885087626387356739439076062558957543232277496537542370515982529186724482407977795421419208817868944129818114144120783168498198585010800004929082844950867795082731232196828955697768813881442452623140225018909947479783800930499279496963924514826192988082627147071468751094126926508409898315068131208312502662287793705273608308212337049190651248318685040542996615730933131645708619630928480715191307198975362742069409540271254052299822110633470979005392145456815999687814446467533804954017302829321791266830987531052451127407878328044410740396447466387208063439541850127099256592105540879038304213112538596543297867503351714015035945125174293801861266538121148431810685792609901145150697509680033845040790622067830420683679959474794231187131024500503144187389340461652360962393864504231825220684471556930750046067770223541350963252463145824577419075223154718672276473188093940495570712526782194391687819105299919086512257273299289406370407757507919255682702701402916014496019937685049910975280927318097916935982433544826128377814577602651284636777483609628159333137948153064895610662321155454999722078652061111739334016815927461046465397659415901858922152159234845233648893210277254172781877734264134988505957798245289265177128997654251294315295001894567093284492710945607663403635058497556761404765291822604504136735798466162617590588554340664091958858373013144283755497157280955665589923368046119965352809243898197741541878795217874886290858407498525772951772627427541155366626770572132771127426410246443300105161675123425247672749530554572890308585627544119338061074582031161777853107812918614373469717990358825308165859150383830842577009901065432286043112769585849530649312368630210362875486972080213359776990331445765824384358552293726899981601961931416855951637659969403266253564599960462883383239523257593395456578132145129989621726429695832551903228510441155061860186438319240640858160761018007692604830075678704507831855688028593833938670751636443373992161762768857057374978336034428480232048483385072846414764153235334734380296035931591775999229654206776689733057951869437243296774724949203298094982495974918999331405838801285944854649834597091257882190202457438834809802093191821898862420161212398327537533501465655049393089167294761131387315267252621845190024637549085954787925004039558971657427142415814613285329503774893595438444654409512853128812564219205955713855781888971141906511347960726437125754320460291913010927191049073663863073358809108374076059080731114374207360235041542584224925155289660923784054422829906432819804188934754132033291767891960776370952281309280530664626500061947599362323301544766701280281900959323515868564457053759867480283100958985834151272312966114641389543476641918744430175441412878793316555403778830298474716036803156879571063219701860916194255313313661963259439656418944102751008569194275098902446027208353513560224546788148552714146351671388942390127770227796574998276280302191334949408693560759559019478595894167282363192790433954225080072223388343546197096957781539470404617603861654049422401560376422980077378856624420449930245796374236472638793597336178742740287281952225175843374065114673386233629683572592037522810029104228374742891089508366013386788518967468722764594829517187276242086646401570409118330094985150175240410725845589226595593670729343805176776117573048719532835707704925500782480107998139081695653771235797085544702446334423559833099464933202866711120102664787363080268645902243647142333081834535980726320176815965568880405780716111479028955940548369459854031330271055301214227313906345160115873578550500181344893045181695761614933006945656128306941753248695652144304876995663048374881670394339195335187374539564178665336189519806266134761304330502800329081567149049509391652260913155302703413802854076465048902660860675028203299649317873347398678076091987606330335508998778479334335345123750266518579029846175219907384330980022476069286526479347167668394256220500452302370083393996964495829453137716885031463609282064467251812018100526334233429874266539484699971773036160554628312174254533703692280770155003875182052239523592850329452696700031952873705000968556476759994233008703089579568608066101217045762440513114336997470383481599562423512593943371616500669733898716751378745142729136749953083522591733975243151079115533194051819421747891141770108512728715584501761501798866244098994545690445610391126923258243139014410915988074701064151370077707000267567947551456510516906580415755558657965286561417348365770277943588623175748782451962403535002770650414696150491027218366215308744085469534047503050832378510463371328663818153994057055427896011646648535986353943718450538627463327529753832743052099923372280390974499450165222965911104455638518442157258103741335891766645562730268785613038790032824616442982715618175809201260940295497140642773272641477752790878544373414645358283398906539174741350487110653275823793508595383901448975443099060454683777698685193897547036501252101124649196397908077336907700862202124427557426492612215073086121854653639798155576872166012757430893723109897342965049492568830750598231356425857221714355177897699196782897809894603661848320772308479774325667491201256361158074694093215861869801169529731210389023985468363480613395853013162727940664420686725675273352443645818824056596342369841233997414377017195290838553713870099189613212674834063685209008230929280057910639696207501316846683083484838702910353023088798654303375688754419777663840814588457350507831313848774479541197502696691790651321196965781920833481160402240448995738254171737070248352149751403029435271933055997443145754697489294452559226532606330348150557712432263351495051691517052755152869220081120802698897017513174674750197521272009105639412470553428037884598042264670785044268112275595948484370286041562355589043302448924209378391162746889938483553444889296896466754242081486310319988864073760514885494772460483925979430203206454977885561297072268211416566403756235707196223178077438364556803751121097723267725232752401601475442233572426821560744169677659049147010121914675237123283446702009706319560027325885964375311368925691167413404989993151599122561842254865639733807704549529839482924884788149739174701035649604285720573865077556671344081025564654803734845890750239175414436416766011512126345368641252377010432308943203233024442544221588871644200364276153417588867368397825033431866758665182356351536130826252146093573256214829933145080853994167755252353775017562733355335224878209871129506298487281104705236917958276310218603937542364536959728598560139255853335675213642201206901332751319313780835904954646834456520487949113488160339186194708981655392155414029164673595980621629066018712626953253904388382623591867791039474613476173558281201781826442731886778866419950216244468500027961405863357084956523204453846290694407374575027890431873507489227672901472982389731821039454496405595063222980342281070776857564667820716194632609868107572178454143738886686701982502805212824556957729060308337146470136650793391710946073163297643729254890023143710635666601736107893984097806244735866541739075571769959759083831278319900085159775116570998928682701808795002504250631204529420158818605128975659138465838213540187641448626097491397412861784330485907120102496384884194951756035324101406938436348553239885343656239090127586514256677289997926644688931304270334975900117112619520097218199694313678915266659267430821382783696784269228228350071270643157591899917195899883201007656478602990786649735565186120244349446297782089635980518122313826441208578666326344033785908232894962154466612832748866430803282073363281559367680553181477984397524075390434978934006850222377494414283563181686977389207925467265514409576144833528810261990136539942534053441120575551568564180831874243108322665431117197562510848602129411030661109978820509965673518965719591388058758687111777469313419888203963918229113519466914872598023924961000452412784219658928031151925834101198302502273974618692536649066395079854889607826511657253326205756896505286578396311854783231007265891130427830661839192237174287654062878114101703944896007938240450463666839327543443140398606196461822763915561592924844119410129877639840564850013633389504299804277103915847175651781290885582260721652529371397219607582020972078295933599066442304657781029927415472548854810959725132994424501906366039895948665961474963993056930169518291939263756851597040891117122985128887465546471105274090587291688749864177755394240016060709590579474472622474005700037655044062752560587088243249829158371654191212884842220511339252810472331069381270877877609897570706756165750346913426034620706794627612766638242112414244290509835041964260372938668608235022067438102296777281357306242611260164094050884038842497964338216919968764343886074729292741332589104529489990033922841335073693517070996079434159549514290877641757406723778393311104551633034246083317060940167253339988539749007845101502706520238888179699523133861261629619769808954678883622894403758556736065175731470594004775963450275941165169967758084389470815696945487519273874964339916162375018207916317030041460463183832517386198677786135114629192749595914393157723535590091625367025975116933105936135944971232840761370570150754161282761540465989930406470184786214859548558563195141107001326838214669960863178167830369801520818883410079011085429462966288786215486275101153172705822799716612000834339563673664219436880319807913714001736907962091078961140621742987170573289382512511366130526471130904063342454128768263602988340424904554015351423797185178237770770335339002677757334226400198823501208243152581688341136347610111105553097846805303578648319244665164989246514137659869330204541827361781035227729917643524024611657299052639420334055853520432245230672187064723675170461910499750720300567790636612087853253183180502161292741126524799178315236611537971384538143278574639154467251170560257756639423378866562767719715288851297414470022659055819364261487394762690357833344012147059940290067967566782779946117763523083917134654064764173187791079415811420239841856974630816639120438407110733363467635574369819398842803580138564903420050209023034114443667430009139937362582752391151880926419726199637219775481604171504964211888526447200396480489109295962198207701957823665861309096237244022354626227272909564864784678521214775552031828040515748554577336016971249242433940938975091524561955340563331527341048570909828770806045418817902199192840386013678271059493986554724433770223834109229013973030595037155440831387026312782277014692766516376386529124202399926308954860098086239001841535549343647337998322846333626877883382269484156616019911985635016642559710981536491740658145469005956678079803155518650478590379409807063842729684502777254781678088003325530395758321183956653859941758112470331650232576052284455728106132826594364160689479673530513484075827287191212727166540942944246517671747529812784485031435791333098405357082684129917355855347154848934411696485445755635398281111051514481940666879413253770534409993012438043141476790389392035946236495472052259799803863799622947827754615016079695509108040928174813598296844298350823440123715717437307764931462210770602933555745976322619651044442368498638759685842529380735611680777712621539911638809821084164132582331424847779815282464739158637098059960210673106969060396054029346817175334631938335954533388321463357934717197387190999820848119285509639601253875126837974123366206775639693851858686867285125392952193513664348122299878801408667172419463364966812104904474836907525092765933170239589221637193410940523321506529691711758096537927354197141371234700682471666999598272459743303244481312533366303137858545699548457198320290066730009965241407305327504612026483605043371412849097575864457366582801896022271720943231552019474410278791569367947807345341987882266024555494234081953256513030354873612338394129885765303228662245439028781818893924179249994121534623226150876786388402902553941909200047711787431348136295283517648965216700206655321241968622345769737275946897054067497019700811581645357996757677043828677687677462445537004136378814620314378848462433605526507852775331978306735856925205235346969731405820691254104985701921013631698882985754348837700873872096978013621783985186918589970390486159968160036971549665624122663204065518150293843238010556267495875779288928774439319061988729481272613197020391038606338193562699189919442979874831852316762464734407912655202441549583595461467218572018486188376515914961033934305318768845892501212609896575197622850342193012311373371477712631358546358777138630311665790306823304477010875799448370051928899537299062911905688948314893721917478832587674365733699791457939388420805030168450451965508657200253785316021435324780646394552838406958880320284168260440231377553113834016873797326494195153386311679536804759184070461138154424507431217896638996629629425046876152700818027074122234952337205033690918497685728341671017994949970644553794096233407344799947219527613750639862960228444764382394933393312930743752783837101268802331174306819090181982090036933517159001056040141806177993645560494856954101563072928037824099144328640354521648185388326981040017270796085690532612556695666485757920720908384586837948508563560701026413802144561070189659434918541950571439625804526567371004683844120810970008742505153443013062216274771206269771326507157966924779149152758628784199932867886244893110648383397046535531965904791258036017508442863356597118413532979946830642258838230561418049096949767792577406869268267953759115109167369830233719082318062433476574120580918254357904283286504204402378966306917001854677036361183249692897621112758503751109613071517720988500789298906541392687579422767953698949348878908229467809794199645337712026341762485741863578451286883497321383087780008194779149585876840280062605430593587541313547387415563104902278810078561389084403701407843221388146888128884926041032685309951444159250454359099926209275807033921117921817635143674721754664117952183546716776729378957861182784936684782134610625908954053776511758692561628161193460241260736754879581721281961571338780695883136957750822827158816826589581205861728119797566454533531939727854382317487588797843377179329252004967463146606724039888843313147666503098072218615595304184187670332552863120269699508248358252450524257942480253338597916233435953021182921997075596165755617629195612677433848269862956864378673072692715474633533580889094836081684479486763372069895601520149451165395466054038485383219313440037639570608464338184685605500395781273705624286268813181728072411853967168087184918998774372978012796590504882187734740003483255715201738782410412546989248387078554353466631618529757337605666019564566989076115832926009212440972776733196967104525293772941101522796794033580142724160310821785695293395306952934051621350822528253139265310083370969854831920666140719072589652177357886586606298493240056144859675699897213553436719433489730361729053160094273760842784112481132160524908593435668741823908633224625846601494141507171608182370144712742346314639366331432100234515819971995118775894794329403804728818445737760613023312724458006004812001728402175026843755009934049111958371197819830291544889529844552277655278839261469330742918085335893278644526149990886483308187025379136575766696791740417621860981132762091012867591453787976659973407643558274329813820669184155837289557621449342405714580012997280982740096104963625320881955430056408037752455490319437696412478856961738255251115957123700988651076711873380281506113126914337034438591145027024129058916429813230336725633907979718170529320406517153182972421273408982976337718276574980335762235176247230907666779197083631975413602173138832616794182013396488997629351884558125522901596660293668517892439102125775531770949077427718614843052658151154282218820133080764105160417468677414163848080842195758840384649226292010547456839499280831058459228857512151896176550172293576658442398650009239528223743169354382368854425000356784681732359357243372701968727215365028393622173788752369719220033080513673704918027460806994817325181590279809886117931748123124206646687783373905034734524367801764060441775466231143580292594140676842434134604903764864589460062049406136706212263896200862297685203116927479707372818537554915698031144191278189661092267341376704109680326538059529393675966350896002843264110862074152680628400343974008191701222191967980228669641584710671513246939797321613772824662348794405913179756681348728487360038679179530530948931072606137385311350112090346991506050467694729117528015343980258514546339129235259753356887329577829864638199078557418209562680419026728091914142295973564208221394341528844603576166349318435269018644529805492247479224992175623372249823014872380727212641943342799224820900756757325473153221235414649527022646411130002868226109119411874841912284986971823266355530221719059193366041928983228515619519005493060759611032899760051979908438996122630945822631308445991538898956017848648922270029774868522623143744076792399845741789690932153590490060882784090869899944967874442401799838264310653012977052505932875913975482537736389341175600272313850521431972471771641800080368709213234829170537844173560355437576899910488604696746676666670903073241910469910857018121235891136100129161410776912588626598590849708380566462456859476466348526749242656905734397387528275587072021695768188328824760142415326978172302665497995117764014009388863416978719403379932689335185042437018587472575503861818138625765521770359855933147702872838018479754944867402281222888834286523994999865930283384416838319604006554725723178962252485958292537093873327035993051957620924457854958724186603443531491074007361740956021473488872041798826765838256999342517394574910391452007634637851562993588132437179325185720913998726177962476853734249552329639206568040909918879102873283942314076266027711828616357435600905757267883499982408851922414096142943208242133187367038658221665538673602958878381586183863886887759508877503804154015071413593724372039975764573891997055256978423007376538281516945823433269686430733563095212771996225358937996586639062294910974566756806209066785767883107597239893987205310317918731103196785795444350911315863723721151404818312318065188788540620261177267095301656002742018608501289859853679498200815718348856843873170656087482937118232517302910779812446328764418792403619161574655268625080220939302443298777537006946502165676370981671726200364459998185703875320946393416197869794021858562269511548903523999067320871497369815789399398412539941109465800031308162943360170748037399451813385724229765682005007306680215144917235266282388309579338573585635493951841608755482390532744710321136336055985145376164884508559380548606438396511928304386168462273448226893695069223046103177316638619261999735920717942673900896193780172723511566610284807847253054595601221639960625631283738518687650944220347006096415820691778244142757951870835821865210836346502057211694802944986770880107491158276729572664891963655768620282692281051974863127081050001946527907210030061634064459067638215968376655827513748312098614789621547609220357148395714262535705125558391342544502437715099322172024970070208319174806809939052781165677831112718742086551705044793379008220874816878918009785222118176398118096555175721260119977878607939090706882744748399071871837761065850227312920347051145589285800783075202166738131653922874784537502863980215432262774332896242976935013720315780251693911436917742974047445929974443106052560260880067285165919796558617393428398094818921923333242410663668492557364792188239823974120475901859476929228616055103713782511695713129343312964851120884751607949063445259687482558362178901857655691879320118073059751097227551649488630634854557832123485947676046620042413483986010191789901006236169994557511921195111933449101707532212629557538889473570435609240374928056003022631215441389686790839012323230122152532436995154196021714053500685824400660624863371258945470654324779571716201129802537262233237633241306673047573646172491912140665711973194312815217995235085544520542198269906391182146839019560385414689620897971550675512267160576854622918096097619190221156991203220674965697475466014798476311452840098713669636419880750768224632837499650143805798641244455868496574513642159580323047180889006082443430084570750257389106904469866594063388489285966533497670688676434748183804798907986792661676871183543829124418387570176202061251336512470823894561299398323454943005475925112835971212911601768310129872631279671656158265650339065543472340311545011779030669453103975430336630212821260666134898633938561246481831719398222683059782887840167513960676070599172886025629183110126232980247803300001848180656987630429751039404561800996844126250276402245861870514665834572032814722242378144890503037449315125328936296236587979402734143023351386250738735401559907760307737112699369597450595318123391325422296797086884651703317691735394207901493479239894264397464220127187092365126754642230351335227528049019241151157643827937476923761663676007054723384558132282835773493995406716412047174107649200025457609376418283248574344671440972366205000777617967567881486257870087305158946924700290054998269872688498954943429983449000601571227113703690311542570544798545514957118997792163484208798893137300829033675720637121231778531504633946182891851448709976567230102530613743137877582748231237901764472949689248396347736723050074378571289310605949518638605373307577051357211920136926187644175784903511379981246839389730141064883106500346152806165934414265627946292352321219695873466397247242051903303849218070560214023093644571367947870897290076582122741943463729822305328054039282240783012560479599295720233313350810213718284955331773166193268243082943582023291846317419157529660857260953140745651001633614978101142729983112490990236857989370345548057590827167338033594105896013667707892921540670338179207281073189531501456083016915161087898538748384244065500671060200685795018604216311864550989062322121113477665000390529473968249998744845180386431712411763457189957738003776603093048518041717125460555565104535799254735301893752131171375874474295825669288874820696598424174385089207114209938947374033045107312901690648285024961754228283092732893592608423757768298135018133826193959017624838573129252734169723456286337197868462222822132108709818140737381718350619630728225556861242812905152930528806561660313690540601211167658574718803328892831969065336052073767625923347216187289276118016782033845808358031090231715640576155021052009514570015175186745247368402877033883220539565837417312399968440287717755520416995794043215387213246547850697006964427384701116878442184666949810842949074891789339720742005251340326907188964196840560517409085087997474561407562365467890373400027796910161586345314681216733424780893365823890815468865640751925470397937385799257565760722328404607877079523451892614878716244828804862934627013514923104730397842850017994420295265224445939877153951060530753004436847103015674306281064964567462564158546857196798368775607114782160282942691167561516733568220462564109272694200425700477112871422337910521756833791984265901573936953937076593650529962854118036407411560921129853069484678279910554488197700784576055251159671289742903255786395568166342514590291099366767511480511892768891300676766307493838687753921787297931592089710209188683584367152370941917322001164576733580362455948715828642973928711118757810130557662936144867768488177270746730937309054103442197645209238024293005130702400861803202454518746990890663544721251904226070437512693559691538529363592500925667188725772418634069460561923759921561542968220452059631558202476410707951983672213969648348968186805916737469954529226479819854398831643466901066918393957438463610272311769931662601998240199439247017601233223768970844827200795847682614361468950026584877691892619434541033260007068646817627538138534793373203092875622431546810302747380347390853494986158625534501204311115747169100290055619133827411466261263258118726680087974945732766412587878318510384654846594026744289751501802851458419511991543692914813297952207147492540612026157491838965328309859580953159366905353951024407559308131751502031679964287066303266731214795935234520225194704561398807943200355729664258424952936089479045678363612612242856336364961218888252602340073878672209198916710082520548569521240559099690875436409833192350045992341401532275001672579582406193691330338267965247275172543296027643370573714052023823997001849725552030023087054122310857617540582077352264510745457341595938270689700321982128388723449259124432885011706698192498411071997542567619181543537809733804930342600683904893764386718715539819127669109409909574400773595813669671798330000655317334326356349498135872209079151947178874339575019664159535076622758619666613757472387804344635408630641900902494646442854436130815123535751374545340314296018248883046852460884502235907492536831335710520556957794287066055241187991582666604668649506307820746916707221786813737321762832845763662190962674215455905166904176210640175709638938501052343642356182986448038818294795038161216096712261664980232918017649946919465759816532780737998602985366587537120781551517924557576740473073803769581189863280049428408333729247431283741599403341151428891047413393049914351509784835864923454509407630442129317197624041601774960895372587829433890745487760853732420657042407858771956878147204488305994219622227914475961791171030264132746555574464540993805500960244510647046944569919003475808968900969535735337258494436549972286798552288886851472440249470408378142338263405022153837610689995139387172950602402900681258073966253126838671573476101800065294172880812805604582110593927682244967749209058564751721374386275108649164477065146861424360709472922480377993980457523733673015970911990466348577651545283529862862662043783084180645864796648687849410174048031236508660801185204657700192834722062203033748087912462060972518326818893790078650417873982180820747729944399963641952095451347247103025782145663111647625150369948373643973175296596013050461170993152139910212549750702156835346773358345998792766252716978107684478345774378109009405130121833754935243597368604771413567982701347321786159857118622602507534711712813758226177656472149308714666493432306402247071563404106370383313035325379082144517568219104982213560387479694799516435449695310260786012109941303524211161392735500302122964367943282620234030054819479888944172795549884493707591828508472340332754454394041463681898387081950690144642760562764072262902863797354558530016701903192336371155751571183690587091257053629615395748778600891880289493805484673372609230574501232182407041397763843546119118138391705560924720977828592927961628307265905278636159203317863585603372760820754880094404059864328431765545674733238161954955699934398698729848791025459437887927874623537839443039596937339184168389070873130671911904449222124832980442081113110913121833542461849738445687540787052759765972380322075697430932493102305849017274466130990677287053773806638236391373609521306829350484372351913285720310266368636473553988961202453262801335384830205415218684877464516178183933605496922486198362774780753001645483278623788069454682395223282878089422968539454615237835671539214440143996226684837026726196844616825846231474170924777757427397718878642460268874914842814469906956342780963849353273706520346713328099594923709965756700731630183267424593549633954167538979527425197072307376001757524329539794645018811151120773570272157257973013279181379552513565371592068694175118394687791497781075493739441382896234882250272684383468883871692381721462227271198124982522442754526224792230634400965861925402601902819768834511328339638533945179372427570227459187338828769903866931521762891966062492944504254260698085960137670158796306578551714574268344228439258868345539722010029086100926298208566670281098582284871604172861067782536418469988151210915685812473658222797183056857996602237637567713579914747320139719971426147578694830595680273041127398324766245565125587879129161287870103288044978185925029898268900867539834520200759468999638091596065789670630904651143442212453924674880782858307937024589739009174377573189292669556789383513472130288693181285469521250326571011101531755383413763386114014465860645880265845821534417293984075569502090640233226303481514212021079679626593610719259007814763027661722586691539684377627614577062236836226929181350252314740700467266456459131863175899324052195795397544397896669354426478010256928144506105635618378762214192497247101031016846788024800973070657772391786310249255737700628384456526426390230691159232003214377202806213783650549075472913021183870833123422816358157396962656055474157471817727086828475007662751153926393144001644141157506585322111161152097141808815653694399965560310061231050445725119430109362723769019057386919975749262281556396941352121682354049528563813289142503076854214164598599807954356019771823399496344193451972307225273457924567226130655551931698142985271518447228725366141110545601554115342182752788291572195408668646704143389489744070046964137795391620553573497509025606794293334901347404313848658936937630164422174204050850219506433483750750721273058678451383785186361386626929935155566123445137170683888713545446173406673071330583316727617811432491450986395441278303370100066305456815160367714204355318660251171572395809794445023588670963688876609076743855498551112850834310003981310189290336796495017414275883010425892538006794827989011871444711925963038928251635708518565548826166973971789139449153328419931601660324224739569932783970146707343824207466925413441233187876585605584433839947547839061722056104046096388912129603955633986406466086070468932327686974214444603454464677656233658056856554753196463658294729601510370515145150879822601146833768167823350330161263411160021171712763411392019057554895031347286265371195626411918456653795240246398585302789659728031419518364076998423948014465464154649046328183836383474889531875725087163459649105955653560483089932972259332707506782062966571596619108524141647733991229428920379222797085090626957170692564749034679305059900649071717988237427564110589436696181329710078904555295679053010811286618042652311324745328981916673325890607785256907305791855670968356282329190844827680216540174970315423058543976461329983794851483914709415254753452536538015808646777160093390775555994182304448558827905861934930770143145220382894202127783586685887705834634647088661577391419308351208877610295553962976898924110702159990834679042792524670379275169945436930788034995151215307968499241714919189297118093115753473749410152513455774771898387286169672974931851457612092453859386933767992618975099606543250721740457428160420738340307913072168849560898818106166899673881474090312278886070765815823743164367088172276093378921131474205634587840055512349484136448348238220615186824300712433627834572546101180790816163424834916306730800831077727172413028120324230107011879897651590236142966302126490475426807217036445614832001992069362522100096394276576502848962815732450179587870035665541961647571171468530771253495444263774562609770137381347565838464470372796496977158269832200343393142639174558971771419264914439536976877984563309159350909060546493615256120874966317860120809296230160734843537580076343233971349114239589264981785559678707569758844235200046919456301484552541654195030297719280562657981906078265329319733642263620798221911615343501319332446689083719686255814479904084665263586213451205667712765133405357732889144420814432828909527466008789748655319703978184498114336865358662928956667837444015866134928405805396960922699338722648509308337112301591119749171228851160692500575094939369147452368035368627998663323050583449801517261073489700510496762343560947237505031899779574550901919109194159176719425307769883923202278434029181949688392765863763101534248799030264381110167774909032613247771521713517994226075105572706960942662249945227155742953043174156505648532454181306091964692391164662315766766502018561328236296128628843976862206052890460627392902053327904951171577726033931964991920718636506699168860948597789965312072572705681607914693188590997024824560412870535882566275102831854603054325768949417949625153103462897636772948120527322225560369850411966466511520661570200160989373036939652518622857953990830206735362570253329044275242219343485662388219887777815435638130579320250254333877879397717974197249668825218854786275929947119765552513273226777031207817589826223024931285064664149694059411276354635685113325415319753527929257304697692235384052018341701361550790599390448036004541264730758256055630008701735972841667274216994064129219857944184915555672929200817966574882215567355548283382907888382547748222225624402429949631032818161613959848605284665213415799325634298346001453382907915266797227366011876783828832361005302047915876862766654064731597634817851573209132730951145194458840688514203180355361748643904799722721655375614560348182388616751844228116634435224245344146666110559056762860774919631191341912401529928886554804804231181891467121438894728741065431604577965729279076101963131657912178878781653725321447120921640700297080896856989923983607227229989424600649280883860109907214289694375073505004308408873375145574017894259157044451930215562786235782449102241523929207725908712778800376241209231175314100814631347387709850300169102686222662938815020660315640455442138422675125620298618183718808655012131369810990965430218034150150749291148662829187426073474520695211381658453048981409057777474304409746170698430952615952676996135101011769237037543364549384509496377218711869504033501701543541983395144686309096885508647700633196936576258429803291834902498060900254672495564799075664146498516414046727051275833963891164881932430033639378887851622606844692178770872414409263407307251776226181511474747504903958748744035780274188476427686245853702322747970821227253195169825629166873385241765583212911115041852967923758945238446452121033821397278795208639505078038698889859139687368770851611219800256797441042848389127310504819175778838521440163703094128944439827520715563198041877810030068465650329349782353399780364982927907611315950242035650857430313323311773665393039410190887736060193479950767088326093673842533174437596044239507922836068335874471795275239335546499244021211614973656562892345130789591455835249464983915098002868226037202658250148696842999875193339910124891592587730418465111021866432947603920349873234946879477090876500476882949631813703581099637745108602121965588461352653598661767116130742730607596137121044620311331761633096642761960410510358282421027721650263437762234179163378193111443726933472087309649879428060477660513887152301945621128773270870690430822942393407276032212425599296508506614915664151011829759709172273870547865693386821209442349685566962170314062598733577420237182166274576785839053571444132264317491262356363877187829316996539978828631174455913510942014970438821291672383158297073239932680072372931127554831041376777437099166663783039339202910755320307465609022991046175237163478995204851551464738220760172686161831333147938015396765789311678591965741531161432456494755249172657423527194111855305217193001758599367691935421057424158799137600493435718662706009202649238509060852754397811904203654730004722107955180632021066039332193889628813674473009953344432718635537876839237052289637671824599563454065753951558968771464902679927053022315099276123139276881322307823388394247539718964972190944110471406161229842694124949004091138428422801366251212624593501239275349426942599092810919674376673535910994952251479851387221892657673872224702107104520436351280120561027880196523595717833164998106378461663437264826279044948692651859533424658942235951586676418014417781475963695530315897347193583138264799818254218744951253204435261260825376121795808125435461340613459037036936237805778282018671357688734722937752811860816345587207999790724810961351170255284941175840923722242470497904624237409451059145807098196942831046821815631371184008959718356525703494701952234757975510453741384189235022566953176968320113746927154382174957025672933259788330819377499810464934704039868462397649985214028930912060194881353847641013383886173930134098765214504170877406537538250747973701644433373345065603641406490622683663459476604463997813204561350836716823124297697612309603949756219494362808445803518308566794312901614344259433534244210703731561790725267612594019880303255871767937208884634717831510547565276155122791067554349742291300579385458221727148833160247478188759747321531875710256083547298222300928752937425925621720394380581403529234954076323865448296138787267829168321172857328439989923152286262387836399074990296068454174621916175199861387406076065467486325968675183880133185110157514724840347525471891363064899215519054017774892632397430841491137930780781070343332097037283739122572097317196380458481906319872960207869187781363017302453749469795369064049283900088493567632204093636376536596153393679617670010764082689535902478545570971818444860962399812178487275804543542293416547937314771751829153551129444938165573630554052247743003241909921806341202193630060343922856582923925209582441245041543490948577549790651952479176658421568111894201897329137933790014032861986152059663383356720915314963349287334629001735094938826624888852485354741800682785386763409027758623871747197617322624331798020373161639992076876602674035567833248540731469856487182379202896562406846504148537407246281795075256891493245261732502083370940781843995284658342336196100654332071878710905279002892777439598293282883600629013475031032354718813008924994174351902330355690137703220843270788174690558838924574771130577488014947345697013465279126045914786572027276081438756476378830495118956471614550031221064999487927902866840109020038362231269391818929679604532737889220797570664559475749609085095000830152589060472550117071008218753790134935969335513162572471801722640381702737787204154336788740949814984086602235428262428738816630972739193342346611633919414101436672449525469709398094050708742043370565797345294638737292521171102095399863261239597488137002071255396035743541364741742321704354883458215821738345030835921022483354140032533027464788623112664715970570112823184822227120376454946325214364143619987839967278199590577871281154196728906887375384710092530933142348195070864728108510536947724658522767710837190541084420478917411242132254792773775426464521638456931452889344156859099609226345235830428153306448080012626129146129591246073973420220243174727532041167389108751847876423908135220896528763851500307339681130181198468232755310636046716630466576839945288042341218304635625630789264018570479011053197201708451156472461494754807450857604878457433009124103229134741580684928184441452411392733179910452782994943713261902375435106307981437902545948926269386682524386229640532190534285482219716273871156099308635816172983854766806149889565196791824318695672355744655047740168918368246189981201717080764639991536064859672043812534832954466763525761697358840656463312708057822183497623638865845075769548732971712388343368948501481873569966718117882837265621525237411519329263666632512062920723090416217879429481961345967934463187625184831895678438318616740659168885940393692198582619423387075447324501288494928150113964373299494108998252946860012037055680841262549344710639420992742439404502811637098348446171300422681850031458122012448084837421993105470237105562199777515492765843452251195102601183455009687193056469841385663339701492313388475833331068397374446550022572320992695947061551067327000116352606718696559433378433035487090958646383416235520112870758394186243466277335322838404070956654458547330160602260328021807647926079408523932300605426107033610341152594353335739748955682643157891147758849851516867248095447339783128235071326378640533878984579056990433957599650479632272869933770121517073331901995564481422715324831056046242948710660915551755139842041607702642447393492928813423174482391528538395064326171599273480027224552678225124255529498515045388239097852334917655101224109565270686182809974323619217638423155872767441304955426657458879906607512127605020551412030564238067024293427854585756761370447379617699534868837990459853092939322414161455209864339200859688294135526993980026335451178288011153886463709766520772549086713785962495441495846572418182280437605335091779347164679584389115902975122661850090181840744699038191232233168450910180399655450387562484652597174738952673879749870386717846839321238482436953045886855373100552787968091355685278543537977289820522044497039357698868279225482912301014876658650136984009157171677631837182955060103904281655117242808817565772362979068002123129790087151978833620293007849478556650714477283713536522646283706260155173648607687518535363499270009764629149243492415917683478604798426065718112989379618024950154104607036579593859377362450906197015918933210809534243518888405480691612103348640479337648173908658874046505080306149768509854314733236017128896856324194522667316668118604867199133815560397950831497834304571598542133663842777088189546595471085955746385312529659971418536311151421812004338070507401336535672729083414922946299013346762558912915832888834581710246049492581738896729584491017889027856336229205711294489899536593659410875636249457237704823153137974376598589543711767406413725603410982846052179079740844637830942444493869030115766199139368221290047154773555812830853490073184842802274132351755089864641514454610260596452631782151833341970417673798387303830664484967739770239053466099960557608467882790471387264671247005360793499381280457479076154384957363493369147888036031430363286996190871780231717732599317466702358657485890435130205772936684124570953594242767461886573207234727514958329538820455550037652133359296245153970424710169891741605305539373004883230396542950048532437931764110946545483635413759682320659625344300803768458273304967051173020850144325577912769907810023415786759501888789584240301282027955724925369607273908367677793839447828648599466227562591006336136843484708674297457398962238061454740606022448375374990868580350466304175197312554457988080672785344234785002506776759408012566207333382382562841712116041105117290095002103749382860092965964809781424719955040091565716028871611912454398766596840445897886930041779723223137697197134556242572222853351231086967328562139180607840786967701086284536514617408192440756851798699249042954487344156268230794183339210499963398332368359877636986679104139272483057194255373534006283548683269688134124453307186757134162718932648706454150961464504178430548358250655569657872620479055641389593791216244987990970401435136082236157536508451441524474247849622460806239519508143605272148551396083685746310106543465378962020677204593273555199373557618927391775838167950301344210322747395874159333731137556741684822522627506177162005389466328536464016719140231298361613708394247350291213639322976918825894167113625461730248965689282509584956069833943865182317096013082728027952462645919915694904333563706177874356297757471485249611809998306670198312981756159093211451983174450585568180030410905968636769654676374854334147185234420475982236464563921364868635667444802633429524453704914322472378510405556096334352952295211844245409737003567089412824826015281624966419047485980108252807498457199010995528692988571370028409621319406154962340567601014554745331904899866855850927801242318643198834503193999440594156838234255629851216906593200164778427511531131622443019089062424907949756227188966336621553832700941538332631757789309175259280385892194501190237468586984970276459857323452358150090584073629175430572649745526988363396605015080345848170526141745792887387892991742535279785207349481499414509973870188464255722275901413784493345888611748010671034118881018278637267232442534228617983504390821045075321923966612315579459849720687984740371939362256512289856771779423975130661263543318272856867548517908143769975970209029614681418183222231230729918818051011881197850360774507770007604379594132080539849202939699647453253661054624556340204525569268998866851630560947933202393419812102763774910686980323968689087544024739195401641039098747871618616882381351477597178155957358218861328617245566320256013443904163160446396231313293579802979445687237510076645561662501085212263828501514847375839875322800775841941686070110919397425680340359411136269562834653470720682045255067224479054603323702364124237299602275994317544239328735084652008406286677732860744106281232872735140583629088069394172042157524827341085717809726702786799932196344983295097372018223371996293625580820829695405229885155081607418410237985687985784383649451248166174234751237276018681713456492263281428953871454287643638945722949158382939569659603035412712690476051427894799760582053020755152402212796964377494166519610895408266556902184807072372633779077768735970691887853651114044699959687783502865383544584252120500161304044877230130776300002215138835132232729638842839705455188427177987272344869101654276489607992879168475125303214227840606147665325103323627215531296089840123005120135354252688832149561929910103555982400138156405208209158206670818967650887588524574363414569730211675021234212922356569514194067544712911816676592887136699801409156643470454276575957995010312150113025138276744907942571040724175529852015366879176335150954943450328592269916473589848028759613684935722584706505926603797900061469481751687420552250547668571767147009846408614206367129889674035512594212133327692744024759257754158436289741501136076874082257933409358875555908272698800545795211152376345034122779351225700890889812607477147289675127016632072097559046571731205664350477471034718118774347825397253245101168973098623392087712871370107119036310708949446356964477013542790570148908819917170256272894925799428834984311485922141030055504153527745394127125308715760601475224382575655770477668992200369124389910675630566959983739289051072301420031567930978337095658196931604530567345923662617716591442670245560200696423700806822832697140245606142049054928186530884847277930808321302974703273216950340913973515882934411431638605410262663816412491505814830022976498309054117014881409007279290348329628350032960108611843146786350681423138951052590647348222450700778481979075716725527226610822028345640835643148595050269755386165317409012579005723693818026637686399781823147878687406882626053938650441100504392912748784878000234589459624514045597288306324307661325561523313117696055000304722702129874084257182692560510289860639489703265758304454903074240168792600766298978355282776567961292344799494047480482298519100443696496722558698507848834053678251186917844750781199236004119694780670119009512397690606570232727592373133631704011183648308741931353305353863250262249732645466427308590805565041738645513705012389162772569350558552013091007016592893244138973563758577847455489842006408991359425003156129929663618236747163218806459934701189551578147071421153890346930457302763935797898761143305736464619729437256450649607640176509833231456223928547741592932367355166810419049945311242706620081300124564442425510555734379603565035663612272968204664085083368601464425737087603220363166478624350193407601067721588712566009636411928798726681484472712171198225826311596299896256506771233602050273343152563981467017571053708637349308720978680577030227194430267552055129151931784850441587351192930018996136583883276843158660395395927201449015499783523416613528086006364963343342927388283963506676136772119467396510523776179467436503181666912628033283117550822267156400728691675699560156592948622092383048626461730081749338349192677542910583495464054798412486800863038080320852427655359411878834525318160619431101826837508582736417810570935744406681035758261522159453742525368874932366248306490073168270679784827904709313053872056408631047524636398017566915743361332816947891501341551180696235149191144509247544687505830796689999194183092589810242192402393057279394936344470176490594268634636674730054948446328593969800789233688113993702375791544703705514892362222608068416661635962413149056730160790420620274187593944819478146705901972679857953102878211748400189302641256105320311837444251328674683144025797329032666787540513415824549842513138474148373304975298896982022567015495529482711475406647365196968679902368021672310387852694370640031915804495028261567464867061513289905098199942820234432700898488417684216248420730914455644934752649333791969943373787282554952241508249881720282858701300148086163671424084678938686138237099053033936704152000222106423739985351256000401271657292915960118404868008849873491798058129130241570638876308670975333372095086003517279542179865916903718984170736368159341445703012089269926135719573464868224477879334721997757898602796854139649501410580544418939817295463332012920390203928855755514743803339245741695103298118523259219486557234808602912132146512886642360516272423290391573328547440571254751803038715691365618502871601986464864984791020776897632948272096713865833747389291821509865428810665721502241009545866921506719006979800884302373141729944614754893489639891007262110185186773117733137423218692806913865030165208207957251177539533179620778109785436491006045055495054442490194157988607514841955509939653125558930244349293893752481887842973816095750017534849786228589001486874821929594456854441404070129319827534234901415088649247949017622022083865604013511106031514773864945887364102024974695979706836023239673497518412611538071350593467442379780472668321743952661299177609875183131613170743146306194971082537663655892371031514787500560627656834309569459939604856940144133737120274582837821418940821063534332878581971024126291674219285086299768337220188040717041222190927664514258711141048102415761917676633287395336100939401626455853565054574861545670237354136179217595178421871063664595561567910337384569828588754006133974781181517517043267734743540721465903739090315649077493435541509885437863174279244849057155375153632831558078738070731287698110843065625756571228934206546375051780431580599929497597112287475826600712312778634655827044693301860746830238952457666506436262545004470093332428790589919879946014352257669292386279987880861343579813499679822035598652395262042056832575768781919876304812147802644885916927895393292532722551265083823461110986140776082507846570304034070620660069660518432482329355714031308718510008617234733893229462411683122386001480679201977422033395432340076283901721444174495495603229927537403119689866746766284670623455123678953498618560740519799127645479024983430105848620161852079181787453072607062343656619421973059277350605348770449538456747610757552952187265073277475666817457827653707620001504602457515264884351071392800110300173984383199795149433313022025144840996148395716664463007402673415498584286343173201539524316973532985835805949614366230828509451950227498195101022351367260437753355809249395817211053840720689550498906202894764081411596577161400455772553855471665019943482387362210987190938490303314471259617410549263880411274951477502241447155566365416537745333981456406703265908446435158654774490207059665336931511147694889208883866185662299917859304836963861626023642933960409297038661242292872561433453545236379217690560494121914953826715744348861754752845003999297524136525143218992689228534333114241775516735814892135621140668230662050520724709027428589663896402601737727891926955710876494260626634088975003417562146771858538069000667528924800106397383618083014993562345417765304884886407442137382556097425181977854675042898095542820035191679906989906586717916991538496563553276801410911521692760969882243480510992646911140601855664967538939439052443476418547582983588706278884453032114510611236408152220698031055328700698428084018588288620317677964024690293966089831661988038410282035340593029924181362140921796950040800339043889031899526597555878495762403085483977563281742209861314146988515832765886137137046979688504805852644155210521957899391025301653440913778381421760759374368602982395442019777596259543243999621332529939464528270963786416782186198634400208138660946363937228623366451763554975951895665917843575409556530070778165073958409450050539041369814817353374437859993203452580258124551458966910678360877509582073713132961934098575173577748567715693574760501734483072176989094353607906934122694426260597339565625600606155756599093910112442215046381783290308221050396696314854453786516779757677602100783228578299429669929469073332236186084381263959077604993587535397737848524025733606089454820173885162658561738377705344893774814723915445513596238831166899129944678994353099764845112953354189157611828661492740071977582414355207861448634901969936215815562737418691612943865052054954311895545410433440056295366514011271522582671520808404712272073416285389733242305290211529648379315274940824623088732495925800308572674296735888314556406835446834283955356719716017428356354950775837233722017222786990850902699760955365444134834344550835156220144997857157355657442245666831576234715519378370899321367232694618271471580893525142255034258143444210518957217276335662941273489932207290095674056846375111853273940076493133679583168319767633984851753026189498708712000290064496796382249825512068484900134645492249631864437609884976061585373808144645556178242154804260313500733295078333585487367304281819609409773943167872782147451395569539834665936282487779879600676546261871883917509887581961170863936302763365167337831015150940324676953733181367582430653293590600295990672560235547607634865803074371432415459604114634909627900087067497514439779524211892034816770471671107710517790149036193654103175514135240604036450353270899984756450802207519186501608853476927707886382668089984741920196202605151854597162627333346117103797917354628576223404724615073936447569136624224201945930665557672489336610561367053712328278243847165779254140788724291767056101217596868837786850706902516099464113564326915547179280694260734045667537233444131703432987823933623391311439246890899328165883982181357235446571753024548668618353079445377162015270768703849659396661517301642845336004402954695041562650944688988980297033072590626944874528137988156359267831228439659738366531578597702889201468750324479275201404868269231869933927006994080267273101223975674395218710360730289941235224041618915044034762682119777570460929585122935004700674417033199692524871450730573078123738090965013127671196812873170857177415993196028037652036120316343608421511830272593995987532045758441314311801565581791831245776655081815349928748581280064289527017659177713392642282411291339646634605487798686221315289872802807632593599103183562807115353257702912400228430678916924247780165844310136819534881761736371215585287236165579875926252837437544591671821623760862072154485696777617065047753651519929203454152993009677111785424584420817759338470722267794118865804251861860008159276629315353768051378049614213558452575478275155607992276217891063274724204794851216925150503307203118019176599001070880246978892596253171497292838728976678483593621044416463150034198521626570015869086530133435327266486232688541932317811755221414151904864894731024328892483045897566605167050369544948303078485231190052470120955815578312851726304928591793265709021284232361564876538963211552691491458667128203255070602187882208760584334416162079605073617109711853120794578555250253637885229239155973174363402320969540322257403196187419616149764739261767177741196232684927345000251011134744414642808755950527352380414241083479168342352619055251235809893549049637198654129485758970201066496606687059185553502141436570844524168922401825835531324132215996560945892715640155701630313848897221366704689033918058460780974022175554470216243795166984521577459126102237259580808761604107203359016507426809485166607057160440051956158745082849955704143194502746178427536249534747488731755496489939297365997718810429800291876324883779211952731851772184446238231963449079596312647685307140725713780949809472888264464013812013964178815485007635229991600590320566252880401934415437847858540418163069294749694234645746484551586841758137666367348195940764717623008516877787050342920550014637891196378780707333069353626120349337889253452827480901568610648500282098870461344872874839583693864405125312243092989313950190018596056684390845458046362113498306956597659778180718479142942572015385079449281757060978507060187537485440205713867477002717774149279552663090212158684132757290878603724124948975400827018340799792555386637647016188586878595810681290659400389874086966567454990468756305715837048178258286246375437212573642668912522730662238411429112773665452867365664544732795242729910989270336380691057822335282851621553356512731686695832726846448787937174936911619316526242350624401247651818030982013376884093283370086053364519256853897270251579492174940834302815515980301010280014642159777304816971116945643065458891665620801398892143869508512715471698848902643581200223991700061455181515968645942301081248520765249047393496742035315287512555623064536188381816427366990984968357174603214279850495265511231516463587459560310564514512777341280398899415908977651827447488219589721676524800672605928248642701303867037855806218904605853700037656360759236590700310072180626082388201207126562787470695650068126143710062336764365277041039126984576392660844382348020302888314536169739863237013515265936735218864149671985654859177405139744036622461038981615222718896601368899304205984016043032675701059003201816701420559011872313937627124197590768447062737033146817418794736023451691382319907284211516902437854893909400758115914374596387842736852712110220543874645910200050631438919330449657724076147279531180383290685766613119536492336490284027380528273524112405635947258961129787875642179920425308571068180128939043728465223509155783029070332687732520669813382374321250882340729531416706018885010237300437945398291752833430014968198439601179975383401261937977969170944943081577016574990560448709741245086999830387839326081869840013142712210668806962902886095719478730479792253847157252444220507171387001002613578678618673808990087249774077152866720318358217848655615245586761614754422193648741518203449479030874476185061277613983050560075651570334008519530562759201313410731615122450154252544397998514244077058588960522651713889357338803694888077275859434441380887284864690722095111600664717861270010071382531611114173239630544143517661475775660014782776388771011462798820686789498578853416426106777705604703954653753497955444425426003071988320628108473751971166259133245885705793326020660709597394834927546027786890059117337624783617923859487792491973109555527189693753497585626267542088267620119448079573234394762756995513766346392050912091658500421862682604692944450893475995489054919636815312442663068732997577987519373573090013652509990071279517425710069859510275443369241820923197373664488278771721631478968689757173910345301193358610096656968074336849400555390099930073012236764816503265033107691051051820222364555341172732706864680923846777038044538500091117177176042907080693161449440047003313879820365618083894030228886102401675205536374210769426080426732846665010656549555166496348325697466160042574916195976052440921157408909145102382234197087390639433838023769016046499042641526530739086214119700654652068962030667063617329436354801215336505101130550815548628388876091713777401322096509854527250029063540182726061058269157152147540778427245824003206369691000355678444809392765101446138549273293498432861586389297416688996355539122025746546475651218465627327066933617801055453400915871871292890702576371722602723507675991862821733262938016037081205254189316855664693460238881119025497651161489572486979444752954203955930809237360071198190672434257908077913487357343283351267465897628235131566642795812238303317238434744813331930706625465660812009255796762560115587176864983761371638247638382547178895183235676927430265367551015654346620076857816433549139968503794555425496454113213904869180427076856919526777516066792016276801148595747543303018023738651413082299329580474402853916213147419765011007946422832395552162432161627289486894540229534200023034116269028613585146177584995789503348358643741593240143192572148804469258883311562983449480424389276871955674752782645989046249087700151211048776546925806134958759938227278217048056640238246760358484657486123332071586525832985958816283384545117299809074044840848843633457069272090646307242408395045020387825082167177402491249802465015646135137275870608620345711359288353306908447334739639140737440975640313846182202670400734500123018978590166032777490285653364745813114284103668133033566458592026201648248886390470052123619876693155335051450166759005382732854619576915573607659716910525808779834181219536501618902324386437357781130447490849249457097427200164751759886215439223814065735084454196813243741265337641421175258691841209408841055822765126966267007202997779654802200051954706437026313957035534063707317234786215120915799583506554320444885818992621504042758253613083736490002901874073588559292466109520557797033468174687049061233121568382722198449024661920762863672841008519574628227216062328409647031703130398990559245107665176749227057312437202706200697520188300916141359990223136658221758408708618957964287563495872486582109906703870277104350320355740962654213404082682746814633327321699348939085794250031806408558263400371283275387586307372246642707556565821340777945135951703449158373760689504070254405186298322807180483107157546878390098726116084208445453837410818020903120247739407824126018099520471693306244307393835076950903131679256289176925606765851568371616217914389985431538744796985558129072362883293085015925463458195979853276621923821423790994910448028783558111600812913839066042742117860279077987208275348788617664421033144600759800064915949934007718031938446757025179461840734190882670574608946898670616805709900311118301745942960749672479300805688558938892098389139635903345885252873614089069434025514203091521604973924100834561224085608301282877428205580440146265361143482807527399687421771267263011226958594313170118522138421005965853609197532987695532271843082794421470857509521899369726637539145774832794577991021297076542270907550066344320244397133935584537514285517292232375900689611150723009278683415738106517200046495223996286029844646403741094219388792846462820904834237244827092532150313820668057713808205774709868213232989603367910309866571839048669689237326276895966034978306154395337037902702879819134549438086259845515439433035621313277784137251563414367424527045639280155227794691016726730341676730777740698664151333336677471035183546153900092694160114237899715325866614820912261137374846021634659983969186429831148271808797690703388136129116009347243508806974593131314807328170730640616055740366201946771561025078749797410847709210900865466003346432891292357213154070593918096175654079383708201590259855749660736630650320440905502252292569778756313338104503462977074864967604405015695536951995350918887542370256417839805468481677731146249879345990661092627550942541535381839849604360894588655345851964354095972580200714187944801506493115560642429108066345293620686326649901910169645680601846861867450077432401031750940585667293206166945220775879825525775580858797638420858067229402357200371936698003504488507044272038379714201415022820193138328325706568337462180267596226719810555126962833194909703122505456326368325483563295464161897411830915361944831691779377799379217502644285521878714664798017623620472978470562153418303804256546296355163359220737086090894891303260309412435109259736629784209880023195421636156923001323860514443605166320326339246308729522566807881371452931651661115102699185678026975207617131104285016959122485298361993191240835156708856720213800275413022822299857557620188160388188108410186501996692717558426077486919505554552030929685578308773868424324198943367073583603558552844538374267347575268119043849103867952004010250506201874071565128552194330541399010368321166719318322933262464953216889067808276911167834550529975019044098497181142558643028697112707098353146104668906275529034221865747822678383207947621383912857268023718339858376833765230181201924860316294931145797048846137892854847715163088000023173456530726663675998956983417709907861359199347912976588725559081563691808183494149158596324443510673379155184948220511939126514901168672124145829674577246355806785603472085461980915659972357344542177296863102195995213988541361916614784917600971105915975509656478371765868221525246213898576556682654403063789880988488413091234870495564994784881179022516584144256814629281010003469936093180701036554603331013401925922490791918830209884384855764984574502906467335425768345964451289635315776556596258654096345812421279361562278825940570024831593637450638468543036171600780860717229619633208461355128621770305608539858902879918192511008382094008337151212662009340536220994966414614037876867683002551643890776931497601209158909801465089808994548342676932052847938549261732806538551238815701615560214650224120259949008489821072653680027345641627796162607038623428016453898384684244575533656080102870900798460994309362915940099065250014026001363683292883549826815572090933213201354492679767608591551007703941947186104506051321576988066750138878250301179943627333046369399055535150179745753729405299064706240097259413024061934174718889313551303656553950883309810903968702678490573722266639998630966502131165706131326330723076673362526271778680344120122316500036495098815265414365167039200263149161867569319424495669552054705238336426646827972549268542293579426407353444720439388520369725571291819227391699650259225166823641895161276216277423696192135148256294838108015745687355856144563302977403648037620177552617284596552312178770209710664124641709050759440376533966373700802661600155673044958733899001812607645079085104190015770558008568824774109453997594317853436788701528057535990713487223382637722166033574363406280875677599441463339875975594508631032611027972959401958657596955854227263604712386164484773599180904561578177562475971421467601435142679014367768819161418590536105534099340490922839129137982324398763806478794154118257299237069628716792071752575514228369436291028444146814074497653925304555788094130720995595842249397899133782969013090611048447868442109887588709668806910666560103729411437207257965237500237673656137141965074782892422244159964477665269558312354245247801984163797402411663389578606358489081865584447776086317755308973548271320586520089451104267283025850831013209311861024358350078518778940000624472232744472600584779707189600443731520530780276166795891473593754156708151085057922918008928066491616328624571767233156648712029152429146355279753751918331279377461976071350419621295032769918935743271490178386357178627131116259611669841105029767621677732950799520346900598265680721620824187145633750832638441981210132091725076492046775631245598056869313308651702332463872062796503296335766227567963632280805124039594403353254765672007516217028273885256801475329543098494741069959409116020289828071262756809048062074555745333627671856620429986102229674442086684528896024996651385097881651065450530180260307501712837448429511519076069590342421629046288621144296094928862146860498673371028324017811089679672458638610213040031885351193468074671939697095063366227585334505733903828534546898561634978369601125360864191106620534742431462429281780199461894970907922385507585295482042434416843904806259935591679542861166079276769635722445790448191379312555674137158689110351621353392254216817775455584381557365477657960246641295992259523301644304251112635197716254953505337373612926557113827625144921776594840701516984436315196673776543639477093063654805329427614100043167755289702809647055799740989805618907539476794840946849334955589208154559650017522007911650296295392351238138433183296467945919576881267122540441934780610888108649716164603429895931573295877322729069419711157255492865064715300419339097758763626650489998415435784675936708355226574785914180217794738160428042351433236126700806608033882342141159750310052265624080915966751641513703828083128228230210277376868720404711980432850013852641154662846414306100686055252115629798052328378926639988607502839175958834825680376502632009617001862056553813503025873182736507214223302259188780265080934724178105896047289059353318233059328059033393707567301965359311065995002360513698487313797777636401365237176950410714095578563563338059656510990885792055668025038980465018724253901484320311956137392485099507734172355511326370952684250919447710907188603121338101636537016228918937677108777703484926787384523336319462188074765717568362612285430101840940147710996534327262733602859948422518505536697109477463802491975393476752842684150971942864204123816155766659197780200967574124514086130378007136711835396250340032834650311754450298401884373185366496844175776905698549663854566359465984926819756546354537449459002765968305256039627535797334628336340942020623484059009021481999416974887599902374752021867176572884776554763119083699285932918684514991750259814743425673540218576016994387745482005097997635784054176265242141071929252005387090677832482404420536734645023865091716287168881936858691310381680926633223363705951721579127303405659571664832515248994536964993326360854782669325172127562078045917885745831565666896743348177611722363870196236669977303315284864883341792035016936669952121995302936093320426849585398871142845629739219196119969212408213172308447037177277408451220575931316779607447586359321140096217451704207781305311316933249614772799991766069343815924759545347638129788829637034157222183531296254827841820643078403884797819663960093936360835896547943744553227013820288558272633218311204339173958134063692547588770106507644211965426110970547419712864158125481705950521695406943891266191298557270056441669302677905803537734401182638453065294684740118356186363052455523807197995128616988572012362354367090186132933340370135261731992045824018923808694576142496619304698090002152798764697899172049603343414954165838937266507753406548120064297831631324582611702550430935568155076965846945906178277501699939680695226754652689633036139816558502763586709710116875038128981280967200369261138625149473006712724696022864121038588572415172254837987483512571819018032308804823932663351121749891180708201165617711565096582681395033443250546896013592812145097390492615035426149943899583858313542114702182909480428500787632404594106525571187292398742232111483059409340950267387197477548843298803173891087076423744402823138573770134519500151929300353584440376446570168652207702759512842393879866048862608423503499020715327209778196538582267474168923714414595634141255542000073111312246727884300024575857490679454550365225257967058715221070899466201412480546506298461735755495652590558035737546633272665901040530454587118692792777400498755132780622002081446689045337564200170546171117773301974696452018177306634903131246588506935328936197772788023225491034717121881590032108358185401229500192093267971122447773368146731593537611701142066606056862445692403693346879296578324181803920684354616015100877228656694697207666597412334938690191330234523405511569083067980408942424582611644286300068404901836793252592134175022569180002876830550930081973480137539558552936751512117078653234506627523307741349595498628684005455591542391295460897840995821613775857685976795700024207778773026970584603940514463426224563603125368811456864734609017318010132189123182443132581663396583311436930636158919082662458533283019302642950453949108167616408916107185877535352465605967020739456886263282362618156568210929256218716236577909928977147415110040648674229283074390740751350319133822917116365765745852953563825576840130729473375146701579919641503661565144922710224458620010330866252109100025181684761374263199078070808045218298339693633364382707650771370276151430202754696833618723329232502995696489845549025147583378023620436083786690711382700421460019593789980950349402734210655504241973459625623650834488046261103247502534071370298614573339254529216045528402890055511649999299621518115611394633058379380939984279041847660780045821728302111678060405504208419819440465363527899992047736827884667072847407835434712669249297508806708386161220982316560327175638021637839434391663188006088107334913329310756018521229713637589062818411559366518485656983792694017050088986449017469274976010447339915513691792624882991204134654700405069628025095051926861879778575621745163349254604066349411929096252620610494826148890255002768785140349698522367079311170928586489355282876471028303477837346932213912639851425981568809654156476117115308222471544818403888108097043723357995714444115323710631219241231731775997704070419177445057278002497875265659806836987200902330580977266895677398577932204323196307457735542787834934285098593191317497199116652372333568345685544706639469118979600116881857641941627446016000999666654871823481097421286931725039257886623437736979235737994948265308968675470350260906441197419400472388434604769873119539527266287159261536745210836621615740164389438776514314744964634119364293186075638889588047908198997918483619225831316675776841177094049724538542941463392083738513637921861974136563308579542508079369048851597685556701510933520507532189597253339312638939457800010783039275382757537986735334645729582606341853130610236818959760191605189824731440829292723134839852919795982514922013786993336569580046228687184062483265778999010397297761291474011674109821401909870089537684942988988933623280130654636856627550563536460869988333117022193022759537951958241418364886005452366576829193864919774937840596409688419851353322375762348812483208769719381656873017125619239191805035197917637835825633726884926759950505206213061479906596374028731012461953405554616589314810703871777253815854864629478692460173721894969732104441755266483325077741623694430090543712866978433129727334378604950693651928300673470066788997291165008119393687517802858836329055814622399415584447281417836137398339328642280101926484758609727815694525899258027063511525096868894694661287078825186615061272855022949245552251476816850993595804141346244393856247392096908215908744927967223260013468559454226678544005910052689778925778890720105198152032564604863715303988697389687815209392431005805265676433972796805779428219430838696321013042126301866895431061939518108148947415690367263823675765136900746131803744833637267792847234037158342008287321688218346671375093782000360569357257939012644022135409780251531244970311028314775734589989479218221356021941664314857041878546101573964737167923514386435051174660575309420451187468708786206686847359168010461866896017759023981884573999488718843119281813831518893448877074932568706603031002733119883769452390675031565053448474256640662584007188877820470107122884165872484946644917081464434705012289080317476373035990583440973601140314566132403324068379391205550009394147827125778577401345692831285714904617632115097877636281926600274509041395766082474404678527447821318746296370517807026305896307623704915970036021319402373190363686736228880862815337060838342148272022421526588497431537228766429011895431214251574557991778930589373174953655425141640877414631224200368088829241077755816035357844732347320679547996064174468087079105523122226408342053252630411337703846358889034252667223834892254033613377221148541757759029415840601820085739818826345815930147851298317488838375895218747400235173696162512465312671335519447142254905613796901696837365577590991442641152336649867588282038791751682792366588545237792000114292143543138029553834698973108433452110814114568122512295354068944551435300766883148288399986356041243890323501595447389794819381688868192884053877686475980398187067699188990343503231141515748070633837207990541135514311092440230257927096514027917624025543815581451235759232020792154987864213623071828988085848468923547957566712601264965612999607651652591616380981820538777410148536423275134318739701889294922985529467947578708876769410567674304114214464596943952709400501518322995542547542743575463128638941451256071489322053364304079762971767268155509618662909032113026864923025742489545078668518476493291027522256290871781690854370756667773440416508375495384302654236111189279171006304766505757647599421394159627158003199422605808898522533555451990885387403261044339743619583631805633501319345456871467116147706215021184837865368967334583542389650278614202898998994827904650784749524899708412915685919483132955627985794555784408386527400648008476664574596242188017920474133514708380113947789463946339599568629260020275913144241456178934210274752224320341901388937688660927853909857655510852100580719597048288095820681024854453709862962561548308282019354186731435197371569491604736235052035659167860601658318972996304516336827885686621311017994279249940206858212270863425915058439166221129474535639429977008545748272851668327407547660237990893337787905524458021115495866179424783810167969219991716437424032104299150690462094128358163923623244362333821679380738559852442334368024521051363585437589496236769898965091015823500850445629867181737154598011143767336143796890598795273890971154270789723856305831068060482602419953403558306979413357554069476953493669867005881903754631513021460651641384999217163680192112867514306870715420685098344286715016000403670839503443073236700869669947903241153056617778973721046359563010899821494081748571586774656953970068027084560617065229055733546722682692412211424781040905984954024789397543019241672563052393223618535757828580726090768309900834819081111893907481235530554812062360643705417928892460685893621394701862066241187068554090167181828848215847844968747543348228121536152140689451762059620568495574788654695570479463493457006594607024904539827344334150920321233627196857010705032683579157264990316307256215757870325970102464032400028977677116138054874652523101677511215477484850676318833312103442170344322600787040526234797594614318590941044251443944473597885836642665671153789021442703233993141677413366635308122450364718351156320915856984159660265230954997367073265660720200876536618554315041664586303883135428179326483338770813725009993803043053973433675254000731659652397740375510324969297903539707575290082855187561387937540528590720675253618734649507913831130664819427081427441415523371859561358620187052316311242216277749197686000902193296250237271184794851918430955846345098161785930518153724693819237109832685066759006370762742070326377010694082799571414608929202196580677645831917822399756593426494568142097469209332648226751289730183026341320639955363370412063329402940559947715275168272833591610623944826652165443987663950585214616688653751982493504121832924345554575684044835262500241376655844846409098144780139993147349494001824871781643040113398695869016309561464534205866053316971290613977494726115623214398371771171318507881509386423347843140288498347157843834698756149879474641975510967700560104994133729006088585606270008819680740807876464745347737697398146306929206196984599999154432334666226219264690776147029108540258302665870023536889948910642484538416630227666101276142807986172995491634785059197899162383970248774859674961631379669194679808586189852149438539427311214526909405392130709425987870850776784612450337089326842826392295327349076203062022508647274427362303928672270157069940894803439756195459341623803212222087218961400881036972599712500409133983330576456466543263527760679419591179734212351144034886579805803712330586646814038352310062389002777345883309392047799790786975282991837535902641356289990045907201342055658238258627782820971817657162016440401609326790301092161924146926928398279926375420703278693951265322313618190949420518349295582036342171577212546590425434237166479064257371150652027105857675792192819622646376464261468152047897676594986336312079642449084889286473132482824435503539351568391042896552771815110184038229510916490698184715134703643052068785508430843434123182469405136141524994098361717843550839422287595300805558120660824422811246603871050046568035602438788676299484217398431033644811013538945815501598003513972439857292694635793635799442373237471225118632556235312453297800970766689975475826956853003944244129846422728492441408229183985953404485901252317316111779927245955427590952913413474518722245292902076549106197051583737948243159331012971261098878091810571266404273245635511510985523092024514922108677153756566544821812966173037213644026491428057832514218095966709170223794046243449689126339498851566695578083132131220949684677836700505531324139149435703715187447858386299951059458909848856745467969309190634550598287855029008996205058185880434202245562363219099844179074585281076601395823845111534713926644981173321731172972358332181963377408542610448726926065751544464098306465645298643001537111294939326326356636921922865877270025771732449195300803982838680745028760300634839995780468616494385892318137570856462014202490647193459234346477438778043674894033571411624387154299763342910046072736344201617138937232967198488027611274520149536288935113589880720808842405571290772949467373447611217899152381049119083330074979188880719312401027664220121975608605781802528296205822047733038496122127904463283711539659840554416189984243723589174673484086260208703977418538129191565636811370602110126817967286997466490750700362584543524183959889212420224605055884483301408449098971840468465301850869998715918745306338168161274713977240034942424471293452295644951343526464451575641649796918453491768626773462475498304066002567896404295178830220107123424067507771278285808004620809234972978391080929971345842800836524380447690026813941556416701039721150535026214014072774448596481889025809636328220530573866052439399774429868153092934910366284338750129840449290135430958087898384808466988942928902380468589615315298152511427786489865987107207461524244957886732980389904892965083925656078443531857356046242388843737326925480324544125611842850771756463733735674961837558835860570314198812827282094853164959186627213290125831274102414728546458904254841097380780893671871618879687147256387528044735592866380069894389611018200554225916654612208595879317956285403423238363852603319565703716110908533200589513666619679118493196851569453997221416036764472548043324130675849284771368533857536206587239880651124244439778330683911726007756450711901356129343996853275444926383372369041850312802306944085417496412850401200315055938597610527845738468579841636085158831512103609256281385230710263134464373380374223511110683363015749559152350927775464735698417738852478924944346981130424617474607064032092407277889297058760856671996148041132924922693254290259364954531060175795799249732032456427337681733496821957550049873075317788865790140491618834081956868465507782634012706888920435110667293820249867479143715437515922662633657965604097248675441965316267655434924202322050652642481095357466169049220701446356772088617329472186488860203466360602162603341879164196020755681248849404181390836944225069567720962495365407123117440868485100041439008886349741846633152917035671351873145715072100948787490484555420671440420858334075922509770851172302557916345341054928790617867936453449666906737320125849081663981523667133421371534241767767222063440435434408042835580715626216432756596358806260624629431629131182940255167550792004480646402160265412122068595256903580053574055604375587288451192700602633426039076423665052845197860169172302085926834459866521180806072015999091184056220039104221563633161448386774039916760639101168608301491496462484042680718894552197479018798475888440122594661739552093675092347994517685599468636489603786325225509171053938604793761426774108286839243702225190055201528638307018014965288156534437337577196791773679405805686679453353970833701283931431576166237921330355320714927162216233712923557523815115305808382327874747309366994968385148679916259815936007809474439373957631671252270419145309771082494012907047876151671769219891728539935610440427884340134898373584216138552452219120022733624858350245675590563035881497174499932355223550108902985552832957159611695078851320758041008093561979433059678759517384220370601481793582916228905564737822883210163296522572781033288568636860148794631428835516201360678649040441022084977087133270978969519761220576536692616812835453106432132171220025904147941111478967691219455812834960951622540319730023359336909268901714876807496463681274943369611218039294416180438329782299201028974446961602791780932662897964320636320497312866609159217561271896861655076469051705094538019619357792033584073776522188831558263752750447242405824786354342861857310771303350214192631495317153527591710147218428243158893797872049249342766189971925481309729567903738024305337275524756081819310653896448173808798243921276023023679415579996096652553392110069778430801250310383141880733249040762645827423064489438328827923196301237606188698455848857787462545057776193644330549367854727375954662740429537448616675474341225592854227672150526445052490865948151370819725715494376520413055436206989768338690460217034276566030781333323845380480413064329618968490681750045188715228776259659762709973697004951347478968538714126587490781801044321206365948992218572879141438400246501104579471712066070162788136339585704324177976515101299370924755955167850586436509846799753815635144569060673685619731707609603184369525862102259944927425846560348768358658739514582787479487482830565899745191692054678456254452843618739627267398292045669167698361456670585879751333199115183279996764243265594403928200216569075536663196561851294123710160697183235321981286922146548616652356658342604073993166639318653900251086076678097737408718609511912391469723111269460474026911590513483523772818968578114592234735154448354562041643499484878549051390095441248824898769933164610373556429039245358679635333320089653719057222190285200742352914660797595463367561968460359496636980764309826433283136895571119862802297105489316825423904646072514587052635624514634984573556846697523856766917396912107091076125172865816941767675461937436270990326312837293734493354046985470693867169861014202607222252281158973645231663736458837871903602413250692993457314284545302756663320218665052445271225612762998069996467659372444898678415055559923286445795745081430272181777910008169853784209655077475157653065264070972461989119936342397536155194717167513122071733751764327406136757596691881203326136411310413292771368766756684692936531038999662968183436297070589160047184240554099259126540581108223318669588569399139633256146277440796623377472427121316925203212882107162548796370108660992613773566458360754605368105649759033069507931680584800715271181870027656773500919423733329341512110444714190005077789356209194145713406022903763400402796387870944668955693066440485175759534369405511125846949689635861912060748567779974870629990860259366189594384679776989647168654949952730124860656410178542116539869286354739851779896043036784986645674966620285867077167631011119729445246682315485662145984302239581252524692933294995500197692888223628319284285517732538587851640145267179969519603048580235090031063539053403922494486721644704586799489688464667346962528266186615443924440145633110485117347629516368819275718799372157518979459851155673934408016202171380070648031289641938061023073452243508634763555020273766062969825932495857754538190965215135114373198550685084739673297602127339222140488597595828049340209148578250786732688428878434168065359899343722643199640991000331362637383595725549791920642879648315382766600370834700289317127914843204171672959138927883665240911849422972338807593386649173536540761857966351244362874183961766853895440319783765360085523974369221077061877507657209002221123598467034489053014754337404107760834003845957442145280915694026305446829646135263890541917524653891380973984211115167313923507137501584215047434077896708681743760272392914780616365135055321393712004943409010695000518127088483131103133926269023027887688521246922363515883742978364815207350837843190703201344460945159577719743970821623322570613799451563691468471601261761089537117546405681994018861168285933810383240763820490698954032143005537225951206646977321889043244479521506274396315188695012516603811605694311429818946486351799523532999143342300269938039502071344922262752105050286852371645414872208733447921965466131080554769783961826086495460309319541340725631032620248940281091393192277007614929719531245910423847632923514039337465816618299387075188532179233414529057267006933961655126282520378707638046127858994648577481863920069172355096928678917265607172160885395856998117292503937086097558975660077968274124268608432856600030976947639065648603715552151025386001810787890564186793931371714953766673662306460184035598599756776281015291797501659194391318025999495880520377773018036000797577209604568165099247989821072387025697322876887801465647275475034829542029268676590941497256535483370332382727674350885730604888251497275662977556529137574805446832171380555272835829669104480058901550066027643564900169033125897035228476836746199569255075664259457614267675080554593259816822005366666239475246760937555402565457226673414129964473223825477277910059842867130628134029344347118669046592598370719287488631436973497372171570101451206153969456813417375486412083075550223224932489479745689704370013419378021746280922740431032272745250127428852896393036066459786250042152366334977644214683074134049363300321561966296902486800144538925801960097749548595330572892352038965932146601759341177374491367813934888694675786389639761460478872046265269879873467454856935378527144761750063309422217590533303262017043376164648879927676342059472037094057952965391180253642647601295328369822871197284190137944392844019123875179080309812101848546267598469671047896717473917972446070170691513212800291000025592064642806891429698574535690865070204181890788629519665105024998406631880976947313666046297066163472337722062328492708171618729714389842868654649379493357607701828029921125497066687327123752597846663367661072182372461287586418340364301669598620334081393428471448815232716498491206219039821300868941266178475191266935754967994727570040546071555487223343042651306190854424605200620437696261456918299287675898658113304751486046013399921707717210959236539018582129796211274344580369115680874144493963737809940557358442319688747913674166096439317441352375958504761641078175319788482235889596407987063752807921900202568691039227222037532050533395462029000745636344010740079424172211399409655958634973298892962174997204591865356985953006801321979177280313668875126511593359000008270832278167624123309642795194660243589876200006797848904253473910098256513075420019484266750374992644365035364159489612512659309256763244294538669932345808860986467713100963320030917512912087027830941945099067455413047575880092527655169554144770157393117069721060173874505201511944654618054904980542858384995456404252789710435653947290585984689023154385920056077677864704002018786817171939751026911463094536765156482578523128629562987893721905467617490567159198494217909426423617219836920435107438335230759004019279241943922352010446515657242230108206732560322243713092714065769995431310550775499386538739732974477367548814190457430836311583411145480982204075528782597734745361012453358225327773936525080732783601582115731311958452924772597110568601768758899888376345060290800697165791888784412749683022408830485136482505743361946588173969646182609358831428231901605402446590000758244129019035043356383274027171623988837401071344989146483198750008420614700251189885137698330059812728787076496964497817441670637907481075033414600247770949852035691402789465791536687493511357316850320501315989025556688041060286124943445645244589031702868870436894120297858787012755242756771229187169600626104620885840719069564489311879647696926053967846122481617833312221011467151179552332073189979586340035950287699272249281950800848259139108918582214330157601960295693386448609336371348839776271562450180407624918802013107897431222990747233585654604909629296905613438340406614488931387827381562915266386950352200044827642785847990246873164831095408299108209516213637448529459009447257720725233910103854847224236634783353899968393169092486815770709393630107887834592985024101466505470886284121190571638794748702675811997549090926143271405294572662923898998876692542657236323627968335894991588983287691259054770379474101220041602826893951374454903504486644653113199348314187582740698381767320352222600774055884153868617011249264022615696567923632185176454419026444316531891236961928854453058525180403670553462464439414502671597289002450848321507543882581326597525304014874202381655523892538934589929757624127728789237596262502592743834032355612270040037193518081743787193240128447465797490144408798842303790807301636579728705303776028318757088554967550863283505856166735099082375004635335201984289170907454868419781131115223615604086927506892952509780374582041406077652882543011212808563886007679422235426821477763250489245701988273219128926007819854396679511482306776012990855021423247939205573851654244050399969264755722858602122186761943764516856766137840914890362854958831184127855239667345397977953737343134259738830544145159432546914380399451869382543771840819141797200225282226508127678983447371925273551769916258504380017002911933529624607396641176358020841565261287756146275345704593360501769098957102047666006431924880436221505612471845407983175324356642287334927222783487365776522584921188043437288365681155440058533861085144853539234523790653286890511404426709524883284176304460303191324926498204060693304698956312457465111335607044456817038320464872542543247213348248051683929781807330745784859468605127532864804349786560826270892276507261541320026157125379873445285899780516303588875217837144576541433779567467977250981411049528531269186476533496796132216947801581154572650699609741383295013895593262652035352925775969215078323627327628314474285134237942278268419222922621222993775866953865975162747436883228517881674608127187517035551103977990453286130122026290032799259825617441238696189631759394989886426903778976242800057045823010007048110249922699816798296747785915580335068384942335053938400379193775683100490186288874127542903117016472802219460963124637296773409084764341795767997997939852976668728457276271946420855955666945315512926435735932864974922060701220332025447331006519673971300355457827694012163666417404814964834755646770613628198125764821879966318719207775372993535065406134735964341247717164093386549430135827364401526450273578570826473503760941808944037473793766997149389608692316861770688953175079582330636031906247396534935396315306850312529845127274273570491973907840524160749070409860756796720309160197494541279990120666066915333595211026394319692253604710259552907197090598014350003361371940238703014228066455545816913496261753079992373780624071716615953320934070068658825964473818030311173601679951413180686744900807298124659871855420497148329754780327070893446602283323909977333517865607763530816609865189534862570850809135338665399497080031863208862159905213508539741617997753157415435326046193703483818102896017597842891811473918783914971558220045928709718588760060943471474778592231254472635093346231162375656330528273223584115876888562857490050839466995684397507918353565052549603371347679875389506955451426542273578136661857370790390112635189607102809702557535533740635122075185827469507579478800298651197798861171498614833292711319880721709503399702301673620122324484093467553077655619541369010201484275655819731989905015196466961795690398871243078481613763373362702066522549572995272917202022503870369827773291380273635836569956394957031679374721386688244627509546136887968676691116783018224864547960892082836978814719698983616728229101943798583723975113348894291700411967289967636096221050641188981039073800315664817330933331194556472611130000011845696057241412553609639058727444015902040748701158996495871483221889109210393027400520914251953756183325570403401946925792829222338085054095621777681121357547361849275350742498055688230657193302604221498120586717086215626643029077521234384006851569759578670040220120379086015831282213070682928493214107837850258038613587091016717772882371847083570501556088764309676302438025602009057009256825439612243935885620797451189733257911478845670284746361858658399350535624013634380807711385502289664177235108015613579930914971014849941331572407890974254242611264293881801586732677475273069842997657179227881432179922536312841933865189404178642616059817864643823273044958196332453012556844242166113005008487396524467400526204026109718232832629736022634683381425091900031226663762446126249101517315021436305876889414659943141574555098537383399277034802376029793399260998131447813794723658641154405755167008926881021822997793060935227123826431171567359362898843860481515415508410415199019664327550385922823176173034646709551489890541384923619178544730386014107546141018203842150180291047834299484178856528818517478757082152163114162559685062868332525611809370567849241475147880906063598394361843217812016753854687909818115242274215149538817640936963146848767212824557348304553051412847312222285710984222381370520491952269432140618335941765869559178888004375023140235360507883912111334576669088386623880774943359503395139177279772869062409648251393571585967639107312040075509181512450163096132303625787663193214421825674815611347213773359672393866119068927752533223722917032815080969398634722702826790244542024176819303781470288078484856985258869214570662883697895945388610251644085431740448538391805197989234744587679964911187865207491725685943674895125519819544084789754512596953886777826305054773143640399780367106694419731243628985664821514627801486614566902815815936507014060144615245613811564275031292487780427083449104489719786028056192479768355049589878177227166537038818956898225125489838465424559438856472766921219504721530121629614797720940401432244371838734719197759013273340645312700419606145478687696523481482296742567952686262598110356304743401012379784818423902758637124276298570256653146388411512681837700896442102252579333678981388084810818890246731441241082075330942821700492631307738916127373196307277139417010262325647634888685491243764443601825214329595326515629249988101629018874511312532693010840695193103973046934699711722715055768845672510341619048429642768210199568686811457565288742312934699480667837574408595332848306468285438450442852045189276313248592632999080684892719586909050259475245693014385426001186710237811596947535019478402183225786973178094235804898506765052110243353890746569129158727534947088718998440736839444839542164255356502558992620872428082079498647786863008607025746552153273864312606337528255665716091448633519551741260029420629475559788169591645386180393027904900416578684117018116268052240899140959888589769331840677093733863704603060033937257905799160035331768186031779066589585736333439043962517865963071914034575274064281524946062126818168644759310962061450078593482954410330225220467126793397519416125363473157607680710705749857972091461700199249424823264292622615841001720917195511022348092803910389089814760913227979573023492927554458572623713589580465118373318714801882674279248152902139381304389339343741703533284322529290084461322324115201154058007575744733915815312535814591080019907617460899702220355356250004822158632087262436681308513588648809839570736776520194748109309850711056957748057653057790555016369046517265584326483628325962445587395577224727674707295711246857244532984634870988317783421998220433718361351791894510720890018300767366184182153912635702082500287365197493517179568603032900311642746146185332908514068591319841107765156769748138783191079399820567638808253143723542453862130587820542423810518707675679884666504475326492812792875691757945645747965891150463700697839004233242040179903563183393508127914941127329751983121648413889456656504828719436481611494400194466988563424608907812745258774891934330907115976232732845294605473025242776781090023481201493128098569754586923776866427211636748813870741377002569130530844142378517557080954750315113743110090087540781693587634355947258191638926568971495522661733769263902808739444080536635724520002155431313417092882808582924081450494029089726294218162581625297413134853130428498347583198559105385790143137722810029213523580709418257721798866108691017353294173021654020133040284412675862254697175877615862049874788790288510232253143108647210141873943952763712165340475009347794505226796618761319447134704211539722621094556605992193346793754725857992597960039943337445428988947974705943048049773142057670593122237609773091299661213129374184337438245552980241777143530975272051565751256692422560571519502352865286713573000184176746093172787884873189437456518390188078055476992843849334685935108261519522851934299454408284110681735683658926522784505171855090351858680484622554391481526856187091897202692532048386282644346959133686108935108665481919015028078739609018767709284434906069316059274985056044585366517452398882155945939200111121867906111554045646560641437014386226282823818840701876843934452116014366821894739451024335831703777723215303273302011611988561841634864742492227890076853977858402985969527355513922399221215318512529580047004396765704295828804459589600306387752538134623797509276560823059872002613016244600415189453874417234445035878751282366416344229724758950946232350390614731928466244940032700085067342354372850911012562730575510277286419255250674138511014051504130895558694604208001622172534353324817450713417820368024612528959923047066136290944061958222715383864300439226090002176881428902070414835896904350655299212028641724634791017690352990222306719001674577976077739370749135239157505736302861111132288064999442908319002307375523193269643935078318250522931527961109180033511406689001931031899440965068105495985963850718706609146087672226750062892843793828702072170020940237713644164496462565949023338653490138920750712359518742325563993028157929669028298252302281367775580636270409987839130337949117332744735421652748921198791683348992448362273934166904229628390495858295419836623376883489100216747238218226831830811299029485154494458050694004229713945425205527951187966685149232611612887503385203522946187154767036099951992333128670430680005608819675137401725046907294351153921268568820683275905746071302564302056230550286041255115471391248267882432991280431870407304497646632138490456581921749368815515708888961153846531367468517189053986064732220355917578194274320620654011898697988357404967051857854080643093517028013425144695546409770176350547682106898040799190444454234092552263564005948853992662183728929423383933510367573391606228885887445789488332809716394386134340922176994926703832045477252754887552369029030482484211472826526089573561754960618763893942960577426647613964099823027207392203699830491286214107928726655600735826028056375418305878083137294592576592136767686020853626244617607166931940148264612419094566142974678896133729788253722728549861006409230081420541832335822613802711275571932567007285811701793216017900069379422496570916151678173716230988309300832538581189183633261756224373430852806201623342135753096699374894778426017161328900648495368494565853955083527082560703701747316911369569990013985938303336377970418624548923876794970050731617284409880234173624048482736302724731492947425046272417060123616614994274268543725401417921442156336054149111549740759183960845623636695003906007842402516602791853777238000729297639919756213632265170386521740484486362657990324991007565905396079604992365235083885333300623160889387975040308193751320098419018893408084320082689546279413013084253396428875779388349600083902948002255672369648133672209301443302681264662095583535705211163895998476632524990356874451729921507207136165671970425422123184680393381638529418567530389692406044372999247101460480698479727631001267965561002705306324432884161210281302088594821403127843785538793224137344472538860551150502267684015347526287964372095482074561665957511906782773984646101289703746014128865431449763244940411671348085991364738992158162380876225250408152370365724697939916904196479972890160318575755917919079730986444475591918385663679641121509325177213736748600344944882287459710869952651963803988710974073573489743427024916438303888123729206656440000854656986647862398872791918900482564472472573860475393390765628520196154841156990813702321547847031854755648817987777275376570014757145260266721596874057101742254845539602319134735518018190093383419320555135366536439743753564357736691491097971094419546729260789935431022949859037666844797624645346529854632711044970227867384397667823491863918710754336520598786605408027357311652898680782663818856074493573082526982358785911516566313639918086833209582656726808300764144098906331463737911384932758469112945508391104556322534884581801555951133637251654331322527178126171026577525217806431032253839668961353658383689168214024843570839108593572275544715249604369262160769625217921782562168470375029363174355769848635975388944097144606920361053246257172459702997327738240455298057489582019027197954415480218658011076854450208462293164415013523164069627189168168016436098355641993563129697952498048890973543977497092990088956584719341921767343527256730340748780579047873850002704167700486885155788078059220319638831790155865132058106975261923976038322676064748889602803557893577055905373763150748254898189657436626170318536211021579718428157894353671097587584078271715283063804929981066903604427432538983023203578572270802162477085907972331855077986442361002767656332269404407971098746183551155863021676336664645897352739397429538165408227573237856799939834696706945345437452235277961783521133322790804217997473212395717370798468265001854616878478483039624261183990971124700972963687866918391599497401978131677844724254856555466415194237825910306325518064775023147665748354160119757140490477176914031544381652496906787505010226392770465364295764926375022294899212634058985044187748986015679906837370168332057726849719478493972444010265125514081828303600055274464887672110682958098804622268666143229627296429167787330138964487564317846545716070096983628677787587505095548722585589383020356116723928264174647201110691351624160606731657854927114160683873812409152954759255625063192562452024665516460230446001027840941267774209872355479581626599804106105617023835809006799143328966499838071627165003767748052405884482775193643717776119823673857760494645190020881641457378104988224650208840450483617376985791785927251687549901296880099854744019238111527750112538910137395015671593660293181296687154968975449776281054388781511531034581668150737398563448240211435588179564669731290566076706898174332764559614609878464808018275616298677595693981717265474064438880811398767718615749620405958949989115950621338547169260663216689783906232119113949045789960501583509341518720373479186657066525974115937466806581385733883569600938259481299284888319645372285266154769112603461849744804229026642461942042419273553519982751783550372886905932372791414729440907661048886700519584685387602638359762520515421987559075581940018397207280766443502942938354083306699068967954409557151749923747010302804646157258721984355609769158183124680136798177392122652805991100066891442719128680633040991171132104158732292082915574772343789792406172077774231994647515754468774757679469273802521519927582709119917962469473947400794223896396426919461501742342560624111721937632285495263671306207911155820048525329654683366858604774316689880162629838983181106179137293382485389724975785360893336780173424397426800168991641597547502119803697762855240099907438315499838151678464908809026335643359653965043699006492031674487721243560670304915061967620750577226598544191376213040122724850686596004486167012882352825237754615692028373986036522369080116863308581220629981520608873138743184913289771951158350172016973403805429259203189191627443669958853701566536925200600931554117089563744907505235393545457182788879067038095942259409657596219342571231150727681338128921412734421735140572755119827687137443343114532642175511776032821346756662095303126750448678698180231442736455259833089140666161543896054327657268673547448876076349583289790282064403184634291894481483439624890454686958565822492493121438488327144390647464236720714136609572152744101982925337909935636142506071497164631492978085389548207925369505149544582217435738422851785250574645602889222563213831374265913934565887038549029411800287403851823012795885508486260568936330054572967219258362689921339016217100813728211743298170431372225784123246228969089167320946307252505915301302076180305459530271178682387917668893436928739464654150778289824489878076060230751316792467517511543031551736360353193281991678831599483425312781391257574060330583938505048535857915321210146568405138885661413778693725586051328604106150435642271001998835379984791920066875661021901299736690005532966044469175074590923124585288668400148865047996434023711042252838633611619737864707170978342829719960704504729042669846953548642547386906954504568684821670470372107496561366264763826657568504881284121438393237607382337775665026078240045272591589170467888832142587475235553290464279647711377876272891349117492958693098915663188839652601360461903438872509394498640980717331557995498256570014333578066886194846806519500539221192739780389163936251622518893075935492843416524203126443574818366454424945548066762371654662475634812976513590345405013057666124275994850674846205216320134329218360017600765904883226790336691777500971207659198756824558174598155710712481202242075379402808269710173459022526832024005129733090005681192205092272944452952686965997446840884489884757239894635354209618352292890119509698386286568170547773657847256517583949164807895184147679756983640975563024200409416134575189026531452714724543989883548155966054355233450185375143542076750806682006540945901049976263218883571503531947168644972791935659063749176839945485599033289295871125969065725827034254455459355622083592930378552833814166964341927396668088181362626548141453992329241893365520286663237320598174883881152497280213786636033899284479608830985319190860799574047805017832345105002762766560551625504862562320499104539590979708636293614568024758009681617907990180301763953092361565003507972030559241539142913719900907761636031495711142985526954959988521808765518266527317633592304200348408298973735311529805267687452665051990813386287212553690591187076334952643645775048666076407901535464585374144866446082381077402419254317967637991587714764925883493734604635246838026904533886637733953494378756433969799792384745628351783372380929893507752987051727646677333780360208032578700904281747598993226609557498769058793400432972966093115831294250480189332260503825618366176152780901911334527009714456096249502155135901835975314517096976636409616685033571937775521390058462669430852660214288035773760725277944383331468632693376869550834333623141052053474851956784780220252727281593991569888540383084955690574225600494587549869276618961203301249040277001683899042900892301350399251674814537594519920396262903421440709743976856264930200383200983460569291092400179400768695082926377359664231577487628051325707329484924616875728335681672007714273414870723667381618780528658485146166525525102806630423992493094703234797910051363181185652292775595526431459368166482669911323599369790750697760564934105322542512836465452901874124860931441836579537715485921870960483755727275346743873627444782438352862882134824648722713932435789115179728062987676477945646698906880941614724715080737394335446883767127368289223492046001491007055883140192142463476785373066416369554617407041516006301223835234968134521129518776767133396947984239528584338957801958054767078734963164149923044023721458013558083291601067453519341293669829727050685063103911662873460935260890910117922395207580458815750570466257945093267632113285001752756888184818907936474546711737912648939417543555503178455567861346782086003305067470134960526567242521938570528229237605705888079406208657803196542926096892631591477133679404099536932672746467482375920202332862646198131106504942777559223773160187313798333740991543785655219529698041617433690019997537113054209923747987353857327312755831429188357103811733610933258411094829340595679519071375619960565941099292698001647324196905468485778437204816932264841039026779462916485752260823645391324030969964165388895538722058919006330906885865200385289648767412367314165047758604738780183209303269060225114318242277493677602843876060291853897411363327698935418084128232353472324759203885536109453084229828464889120965054727035274397815975828491368591190410321815809304564301654204149867045086078181489665609864330433945906178516734811724851879809500176788041393672716555983026455965416285263758946952960523928868227356077192024437858831537829240273386465153103705054842996981466691251693999421978670469423510072359441389935619931699335948927779519748206578351122792971601404533435873313242523620672318178954822025053883637720175845072718145471636145299539878126162259377515450270156984855496772560297191067592167398958436295313463892714537388914340690493000296040492390044376351806694332391606985637911951172713839006470930297612792855713064793219857088303293772250862680100691346288975106060643543693977742750222871144826159269715937500213016353937200358508823710109986587069951487173422042147667700609491723187363551529983332888273436484291122622761522747933386904780448318257169898408605710144900022506185320999548155065442173929094395707746217897285496950022541993100919604328399873190287222455477585357653388367997114119310977574891631990022042791216474722904675441127556136191106134497095237241274586971289661347807980736809055990299114896159954065812423708419252049822117538908182470456051482522721049553295780675476322823508205272959640470949148519100259532616956929523508066050603446263164733829981119843374091535817309425474434828019911983039662941717144430545554822431633612666947380587876514320856678562830077774314224934444900727568545633457997395535780204312495989084715304969797915897999158340226421083836072813694251905853964636116615135027532949562092642073180765130779967505587902640459326158965776486526182043636023583220679319637524426076900709936950815784950554563157750098859259369024067802951605117977064625140599260738805316127570387268704090161193855685247523445446544907606438168009647434012754269620444725076574479684744311483007703969140828491001481360215230187627253022404672129275843146212261419351625281025895066448959730407004355505162244691528785685913984108976334149303352090692866257701721372844159950478556432450991215869554069569645472480736354380272826192202027511859790166506992477829177646516259002450137303480880092422998646651758802814114272755246522011322359142454492991623199849195536619219916941557569319598561696031101965855650430827211569687302763959170350519218931820268554855160189920962912884780592800214175206092968148546348003701274130471622797768684387239808392393921632066870703082860114981957767354927903082368139922078786186056842343991800214725738102126369065758963166332657274841120164365432589645839362110797649780965509066828380613003075133521427972292175426148519778190064848889492982290138646790572586492007088936943697908054638443421640201920301380262291856254253366393338718435008575306601419127263456791586412081145666410733117035094101335080171154184196555442177546645468317591392288587428262640818682636109332823735701683639290142910853824739077265089636320046331171325861223418029845661690459156422135909125757853705427515020258084581942734372766696915396095896923740860907693874346507555217182594465945794170670571314760730744979899856763916356319985673007900529150781996851774537566850658583955473673424739706697046775981901760829010644238450627678812072009214224321484599733928286835042948827709992425377885807279667307000370317951162824078357037019147821808198139998591886621817275754006503412398908659158777686581243508211688922159279721293673376452288366466588412352557021258092918756278949244448451907562904682323494789165266615966056626732285129277515680826344749360275152926678112241186356459227200515110626214987946597263023653242262742148611731862825508596082876616851291359625963269537918831237098886451864882288815601085299604977233953339713853158803746731211318356945552635947793518119837322608667936321707211933015750926122205213731088494335450367915680727908444322422038592824359768766456592205488546196800383285373093873958626339684801281752219223741293715454571490238324654393941737367771350049326648275204851397405763415432111427012593429423944797057568908986263278585120422986848279879609588546702320066391829408772454201707913716718644425280577140221467710960287080981892269937051673824547543696545859037258261308863666616960376383836900876424255142272117287669503103743662091954887893161885649738793560082339619059506144456748493477699467555261402322905093659489408834820955404347487877890781682960691721084709016857700915498702162481981204601585737100615099890449851645485715867660318672466390783477238301540045064039817884803301616112484227207404675067239055987561319291373714182690122955759541120551564030470413690997419127563118207617622750803854420427144396939189115012602301326026742236105559629486747806381831289595666203018838529148563133947495243001601771560776211881832663218104510825959046716396300816310048000679644086053509003216128056305994562101071747861837833402702886599443270215723787740414752361352529968869986685557621947559963866021882171762825945841222140065338069856239595905095381239975378631745257811992602463284387536944656454423273303342314360893087392815928583176839174681755566478973648360716857918099951584518599687948710575810197462328645675600731972004859553106699588003567504205984832106825637716063236305061325649491645170203812928550166574807689526223570793655609753172091312650680782142590048623263187202702223391474046413702566100112079066852526709006501643019088549549032284031277138582038515478949085080262909301671070568081458171488988249754987566623501339348526305142440725861078826554065915108165540463820413050268855185863909728299333172900368250521559422791823788741394192852772277534688989308656543032005286502323060515878881522357666668478447178074031798500066810711441908211743824378543339781079530645832088926734969681868297767843572651339914818369058171521743494303806687151545387809213337539325901045787366097897707103344915359772700530050401022825489130739482524668274877701030596701207545998048328945942268068413043015148352770980821341473298837358292697006346547860284118533278738414769122781958171987428648298784844140663957180644922559941518553888514971778301981395913262715474901784248885758534158716258421938439674064604502480993109658684376905449650438424776238161231893616617202019128380747648565419756775966479975487256892969730620579333969283345628007463171477752755547742388081239687347401661689581630458809602962483259830701860109056503225513940353248586957081995149680244697734548036916155628851173824910931529934694268954118299829821575436583353394391201199411302747680827244458155040131462625646454914137015224150651099945525827208509518445323244961599647495107709262820306079903943320799997800073760078548226707646157174641832477468793811715005355443626319839258411794386487159017176849415559392922134518314192429153271861320592444015155497215017463238623959373988610741496909271950552632213779662213793290279727759443925648490027139973728187284483599444763842596809255791167921860428670323858212920678873557290610950221523217834871274258333652850407235746111409006142764875824287303142255735295057757987302372422387418881026831716548654262758502744655766659360408711645449452373740665376809230918898795108973048804251240296684386880157302958569496054035402931814179632928070134777880963917459754662665088640307789431751746590283742647812429265639240209895512796204058661165273541936975422470047836806394081930795910229563049449034366905698204988185072972291600919176362518611604884781202133415265715084835741309782284360455192883802429049535615547807280517533049043247866344812604136800593804645411270567069603492672888641498096704220971678585737457927569148679806671193155728873613358074540733368547992168862860667807023594815513412041973839378982942322113573398657409246047821378459430985431453426169203125613361978560717871592799616784951107749714458940776165321284898930958060064271389829032204749217831589411789066968609763770710987519582320551199820260887336352528243069482158810905100821825879752447833794164246694349311480833868931813914072122287447312490564420716151085140953944387173217937605491110849917283342167073793304179864653967591477800024004087773649506105232459331490759182497427360535874581674064951855826668223348390342465000701569524598857655111753424074700584533954090271994098408039010541084509553619308614855275996658474145260516306604737215859392531165207599105862472796705442399137340404962515999721190098047657687151307572695835719445314218303037024780778260881592406936478555224191842978539141010418058916116235311926520330268050985943710546973986785857548271297185957822901406623672238259327126756866273404124735903901951365085951531274924704541330324985296613800486810922357898071796473269441120280754619324879275917930276123510365919417045340340901223714155373362357396698641802517532341247122220344806329857286137910526672633982119567763385883962109921591711531979450975473567591839295319270444381984733308744591570086378690553126770521765774250371161670377915968671513262987136966994295516383160975817087022974862796349452218737392615840036295425473203537399828092482508955110014502588492036880744288388868464790206834626083566264526414948795558753907738095775889058326816121516746717204939810607532359692140243513886494671232407317759458463206650647803967245149546807790970804029581763702145689044274309836683845800466174299628098206499512135859460541270880373687462675291899194025690296779192099979610091402221154727850932646823480194248739949380736592226676858072367407806017854291142629344100670350322702001184798468203364530553721529065036521597405736796193154017451302407518839035446688571652378770064070110810750326607141434836712939594917651026586193500763447230324478566739128991159043740705814671714297775875311962821604912250428692272660937892430516925010015509711058538420376689235492962406226984912288429292031367338086890924512756687584359488630613170815907656322841324381242443343892477409751855063076095481542346797123247638548612603692356143614947834488783292706057611401367223621816264732852760179719553411928964326637371490974040229616562943717315879721237648646232013129929966921192437528455616095943509002060586825463937063090083483126058621033805297848863616266901653212624039603537116379021651242175753211147449937850769027474562668991707106185730115295935482348508475976789568246374641970771312716792317387784155319511066012706048354982689660524278142474677480604645191113477479285496423743603219597893271523457675687814571520665693104987813836999043135841010055579021532018475482984544790695951622974387607320897696427327222049158879296478295821495027335111861827893702070471289447894755892196368885305492198430200256310757457966360860713727054667352487028519925042014483853703632902111097537632333957607324879284016351622141648674047199321752925616438039492443390089748179238891673097403232709512645105042104469775087443189180828296166652969797228243562754603199779095763448362923839882098708377954810969301600703217829856602361092548911840255643838302228702170741100318874797705317976832234584738829243711296895601361234754710861756752192677797821058513668057518637359299722430753390010338310888117237611610388598425152251948331125534571035823464864260459125216284194373882642389036937083954397937572646486817251803765864591634278767231125172137817557743471553280962649837951052008928048025206305397882410136517780639201587496457771379338377259580242576431753975817892025111201000491940099328908629205013976576472643821702416007605904619760321893730007613140061648953501181902374739298277868902715372869569440295736340072958205734169508477235050999832705973546576366589033297758510927262671570802094919349026230864419459922799776771177060880929370069213246991491490604727324359074890456642082451907148257535012326814611862325673910220602245583549470603744825717155384249152372474101660947387213858048120627222330347112028993484187091091880708145848907442065355783661636587612613776443034054278594011334499841265037583641004985586557996617551671492801130776757590846388541868015157207394381605587673439138192140810672696240640399952405630333626845699811876780803239369378834733307599091980873244175809601524590339331558659069641439415307508750851328464207170216289162946804171534432994947457237273114484708269524618006608865132618421718872896008367443975893311553807764126950028625693591571568340301124005618117447923979591999979219786481810413175900772096614000834294517884397187619252443906635922261506866218327920598907221143547223820937711124900069540272633200590044098253389647157870808221306302775080631739305067399546454486859564592598967616718975500890163343117615067399501699743495771162022799931115922093997846022576450266087598724233054945881288323696009739254571802389771674003843501646653933505220045331080743593888069084750828320438671568463334255286474024451148035627301702553663053666830307507797523906038021812969763934936116466469856268742697202301927123916371562632540629688935049162279583586264132172097715369633539076136905518821274044768378197730677661960557903939330363456394325476207407845045563458460770556854481789352208697354203788496741119888211612537526769477571670248762872258404822615135624763403859996631519485109117463810886129624940216663829962036354328912702251984965833907093281188212259264446953284580499115842416161818697365634865026613106110149904921296851203258408862651169209565932458995900797634641117978164248587233659901353256535389984104323433494414298964544630763192491322415463414422606246491242119066706935102366262708491424410226403731106710179901593473897281607136084456406210561288479606264056137690067289384982909241975697223468526771211154155290409603120433279986353155105549727774041383760840125710240407760256488453239568427341421653373084306845653023627394609625333316202953592786488062127010441986138045502517063005368795610425667225584918632168945002613272202520505239547748413521440842658436331866327926336169771963493417154913183222453545109620273494432381993560545158176779707057593947226238693680968749477418596729094518189246244450848200707826127171791437939365445653611432799574624320413782784785346983097080994698236033577138949608673326497696753111089380677775999319849593658425336189379480888486371425859748715151718669767229506402643369523208936873196932298432452770804192982680254016419434532322065879413419213482163702697155068220211789236254098018288002944240019098977204064008067112966064893815753059006882576692675562920562423423927240341848046637053560033682444675110869186422915714529595113415095222862792021593766271841015650058618047030085531855838350690246802872643905173862878788547050694497850840577330424694856551940700505011768986437294452335323936884934213081661235117263135692507538065055982618155026459977304046959389498479155304487080476553916102094554043392594804550369297823604695295178849488106985838253070229396204214530793107003653059936007328433032498495046658935076095918940712724103242676313483984936266823003773742623828168989314078008195628941964888228101072195477444745686633350738721702988292143793872873127454860530583378109208585681415088123217399283708888744478228783617034768850779377225409703672630871784460456025613159210215334003373237871569587018168149277530089447314264627287517931480251960856933860180135841290305266063621922611518170408317209296727641382440076436201583208254620990425492656817744228196807990528567432588130081037195960787108439618526723585579467675862480171986685983046683657280577637501792357450084911624543313805130771154560486289853807430536240265362786131129100580686350851846021757358271010624954622479504297235460042440867865620545144273702255021387353528490231874163010230802320116920505862617461592418337766423690827404724323984972609874688175688302565202850743133738009430144327073828234839578388230303557627825566911072612462595587616623070363819466978155926126220443025994587290112076277158582757329705740225429243294866066570066262893811599698836067194473160739244774615229003061569223124121777573829599910082869605115925984155114617802226134295610694080063728556860889090379786730823763695018959123643592420349115627149777436857806738997098117770601032761225456581439416967390923619093893009079800437081193031322836666506340183550160616741901794119336212194591387350393128448275971744170717305030841224964781922493852892738375236335694453543563937340353720702325014755607836797131584374219810072884865263273377467296704188043484690374108042939707712356554730247232169786459697974643556706859328761717194758789529459633211819876404278259251010406023653042583407940402203237908134310171685235015818601553275450209034712197702999684801239999300875070182249642320142152973481163587000100176228028289929104703782060190536089581617856596502616973094342660624653239815854646429987931716379673514670464092501743199348406043463989425280042985264983749232712568135258277414021026560367621806559384444722212144511242728331009946112133085376058088543520063962129712039001116448506308487076955210511240214298924433208586331038729405196709352537304174178200430691187996245200316160827752859404884519695893981067527942335229492978802001722088319854105437877421052760912875688242034868636979640082011443631203670940453271675726767086397784401939238010861120643206308417026540255110758690670088804146797043536745795473379187816724042408516271738316130756441422137269366366051164183958298269760314033663376712565972383018853461367482680630090882041539341743520532991291881250423407105799939050379671086086247039960128138714894917266062000698504413757003498245491247397663347059375044076769708427873847537124105438949087173486491520175205205216522199197045923072794766634549063397147290045754795175810553825973690402644365533716373048446102024352156037604484674219913664089011595214473781332817872090896438315227174432432566265946336820190400331642543972737334126553611430070588891382845364233997799513084410324223392427920126972112359393821762279603694687483064730150168801472486378613030233176634913698026245747560673990982054004587739732006172602867084015535069114786470859372180736883138654101997525146284695986266200012503870913281854836945743850213379886897551030191884535829552568700713957331046799675201154928136404940127346826056928302067574309014218722171997337770091878511567695125022078785591408361970757445452271601449017882725048172800412036288705909404314504543181631832109887778081336641736934019812448597536024280116125748839324327579876171125062879451076257992559123844596820271755530746721481334827088466922355060887441599113650969529731176147074906553461751670830703597035088792025750267974058566132732489634090971317452960947395888526547654404500876830795725884600166723761605720713058321051165590812694888677872995346523704045974222298708480367060057188784471081585204031046756947266521744421166086649699729108641331860897119634169480209679261707652081567722888127573338991366329019097532973570276102530238024228194882289238789994367880764694891916578045356457892510261068437789052653231693207583776671824891699055096775491623544532391532647022682134708123413504694121227785470111975445790162186558115122663329169683429007761598077275189048117711403725010533240524686043784735082148110254363084645049645958541424501618201003594717939527959740040078771884580661571760877697055402080562194105056400405774091680852440673833511742089229023094452222273627364679163211969805624391098698471072014505416673883595971899452693109170914082456692507457199371351109240629938786579609417527545312546501948539982485572083140924817313583534108454332918065786169920142652144476989678815411696873288937702652469855669039962897841490224956451975889000999917508024988793081215117358349509609624633723356059460663794196350947234493554956211672998088875768285803895712238255142489453659106832539293662307146047652136456032764725709490847796479981440675917842578676469055573208243828500048441172541097869230519108873040787405737289749601584969707914387729998108730675704189255431678358149586015494616843310125805311781491584390167807049850734327400933305826418415514475757200913835638087865253799471243410486176220712124757631464107797095026640706609092997220669594530151885767386511524561734147483375034873610911035568659242058177768984662109228214675065707029936295134980569694352643766181484553900392083108767848984017796047828124153485175817415140011567682130511253070873695407378961667316717540574420894288686463701728550153349735958585199933081702848854741185328059649939691580590210538175460684948293845726095307073156568766841832788124599454898592024254567296111415749304262806608817608505870957615576919055958889223261984940415869717053087383688627284950146462054982193413712959709827740360664308647366789992321015675596243394358849480119061962845228674232497831592450691867278333625581961507703258338145997741383146295289599036552604392611707974604788714169938849946502126464416977533423220633733200527512261567029520618805461414242340192922477773637792501960983653348340238604936672479240474099260448452060984076506896774704465085972652307201024655617397447920862070363761460123715586858633656626660246741348096866886015913170739510090751107701214370030469076388708667580976821723147251332467177439506487316098700881657390977422986204254346406177095326321504829854329666725937421700966896406469757666252983203308915836020922946648445272384909703910554064036891993030567328258240727537874327262848171640878129315319273374439718489764321516784049742182749997769160641260156087049925681652748461560129200914190716212053479641520069653228925844322386423433178962168314440934461271915232364842556899267495941872582099592408898453793588706945319141851842589150708173028800674228892311979107800704340113142969912834237895243714941750023403416546055910753272616792173010409287230519847396844551603995258105284359554156507476513642866699246271110713930291206278633802305404480530932394054614982138841380454572985851588787697951301822609010111055861412243662396921593063557064924527719852604994547077845259589801497200862467520795745261580606001166092180773562466449383684019793666976911232784106190409814943298113983988392588792355087224562378483129925656118806689858557854030521758305245370716355350795445700447888373537362673457679381961784921886191002450747134155621864381842835292430167931455030396313420309711690064526229563475344515512263993348709920168225159730316705408667870913321323155226534260628687294904658800097714393815003359379705903522789411617982037847469595519341019971017525983836594522518300365522749990163136783923216479467083222358802090286652937722264843886264317309561849343704649649497800900975086542910412593822955492525353970628791752011631543598458393709730430437185864601477924906135346613513002912112867884872139811737103781852415590747014252661277854492080251821031993249256191759131057974379111415691685809992816288111807677811842202761110816276257088555326595187945189185037237659645117948518796771836077027551347537823286272044812862474724348566636076821427721070962297069718920399221607569497663422526748537636762499712967447964641693173857078971016563651775260176333059795996761162887367496211029282953729390698961143345907943889378887254849309560121213046978038219162831574989822482317329984658448750838443013260860282198629961261947187265308527583793564197525902112695635246987704066463002278505189790856596302131911095281587540502555886729786147994907562543003769243161878121286301169885989791181816040200945231077145832332488594386626153995335597633754899609083322657584282697362040697338772001187754888586066976562986186901839282315387048291540609169990873625510225207401632391645622965039599286331264581874517665361797946372060056465087011474649483727481310746312484169100136143819604447074515455150827369575087108263979037478345716289618480692443001684483488642020424206848615268140628000059477983406744606498408732393783512778750935132739051892669917604077423751351317908859810260224559754032047168338660973819337590425547361150711156249372481946704031850693192392579389209783462825312626902162159424869884424816557679631636787787264937761665195892874559314299149178880139661339921254471441009287743619531575861638306315132838924223386465390418978711864974916415878638821763059940154872901676876993258986788724243491022623050647945061495856006863627655722190734016138880969058811642330847830124627256375946801025894441640635379192015514090141799505740263056222693863353914770977776818964161924853290939983608222845803141918083349608720534758942819978685475257316036728029266405902559455661593622748654030157673699384921295513356577819185655194853889930656262975083854023151396586890254450565686790504430041448902305352669886638039088538477881939080503839326955743172630346777179131206825874215053695304066174527809028464475879998382417910483378134588592413291088652014741674038665946069382729910752354214864453748070875896415656701253832503270779917713033851022018421910676613713637899684339077738856920542079039334080062845904455956326221362905104838996524474431484871191332277844804880258431895287057478865828627810110669362952029488331057507724495057945334283831525995222264704238483989369432863246659535848071585408952287158526152765538255602517413514250736366167782795870404891746457158618822465750752783374139337832949372166136727133877337937936041083802742149765285406123598736964290407269805964766396778490824753512794028242653263066839087196727627591020028967761977002636291177872557611887814538145286718520819568802385762020865384026841755931010801526741523184468347478927731052395330473922046264093554042744369124967515051609207973204104528592079326459334357580140601333997814757795296398565779309993635212185830535708431309886042286627918609999598631858665560275559436700219562091751589166952643845297434006578276293534300389723061997391599824810257808666491575568827585221376953987009919077263796744618938250092559024453439205543031374875176571195069575422477817001633400181802678476663784229288663054643739935660826300515042689469224018694307908319636931485653507232846638482100525186990200401451537363624362552512597747421957716322347388330869353620833770735360147223817304908910839443044339666849430262926399121945227784960790229141383000858889895495004300899574556756173445397481160491028213080579128843863914049649247170395613800870490622849318533274056967376603385538285437327200303764834146202957939424304574726528163557799217699887085235810769260777571087271671902898663754301246862424369444263425281834060243051855591302024475484121218439840923595383043479966595344961419765505419346858234856629008021188403009074849006429051137869935371686907704335509614824440491778753341862012187952194321034410042727847214048439853848334652177524504056163904736614175651235818213375573649262850615602220844518897393721061481085153615368031907008679234359355416380165924139011748517132338978255762439847619131752887636778701376928872903411204944470948109663275871322873635100322351520626455971353695362909612616808705908004501538662697256950487036510745046755682433617699406160979852736223083088739816385210256476177865423744055104386460730534986433760024773119951175900707211661575160058130034127500970877150306853545606892459426752593466303360955998500369317148958616446648429853170755809978003068523097122454007773366767415335291294015557287543498175964987456760129418586678778583549460465413833917484682587206514963156631916263476520048677285356469764591493840608818164781508294471540832498496045524765639481346233991090016619009161357890274023825893130101891013876515134425853565440504860541544887128619191306038320648863955589313853371503170948427861926281640146310010096641231581697528411232565413249667397196373365169345720540734164402399569604812121357796126592177610749516414543918434600925981576341331996107060123100273157130812963420796249966323578014492065265620905275474912637627007549570333288916484218178920956602802316197186158514100616043545708775555453546920393568218959281948254990079478686533935847714832204595170635723548458439887404373474684961444493371225596855584964470087253016155686825017087953886852491964394540093943213818188969436408465304517000793183000949843751204588059118381944763899262436363631627837181431566801492165592085823173522459173048407354737478439211441018234845008710361073832880667490538521392482860856381866311287735171549136280231179958999739159523752751656473293661517677297903763236138586222809222850176213471423080076580878462542389378932327419266464379905045705184840054856644116211973158268908270400489071953251634797120929225466173098802179253623493819565532796166072573041138586661475883310292937453805939454315794577517780249849725213751318386506494910803387739356979629045227357708607119186821602655764357454985868155107670238503586012342978828934230225836584238516289879882671780544559610677029600403692768623845192743731486182300443594003128728176550908095654946025643403979414667380531515628425769964815331537876113277525947441749918247845170195284955261555380677650046920092455951731296632052540342580241205708364198751330573114392184698703224337561610462652213518666972060294481886909912888525275759683420232511315304378402280876347062529931820112099005688774947499564857197833919566748952941166241627326164494678997140907957050908165896752445922068921937932387530350933977579111130900966316786401418648215320734273143410527435461383095814544596148983534096457983050077406012687082812431161837082322562765145514542851164411451946204038025881876756879389707880961201618582862905365310927688902802589072078737107047289683780736950716034563910649286569882578544941184872067535802050827846005433669538137423907180076572475670608518153701341615152971061071360746120832976079177171845759940081236429486547150958050262261836422303826862726032732955799375722836943380584917898192031879941105918002781520820930630729364280792582851256361255943742665728503662629402721599232222952522648064201756743609409509107180871028869391483659156540540754426420727075136424903818661025366390954464112508833583144443025360025819799247990720868247933229345009952755078401400898722131558318269576582582308413572019640080025373696998034288426936163503554299824246064145479457488984207491938635462461054044547617546119626797258915031918026482563210279969707543044547159411580260996362200411498159157469111052229682167295906694234852037247077618354727687982383729225823655883006366300208804590742954250912072081633747804349659504828611387365635693325639114853934753947669986950344160358362050414217907578733665664135725240900430627388686300486654424833089363722289428092305016131971981824994562255607461284518534478835178953304677440899364691953801148062697492331967981189914100580158884896253508106252114690151785513588051811653461838283767422063972293018625374700899442634306903878670101634604124129765767474324805135018417725752782852836811442884307410141638392670111641176001756629720082153145959033833016365604354235283245862370588203276269765778083970397846139100644442297837139101298029020171673047749330554701733371348809150409567719987697020448838818274055794718199118195376449781253442160227262637264555392755990445982007855606624671551455071166729236128032450900077492083275426023771242380337906460325768827893159780751832822865983045011233960689508808232624351783248455229709770814893355535740061199903043928093603286835090449818902003844306049477240997765441436838243635457068188109398297220791668806235664651098976776707186701535984517295045760780417498969186680475566619051884354198123617086423529629662502072896610649696906373240599680209573488427848711788982802356806377196618037281979704128700966924883107279393462520717885885985726638158905312327377812984720746293131226964587516390830666237728945913237350094517332568361244918308265267358117794151943839685142659533895252755505273134531039394066063036070636755885646308764679697752629186063629487107051442857895095771630286310423062255594866766795836726326148996917732389982074748158372935451677082745002988429169153570733484236255876653840755031681651505153092999256494623594155619467846396889781091228422357798368601511170637072986308704331356372570143721301809113767989420114573232452392917388032600531918365607766064426282082813188006904861997678973151663303568875033105820826259862491272057447200989220447931765202899215498158600990366900490870023621943086658322678885733108844137550087607708711822272300638144939434845049231290468137894530942146604179839730447996281256636262767245657290322926520769374374731229702321297099422046503679373246458575478810216350488577859777067981058105897843469587914630792058478350277441026938192362684728192033937631772874423952540238343921043522950828424531950308966941953681930116895496244852634011443693073837787960514984202569146414697114387639457051375807037993107402739373305889108618190165428528629872361826423596756025019178523010497109633225173860565464617887650120988216860494880165121129022771807381747638244477195038631859062781186636382236095802512732143468160142118674146244320324873038820256009014580892996427911913650889370332825080368778510249195281749538765594785365325350786150609081856151521723968826377085067577530447611242227088463782985321552836766974341821448562492194120714500563670512569036797254230827084113358988713273547823223564061984074131068844612483315039076875835352691201532716819137868202593829467789444394497914196772193810033317925072028761076423514177316652607878144604920367024852932792428052954891938960032677671891870271740684752530855493147978655059893293131531158308394499095627059834352277745925351858832411486306915575150280014267586823608684632478303506763868972134710617009358464360073297175888432082439672943991790094193481589639069457688559703347505504186354005672356066257890831553983697966489158107626301380263151467802452432143470871722276960853329258639380100489902072471078721840878412611633649422751229333138345871432506973035656162958653130879809454398835366927206146455839515615746606269864268066971059486344983410306927918374827080226233154783860100947339687671897666349990094989792729017560713685842659153637787415419372488377461394041103158979764268788869667403686147967795493934262363791163055694609858530807620598657767214032677946474794059202380086934169066971080913688607725072596116178724474402667811388550285476241255743031641794825959674058974691237090387477081047475584138891878816101129390012342315379838431006908322290096742175020136955848756103716568394610082822449236482844817619222204275668370189542739161728125849301795358350220403852032895338639708788871658875312424059101790571612666622839912297995120037018083192584849714978607470110228852857365517100326211588742851927534813234521451408535958777631682634083345729394222862838879267873349396187496798896435916879318520771305960360282078017913792230347851095967800525760643378131754255793850001705388421403388378533977676864424405413414906558656089783428023144767206015022158620784240106984871569116811313858803615476414613457614289785632455631013529076797488626117867211672293490938081696182602823677383498295605755302815177638641718167361135949942976335403225379640794343596933860081095320535082389576189341064484840655171519358627204906031336287029278979632039439864803511782684248513113200745604038818060428012558932804660767230564776891854722167008605088477723713401206230229071974737293479928089754893793925818521281147149341161560326344288381463114899903925118122513343379686702816957816300668501861933421494911329329894457218292268647198197576985982313035323240697139422646853775966937361768418581466372427421828029262581376949441720324846636385371638297884564471992444293784585898698411832700249718252578900902758922231818419247264959744556645436484228412767209008536082595673412151581243042928859321562553113425607057572002627833320135567143081295932472622147377983588632996391029941249011854446670979072161802883095436303339712751199265584732236033007983680488596437913799933367984084787764533601204397057395530640517275538705369502664651913408043130917709914205114105832455213098084751368137800423367237769893762023448917926324893020551497452077646434473771189121040890958194139223757793476756628479638532243314452491133956367395415753819832297472860247258892735107586065651608740286124572171314331788742066876549609356959658034857285559014605498259213998895739072342331506894273682206201614408088909008453607298626197543345507046026900691727167000838031372144076972131572369202205209145635374663848777617489316877833413711701465092725914546492065401432791687286969298250158593545740152831558033062718878856143077522159052967422780804200407969469818840038568134423950875339011915053632652327129160043117710123097199552305703606207077140435081973532449993573940713430797410824354021333519064728961963634970665438491008451041043862572098746787644766464909543639508031749022282458302571100068750764421680587289361089796097123919391633579738634304476008047016481205019873314856226121805928440449723253949957175482301905731044613981116743164282982488942692650818559165311961467158688388283645834550550052756226457458476418586440087560645207534785440160872285074389888686478772211102241936098791007638504963015593416488382581186863219995671834852896046914508602708131692844159619191573356826110037690695350769282352278145693202506082747503819393477153570932337465995187534660750060486791729253250418761502601698361422247128279906628297978154575954679868576842397782732992155665284490050544484997340275286637144994336121339290737670621009851661627454485168324692307552889078619426173191104039547693353796019576944820463078445576998528710398389018998523981347107084991855619377484157119415438552982519862610416906081240070188992948418756021711674913550085301075306497500554583212861464567645571730638675711124833828310785788722524387261245522608204411462280853765578026042840330325630557506229918868161598147522344104907442441537825906217035000565334002982391124474378107343922565153331053426466436301831184442702431829402090531985541038549842847607803650069502833282519642162828502446641931073229939866438609966235365754261048921983100729987119394260170147734715791700997407896480752489228980265131137267705555117106230673442500481790554798322133832629280291022647523321220817766855356775181487889006343930880598869116360311714673600583695760957122236004886244228458608820084451881008207769813302761917837712133109939216934476494937746490477789505564899020787113597460448004534956707444089735102901301139169379949901694281414759601590750803365901710948486307624029825264317746927253384227780568787225960881945555900936571083592651886239986290881417772083788293358192047530822596895538131729972196203556286833118853411020259056855602305763592359699907095482469418517631556823489479560406791540021600170578872588807392737593796544733396912966499809113775784672797930061181280286636414691291150126774312220453175746855401383030528013164431344498358448111053694793505697407085110378573336684935083420522430627739474537596656632073238090153041150254297690848883278938694285346243031420906118857254528595986947971877485380251913988108497228848187725472102555702501447944236928489757482111109464547055143568118638296428528169678919031608808386264284914011315596699299943404942979675100772156866934768766224162418024847331669369295874921096422787433754261226550391939473934400451777522818544424561435605366946297613668348621666939058971798872332934678588516232742378824141246031368045334732837023670573257244112204438305882024914059231433347868792651866580221434468287772824500181895515217487976853109071731809869714402629282841264046068547087663572639760676768123664535001954864315762681441021227065613692432253769084481948603811690952017577732539807101943144458426760197239644871339891434869371382529956818637158247815059558607833686351481217851635019364045543534031148743019206570209259431659975426778021523388101940214901776846487469138376795314035705486017625622043953333789091569431289829602399897365642540172531236946719783977881394958365550463261676279131705751115239672111389705229797897291557300120232085055959070348212424521665024276152602925219669491982262953009949402356513653074160017926376426303530036964223795758871748848365665040575936102092685383016187662652748376920742410574996040390166315545156200246844183669733100898020236891314251611807045902821835830354908661535662783958965906693112375397668934766187470379111965932986549428740214956487090707577670785873443285502736424152174149298910135325316926102369655433688912567915727392639899350278128494991055524630598899430611129691511806436937854124959697884796533228551070356030826890229801636296780830681841080086545984037910799002243242305438605416168645664988262639892163836719120189213568555820025201854436701644319344523873997162034978198353123197237613817759372777842505166881087334805783392338401301969353546461494780610198301736309579240050350845287626265902331343969486782849755007127987185966866365443085689399655507821817239742651035962428556598456764207575279163912791806716812366899822746328687526114087365280276294732422641456540234064059589812276254938209412758298947594278927629678813566256289221121998656250341452779410109070898617842431033281348920094604259447183113430106243585208633613858256870282320637932740541839990065926763303379189970384838004673521768133016109686240236845740890492628923520555081894519850159452742437977789957493318965272106718449627705921729645770505358366994915731417046951941372924170160999132738211627116115401404600024567512916097963222988823727685405288883854389954246725397176772768716798003215997914081841985373972674314491934685222309153175802262300720004328002494165625688983421515713512166212326805662712651512971454330274612086953645891288337846968317244387268644430364084313120211150319916959223294542728488159651199921596327823667358156631151591528333895976313480670117251848926248916253658401510827562126517667514546926263892807310579659780164105374430286830781982386501643763156564860033876301173033686677283680445038704971859845743226661859914316165017054071174403045909469959045648856388003014873947501198765074078440096534036756770041845572386940298232908839867607854206361108794200002635808787775028458470891527052347572868459513486780902621164136696973220188149639426409752917635868350983103098495348259133393046590928005992008993013483743827263836792511300752780206606585121926227205443406409207424001036593631261766877071137020392198129252510715807925251069726023899959824246035564202299284450778645315655669533275907040788330029264182577320043004245828479475245760535119040549237712467850981582417441947776647893660557735276687024196770560562348661831023818267406248870754287969728252899163057944438190371486199455570773153684804632919169322997163847198749890671528699027084907769012649582103539255564270923712457103321528383326712751582044237047266367702512477976533278236815702079144995267161692269026420574761803323019214753716281766249323494930094061907271833581617070725786583161206211052985219509921701430659063575582319752754616746029466372688832287463319378069790346922211111893839968076419967117653177668335905156019952368646436625677254246837175696418260049235760735106796653626243843037395247179919416444807880465744487281525188022672805693118200421084679040667359575214683773133979732657841720236092711116716673377880828613799657906178802971813800588810148322550459698751390929815168268419870384963015923883351033419721757862339748156046235597531428081893965786385375222134244318088417835281565806269682784668714745945371100415977930542376136265551875581557337081659103346270002993877416669152908593322997333170740705420347892669867191564630571405693197021677534943148629029668729887355188851090301920870669029551494795193131697738154852264093995243847824002561285217782706534001977287033548652176717230315125416324133076825224694250197497652760484356351674581658646287251734151822174551797338920267203037110481170792009965990411621329158341468880097890274828318632602566410414200024768794448950402555449449057147096867429766555138266295762294670838641821302799955073660364007338146931626893017117317107671549435296697116818824546045560062162329918512764870073156340574536017257720180440763924417201725128556048129445617020621282208537543023455200009964502085187811180436667905460901248964518318683508416758614982670928541232912616891946658091906105890400673421872157372132014319983947795834838877830305530907507456367918502663125069227860909457410875573120330527766492682916252602411125429424189443990406991644919786447087287903495641823463327303278830734726444452338724234545977926168575153628269645962833974802396611452239659137451282484336902261053746712378015730539700307831099448943606627265501751190532005990128609254478188575401785990900506602074955692485144912285042389661340049362708386079631514010543857766352171749789373309761581047236295466751062591262110264143605165416230642162161572272909068916041234330844714030429731841958545955045529457774862644321325970535369786674661721494881744362452085491762355938792227180866425015122568324856876406819378070993159164545399798363120764489502259265691100463133034746441007601606323617429411766037449549876141124438030982971022420920969266522403769652855005737924396065320113437693592443176697873770723724857206628912145731582747722574539934415155704427082969670404111040615347053628126876457245504358783674891830742177582813076131826419105598901063639089168816065047912478115019571230749983679658093516413487958361141832338151341103924858112979881419916052245713589499551778466732935011429495145214061463868505466733730120211947358187365938482522338060178550552231863863097582563991299768695344529439093073588119400792219258241776172087467485654557407440462430952614295935464221787272796849297107931557579985353778231970768100604302172247458276328705849272927080864199479500744059562308476192348018234266974827923975356858471684882991838755534490276825207927903349195377186557338259092089654070545570294264617547665718768397426419039503081748277795707257737407541018829997642008973369439005817647881366768171989087467961087926089971952365970286855092376530780261272351682330637350151011723436118119145722289364467245249374099821801498330232423354143201213636665678262871770448441711541269291661688862602600289188306645245534995930466848168765571735726033874917098333698756978108349053630515733728060204344223736650289019299072578151622183448748861319848015736795242986968250882936443782024642061273834536607831067959615504213268772173064419045681199995987903778019578629975828756294056880999040991999341207062098510043409373171616379410986483830006063113545473992785092091378852473661705563836619784922201579786280504486054511372595374197595400018170986707622597275287563223606830579000858244329864668196234004823067904984788819472643803616395089308772306666746704771907517008344975136687487077970886068751559382148537929176794943243961961910182690373331303888249553749524492755789879344450331466534956805161102390193338785257975311382631036402580113771116531371727619796111512132004579277872871952232531258346563248345473249654344331939169203719421061368680510177895882929155453310070798428412374233909636067964691687574100690489376673935329384684129516193458648140779683797409979756966487679703895484189077366161666090937923904591570788536274616343124327049026789362259099730147930914988912162074644969888725017714703020446796196820950726679190050308396324889788744160761438694586937253577405274284529761970675358732459654435963972452582356901162641146197231044594809251898011179798152003767541183362392863635959802381413451636414957075708486331716426814394206510265393105177882941483029354846197401058099193055093860100868836434169826052793232977218041902114826442053568991412216330338450339013313398319602353248364348664454948018017976917812410074630364941002302795295346651471700500106524034151386191171483772466709842129547372651352877139246103281704975845303522838318858463027302813597111042460416209353713246006144540913855953443370909233556935830158428768080091702447582693018267970654966356512748471396457356780125937541256203618448478888342769437516845333482979796595532411535048802201782249072037758917148804112848430369043071308162082651876890952329676498314554965756820689407708458038493086669094554518788942540209034552453337954620283710214849171592277888315538776578283842178167099408177533663506878660966597059358885053316100516933317484955371277667149805895258930187498447555437400510061979761126418069490837147940626308244294812307815158159295404551695580163781415448932424430345970292127179425062397395739992259486441872529469845435280270765115894894316386706690356631928388317333637189669929248127680158472027780934947932804043648375353219720556772316446124482015803356763645296941263236695244685724408359204492559215801870664126040587691807969991718537768972002421490249360917764467769200646130382364007943235212648666257625758408022452573859399580370882918136683767595231910619413072245663483722075899567154024759251125307874833379741415518366968423151522948130335465541413674110392595003901995654475460210282750935528641061832037581054344366985408952249215876613111431920507847904516461254749665616566185339061366730055385296415415610228593992759498521972197954821667966027527140989389272976411456487202050925508880996280312384762778704547628377092905053936341697933206622387108436157799440113571567999625876458133564151530092198910982128391954735744506122511587498963562355470939050699533624629962255989901265667806847515912562704338480074254528167675955759449786026867533309954864760101427788565806342567040038950327078873227061916795674358847666568004278144556344857174005005041095760109312026703130856415075671283016609327394183572771132998750145250114773570750790748414549136502447438420664163387920618987108904512497816595381779389173168885223375843187927232619557748391423638052253385731182973667097480516389909760125909364344741673975901480927709458805082386812974310341079981851364990941693128648440840643740612900348734580735852665046101508697455303158362438338086241233538560819442664294301271917025365223051122590800539495961654765127030267547775346435069080176181271880465033128322182961901950250990505497200092441720422866765290734289508654736511326823447281196698814969083529026393995102025494429272465838429450105295215228750563312403992097495837366373314040937586937119097332054258674740803554053826372362816149502130306126561585082708376629668836362619200921853704362358258890966255778967423559411618678995764851473780549750719389853287891070404915790051043044014399435340128376452830264135761629073134243942879891824201163997560219924343956257252267437120354347459304946115928236559290776287864949209396752128090229226748467645995105775235907683724149346710463641469784175815422577857327185810942285212176831642413821212974655324630433973449069124111051695619629528945499239491462370328331190134445195844238628443178474178369133221934134152785340963636050413540525246076915476638340353899262012625334556635096627298460633023091333896352665532874001069676831125811418241423276584029887778733656230327062994659284069097031165077516185269532716881588412457062934968125346047750750381216896172761916402017680409937333529639771569951715434457469839278418767442070712941871605041837958306412406694147615954542198554333846994662634498204896147690848414453536932382468570346430315164692504631526722272037261898865722035497183266718925215317252467794001264850897715224070305045927039787595102037182232206059879066811180119577098251832532705974231700245140643014625416487426954380363185338333556457655946904150385552425635282334381163415449942887346732897453053967746839790367910806496641135400091634108817173904781702037195762366377166289495817848937321797950804988443075962266070647923165752121821093291662716152140791855439271158931299787688131465238359297685636032124378194525168376842238585831982601748947093585416697791941441925259956776238792157139781146513194218030312823423967922022963763263048669103478659946564710802446002129005946740806505755641308875578935305773459168387506800062669429196710157914101383911781894466352302268270296138223132545376629431025731030410645099873924881236640179650204570440738147160081053241995616783910492459815189938803020533813847026701960020727454411769667107072329755532054181974101232912655846455282987005912764274332074949728793014929407481975171086194754246553064199626563363874172754618879238516788699481542534601797354554542493414236240056142805865368651474379913758140695358140242360629893292329453667211636064811878522481018800149374185897921841573224911138293101121226007422581917995978701714563866649800032203469161454908734061574899289607457946881628342674518412037638301454264597683909005608339605376786350849833656588972070324309253246479054276790962961164348411587468200551667633757066594537291680393850139484494989068594606955496056991394378867888592656402633690499671953537969243093635486046695031272662698723782214828715048775217258053786337196527072482171060074060275613321801218884389828914091309171281953002995581850194167653709450272844241553685438281959390343343446029655248273759700899210072834646630611077711105291293690221624785901740248028446544377552516586281959711926968574895023241533398585386527112628680962257963680530682937777868894887572977466076801221433429332758546892065079352088865734129365592816967674273193465599198828833066872406020813648711966474950403822263960896384470827960928416252952882774435642780795634300904364579280872062598863690182574269399023922979479362583506382602254167749582697683536434798424860856379243815247181646318667591121344929236147298317621260143454072212172392778343691196888487212028810313442447990552274911545892902355933071190952254737538846059499805021535235728706251469901275166607191011746485463497498696260038178832473491578902344354155604412455507830611022960798455519645682713332961491562320554249097186650948020316501111051112252212296200971175735408710665593628205693002342632446498873814327495653073464386784766112965621188557007164610923769415565082001343859779812911228650615033416907091477170539556381135313700451879517909896785331805059328572476536572449105005552801486530860329289501277630512174235512825798386437293097285788239469899702482009212823620226068982902415330579306687561943384230975789113818068831613581950790534701911575041478011562742021580397618943159114088399087395299399797513636243169582407478650218190961701545683551036863289712128958889795975272874967782462581798153869488104333688192015933601360965764088222035077502402438238480882449209236907281585637549273805074185047523305840431918644878326552897944462312831859193076019457788262795071065907098839037939075144165548680411192993059919087671901615301548570260675002629395851829218438461084291707388804904792671255383736795658943479173699044299248582187082027240699795075535088396739811026245855494123613855939321642106253163509095532500508619514850268010976319774513599576139975783468175399244184495744810258969973774265796066739078655150543874214695528023730553634753894409639245293923432793369534937172311241310650433119432691447387689657810702631230475462439438132577286763776067897726245530521019319896664561583054441762411167198337097962627617378735607394204163052471995980068794784350125998029358902878313678854189649623500255799521428194120110159297990321602340498497140033034746059748366711553888004760715195172211896674349526558994955528718051692220935586002723136313247872917712149991733036593695120318568830851380899252515467852264312322821965735180883291424106380358900328152986885686398490316396562190918208910771312949816024430873413359701347853988462951092169114320929899876151551360026202274763388386973630512069351973237222741682656683480849035113046678392817357709644961665825283665446272922677680632360233228882826013604835424551931229604461273387373884704762679451269942571519062559264758005506470714421490770023343091370353996361863793057094395435864522068116437317736450653151538843402105996398749571146379121062210044015734318843320540251401225573487193388736662299868942254901720133663952488168960358845613637730966974515548192443661235712219223640640741724627098485199890869152601932663139072480745392144300675971838840471390680074963412690992523017545983112754444363756628082253053187616846888275192816653604280267523570029870273977817521630611666777478534482147902385037738387955808781085465354945315968499060309147490778356037096563964376575631990407414792617786778211031823994436671483726416960957653566475652962036207051594641667853521261349272716943556075505742313517631396790825044351045432438339287997650498084590422859924159788702334184928581268800409944499236725057978672088956133004270081577270003087072666564670064076536368991367467758592290006724535989060264304436209771789610251537239384694200734604889352447896279847812447067299997367355797581743982017713966544930951985547058442504302242662921717938883093313643159926826820917167271079682313922017311823235509003236011944570877696827243107119768388128934835877142686922351582664197149523466968627596037134709479634764049941907852421396257917927292954856888060469138838596923721232529322925192339392612697531859464315525556899931182632769513874859267357129910881227779949515790639043589496304484432093669596293772568667766927405115901649167032924498191734290720850579621102629356081537234409613173861426616840024528710228543750525792666244098091201825027017144001388422331505618941001198325885654857860832883711289732768503287572571787600157956346903126738247342128342207939080018066691209698326209230398069796858185633540505940777001180998563736004905108298737958369188390297936407438950884347719361031753782006598285600742820460045998176846331615199592682202162432223992992098224827828350043007316069915509777085748007209035238220802230554691696397905718675956364305152118752859711014764194443287903150110616953079121956662534267311642787933875459708580866929031649832415914834246217798168415250807196286866131758876490915055078202714605370150567059235183642734491936483561264784557490337519402818243384476061488059487208073771319695436464042771603421528420808599885146167408782526739650431744318251236939371645563693441240025859663019591768952662325295828808984544030546536896650279194163005954177277462655532152696525657702112941620463258725122167923411159377203729624550118684258636917776183859633403518394970317154690141772122987996214776780676746136613826569522319899697902882417448385657408259349105926621139991645453502509683900248491084687445495554409503715956408293327212051653840588583533646490497018458418649375686312639875253947570706623386462004589222514448590742265521832298400952910095718114236712693425272147283614548910233524200387321281790191376601233855816168526729087246948783771761952542274908600579690524625158472409285767839591793695634336158335970116887912593412948925519220350368323754340243106559886894923387376517689248994979180552220675607353453222816371491147690474282688096581404770832431366901363370068156961270698037282964921616912302626308592745609377864005084962350976277225936440274199740740311256775423770279192090698820605385083707132437602689097569440943976751353465779430241607511558197035235436436277363015132804822928043695334825133168241550220003515791488385787732598590711834290104623151685275483997693232719104255944692853799501053750905291754291054626213893529319652504135293104683838672951516742409022865495513780593207185609759516833270383976971622075046286100792710565485808201715811148792251251518986410297717545309550812879273072416697889938698249900407928941496194195992892980090187174261774212784749779986888054873707688196308764808506386006801402526658874948013344431893300742290369698267683035655683153426299549366316670523180350293469041568078937004778765810020533331602237446744044592203667513902369388319957208996382470866306605255894508867507169040064718051958493740715789147151587056287461161233101178307297689588834200497558540058155382442460111280992759030260310376850221679352517312244264016485544008741029044052279302951034387767091288307267511867765430724853538884465478553378839374654830551581249775871661942233802941307211070126656972928406474643257557863557981751158583118897736583897737403412278828734707320306605470549903645428994328218723956835741223000505151179678775655342543952486391579971492501392590843827400271533628898126661172774115266516171053405776205711524574470767153673569351872321841590237024282031037621603022202662120929779055360647224624035056955445902252415471290904521589260306893370211572179199883297529309984132860884482521776374835683462093482997668327945456131961919824928763460512021100623150147465048976394623553041213393043013425055814333158809318224573468268110258372852278478465828437415275512167700209580733411347949222070236567689390695673902525929890924705335926835617983940538041827942678377924359089768103629854019785889978112498143001986458626070975544590474739194435380409743997925047686889907778932658956001207435483450026455351395271296065277461845048107862712023834895271353838872283054472182078752529391663615567286598881785289996058244413097709582169743703446024501744904696689503775418877407053546807384676030314171986208088423190498533589030823659290635586233796046206913733775867964541010838019746314835834193241851079142927441164763741020451603477498124846604231568883722626217587112083596035333741669308965291370715105895310341369487335064912451591322363421037413066265918308635780931303149178654096731429317938771133364241056011571041519384659203234007255040421711717740596508025810872781113153939583523035734709438329702529499452701141940369575932582474618660020709053561832751726980013263134282429257091509660565705392742355107698859565441760752000555897605267163150675101385486062280408500544014205971655218369676558387225825291401069158372493507419975402750427854386496017263026565632764199101415744871761969489099615234185868916840171185544320591097373865449561579345977441184335592882546031986585459068057422555851802343407678756159876246551826335092967075804947070721934837564023194054259752007904738256098482894998894920247286374979494780856150313990635377086412823804950707550144571747254049422980503419953428137384983697078858273832714953102019786760609145368148130196191228664098723728313169825251253094251068680186407359840333739660912830114170414506715724206887304894865547838638479883938512757510806828786031450834142159489262307286958807316799642067648246528575683684901886181581208883758754173712541053721144907252904533052317866196492488225330405935712304792965974029985371210927347782026564644527595476722577506987495624381629047546326777410419213510892896425723103646820709359429934425836468558752071265392844687382447915559573397738217989537916659272096246794987351573486974452500180569732761969518203227266043118918145148254108465823781650393544333480281950863926992859559849540695335080940311519473698257371145136001645346370729291508565480134793867136763234647641949509694501080834214561118586685923355129572569084805471386722751464406877509092609007279589345389873322280619678958780246363204770294953858657019082093820255853170176762408544816046241664462703094610794031163094312700710350885139704135326448291082650875516931485549761994165326469989685691871061359121239865693686469179628283851491056546031093273143252292552475017265059014545383605221078614582558592677814550992101556150827886481238231404396579682315776208914459864468081431960640271955787939577966269095111429165813071637960514164495603641235996780739020502928328984446518497341906020676132122618273652475769890768342130026918015513225338465159268807873996341621055913818765167986813892581728374159589501181395984465035965556458006504605925996444714997758059947149609225337318371047144285513928333294739972970745916995906706615018769358160930818044024543042436799976521492501018496368866657675083551167382299144461216031933641391493812268745850720486614050468237889760465630944116096470406356828238214373568712582230109265456511526611773367672888544206347723130207949903717471905085284419669146404032083402914088705734515742795892950298486454590117198603266636693439492958115915423346862785146685337856632228851367751739835220683425357567015598159428338749218220472442968669863469973190637491561564311265210192436839136350588369652446068849872023115949249879970602981899391903107111262671780893832264165338802916360965476722639775910671223020924839696062353691511546321636825239483649278180499950121706175061855842678686497515788228406843701801903965895914080946366018980312074722266308853764986452928936030169612586445963458423754367300295449265445979703770950055425825568846192081157592374440323785669267419848248311991817414795190618051513783247539101151379402820648267919323729402362194442908900357063368680418983619971390948840597926695635043600781249993396497032456864004990527268139908914222672813183633229061171863170071421902765029997200451902671129387443405770961454548461514319513994389455167418527511258660052040634358457412269660173739527268137642683688956440324877904174243749780250886069432621380891942357566870689985576939999458591618888760679149634129642987161128400157353464143166388629738764080284635397058081978141521124161508540432031637626203481739876725439392175074654609446896400940721546144123591350945161272739029430209238933559925214503128162586469884158582079952045837543185054124109561951886046018043504438068337104728493078973018613553987161794117011121953758555249750434169864629296709478785154253270331796530313152737553049721642991538707085942935349566976292500483173908068086195039787664929049315151708100954067445715765155433795238196443975364147267505826966377687485622744483755332118129079237932110859730472477953484197946744120250101807468790791409175981141627894050634673692128386925838066064833286444640502988702844099267839908240357320203301381857963105442944822089760442747740186607290611867090757226889514065390912774362161055626435958129424072477268244885030853959800442083040487791363747574886919792149791017179357103073426277686689170042156141393299171505327938827993148229472929634637208532689596621816846733238648420274343313282017097790624602916405689773861078817672249442062180451153770972314188400683813040653138538829015867540170403986693703049336697885640540364080601732064037721864428146417665892242996304233845639504718354601773986790673443932766005618639774577460524743805770919579539992449358548226510980390792424398304419082876553025186849687027737340118658291798489070545474305405140336543386736832637460337197295887178384530389368102688953166390565859976133087624872106778723325803763494737282206114743069193233002072503020129112093159984974191095867424109431064282641856752680807117490693990291654369937952693585000883576156007350166829261248113441141987380348634679513702572372714514522423037238444201398757618113908752898581265455210061982845121331723650095175526059081890866949645411740015165642293612622764956629994600397580409410273460109488062276727208713785007840933999192680069534037909499771189352821466751933931877518943659919919781636833349268405263138679108144973214570181447873716654772737247856549310929545843834415793438151570560572571298607688279035775592368160130657852734732041584218916951581234845517712348501076689024923718801854994517613283462102665366248122332457704064218388339269402914992446790788658051209087853283890504544713324251036566403403787905923450309703312721188863664547998876660092898387924524234789718141895596577933178585184505271546390123383361744457807655182456770745412533224671320408677882093789204170140638027718114026681830765847366665289446513320400347653490923376080616322952319810203386776960163212778130893340216385244994366283095597106769062875396021127356406100130131639549513493680589191885035660859447669664835352851977941792757242192546723870001806769560329225707725801016683906417945025273585008128612917198226630498581734859714883084596801883296783450669221199874706013611802631163062720261419759766238980149677948337650933408746750269587356650590624799375394227660898460774574195093800833232545981208752443619905367385064153663073371478119722347114164964980899780762276270895572583056328532641065973044863789892003816256146690954904674538172594629916914488749637230778738235100081296590347800424715815907586334146634252489906538179954538029596240088473292231457658084368256261912008283254763457600243958281875601889071464692124331782733251713101577822894289550094203995307793960904360372397535658318029341957123327291791195681845355707065472750403105111611694983347466381913402468451463076387354390978986323407710924616382979335161047911709353422705285469726027362998099311431807952111375461101424658172219531274020499856711742628577511910428993710619067508056267040194463809539843900736318643779941432774649633800588684477097706888732974457378927912069440317737073852541196640425296467800323650069653672748696800731275850959924591294446309762485451790878871487295525794175767325928725184514013146491177981482314823457204661217839919578625941299443657818275303432962413382985784572897855213271015793226080570836636449646009744116844816010341188470647089044937740565209204379356807244779528764826894560033681713297057978143950321541966569318178548844714750586482521269678346772419151773725138057237942504826302596475032490908870118752946941666638159645811777650044917457392754885297211594757668194786033910567008280932259862450988983226489199121287347614672790396793363465293763146931257607016305862196180633728712200741980884886336022126759695246531737556132611180812360075636540209630830196619927056066089732061493336063691059466097826508493095066089799424653235041892766612688333947292612974365119239519022566394570054964305379947733824481385533836348893944055215296047996364897583481274115611596538708154788667723836664792667507170946310241838392644762346317923093674841067696184012003045673659207769490312376809981361753852690004735617989537233714009970258284413569937341195202732849178676495812453248888684093331248628781765792551751655237809635986746549437477453806269522357880099171582937599621550275803199221512879305601670580955350795778197784442087853737538673961096947120275981958915073712334553556808382917712965577455457517695374438502708844368697190156777020438217470335561665861157557497793319585593691382512771673723315194131822430393134406789786736570336586161202248928738463370975710902050465622366684111382266180917128657914621859974581903217728510956399444401725713692816792678405189869524841737261683247641519229567376571474102729854657805650275465047399510386864793128783916833239730299703400248368298134850270338699769779239041127021966933400798340007760689317925873918089414132006595497611300596016650589485371307817235405635501647835208171729609867554174056733261032011699566111755250226192604340630765327223162133443230009461718760526054091596038682316005748040662908594292980301044823793641549546472053809291909680837960087699945299514748700541448271583578945611689757723922307305276094193071262823873352754482639336840586041693716503363451351301230587715994684693044624387139319892011393388976998819482168521877516030383711087346518186642769938325230921244256595920815577539402203483276416359265338724793634741429560352105549996404192946603606079908616461968861380856864444285993398335659764649823869110641352534700030848938702268973316157139193747712727771452998262204851094042842474712355255245068557824467716466329676375166246035439884837947418956125864010800835965201317296345422946022486003449348465542564356913015454849654104823511529747631922095948700873355738595540429610399757423040929924266432476024707563064968356504893948392954895407417629501702946383429020512981813943352823765667164136705450056721300671339777910192065296195149155332013991934968314002750033372452082098767497189259264639197454004585743723239272459655623166160380862370649765473690014515801632557186086519651123073108598977915066685308295780125049652465737781642036233864861592360635397663221271810506716991197989700509265639898512079347847357694680359586787481281059215888577309284392625078043404146802182806417827112615896673037302785594631789908288080109671528421542324078499776615664472445836237003705991250567903303953734406238748289172356467638252936957613841913895122085864618501770813029023651604169877428196451937475876652130812096734421528988408351347853097357285987188166027664650121200915589087974863960177082530498745031777175169471687707699288787857737544445949278043102245181842899237393955585039039125500088652479321214857565735814258629121696311934200862564272126573916305171430174439562581684629641020959459561537244041505710186842503723177407669211351338911336085521757620405597925572120581730808785935227919523234121405505303134994979095576538198869857545359660764018307439032047828822463868710953663869345292275701094980579389100100412249939685956815942054405570133525227894130928843336367880640151010329292442702642237327110675460376253060625217070038150843580505776950881265525814931543926813675119130935056078133409253591429007508041693525501367930338953439044408372080467381466583982135552751481917125788591840537276152329905239090979249117273440542994906902232155932728204963348321712706637785353876516479095506620136220302451999710510345638045912727390728360059256107348022945816929952046974121038792609028307137557170751901210750759514290091382294482060213918190969414392103263437478400301847160794952156347626933040452485407873093764361829135217482146647377165232445108467914692803322911573291408593327872851992559819086711861502642475542892167749899238940398538237539660106135989527720578328339928751634671552148072975497626490863654116837048579144015489215588989735238597479899234421086659056746258440224189393586998845475266423719398256048220558202572076881687041979576417922107696097163268645912361049853660908858998853026650011304936058508893778952091113281290197668063916483597266761632754546459952908841274110426562707625581348148534817426819728777937183618963800024683826776089653904785132172142451674904310580485594351578280246057806005746749656501347387931138731356636563770032143533602050032972586982625819456279759703076199563669057524991776086266834569401940774451126559956073423955560434362958011272005618141354719444283647207079243830688979619130788877769131762649697266561203464705165700098857939231874167748354882622963736438625451221862756369346767403420979474970611972045722548461186892400009666158038015025375565250686014099862466797888654114816085583676204072687196399792428173391606558679690055368936375624703980287651793809154108531423842976583348951580902389709985945540701896853012669744654335039393436656486574145738384692838967598380097817094598156861527428076197607285293730946489307058040216903046852447745824716414919886570481683324959078003696902055980305406000122094413028285878286016745106388990840960791289268432034866651853927185761823603200453362972094277770797063156621899582928170020794669257831117016140030448228075083214133474117312194522660224973726610330319501573453864197667554934584881704213650982087958132602558981721073250294487724984276295526260786462077987627202800357776011434041922541980690780165354605579184130619316643977253461251211797165955165697780362075592179413782535406155070686476834017004930607646890452849861409884901771620646701290182460683195341763414457139906696755046374963835771547796692835260978634054639138859900053847514015831776586835028563600634151592496334755800000946611343784423537085880193889677726835294367007829031315986852512127330803491019137724350120859721322251581579491118795353275768937848725962118244006861721633923087820651763296759150355367308664260756782652134276096552700077854551355853618201221838494281404383355211119562594419166589242741800783365575640093374978552046641816942936074862845297663914899955689816596003734512168887407971463640359589083293023185717933726488051621374991558411154736129731273645283134062178610589698912003437210254895679570774949848131738324844122344987155726143133906241632748353226962298236761418620959608447956415848347851335204406272614428717091069987406703972523428191672725798197966902194042599880432268529379370207826273304453271440104432959581734374894758340218557845101539949653362129052900573114138948353222907258126119134128841498324058992869692177354534788641644616358230929923568305893804543116336852402502330436322248099909151613576341927086944012717371599801398906119636980402390924429854594331291726575969521485936656577566225118178025938156545857852857916372966411419537307264334966215840741540514145409852997026728545390144770426190008889062548628717645286411877445202960190674234245326417768041702088545321679222502359360698871694849070802611300109006180824399476673584324438168064626176444432992825441844682864743081559347647902527429054025249205085902229564282261415652187582662401690945884726792197273563944167205646903913761277705086344879001008238381550078954662030488212489340987230007550624018334363019854830626512230767856511486261309489330853740462944181318696285483834439392236124643278136665823396486085207521423447869079651736877076576707190850740009668874275607144218124456449056631891019462924160249628362675881292371232658372090780485406803376278685262519411023479222952690234583724548802851196936048713462478195358367605622859815308801880235544829370270383427412934295178042931645505683090868177352449499740198861935645091132459870997854760190556274941477136589480922020587893957805066709189042826067595052713810287082779994658192034266543887797630872599218418297145980451017011409057358940037368548093973786012212907815345196703712461791677893984490360075097973198596613595758871745563592412680936955873254222652687943697103033592317024869378808454470654047954661373275759229218061723600143341942127383681363507302262888166619465647518371494380807907811132050521572085492716410429131427932118772370866867294007907143529181024746282107503478950931705289051840907925969053799539893084098606081866619236875604528648373345282229944100746279133299033001485692078475696585864893789788975525096890998021296241010290038822114691683446221302960156920144637740636834742761239232551995028128677996647148725972655126636343741471863589115525058216556533099644693852694292164766362090893710975509406759849400441238693330866947780756285400810699651250858414072147489033934720464908493255344172233260728407605330182192797982727370250726835781272276033726091367615654518286900484509069545691235038152123653906013069754514306359622427315927551478978791024590963357744291694097238048032975436751389367063582545529655499306059126152212742165781780705088174146175497984495927873530845345155078500904705348043106573626562734348968357007710247388543781900286336743069416883801079709248983168243443400372331665375065135471706860876099539638595045592462460252890081974511232636735112236039762389603142846104890085805495642612199751064658918842897447043284461673871882048307292138121019066370223004109402973142856381163109607753792674351157135738913955837497880667733958797300388833561222998295858852948393272927987366798970232098444761779757129517034831526557026465448642102021934130520145990188614364414411306500581073875591406673076447051459890496894382157850525242224014740042389684439433197533053891390718938629726504895841682481919605966670882156277875263390726763864480382692987049757928855839650154605681122138408902162622290250933639301620041489844411319269434632383619323639483553515217650742816435726580369864390851391321065830528475644211693249644397272249989721701491382023928823414336554514005837808167139638222677818255474626611281115957830932623911993081667421330510033751394977294584613817672080594118261340353288531287166434531795814052319672279331637281375854648349825541312293062339389582061597094881746085715412250882543299845921526746225583866789564696956842423249385881980244309234237506022126053800298899758638328262242942185434535717692113273210249909511574823658341080871213004128205019012427086852365467743884558171202583963359616100682299725038490469616468887882427952162087192971087330592810961873773826342399546156613052507377997079084793610343509242110111499527890729813496355007068959460286386071719348358129092894104669609516142584544001553782869136093217841638205602094067690147544899586550394749099315857524945510910926805633783793270780068262386355999441902997966958914142417572694917287023742779501405329865433056567972030680116379347689299860202372417269643763601830583014255063846302734003502581880750106304906022765471948323361374219734222152798121686048702546386339781911573436892841074855162232882816106082368703061799446895903296453945765375779937776161694056816317562320295275074082561836924545922794904352380198759889267460455240683645915006541145949860502203128066933091726429299932303291529420253024663655988389808514595829983678507241837453475066844419653774681295346448558630461143260824250789839598823057187023537287072624080417969707198288618056359351477537862299806237517120653675896567289143714453081092705977490363054771319577468943171612630549898366595778454997502451386682563007128552386566761504284585547452332322651345517565754380340233916160155158180547383550214476204105167188507801778864507427160968071407800550758359194386779889080549728747341374686600522279615857593452654907608902035718945001427235107229196284202181075504775783245583909685074393860329778436839807602923047863525478474281974919452757416190818974992728497004614324388063676984011128066794624153274562535948910747776332946662384071911428722937926627551372758503793555239404886488914744565533249823504697702025238206025283467700812016138386850754632281972567339573521613364490717319332800799108657751919443927882615185712702496008359554660525182634576625259409499585296457485488238804290120957526577030191320790832187076176710932584165689576925556319444874006486982926099760581517476308900854400811977156806590437616643384136410403179961296449532459014777888709597731469988838652847423668177739755943073130352864833423058005123962025528787700870898901158985284155179429711525531797283962290677258174683885081148944159363818246159806308420241571974914814828924667654336153160182624996680244685119536575347260766145310123310374764632944090244449182556612518088508450058288358763794219209173978705748636590922459161603287517331136871729858720811127776174959798798325519195460465406361253668879963551760600226548750106533792526203555274416929729900922450306581263983522841236291974031052221253840669190857787866661982500302154520792795187088051544956651116770117030996112750872651869728797515440985613249720629593903495120157142597528160002865485620001044837479386906532981334244564105574896058787931931478823008930410155761327121151623582870213494283866158185831092942681730380457938549071376177198852516220765675053614852181266036041746615472875184370244575361181797645088888177314186293714461442827685684780967030388522034850602922620590458739286260148631732670411540047826860427887027000548116123676193142693501757495336631858300039105758990486758722593182208272459913848360904398531923155893568798773306573449872897482099227372994813657334831708145744980402970889059787965693790501341191956400623793688723733695248523694925767793445413428318633518809237222969541458638420158082779218681256079439524926741445710864958068972374317243754200848948901386872667724704111793476913949006464817304996465722420128237161809117094155046791280451316750946114058570698387089483884920310696570000759823478030027043864695045047689234360566805648139523901047458908968390405572459770884084887673984336001490178371160169820801624374523319477476769283108485157640171191046154246264353866956452325626635723077674291390220549880872727562964511344028566620586905766572833033489062051773713049664378081390065324063291712184704511563447127979403646559660519157022279863863098053914306027572547120493911448717733897714163011226418646541036097499837953774606420575217291671593884968954993853902828674819947118850761377665064730601432895410981108927775642018314622195685572023704854889484925838699482198783057034536492629973793311231348674747921204948247707390554701031377718926086773484146949434671334542717900785654378656327055708462597324148692822924181375295889581122526159812619541747164702692924722268455080591044598520993301166316092748628542837021374270389936818606059903576368938240474007729600371232548564282876262069446404881372330115999044485322544657887507785159747191477216380160893556668294219612511220963766627519999536385045996003880178531989228992661536495328328378726990505141555851288047826576379915703398725505277131912742699394827846997420228958588489566786031043440774313894880608021643794033097558776252611743396560512863138626515038286772461338051911466932879857589335381616919212869760243088597604671461433475929219692453465616824695797883198688552942047093312857925338897281816539788876786310591983453763710090258078457624426503618403800268863839919391301277574015785108891751361225395766532361647968049884680161915079423328429850238873950625053542447818260415655289189266387004080974355947154150459231525922563033322498144863782682253826400781380934380830100879719598367985613520998969138877227394736518959998259696911886744944666967857808202605490448731873212734135013451096453360196259018843776759551916391538451632690761388197987439001479201340756693352031144943091283382031982317674539687129427011565222567325345128749780104139726569512971359565041238888588244695901880765020592471431726166895171320927235940053636573985089342805368605270670251525718848506648433638386038883492597684406686423754870912172909257212638219869052581075929113733123890180261367280411456540900423656448440687323319778007404259731601719234147918650078987375223538378226262602583493176620060606026891481427496523868667959395197656820128809607508815146358451602235427975233849454960994845230726689022839450920965322626682306143043431159105192867651387617789096171602754017067011461842794640802248126973358072013234685083169862381800305008590843550738238907839470840334547662294922586733659938080736500274225486362901252144094795885561924418231401347427259828901212398154431025012468660204636813645816417593384883510062135276338442306502246098610588536795232842953993335250143912597462849408413551460113437550747537353722226216390154577246033705673331978062189536977108044811893838099705018034071340573564449895344660166604249547433208699287718565091155413280119336519560454574351560726506190029877036469426625495391346786459058899107907317661260725201894525703592098426829322701645057749019669166320176770159744057108783215865737298574860775677675665311298163093549987193613192688234898739491314477744435403181444118904639182960416825551580448177040238461827864274521496034556478516443889257884187096279495053181096972419409783923913564943764577526176664259405695981374833813752124902000300484086039347885502998235154635721542198298279309335468873424778211720556014488156081224809875202717280077559288825390701593153911610282560659932898884022922227152542881376428412491661900894653456139047327747001573262854264592319598555321652295848918960221666881899198532103965134077791160638660582884985125965247571850583852093355343626084428147667600064063228684236845310087664720828876647865751445372782221437595354288191458704151801198438788436598306497515885321004668512371684802269486348680085996624409960461454879227300943858232781919292330624156643551855556371558817814073099426990308699065223357925004707939915328495151132467557863113740004057445441215439338878280639826306323799837408347006406791856619887459916609586100187283183136552411154633869499448613354070896591478533323196913127750528875611511701906191315475556409193645954183725294399305879397873458882671156184803580416924584369615420306926779739622739958770006869931151959958331191289788730928867084591649761048961360165254776023505014803011238115795265064444568090890087541283260716920722789416056083322241786029205108961010469248552145439894079859006783147303787822741281126398052187342904015192291991787025464191188242145575042534044405011417382419652962859470419355526780941566452330033698896008057922239656173985060156560258550561559055733003512107007207878381682139161626789652817866587284169062097375926169687502828971036995102439753088510901892949119297054345361182059971556073615636849043904479535933017397055650430662646040762208325426601320774539754886308599312510134665010830621793073062686718304153473669347031047859157523152365104866311424421373004849967189268235255076694082485591210830268925456737343245611166024919382644770390084959375986040823595195098007072270399656999748530338572781945561344080904868881474653104599819313254643038169416530202152033312511537570826327848735481346291228816275500634392760522123002512160189343431583328268942573562924467883582251666186829632422863995616164558632567072574023055147913148097311180820482623198120626806093240780598980602846217322319820874711143146661570666698757415999263958347667547487550879260920689407479619244279290099526948942134547264985634550011488064946844279039860592595904202732352166936093839406427793649334197594527693817866452916774903035017226152843787322162972406389857921956591674270396069031435035770854819147818319794010741112175671952314844695653413400241315484121662128220413967393145356213815484870932836643319085551328096360147991439003498933184376829956780945658724961742933270073555281924946683571202707525768912211684721452789898703254080568144634967810825483058394327068204774629953010921054255189246533085785954769947951141695528977438636141760573768684213662831981788799478225108527617370273760405638103918280103973993363298203935040445357100320188511932126977802505526684279808747123864926871704789296123019772623098524934115609235254062175535844267036759587420713889923982875220431600826117702430804172229743513638749949934824269484959283449869739930518210315881192577130090077337900424916192403981375433304417463678480666833132173361514383730654731977651934515867512176808742841541713938784012651663370612542107146391707301393380463759817628508345727442518685181765082206854251572288884921481387222675866711236615531419563590311146324134201945655401201994750316901206027212679586301764673209528676922437954929258115973254045450408050428332313797614798326407942472655692314818670540475902341456062999673092949849145433638249736332099191827938621511417253187861973111283519298443906835074597167464419776565707258317860475189916896523956128707168139464341992622575520066044203557011309184907684448273672509860127413102643787271514320353593080677109665414285967045491746939811967717051660747272048121367236399273027433169248449479522533816281545776865926424630705082442213346568079648086400933512154963261302250002937510305455086431153183217942833456028661950342304014528194512248820857883246019910666059716320196994807230003906779661998851135186426893675565276776111280958546455999032873529942853126263777609750752418799283897195192385625504295596419636550483124942191410751304006274210029327435896278167556631935530714570711102861651130395256171044943729379009952512595365794581619288972882680309877078408076486549196124770693076698902605710425685575404353239002286110669665872243479923894592718780840198216999389959553122979437405134663329754529369926518798320816589153510180162991374162031481572280514466760273165450919094854980676322366469279234899559771333543776685814520891848752275425590047359481482534525827322600213533557141072516350520284592133116150762181651714460391421454029754075824483594142892280341971662698803444341425491673537795310136434777919271450511194989981079136580397095965892755569977089450731834163653262270787318556253931813206146836922644910238424891400389503299844341019024477313753976994048571532073124498914089622147091742310105661896050786083328452880975186987170215908650323688838003110477273854711158018189820605240251733289882492877895441674049046919914043496785365116629376675306751792819170785340431559584753061752508425923618058503706047224189342172601744598948659762024972338398253654712792387088832678127443902163834608970320685469922100905889811489137519121699528523833083769122302234072493608553033742819596555380527639483986627695496673352173409789761022700439456223596689428145530356918927964897579434664956010040482968737737289759060336563911890277942525945110042093760888142936171913137338331667011370969442479661077198041997794643156986444223542096943124294031856468229905753032810940351903712654267182313149247150100685169106576885830629097818807517701125103828597015104705888905283923497235170965927208979167078586911265008213148494328568317322864199241705353669013527489742727101832355295126881118910595044167743656472954396225412621921533332299059119923377845543832632324261124965488583220006678393999549247062475648324517500430478488987810248171066239025747099479863074699504588738350713029060639855325772889177203306553564003526803502013531549239330416496246874293390078174172155857697477626714328696056136494725914116577902600940527525544026855498515082384487519547655345979218388012881043300311959014041085513610722162758805145415786059306103801666422445698390937145102690580164847604815440176118430803835271496670029355853278901731124776128967857847119638516807567205476030998403004606451069472858563971905986512774501664858873966962103689334198636843784295210133624732106266021210332170840678454365018987766555938035559669296763372628246514325205277399428449648037871343998211389963323717054930753203957981456771842367933958165937822864418085338050542058768477396316063344581353991002958876492575879356220900958203271750216664739257802431146271994231480977194681138665137710225281027134761310120195702358607243824680512221662924954624656795168200263185498917630488480089590014038556449808927308035422208441945210248914441051057154686636583233824458889628673057088310479849424197979405939849169507984740652969361201377525319011322459964111818993241229492634582955972053622724500389560649063549278212452041773154613720562959600503303092139788338304943961380172558065076263911721682141858349462296695920723941240821514876272695183841397682827668092606678971924439743801221025230254875010224353811160919883370005343127150226757610616887934580120756109770091660467471646782892403203548323621616473827436844447062354602842068483475828596432161717355407350717779764896799746045389570066378522978203950469922939823546836015555466263848529479882257676702685772578684182159061466963534347247911552786008251735768242630769467064525952973993275958110744897327678773081045879486814780396162311420625383517935083884781084616705910346070586262455309195295225056681073672330702921343756527898341392608176156028387952468212240480931403121778343386953200530183154992619002012079711163794593614381999073521300978657556804878556303745513148856075768246499668291560535429143534672524850098576502641455022538966295949193312875674154394079078684651939459460735400860824266055827016055633102292313043135392828899551312912055150201840973841396715530426381984840340966931034625634804031506537373196064383172371242461708159115810560125936628934248975381234195994032208784477530080057808842461659986130633462697945960719614785362730931263399966396968188294266171113930826099266469669495994048996758489222373989394325337703195795806336187318991459698526603737952459951738042027622710144858995380585554447575283240241754351066850719770603602864986432549427742519263504714560449113858092169175825646394099822440369852585440610239990856065912382740423024183919711081571951007734689093886845739303828366843412223916600628554292274176099382509536896973545009002743328258469010468400883535413140514752974043532594817107853249942654258541646303051605030686431379182912827522879445743966960538779202406244369884306988014410599373391905430101583766200763666130093622794122008582797936158666889200001172706275987173252323046990669712102274189829979718166444176649750143639387977915120605409854572206712604953165566402549296464543970926156125234919770326403200922710855765210527768440647338188120265858855673800501308338459736391685334263939623923367409419502793460527667377466321052992490815746170223496682287219967249390305291090608597048392374232159432772892167079370978373982195029885819425916716554748724547901091700191822079010513527591422815528235506353959204434174956564862604472648419563533235847433165303859601377262634836466876568369077687032610060588862114840326062941999323943584472049316635496376383695499182380964451401284283844191686700044771152612735429536068539706937727972243960077894093503057479550962123672351778562218288131204136174819837753418917281248909108509571847640151642032222405770900072091877574069575920153217993518340662830342289308072664466158221288614753491322629035933437046428432058057516390235093366320849093986875465686368362815075919604282133764380310594727330436527359653327089908077541127978737169580757332256869619718254108786915091861401157344654697261204722376363809153799521292731882223594038926899538022274533625896410923196376098193234250510103934598872162995628582075531405747164610068294247684875054853492052428843515444911526216193446341280413815879249744954259373781930341887018793899295841175671521041672851254847741107003730351359252793711408408661394671505459226210587850837814643516694685701366125401616350755709909531882120256260186826722617356107872166032874372126549440143169798622575878554202544462122522123306040039725128671670017377183624893063678055422287226475002883228716244430918802232887855281786873178461295275952707375447660646496137754878296425002558481087403369641395744981095328114942765323394553587146726562510692026018918487023358266116297463414902821371107032311673983337090673212134318102113823878077012758817885450934148034748224679744319330603720862578764828317541803456596715711367157367021881720019076356303255464237170694007135708035267937364148923706328398756501053777259046023483815441438029003702651241102146494502800499874401611862077787225838825877934943181567107515763915570229204892165406906192641430658824412341086528564927048518203866734024706967034356827977774723261943743166039002729180574109853719578609172011855702860905503998881081262027114883253037390761227486690231193300168485962565973287430166415702576599577637841420145649288480516516019555943966831999282607956838553181578867670216403010342328326718279730105823191771793939495201353907397574864755696343462259884944275246958393999357068798579166526864771751187631623091913908138152833507270198030741812122047920131689612602046147416149518843149251560506945400565761142038644914728243762212603109714255007583528825151292500194240036757218946317097561782193724966215178250064699927507863157662574475120292386037439979178628597982284468204167675593167824153897309708608407102013206542195235932263901567061737950947010305664528117011784522899557959049122346894569547161855839426145776616964125682529816372227724699122044502802824925960727370250756628055482430153389348063020625830599452158234444024598913021203232642529051247764693380261499571439051658531930798703825564558905486545506283833182165020646371250277253106116714136744463016984722367117244664273374613158334138200124465805688431752625127263294531663108675022505677785886222660156751458746129210713967043015480931068486815307149099743765682929365125200551062189427944083313489177960189634012561555251668828781362356399184382551955774438860208728203840280496147341603494359757526161818866345079539403983468545259124380987756015123529721577526408465045762335632409834345403850503903629031096667942643302751511315573633664351502460838713096563079697425565266073327026293724298688744861923743694445330707676289323261138852302309888259367229608155483678631994876369073885917852442517270045592492667528433554950556128954012245819204069379948982726605088513034577330395849760235486535230074418392055740036514287146794009238639215288554201276362763612704373634777755532915905500240881857848444488299250889241827610840636051855418751240158606035575451235620825696903521999816385689851086975379351629300274746889149792677993558136184408084844414273524450565073698153089553546843962103979571004280091671881353866537963396110063402303061308965836975608085739184514471317006799125537901308111877154312492703597938625071083717594544868741927454892782142324993470160406805723761438187429139443683199492172852239287032532070032571257958569203751761358466116116347610311561118790757279009622539763373524973850230636682263877356887168654441634914331791399002776065485823172828898886120271518584257240013307212545373450579839175170071502760434420403354254270171975163645702929345025924476957092072129336415739184109723727537810357902356996938118803990182538683533411582223407544726323192180967545068663738767093932294211040305785153821102437557458687895763845225552227694355529857845729909945109964691366135395962550333901512268869552588097866788830641761688276412214360894976764664677730333807922068426242050012414266352096100800850014367031757272723568942473452156816499584674285642758948158966826269469271179800483808829343030551887274698893925113117649255719609010803260915731547853178979434617391489445018472464249003858521776297497116187722643934769044785956159464159896992107428911411361991654767532605566354548863018881065314080718725569081588591518169501271750355186626346709345091799253163707905804113365792115077262112437047749550331100558308364834015134709697831036961345843187598617906140360692714163581061117423698719310867133888712736276873275866678143472158930423666807522979119534380521511920509269563069100323911503326911474182122895732966037570567125858264617857071022199873679838920568107001967717402396627618545155201865228442037623098945564289737918067214384315991967812353360656191626852004098628546131521655207454066423972001870290260046886478864452734535667990170331840168328305805344178141529270418681171414677651159388391196521091209034547987296996077765285420676819184646472542600057569388103621957345118891916450300720858241155085890332235931285861282452686241390598149344900913016817283313578216698849289620778946918644443188923052351643674335679168853230313137422551991519247626290218082309818497792990734566272372941842966948509666846957351340858745726109371055242969021639619798766358387609870287608734168898431741191455747663578021808564689442966170356946284682694130192617332440427600418775179427742749334153372564197398733135275146230513023665557722763922631101029086486843871511771111821057869082020443898097920490659889981894436712523446207648413451810882507511384834898638234617278242260926717290887310636924633340252843859648726656684164911246918582651457198330576757338379298471051077551278240085304323244579553885676297237663193838865543780258721497575818307113616832780084880616383738535577084184232223968828199181149141820807827616592696247864517225772725740239574124979548227558316626609348185545415578009741594293856114202197773026461477622547581450897543883576077210802144919485780280993777819424130086607279077317400665528157857955188769564324568453998341809146408619227687768213976361966675217337013344790956430625244609552364533834601384167847043741317435639369977828702482727701922750567365918375698026479845615711292939968470902024360636823948577759751932897099979942343993860724092024411797924507512176895521450552133411700139724834768010107931515255688296713349210974693092820818764971032528008187871838559694318409254478020798565203446137580276588319473583265019262724018498211264504351872280263268757919604716940401506341124406806720205961096995424573282427656272554915477943425834969872675930071541903573247903787881556745849727598591716307661912002173648112185575959760268674858838826191461041068137984898247462334484967889994815489651167414923763144347427808974730110389156142852669218150672972606842140966541894154393524107368731856393108712594893318155311532195261619369332895491625882826592435573416274342819893405998069381810495987666763347283163276144364239520746751178318060525450971456865724519987056724452021775203971148383727738433780338175803252512043934130852230028943995402323951980014458155833411134174359163095928089883057248063718231078291759982788086198836028560706948531799496118711640527756605529769682829913553093540382439061992454039637169411784624109242696265174267981163415742559475405783793825411646645411574532066935260541452850629106480155504186641554960919989548911606188211012903920961712842315015984833812488475466614323424712439375250653000752140896018408916428961068380667829430164857667079424353305965854327885107696504959113515382884818928216040867912212304188970356971471201146708258083616724992177163263744534713394185712792369742840989704982266552192115159094916180874630225375875904520785266685087344150994429699645309443185338750807586660404202969507841252862927691403195285490940319446252693685816058116861799940474297869185174693497304776489245643295088836203882531214527094412954082714531840314970214431314298176713450403281072209237754925102337865757485255307613211831406603348070929444580633059763231011774274907729394309372682638639811925399033147412359856326678186882977938866192498561814901032124689443507137134966544238310473968383246698294369758648856707807004424300398935181039638225783709782857071950646660510811399130661435222539032010932990972799313270004226551285389260673284150999178501361394360745361873598625927924678778782696004377934448283227735428153611530870718751883933812924235316333468300886395867642944681040559411292640500195470045991923256667979195320632940440193780111016758612392363380515150306308879373646767987342197977035773775419417257827563668709695039461326075204299492639637328863006568520502647368729862220934070976897016616824375261828000351638854244146916138170685276864800349061560476237092711473165657471758737589105054489662795747193809998588854412228019548670234033720607658908856235976844897608464387931302006032668959513476029646752900664383130268842877842670523093638897833695407121166778384726085529782126967809320573833136709952260332470222398495585090276542879084904776551632517472789881463443036759860487848633094262414804971416038737491768086409458092827144234444675265368504701769976554358124823971599588598461059824546431449431174156351842562965058744120919375370019504739717091671125900366310034041358433014657371979414437565160184947831642429343381907338682654095233751670634900203830092765659321653304025033661242602375736461078475823607502430537161652532900526533151993798184024644372231354014939590276947497935883755902404700608699847542288998630870164243305610497004302224270362893114721992270831189628524732286033124981524187178250488972323752584171963957976023399297113179700062944884345176494662491531471422974506353366063838454335356057251608032465890881507406642717014843003658531045139066759749922577663316683275321073405496403204685630689450932460696988154260507271689135752393938707158757975632491232098299607722414830048067428061792978343470867469067532337703792402826596584559347739104841201462302593029890283804534660856875850173519378845869226592696396984015200070292395151609603606323429116678935735570265685345782647055069274036849355849632693311889665766470662916260321434323137753330371877520696907621388625076990656198183410659627501496079699481640890107344118292938397841737025706644817350593374005442854617687802366931670199374327134744604336788858257432889463388488838200611960872986170685525243808153783159365047585900461741317096091377625024938993513344607822141472743189569392033488364882414155376410909941343618765376050675958225798733520531299100811712255100506143284421825877942764422969570344506665734330864515925730284833735875290808236026780388626816104810442726251939933519405521293376351254942888425822149000578371193844676836900506599115841636529841897611043569023513065286523816559450192058059289548706149795978062792355908748920219542766896018505783991389925199585464802812617329066939872483277992680775797495297612508307552511596422353970448821995845496672371417166399135363689691454394101048042574375579495851759593386039256138093888863951457698848284430587384511956643220731060521827264210768745646245511018871333211585398444510378987487557753489201812088972341994719761827424792674777740976320114995658555386563812922818849361201833666835477384810740355390982743448043009217490542415699892564057542737182241022711028942781221803321456716591114285685295142987749795889853121861540233917754164474800005738553879214674509164012010333327832061462821828751567981726757186137938149939700036596855258514357059379438931870790067224147954434885746341669446034904866961854141968816628807033693608478799642967551918204345339664486388811095363451308268617790007611801378654705786825469659819785214957828180608765090925140273813195365575735862667575136326738230760461881247413343431421653886158212575734368107913026838990346837722907225317276477086019748895239744463127336050072729702250272272513812662298475729804682345601179591969433576465593077784254297648507915182085272687963176630952326169445039245872315038423469909264970378289253823754427806224125329160108813538924832805058424518734795865071705125861167258443341713757605087764427882690319218076731503708469197964987568131587496173601595263959457564047194221658282865470184768020110381458677145292262077977337443874271806569411201644627981599673489624286345813237280994511249133606026224354391287914770900982861687150016675152413008298137840426342320357068761753919659287472273530513394487174626285415742798361016182580747947438649231492582991085854124637300029357211397162559510947018437105241437033808103380160417141867989736231884444899249676237812288229689983562553868707239914650262494966132810565690891278517661012811033682256867706572122359284525684985541816930318475702230113573300880700400996254433029657403291017500945888095147164640386455508850957508151913441653684703867066155545640513433994453051113674269138820211055417862408122832517991996197297408174105192840988500042526706884163660209363542345441694922926775496089938603358980786906686907296620090002928623567026939149484839649479891066900243352417398178774562918816135458314053088409953702910118841826490045826163603935329700388760615275535873100261556049478539218585727739315668639650885850010770219210422946137749797699266393252710284636022313344799067657286760135013666074638298124281297720689444609098244736338894840056336284091933629609248711834317032187837829604178054621536692936689801263496903400623733785493299336265940478150244397693562182557752448515016907933175501733531300881998175281309295483651720452645837437037028065672450204696268218407651754451744728840516168178156598926258565672234129297441008878918670851527258067682637745638509479820167330057968512382455097435436730288359493414013303942849580781441893050883861936447486591331554831407709448000900901499377685761966380412032291713503153552807010373065585700685312446794762500674989138932914246968085406109316273528791716158108855433130929254554545178071633426884109102487679425181135793350288272221320886742911470152652773760825364178458984211444259241308113534506516093948656016093984673053815111758515203816153832588213134611314960870223105695040242217602393794051163221071733361156183679511041431861495052456220394331664321015609280873313949172257345077088188921454834544951180633004539831883232921427408331032669569692766436676100181468990962909934929904864771143483605621189919073902877783493239311322403752742393396189202331681954870998942394884874766222329712342072761374736213944691309872568271353309257377736245052369439897694915869509468520005663060663859430574016712552139000742357193985106687620108599621070889750839605400816567191831086340063436369004207228991838319928392179480173822286586615525788520999898912923650518580147641627413570140814888045282448810063057693105869115348096111737566019273086099119999031337463574497807046324534814786109414003001395618386017555182595362225343104991034589173628344011984914381444593468419396172465642625347927792465219140145433572391239775076253293885729945443116253166894078080781142608139353197814529285489052960195671256647522892118900455026835372229089860203717266953297510766550645092041784902204018965081353804409689430372055967852588663189905190114185419835396687532497265362310906610309003704008854649032183052104332495572021062315573318638228827387791065724922632436308172874989238126400191194280647465699895968002709738653112281844177181877735123008863122212244945938714839399383618153962866252603963719446005160610662349685892196334273228391285994227635493588311177759550186211998800840992606225992974110610312218299524995380153731915082360645173763689898894777122542981678203443655923806295039464993101064035565656601639543128565157440692378919952337278403242202082238835577736719106406905541676718076274240262947673865432731305841117638379117391997702808782390152851297922542402509376631129333491792069020585653877979039276590735006906353644140439299765048770739480274147528717733392559549930758405509415468676100991310829854522147181704206535448520092690484390426599237410746344237929712400247961216138754818505341774267330930009912153421963542445802915007186961186700410236662491889339128085657106732499702044296749187058937322654663520535161776711543250560878483877911012517482465216369424671531127834759038148600146405837098632870536564102793623113338643673263546418557913761157549737887106299182292765927250570024332822370880435440504914715434299016616864083460933091178571534122788714610510388299128207421095545184656965260112904703755198230203199978995349304230535547675956806084598219395517881806725931757473651669765643271506341506016634149306146000220967805845525045314561241787724917790394197627886448198871164092412788058367330565799153761269995765364627264547266542282389087646507001725395622862650814715739477267925315536263342499193472693961337021626260206075691433558118326008362760980528816710774067013814172782717058564170846816783605599992704945898370170559197354056341445353110276656321634529355206706622311170040757688872879099517516570300827517652020132666239362574702723291258531869302981879912595432207803463076672342289790701716318128114964786498410157125945026722527835051032159961681519537554766708851704643907852282617283911095879161052678381533376461764492862867175362381630714339295205540632636506740485606238923918148650091260426583565025092382770293336407525434787500047600134482638067374730197974970408926657649173423639978022120196918877225031585823663731410514533542267545139779728654666316809010078749086495923418438370866363222692228068078715302003447078459749482594169269105233945447997187374170678621649112714407720899826323593711702468441152511873396912945724667022806883612370466447797032371798091171900153362806931992541496421446230633932021913307858594673400540695824170793973749134516780680405323525111954052215303539618539825483376311548621933896860592818186315938272791339604498225051024090062757305392669974218589596078745229752425926831894628848284491615863657372040095587965239580463766147032546291104151222334977573111483014880799014323639985097829993137631151492871504925822270539826617416076744436525860176392740692532516623316921168086707520818023552985252065745074563733568039893748733693954438094781593737925079304423693895546669973741952927367637047539170326142323497308968151476584954487855926058046124683286094305909404722423536543221382774064243296542152399790580984701088365583272956305863127956398333634743240767592024288079724315803218849654428772004224083582995304999938356034481038315532133784207341725436521185966319050072862717503407069517009527632444967712496889556841427865126055452116973407888911303440916675803533281677837944252000081293851672023466221109666678929573305429945086342360802546996080331927356089621128773166949307296837860637444506386135651857975793472578456591033724593072740470742700511049712618322291743261181889991056341307005087283921060706006471330002463449650298248106019134791139667932112276002388074679163661855387859700187534437773311823457728211651944175972181819859239494316571657567108796891339329933461102732424614088803367902890150548299152746175346261438128886357003807555750310675745382852894831098256951893486194882634825754333669062886338657747731425898130008754853609250254569473648825602640638555041595626169025658955997639965733316272023033323355965636842835342743011719482684544357142801451855099040541403523247664525107823329061874783500277576230073081596021937245356016130157179941632428368340161965340159370558900871564846911796375501511774275052158353945718028575412761168862760766663512868255650407580912414268904383371561792568679426981479663100595163788433330944474871196684915364421972854697128201448433852039633100538334684886816484906284781194132926962762599033802439009968512691520523805183335860799388377702382018844616047843502673044220087212784071155396854554555403796474009411309215817652367505815681915415364888826963369482434366675342079422736706645346662562832136947784480941786781563763684350250149317206274482086585696579867520113626023351549298230866273542335424787129963502962742785837944930071538472467508646243495618316712205183392135582780027431112284616708327056274951995774845817361093344522499632280885080450001996553028568806137460670673515246062021949088242953968363538501660893222999176906650774926641444917169158856721779680016586117556316557290713021288143689820597836078180302913775975883407669141669836554147064517291926801021604223696089765639460701623238754148595787893647194910431020300975958074093095989496606047218444002920872233886871607789891160787383151524325984012292932191022794367587808963025575582108763468533778303496705656880927272386083802136253857289464738659691964506160511314866239866435764899793642672402357255793165215676022796349751465661133182682485412881051663641215551130736468122878139383977306335614536458446478298668498230943298851284410016818997595664149511745058757128642575202925987645393917889027018823024840212425304275538538257847376404117115404224734564545043703868546226166638610315077073068040436063317382580325993173695813798510950397795726050519531363048735606995005050193559063089164325046802054803464739001769221822973422899204855050517698430257060844418461460507747621701624753216131452758135676246885984419698832003138789968314019992428760814072348518451196553492238636237461557509410266261155773369737070540038207074522580544394611755536155935963661847407467822067645689515978579236896505156482742455850162772901475613027560256193017248347440576607377447246638598361692749362187394698059316511601661921860733425798732489100225360731188068092701011668959828208246559783551487045570304355436648081057360605378962632323317532875622462471103751915385521059713937873600295367517687221754483945101037875498400265091369478741031868511491645924770557057126525748704564171540359822405546249149333295853621860952400458101809931987468180490060859485187612781620840502205163059559851552564909596725422837560488793381834772444507657672153822501296075809873439550864021092029042308440234640721369666772528591191677060096282888089689324802294573257278784399779483126635044971420764902095341967153050437788656458455962142922398706578238163347086953549459540356947051575045499581078588642600759322471083510731273569268195999497695156777021999369703090744456048053237198370306887670334808319581937899067845260204898507959925813071605346645285398421227781359290397323969512482764828058981289900384519332228465018996492245189045269503264231932876199573454796821128665020459403060025984483126974302095041945286804351501551780634380950694968342837788154008320977498938811445934335904460236393801385600167227171433683844012581033497172827977670736802716690101662638877327493161747067327558438828604590641075149760628686410597441423177106765421087526558028494084543182078248680994684040094886150493352317847249114162018036120455649754234663703248416915782041780854466404213031988122223734748364707039681300921450582877879373120064812718506724326455388439365417101468205365103444626266215296555617586034463151094172179689108584326072403370484263915855980362854839354117406260734459272255557612060425067458526442078309440256487763613442464291349661561648011782223155795837960079479240542578212472310918727365363237570383972064092817637913317399319092581642411999426998524593408593408506201995908972128890433907278795557798555088699417430576355270398763760369098686598961602689437239386619315280602755584214074081303866383292553098356963221076766528297662972415477613922650748565181296629913959632759650442083543201838607712451708940671270772816643460743591217380501455950390952354131296056708743231363759956636214599023416743722834191935900583033309031955011366948972406152029940881576175685695700233799318914644151265861019519048517731033884272304659505176250923579777083115811695857196951191033957263000191854608112823392372779034959324348518138653822233304737234210819252159378173114331888838835114071214722500748199332229562070311709497440724000913710292925049858343520859078972697571093660055490631321019203518883078631194934654914358803935763812108055508995676734956876443340100264341939285448598391968307554798968676414938584892858179588722346283295384948080700194617089218585243843623610424299807796970074287911757344906497454193424144187717808077018340940243115750866213283778128423426676722012008159649008828371864083453126580973143793151226905030407971484483236331272386934224409264045767947418109173189856746215609279875989488955537648334515364314391214958926147716075736547495912104153092224004225970030145855460051408412657924046436621519454294789773390899325011688599491562384025401615246351525324510916261828986873869253090806425666938136253850533742797849308691644856113031007888957516132800226495780909209581487872814503397543003602361855393846710358307385322617581636702190920908419291103548729236884145207172896153557417411829754298853539181126953311728610541471616860918857607838380662438577467020803176144620753131724339957020560048671640799330215662675373401823805532809870188553314371664247827173039886094191445800350692069109867392145259321431969178370094102205164643559866989738990326878942043296907650887229084426480439280246203113226761659438069611904045957982152812508976267785166401193105740572251440351901279175554531868833748301852061534556724829450193297867189392236103367069522108961945167473271475271264086360581962678112797232554285484617657554268074701020988714004315036105286922396889032502019286892737245077741481566275528400384370852512099445281355365006937137779218365765375946915625798611778300116746624014018873247912955753702699043864256026346559993832518415017669216608661815597531003627818720514042191150253723712582847257181129332603666029884208391712054246640014535361109354501121725504146299736036674927976343802664045754683804359184561671750252189230758754182557639981802808875291373953976648887799438339383766866897157408472577951565289677593858428573089255315822154156445125337449655487163587502290868740036493409619071797638675132176640124663492783182326890656999619622794354325266457429688780955651111123629529286424539785705952864471654688098613731708293646182590573984945287894443079889314857604084547009752401996099342857616431816124760451664957664790225570579432810394617979452430062134318805340778386063726065793701968830419510032220806250687628191782308705236994772491078297735105149270513569243468972390856972327854427510601267258774280906258419586914298391237362285853765616575338526163345024301999641871370825353409096373047846508656935610190281588156319060887387741781835141806061984973255824577802822816198207996217965300655132568720770360060145037922542139259523217840666827670597666459637365498951948368953126350395922950164059678664823782656946737901319892323480234648307648051509021976582151271608407192915410595755304025678919675416828776520420149614454389287985220486630892314468837255398399109433150514500541638647110516093031994131950239500212085921615181153469816318585846088100400839572578236307523282824564726388380198242403270343479730261534792809449663249520585473500462251184811402094379961534415793953485584262743498813441818045517977246994207088403322682363341804317343866499062405053972066179788205844511728222538136278373951000607997686181456175527855624087970159853944739390302680718317305105817514218938993984345089601379988254651533179793161760816720671090381131298063986270640893778958901739182320710716928858252455216075595908119597097628717452152364421437437981692423551461913096813028737962565630264938065730136786117537617345369436929514641660373060896526339159952927526584861239567167738695038331165117483774889238823565648936899130886258176329799373126044124076610151286596507241093718103255183233903696557879011952307668898296392720329708023933114059339667220730496462701089366956540907414869068834171613589738730130446569814897374825419228184586458986617853600329450913959861504880430367186735656021950551479443821547809733083382575841509749207414894390459408261483202088896253577259150498182087126822539406944624029789660155998436434935527655705619920457329590437906419823198116220338687113649288740734958691205267490810087148270978985449794832370024280312806949487863356772443726028567559762571198688032268268258967761892691601549613045100686732298386982608944481732332774402281497656769823704923965338459929333833021294042358051897013313046568090275273974377413841568780104306005285259558711364752352563026432807407768584917037092376944059095877471011542504480583503181493452092414805375516030870957511312389844334074223798317598514510260369303387744642245805098807490031363208525924960108725446774767807972996450510146328537410747857676856212969560820428547775376347744145442563638821705102718983231113228165975327687654331460970747069308096239855202117282282338368409316487875254145504754637358913680346236206035620747160856989488535955706597052322967258038715214009515587019907263809324752500106374183229461747891681581012833073514388536305645943862456741325639266685208661779347748887957592182736686173161608722693808564324779572241318140790915971627738184985027139165355430385833206139910967914398460332697519087594649850284039089732235953356315433691098663363607697369872166260536199969314236097462893038714278648423227895113899515526124509058533229498892484003861044892689922803337402029629484047871091290235152337587660873518299409791347808007792933778251948285105332541337609507508898728713648338411429305255749808745207609385910989040163757284018565980241023707655939513954699179357784729671714591764970980326303009657387366735303390039647373727557761204409192971185665597176324313094213099313040226719502284241918078909677572376567037591731402970927778888160072306555639503983538206847150845063634351387517415323099611069928302437973979885617668720211692749136536117919612359413598368235798654243553728533939192379373002627186814693464236235204652114980919370617854145971997374753593405279130625445161463216753006814283926569448304485011903007651206532992466805028690349554306375117845164914049221847664535321833242556508476115840239130732244323670720780569721055132446881711368489984736258015296414959006170969739366751384602436756596400174781371354664374266188693320759018978400580369122943044971713932366745834200758431755959616709579307520244762835149054827562760659920979237068647644762918892188445697188276407455805890600282816489980324316954577586370014107957928510069197318553602755298298514122835097004658434343971753465842725525386491231010911380603036652361313129746594035887908585289085949705681248552960520257797014226134489912948656347563674662556535237366503157103666603006569838338335191202441410091216638253990114897227714944949765675321996179068401448300627145678557476882089502367076709168522089373684066519160190811742874426087347177903414822054862012854409853435113077228276054658258046180961341571649069180210545548089070110143797995118487212706764184912363274250836354164968919544852112033233786411278360451910584896749240994841891310322309867522714270746192812933935672946504729720979350976753589445746895106005306480257675379314138139954830277088280808166816808325516264258180253378960995015272755339050142217286077457030811187836759960873634972975460642228552122732439108899288819967043271564358369483923126108837874662277699811904363510610697688664302502243141674196401280976162655768024343567737228666332670148561335257996303843555579135094925925320739294222688443962251110403346510942691247730615231302417647239289747839105585195770354951937399783901841332331255472165418954485444412981209007494665857445412011670064451264135012778261073899961236710015100185736865019202599029300202090593989757312378898307443602957539788440970943772920699100580039344131561866502170157935652713094285154451721172483266508983850528870703741083598070699279462016118175420835420503616883933248584795541017010190749636698774029565388216187192780666463730523740077332827764480834928561960119947184543101768286817136988510482186964492371368748296175689088137476352129842123754861287383139613178227027906306991720866638001292169483149907240336903571817754688207100843036309487079978151743865855648504153371208453554111979357515354249434083945716222749936994484647946541340068920938589959036800179075712581108290149511833494399685406015018489762728083565739301001074092984679949230122328912511602469293750069712989208081158439410011148331739278031005264244230588068295659877341838086894985370687507134636208596711060262940563875721750456249293624306703660669477270493536101003868633201957921519133754775525097915475704000195522554624877127406742096477766960728207242228482848777521051856005497982365765707832254735837811329676973225576989355131648112137648602125113666936457720373945252623044900852464373305297602673156226871979477674826134843631814661935052881514654467604210050740451112229163236987226014035818292268326718173115837228327053040645738831425709263901675227162919894361927751871945210466169332776352848458082697460996110682974806491695191359339466033887820046111803236217069628124064046403522071723684990085592121663517067773929875358020876782363615537088179504217112329469487382956593470743166090038415967391331698317511902528909674182689763496543614840201599877843508438840099774115921993976324367458327983121450291934037435946281618004741480527445563709980420050785596564359937918990100203324865939823559531237675174935827478058503520235499079313463410274362952357182920354738325026974881899218751759375124350822116828722833439845649817677794153449486268280065555040037281721994860767983079377710137765737659064259193797062023397554933473211685244375509654217109458372421553399354225597142368891338569763498625302023946530996470689738118364847633834495989612347526534002829528911150482502035634723449663562272780998229736432540959693185659006149468719921209666987771929033859266681973066696061846337099276366995673758433178714726140138346818703928134956204520671894392528649925008510998576017453914180314991324811769929593459973231375867573763735316065767777553276165914514904391292157207496252261656652629863504995119171703787827366018597492825154742016378852547815817560201109266447915455778113986230165145896475886871836649365979560558044548702186270971057969096639261317533062384968007665446144832340193162147788586191670080419786451093979197801443561220635547542681109796218928011538051097471563479384583035527350060349311419913240741456327647666753317001279371714465760543237773864017207731203274322756179640127567599740611243118335276543832468329032311909625432180094155821764109416063273486959193499641016855965449063911974717145137319571170508517621810996052081147032796090116752541504001526781830790007102729167897310834083267524444074002562814666969226142814321726987963015326690156092526724515860368157720542466123469662645918454117104217526735733426897584154890548946760248810788727013172936900612043164600552688339538334477318886993369072361158137471721620086291010512904984367728661161465364579989931784409493740404167570810197593937089223317311727638414693531733755556837846715431390472819145254068790424136847703248483534982653841291812135253039624835145910612665015837947866107707116722131463499348019726534952743839461783581498601183118776978870586934124811417198798355734227166556703738274642579404106038530884481180411492379803037454124165745651044081932241356782839710671398991865262175828912592906359280484461239492012829852022234416081668471500383814916257012051845568230526981182817372525579325790755716539059969828359199153709985747309325809428321986468699161065674814626705461523782069194119177758152800595613523258410024104438065673655174322954356820975511422536308616004446845037020512426532276168578095486018195787186390593289926477653823088332111666000296522708094152546786005271526477857475611731249813717822623567991856652151373357777078129924794681802743488807604523619326224909559390881244597044336013658291457736518660955559879845467368213640182525974316308478674676513603255817417143668159272451424591840766975418047727598899819269451880552407321788459219205016100768132002975788647403936879681610459757347685435434643420501704460756776411982276653372755291070054727296860346164807803949170361909072553177054287449258334790182291007584561308889736104184617613582088243299441915739348870152150052736968279117966857998163680975369781489488791947562111476834277208488224034929165723393750375395515854273169335413204744344747139454657993727974152986852148441762115532817418166742289542941174962870787522112729257789364533678514859800446437527212135046337561150177072632998398439370807549682256851493581451140821259891283791701184328754625829887108472754888571319510483765889072407111849314083717164246463716642703725406169493420180934483355633133866476788250471159916442402538212433988903448033800721196980288296395543785452188724006833253492006875844783592244728815444199793013190842947946499261463352244519368112784348670253787189359349759518162977946940354985890013255769074602082555883321331850631588645469253371219889108472533704147524438085392003337124729825151001165271497641106543186608622723992766562466968947439547758922048545052470047778379693046363135531252461292598444953196176801758305820270001596495458417041689616734543480171635956658216590883079225934798563521954562375076267927991951928939016440527615825131539307533486427714469840755159975595141604975975260998911497621803241113778644092104747278478718195579712428685036477493492773032939223845121218024116298165242835578957598634432575043675353532096658614325561401490402995583767890226292626266421964295264117073932667960010127288912611174493026677988788362375420938401287926395711107623887194505863455094941941968910976411825089422522731031883126526775784374523359174550232587577491103469485214675669525259903904963701405641600172928401893968683678798215733559816590994157439070001241218584911201103388494933015685468584665893485696560453332179639049453706577210814908970260840364377944727478305558576507903343789977032937201177285852387103896852738320246686054265842072984793768562128397957313605101390890175119121607447587708654600165471133465342743240407170669605347593246931265870557153169274673903735767432928145973503728642088624371450608575254226631828747543865914414386887699454597214098716945553002452307244416507124492757256628768195830429228290726785126947707348528706951091329490128435996196468936236919965376334117407624720175278271462051060503022299634502815230762855561035656564745148598059000804833323990565861535763373606508287008180296204405184656764902223846637930793475054799490718046261981784311136041033415233551840981088891900535124216585516352352495471436253079193315855028430721481683894050894289954847600044232740931759983219622048534891452993891467435634224655340523152712421153389739691436649544329184186505196518850339234587254921424539352065709027947507246300120099500133904077761935163944342601700078224582953761185355686042723990217220097599004465425430943023945303181697285047445102111518792454065328358442512205320308850981292227838893386615612247171579624944659045916162044211588234304235549874644394854383795474366862571453920651634643467616373075916163762952999082575314786070328966865135899239079422276464839362442551812588249625212449099959973036331846517081400901307005891809424841529836334771583271016055266735462744289733432948227532610549534440201888173586196838279973852812048490755046621341765363266739584594756713907834810531926057296777352973874724318728582390152519283639593235201735850784754392402776012913430822618891406678711069421398860615586406015575662554679077202832021967228911117673528016907208558651782324167170531596910438997425045319943459400891300820414022977254106200447569179762287512654647391401855846476322621767122389037551168782173565274335295013324290674488409027376848787532850062799183979779203707990593256568900519076831123543923227392891123778587850594390177264697019054118612600508068751450902431173790466219897827445833121629547922614732666590378647890464253878510015763088902117429221386921991722876697334721867207000551380528934968936921806306026426347925599294682884203692428530657001053636849959588514801821835806399997139797963856088892073329197114153690779527377878877370216794746277843082591008025057067290775604751560636763441067444288743104281849190856756007811317810332214117232550062595565578098235693292196692064966607585385691443836227836856975860535940039850213530186789231662249577928442255361477788096182035714656577791271518253810573048986535215331197550822543191875128425135623665203633436215756879774158057473769316365491709301396634388545785476854766465025631940559072600736312262425139765411574809935772259312082802226634807429878611656252230321162023802670597020199071921254104694237305715110587658719507599481367986779269925248736235286533951827382482644993474594965357234996551310178044464167333822860152989271838426430033726089389680021514054837540371613269665488358548477095545723363515635954762377849759675654588953811840734014716253697661954467960505331100627094195256811016470816064577908765743608566204114908512446594458925402483577287933867200640751045382973102426690513604910599205573389806681946116800568199438528334356988736912140739583822574740247967213764076705477147526771736249350784318697701710521760175193109852229981720063980172242683367354772598481963776961032902156751195187451077537711582514995691864701503972344034191531041623494469584272993590718415432249092091856842749043191816094176524330824752735421933636708822647822740423654794235694826723113602639936286750182718855758038254232905144464027932761866135070944279525904280202709645802941972273329172485458139272437803622363767658722220950732004746331287275612510013917997349903521811911321279180018792770738196486526776162549979068060642595002477235776381569105309181500333415797727466511844634340541692570783220619558032595786487181686807558715138588445827407550748522335241231349407788404084702009521856069740749415035770778727113440719005428134617797589734664922892279437270008850714024976556538546526050675221833716504527590279859515373313380568490477139693135983813548589821271319429637716213820660109033796177222227316224132471862271124700173905151721015344030085109012810216506202957056506118487997996885073794135425259654520629834797481951289260544367393289973282901349562913638441158402554740887589370174919275816157614830734430036815391065078351098650707471567698029539719844174454834664320701526504295621422782642968429745307537306358169126951301411462732467282191369627246078498679508047193925553633915837658911375983817786598845250987875154023500162568500154792495099606439686003803297525181861045643517254444727851333995025964164299849388453049414837442227515894526009305741986126123536633722721276098679709161899724223487255629462392756108046411069903795875412290522905696911285321628531587055229047122950231247454965966918961240318518081192368120997130528692215164561628644915128040613307501254029139032481289426851228621080561971429103075409641157743884587431590251529352801644868157038720393554344053712624072370693554179154424057814907967698637641990335220482394533380406346207935013503282354725083018725462598437094957074773630474406231889547802838203797556597385188872384503207208073707210716437812148568778502279562396750435216370866119514383917627113561966478073320726545166955012966860038840841607369808235538534415893696210977294036863319087538490528022177227347283664312406520789028613466635177030392749739174111664829608981124113515210989996068149523932467817970256008330359353626048060719007020220412115335125101180726069030439945990394560525193442079515955772573058030637604526113994262325083073057423577230066256063241967662084640534202127633875911341624145837986920355714341825196848542326061802248749929411482768499880929846060581320446789775373486632697531954285384804376296167285271367059446837956311187677260705324093612758425874574557138368581437857561163652029421824884284232274084984127759276760957897010256115719073904550673146616638294233021292650514197760271849048273933551168070231904429470562879877688125431678291659728943037221609362804755896152639911644222357234240756547693282886827025467920593041710273690956601558354516579380399472559567547118243254489048112031289372562545386789981398446205791551118757437114174755883253923376953038439694813398190720735006350676951820233947247306961195116159990906726349248449041589390194895418659767493033739853643327742689582398091342276078260158237124545261265060684603090108560696441460302890987921818756936052782277463811273674760906324724355913557688109567793265201474467662764830686980839139363057915935833992983550802339050612387827979994018602612008395973459808686255843572298103173231852303687687556370224918654667759680101124204545981471382983548176207308661977605333831876557084191051743468749549078245966582346614132815560066921231790709819740973788911502998130381988175885594557873170680202282881199547494888779420707707766115184769219868604004517374067613084451843450143881356038041768108508231895623444672554680948309689980791512068141355109866955736336610209422623296586567749164943557486130775351047386267266118624362328444954010221614920614301782541321458764651920894006029403165619245936325272325539724148808933602264539797692577393185905456315968694418040845322764573656613831930158213183782366530279572311735885227612533557039256139155508915298099550548694563316505570183743579070576448804546856722565683995003541309247557700906562563493314199881270808774285377271900138901406526180689505253754615265507074620063701050658884098175431335604815180844853910503861815500490530300645435162700750401431825441018133029955208802002010567110326930934982357408785566634421989140019125266351549127033537652102175021569332233914153955668091673830681265593804936592247767581702890060529431700228437781322126006454607689104978577057488144914207046470193523468369441607460172568271630467269846856400370708335778406758715612862913431989755301500634191238739538180993658482959139977532508660123792974620009570634145908325151946358334706616598799717627520684737293776652705327302627163937671609817753392157856583041023779262920352856908286891770115304540996762650636392584689365539118455141142192389081670825995943882249988952161589351007536380944402442245714354138140357721405832462389439758570210081957768479279895528359712653459282281801513467914963363079104845850436269936376705759874667779482698642511275303688886091742596330176280872331481565379004869618522538846960289208487136710443881349235303029287605998950311635580636245389920133568066989294375081286179947170778641107477635045975064615728865650291029793961528875980197505608089855977532244762700863470676179954626813224661975710904732142918263258478369234102505745788594924759833624904495689097777146186435735914041630472893365562539009839441294270025361770982301868095528208935827219028647975469074015276029289151835637426823325475122687992259199432427557155388575658666819471698413444235633835825320069638867270968224249796788809700882038852600594370769175194001742587322112087945419229652342125151900009921228529482400856647725594121248332755471491305449475447212608313542212380279034661978439900544474484278901926486546557219714487274149971128859128848628513715011492074772089391591579048625880388193308948055389323261424530805904611642764145883944650571261604265903965996980482983357827915601993786302649667539491138203648798525240052101587136712324235718668243901961695715525090770728958093262193707096037287264667382473277155967947032154469852621552189202702876271147408673516939786287404115796199359348399236013310711804697634344177438613669595986827495351177240756915355990750415876889088970581100009498462848770056652174426809888025803071344126536538430955736968717987443261105842641189538009218540205290687170321416160225763867656279424420448804219721190260726698117269159844156032811532846233861148455353803676859019970132526700231058298191824772074492680032545962839416450065208655902627188313126351636616052158714377470520546323433513687896151137947131398948680085775009806977714753277749410996841178939009978117710529039214848669519069892372228078987204986396757586359255748971490413202424564610150244090464323724575234585519868278664451816371632104711393948341138275462467319485243294119947861276303298943975597247577683922031860935076397357307147640797192841896182787123851336655719010416702613116649367363161402204416543638915013178616759924807619893142735974705293293394516231752848851993983388468397360052172818189326720907896228047695721378160392696974947290506240604362413129687282543116355199287643991192689531553853524364605848177557817322814953086423186498984875175217051073442941700476559402968226981243464184390966443723814838345746425339426256438248831116777804928329135753028955813230913151659502675996607804698235562855731235027899837076659550867546566139671514543902952699941291431534589613155275165288981718518737187369710519205080571994069451735121335043743354195084960852893319809858751809895157675096708521755052384023212331915091679676393708322932742363458919279466423830778706950352189145976959842746680727187505228342934918363954517608772439690096221830903266521167979180646021429530024097309635739325380452459715660271663977477174783513818659602433675577583842971091923196557724808651342145987422412370317344355178653839218168429095763520858847939160843635517998309359951863670886028247405228746319464757756967663120235159205329757268679361594887714330783049448766881717172196328649681527654036330185146185226607746988446255487519482952351320717427423200708824997422958498990575779499107459823067000883058206890877676985381428738624955071023957359469835392626975137061952052955612175306605697064934209311983234368358059790512252172324227075168691533616962892332762072496803466648060523197719288526740633893862347898504701753019606347344831390860234680380913614466200727186929152052431734420870601081646958878993161947600431206738272701424006251293997610074901555564170184896630111749794519596516135956943978040627066770354528068790749981635737118977782763737903753087070988623075096448079710070993218183873990378535618215705622794116640809812057446603168561162358026859335705807769383766393928782363335102851855291175661637103127767341910426517117945357825582379913722956349092185186785395520693398610632037726482027510228921053806091540530090173044453673089220420499121553585919307130796037184775685002782423372686286067019413163039443083842506418324232792120194764791108343265465231043527125035239355406218813398413946886501078167854290827876113840948134165588611926290313732710270425560593312152351477103950466306298980679453422297248011360353593636052791284052030068338057062911223547424934275631667818286389353745676938658935687391973337378242151960025437097935399199061096463461428917174312120659273620289751358580561463179974855313898331439608287441320094401115112216304975685456239786242858100952226954948698316680942720886802378585618608828314300413376876816590152080206645017859440500965078579977298471945326581477215957915334166742837149141224059271280923746448124770157401220104564145709325250389913563470964071335583263436944389939500556308933260743237182950280435955828548033021583011323364803952637651819950430031785248168565870465604390643571742937771221099642153122202087634498502678460352561748640013036002121063399857723500855875040993212024226256388576132140692121560749152612695759004623954430955432114815352573662091678286167141608750125070206396166613093825385995969419995092079571062318241015432543924511487644855805557280986731223379036302422447446217287344884581073356386038972932086932828906260143243115478596970949681255309010733453258970849190007462647844603610708264463381294165903369612397437223922964960313455841964658451480532252354656913237464322272823171876570815218673582605222907538885419953731914855312416788128777247813843481780219175210038862703758361815946056540176796165119537810283889340599151588214671754956436371620691700604441161234814340859249696503213116286881508980012988066784145708601167530356171196805344530815233323969806157373331513826767041839649877784935028452181076778213247720545051380670689730622278675374470477369149067490859106951415924261136069712364360673848938929749253563505098716260561724044943992519666656485763062668686799205676983760945435577588573702984865015064403425622726745277937809929881148978721920876072402237501541509609650774333890718130651841268968849180978484278441577797877847158167654848893602184732427245790954996572320433105044421762140458477273149255445907353492448675936788553841681531065312686185820774556399976680386279275674000334207500567972989772111946483994795991581509837840842240453678211020470596223066181755741170291191057895275741883945546118946031243551726976239776711005178812640745016689383489216388212240685553108229860127300479762115445310867579003245298089189381466356155645031025841951471370082804688926309870716948833655547731978776288600074614427370748180375432285710378881789711570965820811464104842508504786689086733260310957588308651980753049003680691728230775766964102232232869034261139362336234513573972694743338337787209882285366295487825266127284724344376758198726744067140718364840803262068994094212868738800109378227500936470933244911580841067360308823757818175074932310021478024977232699900779046174666614612713436591998068015168576990253896828730188322073087196456165534595216743882778328137534126463630245457196285935010347717535180974111857344714856455721071833619413785964942994363318322406031056874556922340412349757259321376457222209783192090198670729914219437027160962826212384469190837538876597532697041655249912427951010096338899845207569215019128287267028034435527712255478084999697220713051949004421476210062552765918866884794629832662564835659072053147411093644334435188526989254966442035917082551859660587933300293887666230742975496606538640623025576265771367465829356847517418800380639450068239208777782662013829781505840726800963425206160575749162850787618094995428962287180202582490955522853208764521350059931639126377641243469964810679287147961515286578284197704104459323303162493710906199774001986409079847739439240275718951964703247674666516106216752679867988772880238608829776358455104041080102308455554553511249340590042603195487765446183457106720886665732493914669096335767122159919530464333082033059730146251458502333775791185655288941018519262015547987646046969952979052651893898750207972409718024677620569925446031145710985258045770595895327813466126578721382333550602739385883154274625420329583616661292466821247660196241783070833084280393817999709073829821997456824131961731311984962015529301234946594678140325709117056308011322106038065860566834115567598679905644590378034997526797848091374469928102277346306757090339476485932737235231767429026700081521932569278570699651903415326750280110766613827830578689227138343745231921148419306534087658234860642279287139649165721624670625453955866242005598244312284069841798285921151653190552435570347881406172340245882511498307974243239824547797642219744243281968672490774684216164824058596287642357661642466658662727335066170169159843783117828139219605283520127817568875386983504185462653062321930059317585073117853189085947623211067259013577874961768503491448347007416425278415618700375641690658663534208602651051595249535311146937346554621522322318727965750980410771040177423817170136985227361666203127834151321588822859298101896558920149894699812497679568821349544175002483783791846728122537590829036645726875875190133957441217400734977681104109086487501923966727525556602444673882401871743764349249758562012797762543044788711714834243741465422607804959879656316394634228515615143936885387033383620195192705688228546062908004301010232034258805986817813695816206644939773278607105993262398849921734434655419386734689175417596144422355209331405765357663872982014187721216032640838083644338247153848461874850960762550161759645689425999432846373695846445727713309151249558917696374384601025497993391400810030856321577321496512355380250862801743171848869932829464451858909142451495311773208304700087682956119780260425230485813136231342982736348450564768075551086678080491382840948054199042203087222178270203028442969577542970025601350450413366129545035711593579656347007563923663718036155472381516875533994538235516228649156606373954332998639781116877898550363784386096090088972114759954754169249763930885771081016555240959509288656129911989039533020867797658217681285456438252696443995943486598748886581689871222783491860641352976163248382942913356780948788461659944611596880691379321173233879249517331495459452569043441918410944480436796854811548905050559198048843537546621132024311112674356462019554498460470810793124524715497650426628941311579156574869151047130708299456122959766942600142104380459637744698548808313560519063460689953296045778810234817787943856748205595780936264434243304187756948675630741835888969039598987310892697904643142937401594725408897819103680179507606838259431583331737812569632607187573844673366452711301077480888046452341445284498287789243256486301761514643051210367032389375410608621697941124419911731525000661888818109777598917588777875330813025143393887660770325803047927114655160410131247183535138163646963666146984359469565023008519177540049101266051012958659578469522106206223642341627476724528789874890045442924173714270308340386573274295846648465689880660690297498609844109544067183254446303871500128165408447382129781736627526285001925150416257669146776136216332339005944402678920420900988186513099868116388073431759687357619778637384765824798540773007248478097584770665341424900125806358361281566919624743060663281767477784769494073830999767555302350096236675971588608057869298536464040186766631856015550431237654729049686800221472514342523101692135825230410356246626070353186284160894447271038478210248467830253422052948978690139966317564805985688838064934058197631269936349499328145543430577115404308330943300080953412795848271909171442407023602457302034647144259756088554197916157037280977127982092519382061240639799319374912709779891356224987517660265159121445740533299846473622714053760080002164957328442265572675991475650549842254452444908733957974308102185012051147363896157108490229263422730088852261203653507581181309964903832282027798772242699130127686934560789437630034772088510269673761688025899107295824989136087672205318598933608662875203853014941433143715506828410983156085860078386638654358336808589606721083725649723397259899081837609299233187205523686531464559735760616560202540911038869665142704954694323332241278367712496322920135452298768886482432359153360379123423093596285509410678060711576795007183120407873185909912243868612030183434748240308800763914270125945880060231171328567219094359054848410975305921593121271521852304262035907368212500113365170468533844009657047027258512569986127229974887410853870389102927283320005908505957064994458081852852838947722116275858582746864585508555488457014066004595231209390045769184095343810325999854791714073987735245877362048800043227084261268191810619227814528442877126775391875496785370337590308138433586691103890865126365303714987594097166968443915945477648889200374730496101700529742871910893855481794448593241789073021378814477517043754960234309946823160879208887675853344097871370234323624691081202381401802144850570487415248599100415634696310782321929891549098954018033428918330995934126739393383163669227017823877748810731903079748362206832783032253581578918681498525147653495289972086454108087707230544816183401991920640411098662733732037470226827604372698298248855729467815077751379330775570372832016300814469260225895057896277316762109776136434728626580707051375290801788526288358765960897204726118999531286504820363183519020731675600751947969013316036108430280818385774884482717881146216603214736979764228565782905915450768194940815024476212430407500066577398495287345504000541482486231585231488257645493746151125564696967624592354114323040951305923915510025033592452160023142347661595183938836010444889133336902634543441149291020581964915743669369500729169436990963576087753834598039951437149140859381316029269173011035513208471757691670223928357831923716912957665461438603373039353893803935740706475988949539409401450586728476255690842664699638470583347910095006932752049591362039236838330461355583011429609162694859897890055151308779787011022793029862749803636362887756931296363725092862743478329251613919139244604742021920573041424568735004065494359077460739447869794829459582939379329617321513027006795580589780982534073401621427429323258107995140169785208385751588847914985225492916367975801571719149973676205348509756045263539184433796318584448904764093861379357225424345771709278205088665911960257342759121173198631320150392789691189389461612351829622947733000635736724200550042559572885323587724640466227729234138860056402311905426164109909726243212072435995301298844475752618100401199953903343946829546971665989052344548025584718593013981132222539612404741842615529706252993887042419812397989108095060702309989815554637545210410108662106426075484885652921616209950150316321670184508334329025395238768908644279714138756258227521758923980132479738739497306777183069726734127677548373635894998930257506953910419151145567338682473198497947048377176466458947549958337850956535169212064605671840232303012186798496296796661354598894868571182523640868779967764639937426856883401840253940001350136156021466543761118290139562363331510566040268626192640318666408402207379597407927092430867022631813102179839303884310843122607658872181357879605890291587239411778302590496700706777922874047853465336225905704866536161501660992948116047671668205502053884497718953822966287407187215110502571512503473812747965990711705682425723708856395670117448282369297833738751007946961319099442531411985667693429581316378988499663923547740125518577628812508389303958349560439006844595754355794136956326626200160002047580705856888708393157382229102069335305925067770256159354957179226400417209609709591102674924137736170052504615595640308747586304119421111226934205859428957372976665284004606574739095924071583229048376227680724699541895587951754421943934871804488440397102949875397654202118762847756048798755768845428681228415921090088828443127969549221516412560491642271695024834264400680037349325166994048273161587253068756240777089459410721912314151060904688252367725661923004201421918131451879014917268782347642566673768068332643443012143063836942840416211286713190627413357811909778257236679159821442153078209580504028917890199225148989759372528671389793665605441003289011240935920168851160714924641660949684816015363888634421254229980567875688913107760782006476821605259335752531920517094549316542708262291129108626182814733812969389340354815857559794549320374264187358704812494762824274840667334902328622439588784081531490397135801414842653250158209253687207103879811127813227416202551714285639093756762353971860111519057455798555966564710433704958400174231081121176793319820567203640070565715072417337621943364924798030660845977326919607210581690186408524129796611539524332930689676126531452540219288942031307561696663852421312542538403424978783614471590351394453186282618007767339677493343535679589656689538822759813334637381635286122053594090633325604670150437055260116093200836289957141489588304717037749460095832196196036723664696917966042631734960209535026770968180577951911173651938236418294972332574211781006751047900103619647456449255843378001802400553533654834616940312629703864042915589413293133021386430407908776848677642472287380575998709230619167204337174260824420418939200396791643238926584467946900028302438727025636250115514295415819305585680856369137732644390264769180622736714471335423735610481204508040929252796672934079941309427575483313048828709529793630207870758789562849769214953244363752333299650950110011114704240875888958478690009152400536596169153609885734736490343952522899237966396681819453178549731344877754627080264584598277487364916885311129057004388392296609644497851480463370007768113609965592668975991161478163406160260368320753044154409946716865708392467404582672743319041386803776400310032334527663137644768165798124313490065201337305464310109340378633792792308688332921415400267521972033188737189780667857507302114788481586470801594180214897272860056531678064427152489629623327693942783832246498053161759624378040929755483182584932160963419459177568678183844268669309250465358356008303767775484121815473803360026730694488959162696503136667359368287991382193066990124249272083678695874053748865123853793700600757210464108773975270090957055914822576672824686975141712724220452509014909210131584038042884074576975086302784722423431459203690153425062202986143621218647664996703743088215131376232719781327231024590939112396320172913926275277133456485107701200088278786167423376787992769856260623619903737765926224817977333065500221602178986297806619428458554284774782703946242396765247522336438096832202031943252391660394432505519529109531894553206765905622402735164724892511469905192073002131740406542886947827503447995626494571476699817858721476077839902660056171097918219074765458875929933952928805009658542028411051868580502852692244700056518954655101647457874797375208752608054271772253335003890243218269583274819127661966799264687041231540453764015280418289560356103443436368131785934057392622968790255057023996763550704676893272219960256710143283703972203805516425674508235848030059107700015150951372868952538828120607702611196927264800347800905077826845075406731382472286828290270864746638591343874906520376053336173847780220161773968572339315584685660808227239115049206735899804538935695746427990059302628221692202313579229542471611207112224233815844825566787871166909738717556854053968532921813727247038854162944424304802185347945925816741153079207962038476093925764044303434228709619775747118379190860590020150939026341333383056228631575532452619819739838304582707172318659858331147646414830779999271596860289473166996389049824576814145070507345027196321967685445603902577185680266769395844087649074901061169013051679802297459441329406506879211285445777341218101398864028893476799866011671947558719951097401821309655548317551968133204025741628313769628764289135477517476351569506353135898775623166440578517530592755675602825638877562923066031557065905178305211754387526337616014445032110981958542668839475216530821401163480358876005201367780826301223726613953820388647180143635157164666079087858140854429719805262324359134860199177142095048553119181823797927370858587852402254416567945586869890708597977941025111776668558526778653861931470410339996560625255290337513968601588652583542877369599498619912122472500443985774038201837496695529972287230119402379954916770632082327603141596414398138266907677510155763904702895634536037192238467536148395377931305634421967974886042832913299367296186644958491905892024133844084339423229185138819094396838151384537341083032160094377175343367991085975298504020944616581338051071678386728064278688204971607354935321827458922642309861621123947089727299149667840396703324589106564339454945105235531529285099906339448294556087965121445022296729272944707169086084589140699026989377653255929625757292456523009932270173449477380908462903593635050888512121454577113776235135718853383038523683012859811163874220142070883000067287973098134289764157123226363099915531539761042845353783599069160913141141999442070608318422771200839542633151521537516263620634291174742896308421107397243502265315417373866719724677336531840406153378517091625254798517143391491722786842187368647004441451335441595809151879771339346901363137549324734138552584100915208611195934489164269033892154086420584348220743628227112515928654742432448686347113919539019395652067489041175497832602950798796270334002468547724121564788263369615700124500152593776119040938103596540693504698092257889938179409797917924992767919554549806273863021624447767380352629697309099032843871911343608024620258192638172733944638176740830932414624388078210062204773487808467589094919108273032142684680955422802568319256915891099073325564974111892778495295405427022519942356978361857886806314256241519390206054894060243000673158959036631555786926674002652156191381658833999699640885241588261551936663210203994594519402965732296883459536270887998851292019122779096694001023499384107110012515394050892371569345070393489398191763259621183688730296391039991296045766514224387973598714750644682698921647458276074868800401229944649142384884520473914242855137329946781892935529438752058583135670582411743293368051040119381020221266907286916735810970431680650920161979608336391414465527622411870143665160511232989939753352439187063954228219454717837991387553025201917788689844349579424522563731534732075151948011607041012744521225866675781072269624060978347842077988700374916983159715389085457896425927936430815528827413814530771423718991257921021642745458579635367897044272341332382255156719330791580556696929112630935945926870713819288285040431807525171132726921593328726505286447002631313264923850198158896037664906523704310951441386699251660517852737696135851672945392790590619343766057625076671640586181578934731186249817901349831518098113159036732664259634756967658952085728662566349026119455858418763986353777565354265177116455421562404959970283038188300089061436571981078028632570226792775309034120778838426212312438264002452608737504215106519080618292539124157221657603961052710937108241048358191206543410054539304517702933010680720474262556612062688614239769645787334156800065466390395200605380609116210856528352599163003234303694808413031533837222254038110491412482354469326891732048713197526843485452483572757281102734490141279252193837974842198408360252554572071196543302425376397313958931864267855853660038235382894106742301028100277449074892601579097926404663235435448016812456842645071389438378979788577651748025019452606394815367816146401552026632075442226918280545187285758033630903918873711153239732579859281981159123775071439662200524011614058509940455709211314014366235305588080724704344961459909553222557365123630095498257657555687393532923194870946877068571019881208549193081445613388841944341866381946771603215273358858008395245713697380007219503299274303242471296241810746229654152535793632145840566737468006473927747061104405582974823398113665832233901572424491036222712967349368634610574464233628604740955945386460595033988557628617221730301582716879031484097687938554897525929137346925975646741201352517387346882190098947459691467489659982934744733265660907343100880010690515671837876629767679313206375356403331713747864439922288608344588953462314017197850395377745835206728204156207378026727003980075434924262972514246283656123182740998608484599936794817924635498052303874339216891287204456832601989751602610374718740166967510773770504838065678789346574199660302179892033792496200776373282603319002774352930626758027290803844885713761641790884095869258441311812255634139225670809309660076022528426783093897747029055211422144241303839836468000725425841760162500515929596445958596477007079477694029833519257805371832947588781661875335705930214646717166943210376295672395431339963406490176388173325547524539543004315060325882502948733232289935243336648630451267883698619242671346530538481693470522536898963554999378276089182539003043641773368285053154488495200693561065091336692275505287241406355904187345347382546248911577809258501071066590036441104317187967282977116496572212548776930489574883892158700064358483366914376990771176004257315448349525948049233006350086702091121837574674098636920132947676825675087224676957020649881840723293497297541520990350587350290635210424099232625372318519061866077098467509575102381238081428742751061736761326412508437743046106030328932701498453886749322325638425300739913630095724454305970524284237683130646264070471905696327664006023595236037691011937634403590418215113879257447657188491660606767389309483453066290393479767266658734964240288731241169952204189312965072651703992688109414367029477001234506755958970735458862277174126454016117670598253640365080631831618722383922341067140906551039485636705965524359661368096292564921133143084891127392984266268760538717638372716377716426878559145611524884272202089396219760562237937520232697540364360104805389909756297174561097670610442283893405493259534819714889932436832760913320247822866991425823211129086134226170643958933262607519934678277849161514291252470522940257594042668270181073973929785666079348839572046384075695126267063564201682618935010070088550147564366792548695876142696978882331742804773862472238809510022801646090978977124565389811181444241311028897674235947993097475859551555625314538071424990700852100245404317692523645430287108307188381573488805507427417556563556556391806126387380368478713592807232212429312170528968358526253969850453535214388443293983661234230575710693416291450858280492144033577679377133000244614266830139751566612424686559503499454813623180513078225717874868916840624737801765291797507970693676045018768055941253049574267600844999651969687991608177518015749336357221503409252715150250820287297199292097166313725393363183011798708448907078306733368616472996669560334290894578868953255162342506887027264340721988842777700380907718980441057911548094297202842084715187216477245473740680051610852604103986323907286716451971926103033738460657493609343851566713457033240764362447415205862245412998109668783711180588456990976474700980082399107228666701288425246480473835288310139474225652001852840211744431984515432995062745844187786745617114195746069870382966922529406336382573422981099625370025611468743671916162727778879360248004991656886526324301790069692883318880349587049402360565700699216699058604521492047867586744936342642080826796172229196845155924317612800468963314003464611687856843068640488883777019595920158292620453091578806607345975157978530304241903113429932762636541667365916366045766409894352906906116110071994158184044766651856161533625216044185343076425244225484237739683656573998323319068177784343704541260428839252493806501844676622062842700177993703402467502983026810960696311306026413942409458711948626161661208150143254920199258680666565741318272026974190258287446237723247418002876189391460496022689780853016467951496190551149825278450169233167148353017894999500889193907672824834251045629464585013235478556195665914800395803804073859330473952661606224833688547915986897102705612962595172267872087487018169999373415309988700504961190209259297794564232985527929701459304653772215521808512545119579302858920869426525774448588914438578247872242624838574282172428661741909838299625320146391310712913792478185440205641549565821712561261637046947921022421097123561860877611362562211939537907711223624423399257136584726329153634247000370252108722908037916073374871815743185599086183244440947718604631021377542859882392449546286688885500646803050110495345881449966619836544066237503835953294552577112838975801182760336596103841763751453407270262927577043669642646829222655583997692698216495395255962640550277119596512881179196100719114272545819863676017566281756457526605812271219802562642328629446233429950288656926344064070154282401397630076496988902392577784251758991952199269360657051310076630408963640560677747008712695808559570267570142436966773586949690957820428356032033381424414458931645025822225635720729236946211058051294107011278954519672554509835375860216073193331346111418620122495246904720424918144041281252954815543647616220979971465785991215081156127976568219929000376801945511041854310133519116311153622314055150299343210326851165598864261488778451449514724949461027027009083236483868958501583098342941807341784052024114321970112384326601743853547077864829418729825040670016908211673043776292388377251742576986934855407753299534854991333195001085387188740072145405965357813888934384752565262903625429359458591872262731314629110895855918329101611096003382266903938442417236064787441836818490234701730307891802012331150324563560043173265981201005630308505132870806275573607920261266114394078234782683803199879141322505501721216486934001743172610003463925265005352250572691481257720561715097077689893837978294792646335934570508504610547902872095935497770239873401034762076948626036521588759332050713853394164319337351554596124873283649172212364951738181870290522710454310377191512626687018993668125437244693720263317310419634994767620866637286443142986784924501268037265862782476939852482087855085556573260355933170198928538345214843075328847690968428726448510288570155722925188559909846069631712152111091504239087782666109064378105357581185093982175976378163147767316566405822590793354723564342906485945072327463205692227876908629358279229684025650637638092464979231701520973487530627233602356788065105844537670842446989604751664854490120020633217908264149875517885123017653794552160571003723299809675723067951545232407783875359005495767581528253555316021322003472318406244923866337505595798635278147090178919405709230148822955419832428828648903598489437931760763941441042945997014690854713785089222133981108665143077729512156165283201903374594771009713642753842256951089304119995973029580660714414960415154274919369777009771610174882000538541119432008140879236020727707966318534844104763306836155651609200931741659630150790023576577597125852144619057440413275946119318381816895803798223958807755950155109155809898254250711739774180954415503703847034424030245254996358079453569976735820503650147506634419351605449750853244197455811454269910258229670902590375049184230318916727016866613258325928545082680443847834839284765927023634190427948626300344922580498249911783335563197356120673233554995252114147730356493475653064020086619718071558780646448123536074574178552112836302215085196623359622219637640439065799513627476509805108672819500476582455152630243394340280820586762640554129448534153256363061493110008243187201128298858930697701416595294791563121260203813435055818262015288352658766450911218993238174959111535087890956846050508725060560210860269369483426421588658263882739978224347340403959567971144980648167293493891259998748520400110930866093656216684674268248597009606682801403256035104222131224776344211454965849101919498571834996598839057045727305000315920907260341488373789761566141665535347301335291584073015067585741363146526319097111946756034422772393817144516234579846446531712264516793019742842800644526857309936632692588053132597846687032139669153746589922784050802824868304147300789377601438582165097747587310026162251097514758052555247858656781528508371186763658756008578796245385479121481343414467299158127699384959396074112864359458011368427722163439587496184319842055310724206127489367880768109421587626578010078102079196940949993092935576940822637122198360103070574537932655472853632218158121204264105870407851353544682186644326259010535575827983907072660215136642196777811263429897065534019488978809309550339019662140929744398170922717234914072592696764984948596562155577042688974452552683173116645810132793522293221406661098085163754196604400645531787975671870185112446978047983466110594075498906565355261436245107074258137120917015357029634134211995443472475462541194083414238572845565253555840084851022789224344277205315028481958215148685166372833350772196114328910318499972348146031553410013157263296586129588668275403882280774421654445358059238891685918589180408126834491766332113007104687017881502198219800203412731005841012772491259890413761710421528447290721651621120377522576007942891219472889527397685325622091769202824618939621840640982293529720585480321248157078422924641403375221640405844226001363196121494077171478264359566481202537425166734437749238109713862013792305031935500957777568222181753887661765706307428304355126096511992724047317161047009587841262854805675845351459729254525969783866566740177864912783628279416202958464855855187131565157665866308217038603019424535101521599027526675252344912272596998699477277610077449850309316062006956375363858412661559152102202314612165248395131087776585517800557055338753778403107222668687808089002976443629639728216667060255147945071819009173668307228138967682926167637406009890762130696468377525313216834508022250912966086132902708448219419903731690009918463587252385884372645178565004170718215853033451726469583257085275882925435225166941694954077448798528596686004246491606155088500404080327694333086494787546467035126007308430678507210975912378873793356137893262281724629429108393777546480145133863982350995536226302810986404392007813358775740652242085750587095152834711258291696276697384595289068894235023442160727313475935637389323179947383371194738923834589642218466948250986261449958141072816905223284733404843852002764353238311315706879339451747573506724953025209262011437744793460441034532267306635113698975448944565441131670340759780924175946250901619741818195139414699078593276891998509089668673894453215293807677666199710384944668766376276036874694544246926154756591583579654275315500103872727592394443262558731007708301681888018244533000250982766058661727197579555023862102779395973655488446999316907027131049374473399928810259695309589758330534906809039974501164748855495559658283118623535686911146377909714950291819509136325803658288585274168630912795584846140212278137970384469022897875045319225064080296259665313196755521898885605168675909263180338352602871752154665607884276602611456893289190767478851337186568066447093342683009022518387267332854829325999353857161568886473678720720297715562780863809945619446257824989054348441867432124692561000837636689741912927266124404953588910698937501604026877927426265916698328337959574678819150107108372985207611691177941056497885791751322389127186529392195242739163653779294844533128897136594943755649922468292830532677203772352752089535323033135290095333572493963215937819088707047893533509292401875729640412525559817521825673671043532220824718535811366372724855549320732056729175197652067131638422769517728212288124892943108598032355361138616475400667072177309416747047945095821731316891628745359041254015454062383830782005341030823813092877972440545786924376301413259357967095571748573627017166193998362900313686724796028105538386560221805776770881768458123101889992218541965349427988112689325353940598417653662010764790800715633163055503410773905232094435463437775896273092674961309741386490635646489956995164285148613190002755465607738901374665923919258553934805890598569252100074191129897369333732897910986554043006280686395087435390097398616986859729869523500902944248962932802772538099419729352541026038040247434877430011045174227526655010270015779469683231445529393652705515274292194500211063818825390322698324366467643601532316301250372582471477526370070783024099281306110714421740382081706404266739364211053075181455136283248501190232671144295489843360342188551554602030137379452240866201317501831667088177216153789074006407779971244399820241610481134692752209514075948381212552795300605666847202726462732599912202048341985962618423767750443886424470853170324640043023784614218174859360901830364090477820313410114962714402028147866663863083556656758001441762415778716279925047936321669450039263008600351774846678102603919193513122739833791948682210029961673202210104062182314887144071213221759693988586199493055832817169204065511449787189544809669748853362329507795643011963561264871009757990581100477279209367475313175265502945627572394014882410805957288419345300361284731011091912537847692626469050987275537198387062053174052269492087958099087307939111608448937089993901844178164132017789609100971155519676553490588407209035711575639047674742177092748394952646078066483496513533470532178313690892753815430658940000528453926096999840724413491558522717167376555655864672219722674217017827494598000512760880888136412197528091178408463229375011145335027062379735234088321348601048818000999354044895226825429177575649442337713159365415273025072409449810869262291251760722973888029973763537621274314422588921474360405154634516189666662729662947143306648798420494689041297302067529240138955855036749183538544938289118274027426155239658036886247052642302766522151461372582031081166879957919109280479575449855201457068555545784252194084603071900448906244680482592079907523530359185977822279625801320971748853868172096604949929230414998805108912854796531179050435870065631038698278057732642995871392860225068459604413316371984358036508420285716924388487955582756581340744939731900813901193088608276628114901625952151601426013837739354726209234434688111328725327353409611580069290935542515894754222790179815783692350002610131318216440025662281918969345870816352585498033003458498587288344430567993356793591044370800426897784830890982620600954166452867552099081769979960428451101637703745343638254281330704675833643874631812722756111819896154841750473571892698181310077575920260702946832724165532210677032491082931913143407322846803253820348704602910292151713389230761649650148627443613942327704361505896258042902146975575045180121497792420561772591119749585121091608959001172479804049692385464395285385188331889637497868340190723330667644367676579689141911173418129397387018597182178202281619441110497527104461081076021683866997551346231991147220463418691047101518046505404151805552566249211876292938919916826833186369952073795361608002212995037712840260216544484337565756149794266584128690211460816671299448484097428882591548767887713869562266026424233664496044783750826777658070784488898305505784034365076714229821646184437519311479345691324402244867618223751919101911876096803408203553336584002881197198092491198032648925244540790100086560090867551357913030823945239986694792171216172474938581098361176855125779547573212894020220173970235966435931946934939314506061337010344553196000204023526739447940331711052793261461501003221193554171941113978631676035313315855290522365905102960231052859413315405938950869483666479221335313601287428871696875357073202431292104651490142560556981220378794656705304219897971882766547001781465236021889041342697301403022092146762397296666356830703577118287222286052472958885139258167614140733671525564632660883138956264044188748787796050540641111196769854988154713584121011100791210653300206087558040501103486749824339964689510666496402013231306684906731910848343240668476931707536341508232403077063332136524316855855976815310595291229326372862902355924485232805825582313705647327105418543148732794145675969308711697048651881941221773119931969747853115893504718507307663611641024058715508851033882007379577133156096050091812744241002827923287549706497023726707820704014243657177279254152741824177454631024959682525195569504291125206998866308589781259615080177778684860431804976402631124261437634736761674158215000691734532269411604631054105259933623072054880053255185493791256326839136038677139238034753336648120716542402357437528553347201984549377703993841875451313733005542483981060480767050719822706414762412968848588586193506545621067860158037619539561757140572706148994522535223127526201337633203104765111671220726504611100925545671223786999746967444581260812394458533297314373356969813022701861688043019822240671281003445975373086340399229183698050475445951340719587713172933780339148283490031403032508749350420696020142457509230633504819699848238273704795039665904499688699125423734724633674579296931938581672706113104719045034796114330028594572457257065806456355509819298297261483031068703210226733281009903118455391182824356292630867823167132328244109420818315125221295825144057293386077865716600752530692974246608919117788905956041260637064372157053029067669856290442848290581856944249780454775435196685378292404090387785807176650208239824423062275074519049899278708792514933376878398265610579414921779560799924753309173513074321610174676760764693143308787091151925894868403216817788397767847863242726942941640196957112791628791455318472618894991824805729393262906877879600254397045497344805767589149497202423991660486513447533323883756720697044011836913976179475319399666218151942319676879430223053097163845946433099225923056400263715925958153477340670055787272973514274273207209543443947505053432633755892345977581574263917398550389747533452644074650431471599646395322743833762903795360049744627555869207841525835741812098768117938022938941191172810617074831372504053945242059140913541512020773505318057208897424306091000233971417425833698181352912974860177017283556165282727186924177934176994856854584467852249110846217789737712945263393101278713898817363886771323906471459773358473080576366278412658232359176995159877877989262143202098139847170311970350024225028534900572854203400194258581533401030689133757014369513960049808887439249920083081183939047127319506347386284388136108136329469262217554128873037685046816015149304107165210433518551413960633443773522098715900824626578259811126841075573007038144436725382183195743814662058106668115696449010447876181344952443055611423645860452198240522147360261802844429240994374835782141930069338201393750896984905264811083449630425788904447881746746123977586044053031451449820800747430323119594153687776165016233466742849850356407703165573704252907889689959289594909045926322360403967414606840864514081237082088558071950089522724831284978654588350001786627870841709027636115371559281409632816296065801050335921636402560035597552626878732887821130671366789090508584721621380613368531004112338908381731678861285677827499539596328650254965543513340510789910866866262947904224391236367952460219980279708050968087715872141997936323519878481377104326770495733481643469126096462161803251643117126598049631034407260134362256143915012936378759255357717995136915467409919605513110810089336865207018996387663002998555216529843462427366827863024921303917477027811675758543390390416487614597461486236838619079610972134680465431759030844414384753300870798049206549479054171960209497603567455110248051041325690547352942580766897713799149698803965279614041073539833366748323823535209432947780197097758375119953458051351258648186982523017986539741908575293251946262400077695416810807700706658880964207546918165952534029200428156677525671550713665929366126439972079418363006216795639158855355465172000488541610915687129486570287330523606368842645306394293770054493195291362095531651189757707085807133749496684221021422045020127223292283837078195740450449527800811732476227696720693539165160605418359042768598444683116762568355818398364810052279870702557617904238726882473093636879135980627057873272708350538556414033730676926783406671015380470095448202951854575406337066242271237083437247299804680770652259976498410906016143983012796172373212640700599072881406689599647798238678225546051806535565585527565677893578414689598264866844715129570061219541435453548721778705032117103767256772853611065137587156910874570083743084436153183945913722496268337795178987070017256530484283351643255315201127407940352648035612752328248750358870451259679277496154920675545008529724077054859548393124180375827064894774295293300057844502740686204842215049919322103691339591654867514634799809558760217333004232151623637918217189764205503976594611071262307572921434373559305031452733148065391273834606323153048044713116389506466364216923286854158401814291605517070355065943676113786336703361312356023171801336850366797544433382896875582437693411158622239636640772211833380123135147208138659844384474142591426405033790777883111303954785406117610194374565999906557243167736488774042102983801621479343919419544635819772844593049499645871624570484603431523584535645780589766771114868094887098581379895047101964155608549011469269749815920457187493973113307851111589706253177996525517756901437078408982260810048701465240041253779187468556126460578041098864856861885650756573899612194573286790169175557541650316541448271445491777729953639131545683359990762370005388262809091398407666800491863418627923427015330422784353054292492222443516154244300025717765273001630078413416389679081889127577443957233018868609251136827493274806088524027673511804969298720287420749194883847685400071798684078482263275518064769403911956820892079429561688541434458083918343430023452396946596903811823289896702295330279303019938299530435042930113955873696041085514128593518263664841935559635869913562750627250366244624316290683832779947471496874687960519328247810971047356692611189542105020071138838546594324575799629119341461925580024148215637688062203372732106540678601151212563327167946492794764730061136076295063599423271551544757814589586228702042471584751937016397851734621686264975907778983753661480786899323726930226319724884715457422290156317785684568866404532730113749224636448473400057168050312764778972277775513795515474057066765243580027319917985999975770610048389532289468567063302713419363246852867308594129381178388112440044071191998196276552474085483652468521090261369546180514164031043325599471629699285306087608920002789673786912325611297267016995924358069093473215819727562785207964020818652886257626314091368071412368575268714767140780997462869265376127765885237556149298392093387705089594466843730109077632883059644692452348126512363406308997066563499608187317098065532029968538533292229652239946785349326855347266609141692500313983308309798116638102331891746405615822705679937850860472973608435571520551380173354475086024042310283724837675193730872493199452218543054945772704982930854593250266900674065032909950504052356486641117860157713914017241938932402840688119560521492278850625255911972451929283952616069120215128639407495828921460031071342005881845651006547313536742228055772927008277986307349769941454297474273458238900998843000453176741893818541893284586849286308691163807656711671968996960427206239251295330931681206439586690353375978845456096480857894967705597736884026496165274480553041908737632040641491902537459229850738750111748707708364116717377080924201652345125791277538117829980373502827045425390827149967711696738393268381520803838316498592106592728608860224936994891183327153362631355539285879439875857487347016349293147102914141543126340485995614626551116471559775779230988170727021935218397821024181475986960882087550251446627318007201572831168561704063059899004857527369173183196689191023735040769781279760621440855009056874238250998441765547999002782891136108519864249972143717428356227077225895623999113921488372225749884641021182178671167063678969876440669367145268867680365118471412358587236389770778350977595511148483857705934570388694259890626444165189195782376771056360025683665411769553467970138567835511756062809319413652130970169645497937321891814201351955594230731083565738021975475331146135973365757016242956087803067963039399189165649915096132114173954000882357517861079464888830923549864773675963898196070705788432024556087285960618759840353415885236911705213854915952184144223354131286826512950480096006241646983823182301832735035492393669226017346214247955189926408288300382762636875588456655540688554990628924220345250037656224505336217728967313587344489695446204734751958087099942512922126217587488422319599988929976387072924798360427405097176240774087684942770089934956086945493766640265283107306993860145433501877386959777898921038831663369150639356917226700256782181488710171767084818711484536416090602067255284906438076354050983315757907169396108640544558892547487402304283712840423659394525701126563403546103625804789044724272229749007105544197712923692354656022199284477516628138539000555965162091868294904621463535426717807893704271505125915320189235389733014256022513078939969326036083665151709956699162667303317702435085815834683385070380538251954279464216386119828688892326225254630425595265427412495262220623882672303742328870606380757868413024660031608453642988570900331005801260597621889205722698226535919756026322103593005884743540667736158071663272374155150291636646679855530959904653926597674734911704835156926326556406108964097482391513142848812010296853782315406000088201776638015669073031090026914682991100700197838062907182063889917220333343130093749973661390366507730083995772636045395830449132567464309293702043139413865499105148506035629489952923487731152518552761585153958784985040512365769667725347346148920780981501879243772130580138124072963204546070588414168906856286156080982024259008097254416945269744388688937013113787831049920314843346048409611429029896254400960093268437167372595745184117591555799650185743102219655808643664126708748002043149627081253531300568003756253416284394709493197466758877602617269087043055929618103990808098137257837001262003510476321487016345519306323782960007815969367578015303852203852272136457650262429837068137577489572697607523075818626726246427894006207362790708350254464852588551007716088741894993861326414490221458421296275171101994725427617494430471783173234241393422096610529769560679563382852743920312578969560218240886735316052293950615877575555684729264523449422729158508340532274871401962197138897956909629204126462146023006247181250704594694326456020973894201717661100761747602719621849730234193236073239038310108820726353231695966175009387680872155889284856855239100074121020079627321021714385880391921714773379314431580597911928695761353499810255406279270979574915128144722762230456113289560863620691354087359130204345273291926003083735635588419287768543142561946798627371640461604826543303529538187634500921899829349435284091997509044869892606321011622627719141505006025751273436374053978932673061379164216368386578191354672032433485017512167378621373603154587401790122456609913715555617014071902721274636446334196215472050110896357383267310592567126525465924807942495936717796215229097238601929381556631950162650356994200881149009130573481481960620560826807916951722509599956929083430574073056373599992873959770871849556477996503675900016671171044159760224636764121079744232506496213419525169933145154249520902669491187733493780080611939618302659155762807094197589281529399244076514961758107682743898155067938069255842186233893665383986745653931502487838496793491734805267538293513885308579119175352061741700984075690599197428359735157612104840513829509147350749123412184974163287920795123461647076919222082497322891589773275603093719908866702546827954206788415185997976277431935386988221374666109072934452553201282102953349843759665633059866723113158700811358810460984720339389959843283295249886125237968703329420618331393179314616479943365557774541129779431658762108778422178166707302971296386627869700865439870787454856167522526689755016406254205622688582904281767978572582993074443088056548163031008754138443644605516716278788889329232496781643184817414654193533377351371056404190503133732235970563280982459282147026846648856736213334814865104011582366751031947342061877211371671536456575000503401765992019707583116952104657494604254816159520694610596618290116384477410844417811170835485681726675392053440293213336390282130392604516133304016403775096149410920547112755251915550031947220151303373228441023842162549859543194610463583445100391180780620656990157145974634278498622089386306377894102391721949737147343153958543793732248279891251293287667779810984814969273835620727202191899488692522059324901104068699719694327742747399514048869387419017451456886727127374189081964656204951507372868047961168330562869479539711589150653727941195400633162103302520504456839764175828708624344893297615064349234655422896529243080766469457572301384337517723512856694919569985056908771050612022560321938617149649515643413219232846147752731472467127758960546515651969380836120991497157314494829955870504795696277412721330887239865624376042804716181347813117912849195566223846013198356856644510457472224113401498841709572961266706807385976799193405743239717419529260337369396043793356073206641506995904512981731302807106292888094810124966237965092372717226294634225799237785747294014060415729572226503003719850787843076197583867433023149138287933075845652675770151091998097537750160318719684215778391970054136461173730391711698848847815006113285423526920718157864062546388524267942274603394828809750355042496067788446503368798952569752560277896803634495729754427593035346586762953260117571640339442338609724021152822527081598730059249694761889290029017146949084771299174636612508694758862719490158079443806173130251302512949298140412784809559619767316468255483655999649091189766500008699634371880031277591620793847187859121684826588981335033008319324415526185551586983653312822371579708713101354788785773228822730231446729960401408852593825651256721705578389002306457051084622595659777345521780618296978054305629034625055157127380218897719539551822739377115825635563682593245076554090923692362400978751407062392571760697902837320222369468901810066349208671933527217902621793740776948565965652221646478753638340789744383411226003967227576616888783995670311435209696655277445477453125832504591629612588918004450150747094521896968422960731772506702003244774075075793071466874593223338025864176234023509462307633486399557471579539655103379116033741494217396685585998599277589723762665687310277369898045104920507669966571350284191085641482386661518775677781997774722936415479598634207984168324516012315275806008382537997399108826199087386680359560413263474309254189424864667210595285112659546355206796587028966804489935654776428761748783553643465261062050228306268093115493664296555549323144000672982071262015595239399078876497239800291211895745887714492744489690187998008667713477992155327464591202391299023687183354735790255494251146262455463970318318109834211064142220479844645139895642696033758053917212872152023679596173704472995771177080247187028735139044204980572983857588882320292292088458487926063416940344682056677671271259239389458309224577828261016249045924131501505349515650462870046530007339053647511937822983497498780219222174059269936687762815857696765187302655146738538186251893948564933699357551076020471495789200092278245482606709808532266172572905843085870306394031381737418232843160443620661021698923099717074599329968349461377275413095122144341934816863807678701466013635842401947206655242850374047886926717132655744541638406018102633846544007344670665235340872567810957642836336078427287129373661788723253997120829502384799890030353863319123200836152023979038780061481425316866938747260977555262803742889185928817785640195743049899680928779893294749351924883909830166598574338023092342333604185544058565662343928903412430105748402702898391673929288133507214171136488309751415525634196785059677431109718848160837648545490232880417437414758823184505937386763365756457560519950162557224759798312946003364916935938953136870675641187314267320820034087216901338547701687768515108058788493383808309985003551475459710077546342941474009094902627154259549401859598124338658569266425260842928147471783206540994190906181650958499135928189317175145836504505995376220356137794534419283922317817040901520976096562039517979766419105146134351605843503100862777862042280456307525122844641753400560570242329054064283940540711296806141413663876653088480326495321337320999925729283276758389384609278781671898134025555058872928968868975828327116060140946310044823170709037260538624474597048723463391322358956228434381586002571153018669953256637083707220733447230648281930122628722756403411516247132515102586736658406686971897572399511427258844319166267628917825698441183503574957055665112133566989755975127577215808917194211094798092825595959332032989650446920814516772505537598915148742757595536848639703978704382555115398971427045164841230660416736580410209513201815117772929587850471549430000478625122141645606002354086559633882672457287638045974351692597742454667076450698478983841922556035220359162512154642960240334473426568392631344779177427856477523685604564465360847257262947261920212055980659156891091111965198757549283848906147003775702556110742130128714677994529354267566946173278930545551080112313021203383445780227746201066446506637816144304798032152905638043522792666604618660248104957882656270590284257579415672627004855201207989177155663575455838509869989328146174739696835472925644335554516897359163260733204071527512980283023030980120939498549236670177426866397798402183223014530981726467781592798293044884285967928100614210805358256601671407641932464705720861931992004467031949081089050046723141255389027207133698675132657186439560461379148981906836844231080151049635902772659231903875125206264162616103927350790657909790603968295731448816021482470560534006245391736570683959925576495154906542039530746156177754923063545619348613259121851015967239882889244295120168141582276969164547278628328959044704538300262075154345650169781392902943943876143175989524064859646441227896165591030832103396710676541954457142012262377582547803986219890244994296773393703867251736708740308680593083121757294140317213295805278817701191912041899572963595263611445051370636805086473630304702201796870763160509439271419320820098033280391451528563206936029592182215998148359599941033462120516753921078363104773303890300948963454074382630175014218008125490882021633668570369995967927888123647830247570334982595039847722559666770987727018632933554755859815051141390352146722361636402248011905223612336606663992941577618338795445731389302850218919237225646391574199700381923536762849155923738712885675869900228423100964567565274226957612067501836826878611428092055819229302648711483534737149334046035441802763885956423165141900608861007012389919251203608830727518899006276743954294808982005325876914038592276081605111677844132526675078555721101786566715696927858649517753420248836087188739410182206447350907292501410562017100419423187429935841699917136602429671131107769943854989660579498497569660644879389279567227203294347212295061142320910984724354790113790447607740382406637104928263502243920592065576896145466989516113936678318106913969618497159943637473742659127175684635868728284996618967725608231561025702028803826006744358553765493766309049446380743091552499069544462646363294934730585727650742901464881467316355231000706095169331769237623656638873865665387767140110829718050288329788183785718225191763194473841256729134476557878349965708979106868231219183108864403058345537741579819190202935194408417071771328968288776979174358465878123403191076436507047441624366982928685628037931258964410163238790729372156983959505412775188017549434599780351483879648312943369957085045031685966029900898730908400420219515211916814963600221038580360820006886434449109921434023227499804016201069323216613031597360339416448577276903272253924154034833470649027279133267518691962431606888693900945128693049058239862319262787311227813491817062020911655574819242603862643241688870784367693926594768024757494608033700458168763474291035176765226968981954129994339893619008613913584934354637024537937973581931404303742583907261349841321196672279753207667037905474947528402956534889709310367928300230511471276446340988825291145445448537990777529565625349364495816358350634909715501407800947220358095293680301382279224567738931211699235196311851408451838102565955968464038067197736311180816331361814758445585723079612150732037991512314868438802485920601315767656191823201483786739810118179354602289816455218423380924000129382807820328421684526954622864215925921293923651193735573450591004733547808573743187170547438090447289136802399105592532150084015889749710608507978176945770168392832251356933065323319797452675775952615859124114980531241729372118652469850364386258803307520425626416939679450132403737803825270728644865183196602463079103575179296134588249878547014502002778162271922189471848578209265023494196188389548151997081144774204329628861231835600804439642319464507202888674762088793879672338701500128388378089087257742118704296520408376722053346829298286195258247436936565312471768655860617427180539995954326368780484972452513647240837752603567304213689788336129313077864871800132996421529759989802470197670624496822244211969088317077405274970452137206751090020695554270737419854479943302418639862138724127178263534771279336695850455432532527185604009207371007948295935085102981337433251354878389702982893495688826713206407562986042388893492238922864323066985737763979528321930970586907748660409219804443862790518593061298901215424346697960109523786572289156020898266229847656077996730489480076833309482211448145717518959596207265020323715484413942200884853819484847946335434219551134465573586132635202562536546895594080525608596148690071258399334882949780526872710210012782328913959946497446301858530013266042218146871322908522634974589115306668824371757824095918169333926293396630917044166262961399997717823231838543438006759661510429805586021968581727542605294475167781407936517446319404193137601792645513947407813209081670053028260642867551296566079410576268259022220895541082918304248478876915233329088941865254185510569609988537906801031675785421731058284460415996583965810286539157772552748911171434928925480246624132101913551770950302374699278691157055106953697337456595640166400940634220434206922249152221778289554301399424294405355119607669240026327564571113325348433488599601465114001786426952990444163995161674646007894838508184457189244794293167359820286871703382551326741281046255157301240459791363872731882539672048197644674565430080887632992397786095492188073515898043688877345582338134977565684188810597143964843233935183133743290477153056918163294077605663420405588791520993048849263577596450504584883790103376302163300239551368681457520132944310177407084419337274399732814034079706879102153913610413436395539454073915340404754817927806898902541349181920033069072035400443525776519454542574502563454553975858015179168291473116829866730267278728565819670556547350498512766775338141674063573424669624471604745129624114441387716470670258176486847681877365017740153604348675957239203519778938603588362395813381689834553364001377267389548648221248671142420489955864681796001104273897390478261783046389325257630754330545777140907507635918696438062369315889241883552746824322858204091775224678652076024811631592050978474637756014319865867696802032970103923792872373035829647565602029130377503106374201350855847002514140687686405320629832177957429295383302118561285145142898564683294877473521753517160191733237263652955432504880625358463294374884404367628093714043400430309241579641839124909859458460414297456437698169919225057165821458616766438593216307671256354488304419168933944321449871619843330105766693336761511627120684486762833757272254543831687409129650451189128183309091727337570897411747854502026574897581266224366174336562892142633286042933076823580587313072845054529720230303495910084448739553958103131961557279294319359184477475684512043654591647639240668060517745184439470330237900402072792193269376532271561680319215686668653112819820322366334853936100726384644614697877606988301533325178443973355216026037979447879694271393725508482997576623018074082144331353258353513027276243471524379975070687693290855286895081314312018004522504047227754037021626248036971104322752704763554370153834350448760093562778771858745410049045124456631604197409536667551835143828703631080057297055515703399390742061319988831835404377197882964705547847330160024476131335970840208005270774725779121103025410274486257841282859678153323586687954771945380215406071623338145109585537878241788261060007245775014709876188603916583359529197290983220269582089041438036996210857928123512731101351412561978726278604070568054190841943548770340070421576925085171986399628576591922466610053162906464332170711383722867114487948836280468174524462202772555072902917279335852271671969198304827459771028603093672538332397321583475334675672322099755768557610093673331198494795459970470734913477590688903859648242809558148025219547529741513071960810976826037365721712394778750138875968303532578025611480385004225496050674827629170151552885877467529407218334890927740786479353466269909426820886691504712050764133426179248866683385427190116559065193934614110052202022676192195509573924019931744974239438883956094230960200756564078414944650333312165396034770199864735659072340131764773644503726046368872903791553186046404157642988195772891888054807713940420531428880101457210019203803024008827737265053281844419296754116521734723561672250237896173329052545127060910967049018572787029260549328028510185589503574813134195431319778413899255839583822649436675473470071399302866762500613747196721771574796955604067034471559328554711056289171540647753478113655178864679475083207644825233798609966019475315445342238594644061120661595022072251569496188710550653243052052654204645398129165907096520792074604555463570796452349556359241683153200449646832846976061952026958656998473093723128378910021006231936441548431923088520852432975952820768905701918595990812550840166366237638565359017339829956825499134913283313210770730465713201725923124346869391986545721411252613944242034552946412618879946191213503065641448752318478712667209543241396128057103694451556123856897098666479035807875420359039920828564690778396646369181422946123622205046243115454702611009955077523793911028314814954833568599803416526523092486019173975376062458936311276444035243275004739647122526572701687611524581601016072312876691957489437955146465180155644171876462801858674757996499240912567958329873121759624400587316449318360304211420854472353343560394880483145374282211276258860213238385257297147703834744532353875029048297676292957488645939476362686639223219793239861057397577893330476641760714176776154128759128287992771728342605450676168276232914364776079840314464893822063488290701263283033313334281497827408657769782566565162571601551268189979873190350399911941058480549451880180764206309799710912006803619739682060072944140135807369177718827593956398279147623348151032567760637337474256348223713910153808632784881221020755865300663867143944525394728605784530810720978877353661046683834791905854570729577762811754831169917724492193800616018901664578364072920905251443025440033831310701066362649568619258103087201610677173331118116079638977757917592723440840135086215994363122699604892624662097890134167500355249068833518763295269088053089987933578716991032247462895724272381232205544461717980939263854225787372839041120549413589516700331878116601110052007100400251978730255044917161039800282045927567454906581552581453227250015831640850911905032766690218572047562407325716840288928873455245719255098401726324581395643796704429527882988972987848002724940484875489243413029661382784973906160065393851456575958311190216698187661688926055265898314774636999273551532991398220534944844442858069517282491958203319979343541525118679751755713506159291773075832591031908984439624850600126422265430393339552902476230894714752556322255247239728311207889876046664105648190289190834054789379733041029595286611389393839143584374021935143331373861855431891356179579713751630746891513372343805706438305639095315013942588142377966866332516901003932429228081994548421213917484502799698565460838592546153356443519069348724947755111111626799321091326365144530922760932663518522070933787999033931106831134257615479818096987259831919299416740056870769558207250320075943137379068748704897359325716144891280422401755513434378482090040677260113975329387762699607932768458248448133269887266881020302938553401060789117855166649240214372678971941963686112388974931228917635048521828670177991856679026511830384948661849541346489722039422797022285022833396527542618097781360239872074724380217853842116333649179805698886406267794119777097881950998926451991135641472495815100024879678833247356601388419462846717824235165892109242131278584673842642299422918073187922547384612231465491497334968808483087520060473574041494384339802606583819247597300702386301602855366234277892036544331802576623411067438594999741726707950102767817853445521027996269454902926942867689734041041513951491270915643728558473722765636559550537244442463861090220886108267096187436458053176141603386520937887441498625953435468339955114819340285555175812431640603810935869036533047836551460341649637216554945809116914562987048053652329738458838715243656031568933882203325181271089678485283991991580052816221889410960892898845467762450694012623045122461075320850495130606233379896885506568917126301186768184232129367615967948661976536172450227304110137237378690601323655636280165590659996920178547265167486984336686663835954493140629690148179440567537965517526820965576038335246676611262070080157531435096464730840388139679668087603163082881146553058273300661993011639218093287801036446310094732980998340199235506145283669913926497755111726757491862517392000360090012035648370135264919300639106023195865597842203314806924690017498417273123485005957767216934742674500497463445715627651127659677281978957768448622717248458252889779675937889310002675182640267702000005901173178943597738004601325985352141633490510422680831931139181011880481150262009529901933429418463988351319914457984092931373728270778723805482318870484015305655605992197539994510457989405966745489120641293832863243220605933873861449949483571900676791325573170018754580882276042434286684180763937163313459776740874525966653382940698824668034965086826724032445804788559061313778721641298361246686555854063321348838012475967062106921790310249581105044220539049371262830927626233581607935828720800671717439878148460053740901340848081157370942625867187846485636817746081613402403303519385879141423941553318414363681767277392150908543050134088868217284848320396142611686396026743446652350606263429400834961886935571619368337080390207548431721920516811721874346311370665035460292371030567586991941819708534851765810412209493981795877159534485131983023461496036502373044909200707777863860652519949570838891994201373120884107577193280925448429983673402574235939210457040609305882718531946961814247260283307316672607941085050474008128101472335109136445924952535316596115460427130773509261737041480602847088194477032465674217317775194976908266624273785351067973041206626338062925163936378906847762977110258360846966833009277177335918652273675264540931219881591691011012298580389931181275153497156732400734443700615229320390834892817743061700214566863028972741791581424655858875669195996608382148135027587264029191405728644315007139184165768654114548666074179230540620813504349465356238986388993916705506047668440695315347136274952501784208896993325269867467556775589063839165163330073160240055784617904825806229321134720122119115689314870033909248309073503721718534114310396270532155262850031073790707440674150549812469336701795755376695613505765484859495053593019190478475978481802105833350494511745419621829669097923847323904019504448057228561957090107406277007678023732604235537656067495267070277052067686806368632486569485480057861102656287549316978411384752412871430660401452027728179898757783122738760685996274031563495661514272073046325908818140573639752201183340088627223980442658011543248847916309415195428679199330230381264778241148764583058549610265581252923437790744471486426453925082151553764555984028823298312476842964499866123774558959339501351734105152751722793164466870139499687385932479638999158860339342636670648210278563896079949797024377884132920709082185747057825835946971121794489566739510145066820500651784430439054137905573545235405851425570752264859515579701295980923976265653488944487738418653485549914230872965234948372176132188070277229609152005803517554560255101500795991484018934796690883045743266158125276149868272083778680506367220666286162375255807002619702648418910358394431448825735403184779943432417025337044815843396923324565190364637260508890136928917922112735144027547946903046084350906085871639578096927707009164774896713524019026533764481482250993092329898774572185336268934773726120749286596185008158408073651782041829593222097937508735200442562635779210396254519630986344526159986321290027579733909780830582728528029313892591706430775075468084671415531963981410770693025930113053050101234513496539389434194988448251472006849213119478314116974508160024431770529082322465062876209589829616612214239648515502943387970443045951567730229403409313057334353308387148632579874183095489227800938216873278531583773908466262092487838953573402077398992336888842024547905054919014412671712347147960942633375105043647851553618990069209279614891185836709859154913828642689628641757777385303058902688511586728583427664484023879993379125444345259583006219998580555267389182607505525477811936934768537025205587602308938343078094130885436419286666027701462400801546906758836643308066621934427401315799966911745496665983281535382765856431895959907999361776709385398888050550634585640863768591730948696065858070479860680873071261439361715776293393973238088815252162124777623707294182784118955161475158073809516524424974471776833964893866069493798152239901969911301256575332306583698156418377474587995727124381781990249962727451632783106983497402250665743314158643856540585595298207301801610172488492958347360676456393398006596694661251361083508747263552127404212622810504178874393276022168604622090014276199748914012504136276102426063325453994311741029131079362651598266443857139655209301438160002075021810936582317980299759999862085771754571047681003566742887410943069973344132135753537376346116465084474289641647424746054195076067193697758093080992519867952324081917236359012536246451726104527519995609630548585721445950455981698033178052037030857715136200913503551014266790932892821241773196302767696262555821769888940642700363700165647118845985011891305701155557373265086161144034297435566459727496157454412252691470530609401363346547575414011409991753018046521505933511973779998325319194561978131665128408740279129416592173316100051016463001180709005393292403788735844710157691381010779121738457451974048409420599683621666197905904795334188530605462394901972456996927525293140108175926878343038362402748317131754975119367868392594542545089745335093588812524168355603401538317246527320883002172077060342868383714695578876822292752540456218595694430645558375113344904468499488307492942341975464156533939682069650706188942354505824437056644521709427890428353151504730148145956087360767483565957963406641265249001312866113609636099379423818726762116917868096690807374509505059585273766786408614181883170224596098519406116038556663340805763588157107651725581201066376911966529530838850618637597054528666560705446203938709835015932872522643849332852285652115044095739758033206648193495548759126440633808580719462311089885348030820461310645168200453017231951440832923397913042225707560396370724275237193360252754472944114414978843751800542616635196658909702441410613106080731802125120592038241520397569849689230305491324179183533323012339535414299233933816213866472651319610522916596767493320878107780501518574566256032614244385597388431556961060594745025320644752106578240922938357530469558340704760552399143621639460274943982376335227984071700587065794207035711312848105866985912113261293236632107697473350858651972950309792724520453606618280820672198335551891236861206159753743112268436836443220762600070269703770634138211892840146008696727960827902659176642803604585684544043735041110207254600195124031245908312132550348348900773639269034072450369926727127602717031958180781462128844004187161974160639586205738733294925683423998325930228522644047436032684999893768371557088410438148147933293920741824226063574450964071275250855228493621847601929979671969432485252020280197542439738672499544905274592673055481555493798590570044277277579986448966158193736849422883637373867350018973409222923517963526150532207489777880928087652666406754241724779033661048822230996979830048802206874428239145846662972023279314575097049943090656814121929408800556040139608051221328506336821506882494814848956252247056747523363277271439199883312948622206435408542045074253997780185350033027079785855003621781211553179807348625332735026806324023720167338483555683872197498227691777950057709314045281388811163900143366601618279891669058838122276464695319305055456067426581557471051069620682950390992532680208493839548965487462771435602203015872943608937607077002489313802982472151726105377704950203003095473565502358024761259074991990423566248255804907719433030309369178765182027555275581325382389309988777082981205437036668287098511770910286620272357390640075777660687015760288298302410752759731637014616925723776059763435278194631765215660121060509820485377649556444303871741988766803752488184398712856887858864669859562382792966176862099094670929645770503450818679780809686907220568277135410902718422193659250625930294486825668615215500348629881879988967549561516497854016914964303956613915979456431014678555448448628638450285021365775929078800377654882431026174322072514860566140469948131258447582370876887247848644628433412142030000298885760544563338846916178318942037357558822996527202794887696332861937059980502651893554843057268338506335843107531839007185494070501491414893506347648620142215526067264235464291156470398339851848033232002918345197796076959930220840400217721561520375860490541231428240413480375379942151650526000984537427897247863858592725091143432638795910786590052867755276563011486840133186953660080853544739490410088805223492221563850857094163110541356515351127608281945521729665999193990870795819200981857824976968330987690370997616097854821853587763521477901274910415296776685799704569664466630827025975415008654334409790478760500350049838025812508910339948723675056704133939495189291684615987908055678936448208745100205369805347213975834743265926928002732832026424574568612170497027206792750309706087390237613075740524194748815061516946599558697360856553850855986931709395065316579906213731061001404692449072128619444389435022548987388460760605795803257177433254828274044923786298955806543024549070206633429851987469311889540951055120001442828520531707192596152308100987092462291117290022992365977488306454068674845717768748208501930343182197972068953367430930825954570043151453567705419021871539763546431700870987375976342726103797018945579575053923790596469070249461228393027270660415609411527061423393462399371009709858139761934394412658415471994000469212379896983110915694628705797272097526291653543867593468689806739268293908941042946391286012686813393854902036185156410768902959774549796105525345251646676953750537765802083272480176578846624894704802814291363494387841187712539748704606269810557623108576168288268147100170004100212563851204443938258991324543993638006402239476118631722723754776999509919581292122363465701794850386521661951314491442464117270991435383779004205171069184393841166364393553431832505765530138848878221470625825264133741312381729148719130622800957112776734180513633077865439138198895701306694059908092589739700899812810917876941302885184206971554761748407705804998028407563855708719049362028724265421376338765875398195947900328351791873658392661644645346182724174605173027179232111499540302817730689436379252097677331698325668461679824915643510204385942257623273318906269409802914389705993627942145334468718993542275050134239159302816136012906568479177748141943326955355713730196991967869570051562102710065529561920703575994394222235292350685491905998425403910791797471652034264631264392691573687373117331252849407809048970930018999913688340377719609667131954195841024069217408134323347806952845223052020968935813207694475619929310774909169104360586987029265657697362382294733115268207382777018442456489532662925454924996183681740320817705455070661760942115127268041830023211922890130700005831203376835932931070832654851621602444123209349540201115092061967609544807540088224035059084472539004396322015396517576938113695777756622844525409497526100983449879092251396290703132913249788480806832001272556826151518673266795638018963426560778274689818761745952184820211306309156531239302841341030115705311025398170948885259391341048049437111734187668130345085413343955113117863355275911468825933155149214112282117603135082798576520034154761739413223324392543175419719750389357746144593578022427670513813011638542813831210614615132544122444010820493342998987464407187105621464133246276436431208773794496924078309188281987979856538873194226763818439965574482352732688630474314033837591397485794215437798710320284355688971591471293565803934216569561570687085976310049004724778231133914990878689430998837675809553098423335768976453325432954474079367050376830054513746920698202920693655074854368128975862327551265685922882179639110160783500694272314489173171393719260152614450433827687078374561196044009259452162989067525186567695177055667652697885205188876058275419878372348341710717352276966930013674217112014067569397646122825220136961739017963855899855305380206400237054252327588346749068917029213849386214941450327461633071381869154052951521415483756823406773772596362884641908621239269001012672818909065041311395408022319267339925988487026779924007494559454202088598646123911297333975396819387256655685636196411652345993032306082522678573630657338266019871370610977036662278436590978554567364769536615664874737509706471031996208644527097661437070326547223775195124496036064310899742918369716833257871695478339210352505923012230778761524302762755117694026078803267471984863424208508315044236907076364330540409193015740913149841699978106240890153441224496727927733972334793742308973370275030189721803564386486071002651149951222529358325599664421947537537339937357292819659792969321448425253666788399776739582724990805315474599304712935641024427678688315198091995428667683898737273694741645529938104675234899136613217855449990709104728813006283193171611061247766073691275684312941716168903307019703222868486385659746032145883735016545767678554991048934256218739032556635634860155827060372316818734070879879400508150471246266932198293438609333817009135682051387028135779139435206690432585922921759220273393448653264962817892216469589909637496641584812625154839996345284672955667247180451161257540237602148533114419398898860139986370780214672611714277436187353739382711120356693978127944019766215901778596665744336915306321875465688555945723231274335140058884946473966739980196712281151178930974771315097912945668589884731577783828213656485612701655919411238955176522052569729069763498740531302184566648396463416607646644583002629481177367909077414182367430035327093898459836803169822785280225262779467527528833832006611858865848899122948781760673935304784739605443675094234800524747399535429688394280636263226039793781339760583647091381430595560525331575155863985137297526975351217465158926470648752654108087914138822133309653050967975421722232758803780530145738343407684930376988433078067954400633070196765129473466618597124395332074745854005181109269101229231211807972326719444432195454454254186991397722926259554403262103616600430228814856798744235536045374383800926845280406123843941816073411141861562347809361276836692947093413749522820252554116868032485880593636399248761310801279323892162810062703498060938615867346153896525541629615757753987443256948161219381988586607648263927403151615034158795037640413319144249096233029346880665776362290759146046019053480896133803353367719901659697067017852603692752710151659484203013589518494519054744705796170098964397274319849901267904907348402915026034623775716804529201614136991721934057550308161785472759223646258189987828868898717909861711574153545315811457041604626192270178195585295291513373557516464828780378104943548770884788568988240031641450430568894810511885897665026663804895739149327590707712423350931781073950380376396393071576571071739550980700072675882610160726456782086768031981857440253033701346456564433705327516996917007844307973121480018979218210785499590646300000192001543738161547208470154263918213213247616168201152049068301240897433844578676428038876554772930504965125460898059270356344567711024628387610359423932067676323047265331755373991082661376858177367229122559597967216404702133210803760585565115225854018205928777325987398984492961415871260190128680229640449600685945643642211190046742244448233086991475889391399705554232360295978067266476283830917265521705224440737608845969889059094567979862238752913960482518082546450776933235277316738456758620586464134120302391534605294664320161466297446153348162741005664322300705948807818852211020021356225097768565946161442066958027801087010615238201818044239920209868427704823720446650068229881752969645112883659091337062267237178086001961369654651886588396173527092429261352596845054351064613764908558235051446313260277290484533956905783147219630406007248754769749396325313081547944158530159276428780996642183762950570856806315504389347371693447403815914049618233388675426733852875474616524881536826718336529958242130354059587691665399114205018287974704862118057723897712019421932586767971042079767620779499835324711541768499352085104811828341934390813515351830477962884350782518289291329749209643613756221762463477801908244060790907015748057693710053604610531377740364234906890587102629630835765084710280044291793389591704170958286611224313403404252705119757613296802021996406157835552638769541237614540554801198464511310155545952208485877071169446876985558356659130191873004788482704620952515787079128408452844694899837551714537984128536127905502083632207081829020419284067167968996382046438121147648381250973421116019454185738546252186397040871928405014960094825845996277659665477543639305813733757648393344317410940676736184007009711465134893941888928106612799841060200284052642360999032318539229086044376392075997675542150578799833351387273023031378800390588495173887077344213540979035722120853381505216233619198262011137788239245369025528227582072503736761995012847904053634125461160340158191516042009410091972120431932699653905473544892480344375347802596172271910780423925556275594768095635382009004583971333169435536408182312211085608919361087617552709685719505602552539662225770175547393607247235266149807170274947370936257849556930759908682930079374530042191536221560166419920515582776582630474883815073860374333592240398110967577620500733602150856473501981035053474070698982278799133849450269861084644680539838004101449756275377108031465289391840619625876381705322514524924985132373376470986998003376981441791056148225965065579925899268504695866471517152737326653573291466816171370640281912019614344071485454719805797292923628635547495381774961275302246832345698750043339450315170095376302200036636555820700666649176325795598693125355826755045264021824203276466296401844731707419734160169679107431598478620343794801764356965525606982650535955929922157755655702806070222818009936998777378661631474511836419151401691738503188658611260164434684141969792627891249807177066200781432899473213562229174310326601725898434216187576413878847018381118930931715010572431502618219105169174291043729365140568265865874188881592427231378382029223862682983879364352988912312208145173888639865620419123864799033478004390246369279969092242138543668679588374318632584852868806681086675925849984721250287154683134262002751607127021494772020768080221476261877546251511814051315980592789209876158558587974257152584486163645618486149989268949056059560118872995915514419587159295958250637465549735477849413595429212613518580529826588193365520748523493094962785401202806199872584519820539239611151180820825407781271092677193007713072028380258700016687312433540144536900803958902306795253156211477005285621582902663560698400377264183259285745777070980304808346138903197080172570355148315054354933713344200159414451807198690327740122170261818221025863406862812485171107579587966709062898613997629446533753167094420539691928635769614103206955704951223242358654678616898613126921182617244779037322314401755187984060696449046692808480723253885777701396942523839435616892267266817735884792871928844544996786965835784565978710018899924555124315273227183376785057701611834893314415916317423483912194370058687184881547138183670533504616295502912655250778046623899736956499529847811940356942012978552830356379959000582294345269437672748368994281664260045712568496029139195182565939311804086334508741079682632483189890759140170674893402845633302990164665292374278713401638520946676411168475089599117941342068468883530864744973630948232453566064266815578430314827538217911228022147192507234266014143697425794638963286105532170685487915205541838014875620431224623949697335342025036271736202200464979620818992248544173617579611236257245584746486330769470769512224649430737000449892579457725091735603444706252985475262449007068360279092478183304984259110834707981943079142959034538970843673507689506084444087441313407574041591072063810793891511733060387187508491772707166734479940800861663164666377222089880749927712770822671386939298214477071425816041649719088628250488154156159901840974929808474070751597170825050344135742743350749693924389337013370033522496837263843176214267370596200330599358064446578005433357479184563096226001660387435767420208316714322869504109766717998684545225418914261685593655947167586020132582177813209214477384647622506745442233491057612659875272160568006152294315872751657001973767722444961164538122404677047055280882845058544640447802935522788798342080311664860622503839356998687205215564904446434858576226105809346860529730589044270637512004620120876003540558449852930505241169574381617230646912033775570681201476214813927294471608171383722331298927427282101436965409582032323532525339618834243117214312171455381137492545994162565161817284410241648274929371893207392668149662454591599523849833033348292184227763393296117152306641897908468720807728888786572432411076875450705852642518392270484073983830041883954807109680234625467450704907760556065040885243615219176726935496171951450380102991415138641136306294018218014282214007072498344199011750969587737867471759893455346458906456016628148788751129188373622633808880768614351522282997090973180743080471935639994995002723217135563696287619141261121914008521478443555391570625875893591679236516745248910236138065212370948333498741428193021986105557475586598230815806181951520574804503937879149509441457879247818013475727539909318637880337212720814426770147002069082159232395291919060139003825277526968657113668626370827740698479988307483559195171069431364235710993473394890781423989627616187909653825097650070126748631377375292917994958322404397624235650042244726305964387192076393801826244837222494103160111628959490529859487409012875042167069849489248380722450538036690551520556490235095623872716112789459659775780723701312072822802856460783037725851035001126384149789219577728893099128472228278173877955044291159905996074013887901607533709937361230284998072671244870038441433849862823890565175607348083616227722699842054095225756615661271025434884814894680859345644237614009170637205234388795541166885731218845501544761278232717390690865452998385248009999591797683055698122854640775622947644524319887637149400725211320109580614224544330082327353527587345417018483130832851323675344946010252821737227755377101371445302059729488581541132022475766434015486527273508801600540314357466558249972010223484551918839812381379597087452374987188076033284271755882661083201684788641176957408077508012521115768846923120558745399646892614961523772815676473980418919938528075760949649556858732355841072772322437731361834502100849166289345229084969277205314435270472867476432807934906009036253976225508041545716482078306067602494941194649974534308356136111346382242743074859423606019960792671598017115340984813811697870264682501178828646805852952486248733697985339832260241864766752106596821213008675603910969450319159664961324177460856532552294788324005573430482911053331976148021344714861124705429652236334020004070131976572018056227854405203693774383289660566986197552411343928562686143835566110194434194604557254206558175033005845944501469741475311856431954096404991644779266517253048802893766269399493124266734981163510820020912022816814217751202536474285771633376748558509769347836701972678899601771746506596399371613145495060542624910219952339161329562862217823733732362928970602741596505404438873958614678520446415873584752294233251694365337075816682280532151435153411986572049868569844734501900841596393793677359139976636260188361516215167772815707994974392119470544819396960663758961485741412251348648630932480981473718946071240082996336595684199996301326656661579295925429961389042940859768848981876001198203902515652742023382258690355859665442157296497574428769729802663715652280364232974492857980488002958037905070264037259870196588881030609917423806121550059468697367964951470879165098826114675502251985865062260900469000479725094565863733704442453608373558744615645638593952986576577790683305370665790145480062761059050311250144383011550813193642324281238177935516316364404965745030647318028150722494069945723722129983742732585059821539405425365237170538521304008588055193096775964402034334027964761223356411412648468227862597115811501283657732244691393605626503786304823879324345856628535779322714924109952621785846441057146694848636335558699862101873240645218832863893168274456900492704128932866269515644887772981419829758775367062322944714497154205867641558622908218142997272221059985210841951027044513223612473310495839566103876290027106064016597409842237412482436075667921818824803711571669772517051933969784743364464113223651137436732787216989740151529312143870424699489671869218546196299988998293955514274146592342608743344493801535990297961981951570084644300139707357999681437495895220464003204492256126976482731789700820809213269737687081835079687648300745921324985590133001048127246306043702233489245252376192339312514243623367799985921190200165407721816477550155788742831461860056448272848421683123211267607711791870382712666742769725146031679882086159150913689501684102717118054579423901398473361708818948862513496568251327111840330611917257539137550397446645501220639319377514090017729308063575670151711196814079148339120758556289959861159137437987258575584422767351215795910478458497809580028697289838328169288793800760024509134425218969577479208972731909152527325634747517339914535289992046686004056441933213676744439741232358645512105171167262634263462975534213383739950404788506570090541079864309538160100550620299707763895406941371991545715161291798341703141208326804940498412722192689255963067329270791416477366808535092537350202889020056522451773452672162221334397999726153424476867290070517447113104902998123668779195181347143813908546286728925865613306955564968180924864549462705570797448950709853303651338650685169809252940804259249176539379399699903669414634946990537796258471951779936971578768520291800573112438417911665205957145726540964366856130830998447024359364340084533495407797619496621079605617722454438664538350937100544938332474062957317586865175865114793773016214598547378720230078125795559132191127054590961174063150110760575845384126200740246125546767761773212212484082243078487171341781372650391862398386398703228324269307136218126155848867256305793811252405270367150194706873502175619631806480498128716783923714019260867173177942158057758932254848793603187665530879750848642153292976645592349791741881422864439421945866166471797896181222156744189404829678874127009929332529259966707665704857248700293767428929295401701426574557061244218033245071471022853578553545015462803008271712397549797998190618355614221007507097490258142283776170300673613310704330514491477527310507261009974473764111649835060830512053821076486113577713849015683753484402570980823291783065539908283359283978218854257504976610716973503613388215086091962007310535658606719965219556824227710543254967816959862898680544802879847610083731115809654903682343774815346530038237314205009439510478496933254618008800613242463367479316277044685582166704361512202325140705215231982831743866998641629588378793529642570225578763076994471997991746049423387886323735833125526620490847182372786797259692933254973033263136070819336491357446833520622404798440404285537982898305620578726695825832799461642683332345483507521135310459647384391642977875716684956182363953704641068118735793539255741828572056945528405476320284786891122218563735587233554707293060300777052427343131893277929939764389198152863256779020813980442553295812693166334177581717349264057132833640272355081360901549395695430819635887275788878199645780895388375641648147646440170241784894948992128944308970701837546184661783097131277360063359243622096253672650280119053408732772573243309264486139798031704544359527564297826627238277934585332223284181816424561392395116368454750876408578725659018385391752912797317009278748616936915023132043958042569692451306664934131849893708883556051278849280502112933129804829112201952275355398579378505279177114259475269084344076224322114144995596771751419661088345779522316657765825546195446437294254367823251281291092880305443884731839507497527101889720520035236806481560388337041149466825345240886743480134057751159524789391809529133396154030711215925564414586587383621330904703071210325940271812801819018166428356108010920629777883958163036268149108585817493533473849900532561655974925228912328113862523360240796639357098452082640488081306445099861222153054529217516280406274345459715977558738370148421460372949287205297209777171311583724852089657255663041149968261656509044979320951745784697890216375391095261388526636822582163114991902811462949775346764601801298781208925098387776907077371753906642643689223717636792952712011678264858261408749580018776469869551157100549629767292891000613763015121494983259231391417367051302650882605133135693210841768704488755862309983263543550144480927675658090006812079802544787279749748613670596808030096091037873831368586819689900229421578352199233801649969743812794145198409247389995810961993694054341816308692512138172898918431442827608577534958690436253047124410262228277627574413827552905429814176491553536255885659342353987896649091095982890139029265928741652751233248163356567306868430133313036074015085461355431136403627742969878892256672637126385938660734811060548815141281104502551426844407005382887961543251772062720298351178528402240494791441834058463478662946968764479759986485254053288180648208020972793000121482784100115995347711479129135978668960369702942832320821528593333432288500913922115764290723320212269263197341694886867912814450882171196834375831484478177679741999088072552561445848059326481340519451925904890463081262979192173083494579566641974090744998132952191049887208867926688602387351324176434940364444805170669043168559535735298467686717437707522850070443514876299882916019372842313048780285731812179342494572102627316670199453155213835963754773932069033484946996758824068201605835768378652168156432187041863510635175679656202141586436947714631502886032459040904795193169286704177652909156167452700734759300569180670169916655606089686461262029895612428203959545313025271116492787313029523868050176435115270735659300507095443257660929125236994789985374362301579661249700460164674114843689222566986622669447811605559287528771704593410618059164440230489376601474406112210568877693163838970902074409900819392901428089280078676270612086243372491879768385161055403172781668893904115195245009275081470068960575689906065162786675635148117756243400686958743767797226341454573996887943222606942812929047128626529102292834305512840263871778050841052122291931857283065380798031963268218128696427409017976082348796859726866575552632007795227402463841225573565221361685734843979052814038572666881234093437459172775328417908617186237108968773860921672760429453283498197094927813544443464535572618223681223228302154736312498447971505304791064084382186448713688140804759472752463124722721234541025647524692889883896470003844363220301633810012035087337495196520053910659123391057957804077224093098270133159010670626792316387199150150346806920323665640317845350178786113132648254280712603422947802214010180578872838919316506433796562688778460685946859852023722422150198852202006104321706206538447194032145173242751715190899478822133645516613192769394993657566237706767892737332654066768686734188594055172424175995308549362054938774070782890192429730706485404098581001989365677568812312028074097383181638647073417828594729947144800493624238553073494756964826475527075387967963830475810948152320620502962364600112009215682882628839428776015760896857057343342377626008632957410849540554070489192307892043351062839775600482834743948487397592534301993681799974107493947732830900505263489910764824654928337531939058729984657977722272380253623782501254024464756898075486064164464830529728229934414212472601744338241192708182023346772591987239371516572475084265215975993195768362404222406989566607830866203279521400890545438535719834872915351497887148332332090001633797296022280194376309864624445726670453080229095014527380280902133105756360359855539462329950084909129436558369335195792112669928891384808555530133650619239513765222603399107449932064601851956262378968207283819437303388225292970351948307053802753281007243719307210459572136391807038316160387485542859041681479595687146027146890665761597927110732672047623972396633610658523597298128607864679052115978783239512662894516554238683442407862047278408769907112054657447173351934639087556177553210946382879198158296014480074236296817238270697159495329141519709957020494681283859332681747015023592620095066557254499814398895666390316751527473377276184399377177597297195454375694899193006441342876084517587177996513552849482323325809872195958187503180519177964144473022355063715787166003216275974466765806258305761226279321955549748011763242869113380017557551331046840810288518597884817751035825813945430272337103380195135482224235841427806098041604401904710040931267832940301801321475041446681765247445028427338048886867670925218651041585230748591161809730040417530908171878528936225179245240596557632490372065461150634483015342161392567029349041156661454892748127057113259803665083109582891600956550432058591572540366854978204305189430515607098209580802524217878382748102328897262701627622905813669546397931243574205162718564121996354989965226332747921202585341755021821533549999188141455406237870405539654645766719131646318791661115889204515874525756176455780708313391740699483457964393260958756661815121955904798181280581274758329399792396562999830310406138633478992608903448084400176246070616527279032728093249722335890578407052221610960999955109350491486291326168183465296056187137832032968959901781864753372837185861515633009802158058551919347764512488663854030979590271325641276245464792975653727228843951996743266185841960178678096565478763969742257219297895579817526959802683937133618692808263899716101441951610357794624425327892920174788270146341232597492159414714335815896111295901767547430408229800915887493357637333628628766506241378012505115001591024188149507547703663930105890920692777479812635299042248308547155070810327522756413926324297913600235029154125683637205048717458952454135046759368845599639297199069098892941279829046053468494784481481895482387981276409824564332709613165168281072610904069813129816851753763426014936650985553258427291447465143265950526503650966925523377157816851877433007434920819572682889731905858359493087477644142918094234722561816595318835193512244087506508954234516760913595145479975526188606283082603250348140576086082297110332432218843877725642002227639452172068284932766077228492746910754589232549872705356296532469649295909808412962284522039107993492035009166880145909367210628176972869281191257470977868979821751958119591903286158036784152209641373643012120815798990758918371904728869300500772820372973655055362412170558110536095128290521174071366745722679949162351614692905133378066402035586458609196363689049516190821066597577600266510403274829045895459218830810480941918507636119988392097172503032100563413916772143321295092524244909954468602479079161179802601130306800272350718719732919307374724737889873586855799807997954154285567991662226568511226404227640212585117170774574965796153861275960611891254176178538694994756290695544396962898233020450273525681202639446126319885225625843133250690775370489309067633947305472900042469939135883533440219635944494311883029431001641320167435528594721454811374798108404326877546149238467981812903247404927752764970530210487059436700705745958278685103081522281954620696414259711059333880857589727473262748582968046420021354552651937361843727035302859516339374979423394772130106293270944188309356452624087866003238943620615053142199743620555639191946592821047426740666279741163606120335226738391401541577213317796314827293037398142307794564523385622328524293713146576161082840872145529759102051774004009284758635914969387317224956349200401624789031546372045851097346259687126991392001084488242772899607725134810159639259971681764565944693485498215151762878323112853295219291223255274545401832300346118398339803521678740145337771574858385334531817740320983622838684618830323597585906478694786684818425392200034835394551462883948774615764835104725546269989285081696718560655433615006770185405852491764170737477842786293316302309721480046708607591370211726664418511940854574262339798924976829331190282307823593249901000853201431060796950438171222980268760938206836660408588843048048429782434114128109104415532136486192526399161731145247049890781537258714189970938758371546342770521911927712570372129035264033775115421057165390632827553482306963047530027430218837079454848127119421577357675145193914518235212369886726404308219676382583538139417777126399396744353306650446534883355026573916385655956797519309922578724326753731529800233679761153411074926736021016976585521311045915006936702644686878146548837977847962041725435737273595039771875466176897540630656311927100898846865023189160293155387394735323306637350957915228251150046134042106911316716304579149426962924934063798974162557786128121997553768388164404462949011809979140972741782422627082911805398305411280545836631160136195344859049389896108047470505540931990189596540097536619789476369218126018968696906200760184978809128821669665492675729599481836905834312067087540937403677093910098871104621260293622666488335517618853743691590549874645897943836852222324449163677742892434034755137715184143210094452289836917403823794676845427302642178484854378898369332118522318606274997988418049435780133308609435784516033885653815990697929077663744795297369395885572728885297178089973929528244560830773820145118909889504323798455018287079320797696445651784055920017482914235015372432240612631505294633075793153768039092162920824436633680264876053810236804300700287669848235683184079032545646699464320014294159590671299574666661068620325554658536572043941079598781323050914540598716844256100150622537744985590571862663367937021008122031380869826403042713328533993465566742839361886956707751291924571564993488718245062171387170930733612908348330006972825138478667837385440664862868288287691824787085589145801776395865775982911017911539735461262171302786170739239198441391466158704063236565307896318652879578761482289616207737940157898658061088851784343359093821677946468497456595995076449337739942669685998942143367133944855350753940178791354259544053190157428508793579186545248408527760047458994049460442597292650286099051807364953072187269985136413104483589475093017319181647556935607768981282288486060546942262633613227102840378479020022910463550494172726242459995001122659962133485056318942895166870217067405667834315307204902800396187138395682698522442608367190419553007543011608066136105583365712126023409430524399788576223429922893438116280840703235375447279614993405732669194935656278496494417203853436995499082900904762256112065253401076736986269245315706350331747508380100022307071667988407640547861703186819075410578991417033234603924314597771025096126168990595384959871541303257567253807739071651972540336348062341003140667277431188684812008018925477806996993329865998293440033507787633358377949540543455195288054554334168931586384708756583165291606991592653374217517238537952643412637279612995280668151929924147540096807293029295887978281850191386857578145679886295529291148037967990172846199801904528893127044957143984429995504177843047457659051008624887703328107602989143073054464266421467035002772024320316239055595248375118060828224632159148563608084833653569599975176142798101217597690810190067301816581820110118171345905549722595137482668100209266798508059676791200477182867588651189155410712577286067645958458867959178039355402717669438984447737360127513570852352466768096256471376118736885772967114032327030267791643102511159763559762181429658447903210064104851473705198157259037013200468056211654691926610784701747064330365471188226933779447562495019078850050499591865099959643824626831275941500309834982838944502140296010455190216180830295248408753868894955798188514694663573833980679888331192903469208335189079057232202997581371163531230790500840198993825124036141314337919183812215943658745568673409640611643961598488476045135121971889276963043998717704777160931954379737839167936268379611554330612945985499558283356769997725730996352876530508553301651758213447295323409334563353726999296632969140370952264355907227385703153296476620254009180809157566222255665515437547631521295247961605437045710927373733777601813584602074601889476584342064463995216899852933487466357256332444171129293142715655553984134810826921930190362110666955757275792103326905688080523073039058800999270482949726880193762973695556634141591600399029294627778517640217294413589264442804632001028872161315217587537499190455191357514554645907808403692222027216228034281800973968917279591495892876649413199047006806823822378549797283255767400435340955193616784857208755650277043959692203534498038442824165420046136976386141252035135748577122329743853059219836274118691240716122857214055250316186505238936947665624992121697274573006278152636473473895988624800909107752976447308684857903408731129709312175360593963799798616157265412125567275188894593927132675254430732950983663352963293689021324391378296275633314789089251341594544718314049093272159850626023086971448129706320341362133687466738589228797922042544437507178877085538273772387980636684330293232214724485496194728611783086445631528793342332767308247318654434025912338762467880551927286697922632415212560876939779041992233113386794062372611809936459110302878982613050059502705896280531014013667746852357353909448258557997624065969016805450756342646815450693831746062977050922555295446674513802108732926862846667550639306676179349660216647375292996467562441119673862912840221435375218231871726113639627325779198782495273642541770223820001790514681341130656534684295213617890296931670775534439531698855924226395423004718705168676400431436488068697085351472349499302472125855935503835810046244080930961715581072926715888403155694762175867358838440095735075322211326036557388074824786633082597630206202882613937423294686001535529783817679909354212017580338238914270074544333853050028095855355584018166733117790526779166042622493322951972094265710357533325928150030699675938068529552906361916343411873925647278086294112556610100889268188668951937975960022112907833479291729289752364227065144186539605000272482794745077808632811592037337045878300559873112390901512190275937868622732809365850916641567951731211290820587308654926803301294627124179573452903758234725530775564392655336239803796987771670369775096849613118621098679180959440609592744691633946890879145071410535265484676438814524761724881081919897799951388559436589852530694664465440914410766191493625035001820442403799771348123060786178510599708151063176721189632619660704410247325647854800321618198645547772121486446099002857979817407074913805935015404117045133620054013952471002028092995993772018528579385959094274187138345287385487048030730997801532249637310573052597730075893257558812373668118221879312911709226309944204929068610559314513720209134770102927665639645505713028852402451349782398230230859997692726795500068158311071830873682745344241129334549533622588483092592597316810453851573923321366234469706756866773290579580599088251593839845229366307039302699947275700438156702409471977753684237779240493887839776040988322572366075715573035138303733530219010234320743891584477408339986571940340835996249562821613860261101814498169021166894455716266873857396415184317645802815178076701607555408807667034727717718013329701098088545403174506719860906959686094991362534245965568850645949032787004494495522988575638886189954158453604972427831445929396950084676647971938599196798406430152875418664604534006671545555232817332912370356757185477000562432855257239282001739162820162173329379508633171861278816420913997928166571637093594881343941066743660156618227449712498303191014653208432823236780253123695139844756451994553668043584143342527449801880660420382139987507227622651268117959278222120905762547153798679549365495209164957332372543406470866431402593142528894445118454004066711522573327412859079769605794470650347375542298926137845896686253278115305594325631870923177090478648384080611421207027608161762970892586805817090283060928817765267527710786859022239967461389185715622531845763789196382039744512033825661094546670228804839249520235052395441080404024852233036599182987823907675359355150722342328553385936201889208503716413437601325174916819345013107780987323384516010105462450720249671890541996779321016155804117986080435181364795606916667722110536370756324083206391673395138415203486232874775831991241815204125243408903508411152855951312158608335481011022040574439710129461026988521517702622236553036744816022319364086818863633803900157712270177040041392328674794239730862340958221929076140669561921968027947794452579356829241367908752368845483154212984241507543977985623179514234225007477866672351055146386208819560702636192025008195912120602611429663239915333307107687555649497974060458378788122437950971930129174287459418980430600545927457139225507025720323956796580314856106198103288242238118383823586190940941025360128140745736945364239859215143569203518686726121634879378823778546380359305159458738791442975821031378327436937581425474042126702147544111617035838116283986408797654973577780179686231677970733377280304969939319761072750287583585120841991219345498955668218515050587790550649787518227042986247245974302744453116747000045144423296694162667796047077222569679114895415584995243679165508497724700569260856556811434600311861600311167859829659813950825395775930826041635181300731197734946162639575170944840265938333125194962497352284890887798958027794947900798884719750271304746661703618707912528007366707810826435570680466039480528069522912866213343278486330569548295752428059612240663396216130385518376807398023467391857221329966751395396090305502630997301747417029822615463263198325286162275488937793674899472999204215830463033840338345566688756905271924144134519079954356765233695550055485945827521366946097284737339174595423658063993059583725453110027171657748135578776278604480690794551872522463137129244633796826061909380833628230747537388981488810730160308273622091993026928122245752117928447479917342107656398711563354991429967875551107666280561637587046837098809815998034422310906321043029113590779584351832887991886070168027634046360884905725062430875761093049842296186529632242837457935220186529039507655406783619735120833868218823105632667927858465490708283057965900896321966444614650458626083969676684297761828473249910042427659528923784547023904796495538734165767783387507763772615932255082310666434007909415166190122236219701197033302870136937281641981138395129108965869065574955301980011447938448463664592222382012332334438736062961860145186852844678933895301320820439399482578044002244337519125245674310221592612451858462170535677789390948394771484011141461665470134607273688411598367480743524442815530499544054535876262314638223726056906601639193858177716972278924491334302607467754088884116807444399540575992387738407821104522206920047613763820920771980414331914018631137042058554758971305952790641154319884304587558130204540588592842661389019202708357361510886908302921323070849185751549908692982219704198822558846668808317187054029853361406411011922904408574721721200894547144443080758746730227663239185299273480432964873810642709653901681020071904795298441166625106133991922963589535326120296257808166156977134631587866355857979656885859273573539555734859846048362821353138580139525684074792763421234920455971108070952144360148857484549586794159774372813682304651669197557201512352717133973627727114304801494806871300697471451780196408989425519772291747692004801746754954154418469513135681910153526264487274944104951812692782625804070041952896795266045512856342221479897043459432800992166900921610757116060915131679630597613640076344248049081950206015519054952987219662708331283864167173907553350516992384774577758228709069393562605968670780550502753535585202242410402738319117050013623830649167438968582629892739296456173267440813072512507347239667952698541209666771502127548665523531395652605703270846068806266496839581940975070438587912762903281876598415575417485223275088477842995273309536850831588034085662665691097638475736840537984183325734465688162449599156102845135523736855775594335130577816747253654795514877999825208744762149132322079379124185501461399840409529863782742090312337928989948965035886869319878033658433955196486739682337197402825409555330170170282941480204548546969191135550255687559926858320635090561990137146669801897439407766011197191939663147798312688296584924064179605817260506232400005672666290626606341300619255796196199064160730124436612752776044495010067416324500499562877153362381047165094290689504242116240338997561335660183555260239226068535769971121708999629142426006110421351980208654456646889084820698457418950652056229888793273922012260597183286059021826219924281937981329919129316386420418500151549731809868340804908317319619635893896816462786094726999398882244377625672406424470078156082139958919541658915986286467791538761926397164656372535727235765901114421131135601749933101967876545138366288065427179671133760811803128824699355338292974907778224270042707136394509212655642709304944891779940227547198357289968428978889758844054504516330830981956180470231984866361384395771362243275877684108525284105660046471501119701038102063822532715992382245335892280722038879532850614416636598500162447055813164588248282575015655810450129114644499095730869295145664232216335657985863570499599167853475802612428030316026964420907476334975317426944886166100276118231286718322786298702631331185962113598429137750970165351555905031766572953102270545989763577644128405805484314464865910335931967795335519378668780652491240009390015433344298121476970439076137086252664248631332809979731204568999366342803160404314660659884777818764427109767672219417440404147324997951926025624468792828198870504179014515544338193323077994064843586271835794531568313827075795887024132521779368750105563317980487469661138590772154714398098256423264414539482639485820757357440489885483099710114304081172797307352047924528330409768563790261158213975292030135569691035973918452600559100203551963321968695944532040461877972062734654249855261821632300739301296278111718787609777863493326381112113211882650951612188309555667338942314811662184425478454414439801496088227727214888240854955145091160342368495089504768252488407636930767875922956081431166029905232990229604178851113493743898173545864878091170019393399587057850160894326154292984884065215670838847910319377734156308849394818007057044900732983318240983889007515818725181927176264707769729506141113158600886116558972081048524450434604297077475597455379237901338496204825378275440206603967537991539173446910510384970994188433456672587104059221296687783229506181771511695869209142114280834915356358113422989099335568178525611258988993595475431989411722319057067778928819425816212352378558104187121650843413100230398886809932375085665378407810866093456337740560643476379955320371160905546315087255498370333164533030469779847222982440127720462835975818213961965869700613536819528929813666501211405064465676492421265184766237081744944983182175915951358640060510146882160051216213977168883306301674707666615114138944920889286901839929488128032163604156849613739308946943367240011316808783664802508520703048747141926727945275920453265242603745897089083715692264415146976424093135618645247405813580488960423162371617968108651214832957150145867552182130297771570849339618614282590024622752881128621858021269415933976784804512211062647182214307395877633192487983056272407092633839523697466242197762408234773834705272151369124245276739664816481720825698267632269850997212786775082710355039901615646375008384355336033193485068377765334946974014876724111322394815254962669456174003821715363332501189119198609947573427241690881678121831257017782692048015470573419115274186256985591250984006305333903884946071348535924141503029943110082300799940586922846561109376211530865713171205949479789557565222736072393358925867110193331217275852410454519322449406393829674105919656484213845287621822197625904508959425099752791795105294990120808806635290129148256215684800627568475781387090415574049840267576437791135900371317497795227681620602247072858671805452863272335139898453524941124256378952319091119745022194699095611230420851396271395819773342095919371273279396695666173333879461447175465841872517585884065204722373756035006597681156705731205963191658923171309672326530709470490311218833279339301319669940582944318657825481058529809644194184628591981348948540235666752716877186719409113017866784305236199031968228548583190030587471829089129556811271716733777712559974776252121382135091358536748189297085408054729964927138519790996970631870888982969378470643908214524987576966979202735485807108927846580091215305025995839786478852977883215184180060792983971084828244292791748199948563233027461362634098995137795076489555596826983850112892224152428252547070311517121096573733884135652716271162003150806363546857537708206718950049439559437352010864602518605581178884818898376798027239470590006191056055158983458300303656452875776222088365779408239227357602697024780739247755124327843642678198031232767861789528779259971594483937093916310971592316217198839637477479116133935593941401185734265751121300027556398009692181443627394002753902125622124492012101970377719498696352241583987250488335211074400787612830742841944175028443849222055708074122582259886164726671975660441921441812845748049241446431346663777580162698812275498450854359492027754489225022283922929624850475117566602428979686247741667038907667864934305216895176240234095880441310059721623968683416282550263267679047265234423979095874442956762413513054589147675758308441434651181248480666066053031742368130528463418798661348582674410832560144712983317461429580135874865428659661612347060398872816994119093622048904025148631714795247034049997644177283942089922559498880295684114143303568950169474844151555862149877756731034392083094348181222009236805395111345677512799166151048708482142781110162178776575648250258829374476050561656125792333710336701268214388441917643997483068649076967151994307585718448592889735584490081975376421806446825479887853709464150777527187533762048704216914238307484699636054583779475910188057198807816636333413229540164157851446228018018110906298082401567674403166567954055544228704033300251540065340879087837862325885790892564735511517748715402817286727275425859411205539978155325561635851990354974603018114155152548637507598518139303783924262333457881370556025614171005971486570210954561469744759903573117563735728280033914581226096572523610972434969058235597524292322798232904931136393237491543316588824144961936874139415264989988174271782211882051578079248379780261495569441862381259084992244860086915879742993164263801739643257465101510061288532005985211550579801720396999735379156565345509659007551121234614726387162000125575909514041148777358871537782305433930775617472471367009370210747473031545007936043126329709041124001692480096786885382897361953846611389685709588404775290945130339779010635172629781957881301091727515455838036704947566973385032961226436834881946738592738669040599655624784024342021021938834974659837338453465522283887300720046348651590629276346713953510234268460824772490449752051903688771169050314093237862265927728176262942978551260677713413843775483957890007383148699473801172738971767326421538776549554875915240405517578083281452216918027697981343913845437390178275210614608087571048735437204412260673380359286968022516178751030191432496946799475479361193924291544201526668707595774065400257975690827988509864231735979473315910111353885417334797000575691432295980240987402023020677553087402020304739693524957891748251730290415844040385219877703333599075370225750622020727918190633145425197550123220532559084315019600224235087610912729295643866102707077699109831282136890874547819626133890468696057594163069456222305740399100721800631321001817877674474211061496566234848752817430727859335796302908651300040421860686571637320790085386674701278160673272798561086663845465416901480357417611815605372114408934593423738974272644356301670250337826432917401156308604821988715210311073668093173041095747935146232530006388125480218534125936447890225551166861334788594286935866160581162333378776119048173361477445236405553719485372037241196886434348403881630675993644042445541460961246552596205391303642032050788510946114915723408976534130865974453812877959546030119840156480997029822377405066289579902057251542279129053918268460534294189511737994530878002656336491211947109605105086289939727051135175797309236132415743778285083242009058507256237114433093547835782666774694101682867183914269072141836357429748616928684008350462504885321197146639826369376316902088280841307708401723510469371094496569725951130107120479576550298883432887966630588417135115348988754065033673130851256995358624964557358114439214477909539559107930900889451189094838675029014376042808274228412549662180247712721695577040093213468937012504698305621706766090394462234352062439532632734901456193146794713249023600568787241837149325171464116878957045096677237872044363528418159032963795827497189781449878568540615476707370367566564002098589169268434128916946609690218838917541925369354425118910675404291692708251457733669289226154584628537769569055909192938147480339632037611531786710903132874281086550295649656931000425181101088352115430137530979242607265144595411882388423491627909018449269162579591724534167169241570432632932627976611102401754509661851120259816499641816275666389277857928104554517640036979296058473097777006589208805041300057411838923079354922029823997875215879686673173880384636847844665668575560850128998080362096182495529734181598659324123727829334618351047148510369468220662333065992431430600360607976400830906084003806039632437501705659769753405678906189413914616045192253694557956932687230807577003042604506815810908501180636494517653868123121205973684590456439144132829726207838841192312958722866815786599546598736693478217559152441234049548440325103884372412584612702257249822291530977203026786857672844254557159487356060063054255119103461365612960303508739388040962259037282031051019897277403462965465691144777009642182948968705537737031282063961769347782183498855428577480517390244580070203934476141149885072417360826873537322845220500564820196729925022397602792723122650386026832442750982140694295467924046324711525385645009037479837814078424069781510503634118594326863387277100367577670059535002176957542986146111860802286809021589307518771151730890055455890848515662050783842485074875235445879585459855966996273965809033041368563228970967267617943850851553630486252352037503870825248466262671909686762359005531129067880679417074075580578806303178613084578242420758683685915121033685138340640015998131856619447908020960835626607030876262391864761106429449371666770987854799637447060045262603239902801993934568281457593299417316148470840659782965801770025863840011811376160716558640209432858666708202002250086196611496771919682488615608034075385102425123841252447097199704709091313082707789014064650805831529167205027016637288946914456573060347210262750329838955862445316720487479486295739359903538706690536814338762952444310041840735531493327983595217098198105750859005821823247230418863706538553898463478950057274191742341255202338624448566777870848188295975238426521526391304969643440819118219281276943265292917249336232860900757110338473768702949507806051837592016476789802908122824216211807262234378736649121842185311165078388341375738987501889426813598116952792155293864664954310344869718234202032928885704547097511608326954715706335362099128478702928835196847446857381980388922623522543794360704795844780089165105325378318250097271406580089045740604480424805133702181028752912370259089860459960079468202796825069958650021817235749401230036612451201587758227522461240851311510005448650067869349688797116635933178614033435847412652875048622361405141238388135857473432339700922381835377251381611506723947023109468814476364531830231310730147191922772304765375586873870228169576265780926830256944477082629586939997810123040020529602955026051574609368159489404079464060851764495005244148678416558331053368007520404174101531957656671273975034573787202073115252968513593969190298694245751260756321736592153673993709183978522770222509217046815087125909513719167952110954015647702900134935947853543720406918326713207631256412270244010897422169591392650940035476323203083765492259858309834884428763840958752705867313699910707083224479293264807041676756257183682911813345993305823133120592828228110411808012788928060699542919804131596800533180513773344363876721436913247044410867086030876726655613520205698141309984544086551337667557678573060655555575735146789735215092793685466056237166915415638261877231316426705931188379360978428319044718189176274471431111340851670494760311349265388119071754245600345866431813434923470581294927904367964884614947533825006992337521937478519474581949683840886484730419084939349259083548307023880046835153521551409108914542441077731547992379387283082394236938818624714836671453595435719984604325829057675899913158323150805676703642583368958934826892572781259278002351766339574963582754160843185741854803124685794755645151592793651230743319598027056703003308107397030836241370867960337594321776219230272425112005861629632344847218650467419051931876799108079717302893113786679204498765270274362304734728829392173443591042027470597870616975447272165105384909593934900610489632820286855454032425566919767442062389923779838951942249645424617984752267373694051436161765944966177368426707683354038047639742030469839427690283070316347524242954560264481161241543998531595159448885275110960132695205551915427932170944023327231723904706809512456828389120141368396425715491351149397669134464808211436907420209199490421636878537857788767918987619237859028181248420464259997027491374109087426269557531192532638713028574740735698688198779607372904533316558259454295992822934707945237565026178789641048147291023880524833944968060136898407076401129823459350082141748006075895542992751924099568181928047343644485413111468108998682687447155355386864950082392612926455828131993201119849514594963748273465701130468310746055340424980587423623103944610387352723352051401560562432769149704080615903103099630652428781659917240047956492387929637972468315821632793888082980378837932252985695340188042973653728586546062881340393543883214925889767169126374106424524406656837144370022473868571794868846842765392339869662325103160840105289596769775909917199198726506707277525424242205508125170339389986080669405178310108440264634035007797461711645071934687889055915575051276384036579516767539856121972230636405302996047638656809550507942255416905360664213910843641346804890336087834021116518120170658840849550692492406307954177904443283697574482960686667959627903179908301024158483532478400444710887094191209023187426819131328565519762542926975272655576413834087750527768780186118226551209277668761812225092402179225916601439397064031299099827199706909035354475758572163116337650479226872957158184191053321846077894316435497840003843061830413966087410131194403510752918325835306275337135455798536769785595121929607618742512441812015809716000681303725764031301745179813180387904810543400566694518613548624637090671945029594589497306232060055589514903518762496570295581162883710907994339639659248194611793050523573369781333103333544271463262698347885741110057871960530247439450695444495462691617819120610148143079192286997559208576621326858440528235754290175490608643841186477217210872371278143552790250293860918918323892815613934377357935217120860025484162520496228355170998061744697280661949169070813759068089807083347974490523272130947578219280970356546599253363804424452399200855678747752568501494322246911551444850926081216326711840166827582112360429005426363762676207043057189120864426020591712760058131171795187202102453339442453318530665381643486995790045357435550406917444268410730968977011090698914290108277726178373301867657810114187428575034536846406624550669178210896916006328258070612930308973228173101245479098634995609720025147660242964618749365875850677731991856085329541092094127137577857315930194881355894842558742508919423765131349415154676676305436674919373352204728654534900069958293518955898911761005259428395004350638568219912064666900471706417079880558865501747058185757131783971658133460486341165684323716393516245197863835972172343941964925485859365731245329552554947742054736485373153542639446731575644329714153592545088897543482129470305141043200963885811709423998979241353184088802084806405973550903192066443630439260595613232734745730413633808544024190807955217696507754636533739283349133224247572196917612314779092381233018419174741145086219935159241231910979301887374372561507481292860878733407403724088789723163319572848876860509839800915263415737292835697915416654281371625942834274876294662134347333614218953343539680514921752147748726863212985052713734394093238242839646784702928234569040295588633336800672991699208288816635115360742356471773759297566680644489670958956736607423998442383965658498021194364697427590542404489552774028246634829532255961624609114776264529299402971512624890799189687954638552673477768974997100838873703370930269850267108851254631257151022983041785634079200616364994536540843181417134811739996166763581066194742027591676548953619397873348459984467441114476579056959380235368766831275748672276045381704602558588030749786730659731451949035546713943182341972324300568838850895841193692444044701285366357465444061658089182899273381740046365434168464452994811666750180144238468011283094895070653649470134620670424371504196341395332913944939438274172044582306415021459703688652684129570999998361937099641200011069018777598287770555160861405453456566778311073701143129606751972394855172694891058918854532616359624781964345094194560054442658839685394518552646520073745413802610510891798786845966592559378407817961126795683813278950037120140391155864661287917447163349495325639031044933009830270594194416629953965954718967511075907349008371122943975739624905655769444778609457520379942347165948372571433276264269454115957001852059976330800850424489716743237776038140182132793639989840949089033821464871725818071940018861671102011201295461031151328196764055969471042359228227735285272718487413078293255719878329462019488004591922589120856032906605872157247730533361606675123490039615411808471301558479033254576795875726706097249052798685644325705192999715304872717553502954758021185229143466689066532505434660760059448129323053277725225232146092799501815864386066365534463612158526478420230434263473595121986775522654675884500637509889723486982406125462068333162488357913645489217498604072347966529692611995366874589725760888468343679149521696318307776799611842636099128065368710858059663843302275715345933114668448325890721513673932104608726495767168616960907641797141003221928789613318728006071381974645705447689342515086266154558386432429602188230951830993760112703648981522884360942627639740217481625366074036086766148986308555850858690173782893145308035402512809156376300118714237170955650408596028379901023036967821142084038357445430172024292551003685976677138026011343433150562746571375531785821400671084256483933158958081459941656070670628872777406840921485299917970720501357466307525464220254711021485150496390506909669279735349370126818084222371765402474833355124554790282681452330306866919476149232608180926835124913383307015664660579455398707061860098945662934409816558192095985451071093903479432831801288734970292540206915005036265689747143936722273683906416020945331313933277671168553461603972716674969622769502957119261419833689394663842192974474028255898850387462396190778887300677198947801679696790074081795997314668627534165718055785804149016112879551667512919826310692382330588807521590068470225700459409509145085911907834200004919526108525639447809766150928058046649362702075847299069830844738578284758813367016674388221513334779856280507262543124691322773560263314882283088501548908608342483295346500607131505010909793123539485072610876718384117175957381285302913452059577646005051982112519366933179605976478229414562384231249135072088606466788761683085653581868319682985538046533289257854992638025354818182614028355500686257980564564250767288867898166090346131840508747069288697470415003508994361325440059487517067383634340146795277582768691396058722087720674173474366946685278061078537869643143778156720710284905345239925360457341010751658267801832420908759278727916259952182588954365321061356066338210782602178927746481589421509926508656089139527817037010458511463301590415144160069572931315742636316953642839238613430640950352052846857686498177955511371328313741658199497954637287789000279694862275761588079373554729585276947863939145473566162062290370453042475941002702892070545477065098989035809280116993576859853772665679765446943246391695108376474281914648073278972491431319434859738373136971633854846963875514697657729669735910168555612492456700808496309116330583629949148828608465348656876897554738637417098815626355746890693537960588203916917925925131093920929801876220713971758224431815961568422074953107814266969248197978916652351345498882457135359037242830166461384810320649734683687897769792797394714203705980382605419887678622838777770181202853344269919666924454622628902109498605904865075554595325892308514179900988836441309887994912614783766020124440075070116117430689497694423404018254218080193015281891973201706121478207456878822253928786196803586840612860967241114132208067283217210600052707436096940555387170150438915850659714883874001155903089545200847957750888690421686892532820431647093134968514686765550720132489673049260369511735331136872608514946287366328059305349585732774759200673518450932895832319913329645156302781331791884587167163776280621141436628589034690319423463008804233568179427483964758852269652159710127817554927361653791608016847680444739499641040675743319849720818591005713674187993399935838259849115429530159363479137253035285754322863699201702342905060213942639259675124410429917177831007975015255394695737311713868165693963874969263036327890814063187212479472166642918395013381651619959625546152047950089234739750398291884758084041470133460725654072832521032193616268179275856452403527487747150743490929887117635418375761187481424089977363322950110523637913345345536786308567100622270105746498555023986915129567924069575585360812294049993086442301143038352880921068038157839117708947376152492794389578308715379305439626013777437473165545279138814023403634624703066086497060504819889429903895745276559586888884130100062580527032971273814525154318856770643567591334990015153244468862854838470850314384086176874452548180347595498169288468386200238157831454195355883423064217727212629604521788742521041576503688028600351492524835028096165048428371034170047103838659620892725115508546404923304227720678405692913640008471051425225352733157176631669864348092392507330764692768808361345435407299376693036964860029879720591526947030946099031542239437901587524306619439716524153052515993223701223916761200924402284688826622711866447686690993374773546371581195953593234515283177939916884497824507707672685632000996296691937749670542013985999811092865620071638209103901411656083461640547974234806790350140787170988200273717060160766591986237707496465489604111136594023795233740925856450631379477980498804141269343304074745553644097813253600912469047866054616315608740779421791410100657243138967985867123037696188347613596345087339751580200396812404362205677262479637977666291371597418251100510736765286167466936448486338874085879165049108526291155168704248864454295541691467871364065624395503243135506817528069758463188637722965989300373470233929248535189259138108784638469282862284743744006844594159224556076139868573775020822988924453291052890277841869322086711926077916983664470259618597279568308234097761901137741381265524245960147958287039691770582064339020986196297482023592183681084471304072589325800725972629516062703427478251183609977876133313475564459589871058050390752115736700791799316021033333889832474108166583406527742186174271371378313635536378825533055837472903462388953052742658774713698929654144569120075244949006518430875428300501889549665856299158050348757159582031278162249447523172624432766370082224005916519419486219483703781837035997762801821936970942494632558568081552493889931388957880778012684224557434671908852661606085172218315323678381161367205391416533742880278066468640030719991112772700376542888707989414798256310254487293044214224591932293989247511667241548470072486899814325425548629101968439837236650862593094923689603586710560220306515020338711630101757586768800701162985976314059899513601222806719712969733144386402872653155749167039969350318347524370682627576397813843329951651344261177024879702288196500593924698197132724340004075267838189691187637578530929789023028119167388024755825660469023255293189250302430382713221276970969284317763866124281658569822107614430377945138076338280523037182086801074097437676130774988261348728901093007302696140597249647417390246873693224215954761418965362772115581852514310555218343847338601986427371191329871427802488252756165000857302997882940059920769409003724753071681009797717518920475228277702989077834401781013726210921027086210962411334501751931769336530533714250086630703017950927383614702154824570335306554527368006911406087986218824294342054736679015896940553538855770713341740635348979806765477104963763758132921108546186524961678023109996014588906471135390382316539742455060764623599498258630270527772875592962458737752142829490915351991968931795102784956404530724483149236485692270490482714586645774775248267984423619982969599149450809774337443486564722904708513925943346546481993248042913247258390162832388158494522413016448060251526637093342839724918124684813940037950719280350529673693934582716057617966008303837431206478609216515040684403792332263740307851119338586266572512420613041280509315513927735961335667709930523827487946614415383301585174882464543484278254943071902541992936645321701227042724489810857232721906743167687575218123485245537014454329797158406041511794935792112324782177324523736929491169008385066142541295564985227830733839440310006543905848709726861126464140054356233180877940742081658882193253087706096976984131548115966817913102864472896398525152256374337286516549773990762123764984841354991129637247978261754241537631300986029483326522527071298056261018786077760557931176299755507231142677906611155231706460647532269757601023822494119378824385022298317657809470151496774946888244100382237807094018612695916786612648453310839248418761404271528727551796514986702668449289801029904581605832268156581298676506560284655678176035243170536352804444780375426092506703808659486034848388531924524670918442572888046174747519013098822744783203767415182116489032070984724734949177725114370431479642970579313570455056506430764164677796544347667414520730792274484126607524542597694269760171154789729557625279678172369927103830503043203111533994279003672012794545174202334370099916783027791068625346944842956716460268323386087145226245396581454317734893983060330255828215868695895456130519449694878923301172219893171696642965713358365734667781240034156723744982634535511448429087016883905714509480188070485719845739118650829116799043263983638189361622697403315872165694964124635654235652100833952587350515237787178508410447429201149411450031662696648715252419946828833638872192904673060815426319829792469096349122961357584233036951762790774610916789614501179148835320375120027223074780658672481473872158278935069269200869735244958260518512007173855361695366534295892797659257679195396503281711262953670394054447808143845675318566094833759543366741186645122973837783392049988121256746869114087550067022174316497314504475466460642762673335866574432807085800553853400398887224372425780373475596492600899229427821417117141837632145164562356094239507962400071955962399397909730856492515656686733808151291822065584113202523009358076623516625696066862674945703868875521974000604806616871363295843935668113387978915818421423726013952282108495898126990235696689574462876206558218394676078742744858956178950442771839030047369599266660201657327933205315862765105332879741968151204368013777361714971153504661461045174608562694160554002779759078341419799243876069506451570423487111033390144230575799461324695706736936161618778610953146980843611942229835539505083490958310835627485213159857096778937455557417572836273648881740860123783250825744661610496820996432297913765473990708176088760170162975673779369482091755430771808641773244868131353130235938892251248015528657629044627255618324249376539362695259613191991815671554045028798600282123422197844985637941499358857846362665849414040543833080390439396823187757660465092772882831237108812225406170400328646987706643163447685214864225375743957400606731125159678083587923545722277342475985150820951395107759838140387341007335351308839210184942958021350283264546042518932410869728847240110578876251468690304480244473563985793976113476109803698848652035677673330820576905238750742769793591700410126879653185090396324154629316352139070850333886831260341785753980870060979455705819264103403524204848208587701575040428445066417779198852434337844007973860624153237165051284059655281279346017811066946219446027205672607403878106158090543618581257248859054255260458400068111335784674620635707020123087888120436770109882171224617340502748636655838127957467840222447553821564253418298842738967417659400444873276696550904631151254138982751015079022120229555272608434445042022230846420703845159896293383126673578922653585496310688408484179378753462215620085175006699487012273443767342086600296453970632151288288080140187642126937560282460076045677608321887251238546616425337253573002919597510208666167130620784951150973798581598048942140132201675919888337786837760794127776393073875034729946693884888198809542709087996384734320963761742724780693177885912965843758838443006936367009720785929014912814692900709430385384615161966875250695477364005732973128437213981916353361608926289053349299546149804822523769173431285383846518021049509127699480981249299806024343223229480867491594720180916981613812784364325487256766274143892374529922023198609341191655968296641780629672417597668693808585928259510411656504549923581671951968868059911043038098996081597397175840394689416674986349841541919588437859387767212608706721273813793968274993166107974065950781590422481066638513810906507176053214880223001262481546015923075119785782374628241860594396280748063124881128802347732022901534026988173938540559065798198889569935067610677516117271607932223751728929214627275536659902713430499687456772302061408592875398754184693122335158828515421964530479559295188337850506328579348580863402623850514952013886760672096254711109038606405006588411188591165834165261971788948858085937413699344533440894462847265340971415629791838432069416838991012508787782059465113021786442186758491754435755887643800299139555885153350202945740347611990159778459791048852700231854871082790446471663490512845616341611933176301966611297791999935424164937154686475161359687963893072670962845082359859267193815740244894612863839027924068849310912114927086826184360771290552554872919376041448414024293970243759061835932697707753210067052156497558891720354650253491350977695478681100806668562049536868818145567103024168758609032635023006286480609559632815529328075749938913477838039987750100173009254196098495025667841785505884021652555274880990914554512551971493195183223841892196724938430965027676766259304369132214658460924528016285650819146714714001136345805627732452294756950047297936451236277406193758035068896585371210462042678496664942516228687772939085578258047235447686091980232433644951232288357719433448417679065625271937779113509514900476031131139259346301105997269477634568157608690382531353882310975636027467995982101233206468069083680254439961864760133513399515614360536080813680170086400018644062831149363768093973420237858310466449284489403072247581516199326685981248417913742745936840633022046967005718043208138923039917866981548853024715389864158536048289411193110979500989268017224946549456480650891105092121629768055661871883734093032942693143654244683309905712743817491007846124894663580750517570976872616227286389045342039566216428113288540186878259753518712208013146985856753831703283363508220165880599244505117428009940344397205054351196318990877089442097109280263836232485784435287912209332043952586995264385211303219811146432860415061069289732519347461869060196335470817289313941504695847232770294484957926179180136343089542685533450469234968134804060841941884334781165598308823194116781966480448692524885109195244102556162683385277790491846746915354105700184579629794429419895267880212465903509830069078701623434666325608742859388127992763203846045291875838479767098844518452956152143389789804592035822079027528275020172073202419145404405763966534489757360176134573046941520590887671553608609146154227109227392538255241761339350098343077212453834534355145907355595747394022335811055469913138774457241678256715192145076498801418423863624098126967463741672542275802581368191508786097960969069763155809197022789754965015861008201220489851318331963734094768286207122275733484390195969566132368800869874425201132369755316818631239469443590641121770322020854097767936026133353962201401521740511366842591032536952527881731523380009808434682039542322841412174321495034973805421154818745505233064226118180312149782137687860482666956934302333399348875908938266103771266984254730393455964690469890552790655800428011995316711262653137145635081185724701402909286032928576440088795421156484147610606922854702247945940612629252772536490698247036650982125867074452857160425226509115569277186403919542206748875280924680321178419557251907329898443195130092130890422093630627290016293026108591023146939572162968061644005610532127965560459462069503081950780045750650476118160299411907148075688804874965008129645850518869489124344128485962618783051973767769432660207242837724346087389728288657049069828273746720377882292713587272286712301830460484257381170980826231005486953795620031169696316958009904064248951305906862851888852278879999969704978579404785888231532459637995194599305288293385524111394319619118691933728918288503722274709027443216472387413115312719473394907448946936596290676843290058736899772374971773313583790608863427131393632959643003325157847608178366880061722011867164700913950451416960106546047126291394130715602006420880658349862614194019127274425710797566936146357762188248718106724932326440511066270762706178304890897129293295924079143060253153040582608607782864414068428534051240546724137660066508592674244520121134721498787049614257848717523622725080887641909164774728967767858405816085669873160565506702974303454603694158637133800150326683034012850116478300838685218208760746856235667824638130773648114409172097403007924671220801427944085949359409556676502955001420627003337462383142287840371890489360547625149704761209560246109654117810859721722497782464732470806383286266379296950825829488922248454560074278822213906031722515827937683755313212609473492101094142179242130148244861410912859479027044499536542263027587935044888201636857855791138802767149341689879466339584210272059760371470574857624591217977460298986368401619454087755647623881487476895622617995279601411483515803648858235482212670293705403824412907924501816327871347917980795214536309159300059703721111147516451721368893166561882242419422188602077502140356456979047781572424973717054825429739818360342915577716857713826839564388513575767210924494415297320155182760145131543629084432952611572386887741249252917848166837979398508885421139942467699987860470775816833717315667958195199953419495568963554852731021078990863036132391849850788049884746455434354517313315466717070585741221423431356054232424732012453637178690323051836960075920136837129273902068934825859065846260184249214018002905769772095614562280845969703687017297205500482430852534221933999557288195104761450457961704325278837142726943355259624793771041816369826703378461026224977042868638883299743452308300417949589158691544181498579538371418012413197518269937825513000613897237216264269336853928504327831563982422073876760622923185090765749606665731582006212146369771000409340182263969584327714142730389590644651003028505624645298599614342865196987627111450684914601498498567679573084435227840565179619562908532962032144007983622652470851920634243644109210193494908237855359380516882721689025325703952255532906450053304939908241437085453099125119415304205075499913153268690918626271586719016217800822621658223681203818481390705099471839839560990922855921241652880059345165788666275949266236221792862728908834382287304214908003676854640822087200103978850842839051049386750531259062589665371614350805997093663294604606246678196987174615881772673060333118490769412418054643077976118030980001805670212379112608119180528761928946895576338264438078596867153377197857193805070342236144344147429400461745697045241229105605842060667609057814171254466678514993163477052583456520433052779238739198752626750091605277902864630759253537980840537391895806756721864480469465426458136071272141977595591878335086620404069752286730497919771515024575539103854820505148523474935982071753084240407470837013165863486477980128475906440591751039095693738008167275612692726786761899416056141792931901049482755899618923230186750221336649723622162254783839502536264983299436379871609700295886340328283221502452451093906617183347897364957644581402761624676326371049853677574557817368999547001368759565477279929754410876797744190789068667595074449547897307118847550771240506181654352256438144730432046926454426989082484824860102679987318422280080845067920929678016061572496042910773480769705237892850913491053345013322836461521835890722142777416829048699280503951336170765296499532339792953497879014349095923585898914116846149964807781875833903516222914754197984067654070508593842498839031583157646879462169317647341223272394347784420219895186630525417159044525165735894694514906916912644765177543055245750739514532418863162916103747863560218625488957363145429975162987006925143361704086808253917158273238183340029374493654957855531701573908633186249211652611926545952114587944148412721852105001325639998443963576575302866541458466057369183992269576094839076235197275515910965932476224169242507335574411860678765472143987443266390195019843405608244113705451768733692149160095812272067581977297562280816590638375339437925395645354503095021634533462390317150085788821375683601549620751473946048783443946171665737497588336662325014911278097295188571742365632558361594529214545712273291930947114077471452526735259045763799936611956017283527069842472927327306566101083060246841519514832202933012400143432377412503866445878396008974531290216517819987078943162080066537214520604750503831118172573983223236585918795232857408362318898911567740280528021348433342264608827394457609162949171142315296849756397469718754242226365236635137294885318439535774117296913699695161776074052150542663736758510880782972357439709571893552974381518295186372161192957076977604368750826567406982309672053698456904726298826411078599117403099624192602489163731867115872772219053368464818057389837506120375136417112847539747170137242357374139335037769188107344558387329520760233716243235335524938881942051314675567273353213028098932781663203089560949129464429766007836016791999929423601109401860968618259217821081267116817562936037936598619521542846218199951948570156054423338978605961526650340923469182070774657828644300024814600393304484939700536825000576082717843258317466068842681236827635763111706674566450738473403771638104680251136832745241973607285063207393456651479889376451084246297449129567236975442676948349011897094564157970687159090952329560869260120483790530033449128574290933601892737067816049224891719459444387560621724476893847698270145430201494642909788860021878741709154111844356692977403439291033615214634382282885027236452767790058332180968796694189111838952215489925023280538721122981055281530793888774206434649930194866682887066646319074635541015151976389414563032946792598866973894632693799869029703434778538413317556761587395159528105888145616703530353257793273808991961142112695540958587868801809577260026492758928151427582323685001525932497278178780859500345467589647109902685081668972054737653268023872072647276502093745176297268019612993215726945362197048795904686804960429779616295580597364826210552548287937004796150684626549152714394473537404967104911223822921636366385140641949621617136307692677034094772349373583529437072409033454697801651697890949757200861286034594186483776795063136272076993079033783813569214702151776285445549992263126140769004881292125446847664536159056801883002423861130245402122833033239415230350063004812633992905122777303417676302813352073439737369075699622693321486003467895349227481953829643136094406040998152058137991986872493819636973120819504961370872919060601104544197412986615311863420280971729400034893131865393698234242570545403721880787572224682505515428173081652243706027066772092045477035448384513667089663443319108459651515825109742674517785258900557886468277776399991615475798084139390211829021704415806869049369936988312896522942681222505179663107111317436271556990345623460055644436100841754500489235658279558177618048975454691185629367497121279239221290439143068258891523497556077891617889695069277929256987277468455162839225882805772690107698953830236517938696495792467223293576307916663392105621228258227403809656698952545014391502915271042135529013688818957465112730306713361679468869848150443304553376952330748794019747640741390196129552451025630043121553350264194271225226286996134084020831363239372905317451953803516531313996943343717967774097375378811952745553357244868249961567118833517661644011383772096126397297669060411774740468382596609789806191375081560352141086658641839783047039525057990889601394862324705074337341496190748553520740634105621598901220032676513370120362897810038249708076794628576448284022227772094502135594004841595228871071027303604441014026555571112444390563596783409183571451091682751378851123895433311870087834019541922102298183226998769915818812962367799876653813427728417615228853436715710514019720641062577921772483381638749243289777353246680855276683304830834142897685067911024047163733365150717688266336961837343474219662089123728202490028218467779316650186601384373702226609322113648854738164355743443747513264516923239310676079569495875456447263223286448277428967374913319490591303984814983329039621719725805878770944540762842011706312813451900364818666616329277756648905474301715610029530316310590293154658107688707865448224012822102643365036103532108344936000391946655790390121441934622340342022912642902677243755685518282071706605894691322057719201490959448353620301339903160670532514821380391182858493149986317482871437328727291590942297851816908419706302034332533499449618098962974416321309756997813457960017858673279531436417313646782568009157963822691230433276187040047976721162140895248098372949081646571291643888982605851418374222359661876750603935433431144046366781856138676644482595277005416233617876627794823479202981375581124215055762571734783255280538219255266108963434374129337339176512494584828787751204447289704022412786962360984739778060186086388446126874671965385143794845828366508775041667371488775866073122538937984038827892546705661177060349032228961495929547749715509831662359715189649748745099149502343354415938670420908663283711881285801861016006205514865302619289243462746897613434961520467473302088582878003113241130055184666649259762264279879503575340952454133722847945402212654513138669715684784932945294887670558585895977529433530923387896042562854290656279482358879914911714686215644678111673269665400222415341850816313997754031864020080875385181820623248054139653552126317822019719094864774927974996452139288156827399535193477831783242000232114025602971141372638560890209791674329181265612635068207639312788537160143372439166053712195258126547008493497307536705446058234658265250704402925769175742859035826377276819063668123195893497041318363376118844955727346926173696062375872722821697864438066249749141711742125052113733231404454401730408882370498351600949532098737834523049644913177140814381215597585916310572613637592261002801520683455786638937996078788670460049506188651730196696329073726369586442573779957644052976864876678848260947823385083823881822653248240888394353504794868236555855791589588217953616260253797994041389474005638371437920641021881791087102838961817214092939327041206199859193698714609934322549940799469634553042276197230088746772323680435054300685551966023813737595618056260145756032724783339393554740621507301955882400625657718693668248827983382790353122931403579349347927798771375421684496780206624957794399122304446712188292847340789832325624776431025115119032847430761159479401210463311814946255784766376862408934557936626845506349771801842867729679538060547202680883721574378130693547564698816922011241185169251440670212441603100063194042441802934460838599395640026276769121773625145960014889886167681684141918309159149065012785754440506902005838237446167238518164497413571634491790877996700275353463002826405239373093262278114356857587941364250333809371459799357281518077290714832326188772397851821728528785505112655482672457967631746154640324025573306075299819232434967079404916407790962903284640889231845976023003399394546774107230622101360255601875693041952097588581396526187230152568345845294951524795065509480783534071359909349092666053274957542825075667978454558286662196748832590191695176932474414761092505484453727999849664375314087219518448926309825369926121110482052090030503563659722107237611200448417024476358254752383502681172279182083500449188628682263679937051715119926291308216200507599580820517311795443170801350495442664309562188010545193907349237134749591514268124119599763145603490669620581358712423859086755965156866644786402329907440910693134783567801163388122973197219781683048561377070384988842558214830456260175223715959117008732657466630463548194568148029983435714129878465374758700025799853329647878915399652598139139213372930514850804290889206802175157885354727181324448307372385325139124224661888626279906413094039886151957124275628848495515820477510874767700283280833425896813165983147590638387098289614157222155731969501847940302507748632013959331301937872497018344075017066964269637612937980162860356166625174730696442126884505318347121925302480654129754359554893305670297269002545950131197826206233999627702815228887437865410749609186827165622714515444570333320929398712476083826732253644066659157329362254452844829726826749624589419261680851963500944447863211942506112564911751669784467869566794579567592037307447779742207119902848214549835625016373924156013803157022801208113215007162845417803066674435434144085544988508958431835250482684239766566500607812373205431203432237479246943505433886018199903208319219734630649251556036489411327750081296954209555124308397755310098439416289470882464845007904378556033529010197907409734843591166403576390126467311498879110634667676042630294828740965727510168211378041526853602973384943380435866041799753901304118951875774801426881896349373533737836734198487204354285958084609006892054278643805970827046965691688104799250620076907439608381062530406038861469926816798575808420226649870544265140138401269823016174101017305169856713643363343145128380536590029209874601973529137474302990803623261776821538765638448354419308236844887451934803597106805020164898907641089053862679387728142515889994968488529692939034423960664179279553256227043401030797866342626818955850894226638094971993826922462194781166122805515544759583717720389106960932009306097207774481051711814265026115290782320318925463944100953820278014287644981804376707251142581913459874303515677170680495960744523439017483858859196427804633361452750541042016963836124052729516948601400915046505446346159420246633126169957970731802377109052334391399339511061137950205070084348871674740452246923821971481099324901717608934159906174689330560472932881361728307372487447988261803076026864800751765515727068123545301644455047629320836938119726339463382714587298132894699979759831941020847350484611181614130842250732034062419808328208571981539208686271859163540060408460685561947432867587062172220718133135167661544599283120708798322300770332439292590102658732630379224095879461677951057455638439866424162016883842704977347785005384428623474361806134566297261836167978641084285901265703018714611114142428958161504884950205461155811690316455915834277281726627725703162869444363947086591818101019386182767268460602562180578137366395529050838368469113501492361035948229624402194814770944142791875119924068974687367786294201481203926225978968601665889376559794078360612417183950124446196234417070692605105064402322639254189617580434505236162683894938442098809937532644973840642255804137301475735144968586933333149993990369746669026112864112528099828683134795212249512575576314372190993610267707321912515236747824364511317775974882864243536043105900793275604059279582069903364476787644281751875992446411178758430670269400760369032953827535493974505907701554929162855716208906312086026501166029257681714894667622413949929385559377644293846331145104040780090314518718148688245613119647965431763485648234788987748742955351862163174659421641179613221933526161944352645818226071766217223864887148766121106483054276595055959985419604791574899833621411263618205589770578277899082717084833679201921770091050633556703756758898399640641455693887052671080758230484730906481149068284848768992332146280300115282926911635990340006069362865240225143480003718078811228523968596953957832256232944224677707091992982443093038388151957072965759746030115055426322288578491409431758183178168913727356777979385909732935876315917318994293366416921080876035977976833304396232440038004549091845143167001015559213808773936680098809269467041316733039900253585536796217560723539747612627495153157189649210343376891733237118585908502425110768936061952782707584300546011347122789079770773157612703699439065818649587240235399890708053075045304990540894642805824584069173205737782255383653059758220765247776635175621288035181375631756141540596330734998517570457393538482253705537490908371308149085345843156871283399103078312459393443039582424807424760093181731787301869359918373351310246056400831702950442216673828123197003645577170486967122646325929465820883578462379498125299653967328892174444225571128737094214271901524899263478329715638001012781763945056342594774783286535761788688513832005932511605562367061408399351171154852098132384572734285296141536046801325749904340674371073994463749909435246065811706693101987714470738598120737290512045743684104452753551402045234902576895708447890721635734870012449119891150159748754579802429729993726260699898898960293262090818497064132088027922564762994313409373705307901790028713860494328836045146222594631887724363349195968079691247163528190660959397335035017058648380189002575456915760105172425110568627496359342897795991732591565465652931399564363057714559891622960687620662623738638536873764640550678824831561730604741601564868542320751535171347180308202897105979464868193177637879929082517433464041973612089983516264649933397756570046712532091655939960602430109907846492137457292134698948949386389070029580273121778814701628388171195219598624687571554201569725669242072366863346648995858790446622170421083323786931502563471860564684193631002842044391629267811598058131562122066901149228444680096570351571372030756775364252379360386067252012123339561617155550594508910379115663064122926970099365764205213255978813261912192681903598525602958355594529641552523416604008066575888914533810706505054602056382792250911253205636602429436651848132753874122590774387261505756230148919998044659988448883799297381805735674403991053895649632040593888955149131097301532201486298224581158742257789323399419973944458584127973850494345819520834231805214954520801780115268274882510187143844755244225731779420810137016058630512707453651942713921434264897412517062533610124203348140992579784893513538059783852434209887692486409982462849041744770098050031812047075365423888787470614344418116666995977825504026630742967064651694369592785210091947806412290807798520057254084064670009411824213171225930508574173299656112576568791693275291724553038199520568135180989755171428162343924406764779043622362750297905678336265904359559304560050047290762996148107061687144295638072918736294321802763055139838794090578531672754896647329275788288484796668397232752045079004333482809661820822237271481755871414918268745953668966311195723093501121482295266639526539388391710116634986175064121426928188308771539284784457402190264989293838329093844454282553539525183635554321374716262417139191295677286505817747534415070165500009013726996929862868391400036607482707850198348582805604153081109608474218399848999228012766161137475689777610975302570141585397912492551241162296527652261152905657617763361073040801796851706554267999832653567612985788058195660518280593903779190772765057347106713241675866907886038149700036261823507369794440007765243064487296941220863905737380191383887609152418613294544999136231064720957895245897546472982443836754646841164230290848444960039290192053261332737475876928882540414478016635461534949022713695571686599703536040897619111059358470455308159861939484571539715884603514125766045671601126271419075560852075089007669766261111091840178706972592194228873747640034425756047417387832311848837583332185598134805452117352088568005160421646655475219862770705798969085011090134544868097264002460212844307399501217539625051808284408367885976871278811072863495706661988532956741315955944055021376844952135355663865981151193766992823257713943096981132159498391195028169913684570344892865416093131485450833341124970522291249080824852390046760388383946638343004576363546226352014314617137323036682223353533936802067160020187702713723577450105734663208769211198225390061835069654673784831170341111913443762846796536546551223553158069831387876851224857090009066109124311439769768128502659953756183243326501040487158115527792527605526099469255640506314524743315787716407312828451560777737070678708163562015122920730725781171666729709553474780011295022712530800905101790825799057543806078996584207117810542372880347595215680347821736229918738887934326156177071132130210697992854912608437071177902260905242889163811293608389917285043623029898675596307933307977891856878031982102360305296168656534457450278110581894818459719243805988126798778227409663049963781749682667243100282760973081321417929326387395455364260875902365708076942700290698719305055743276636796290210213484720269611813573047522625036613286999774350780580040102565750892799220546596538067898822542582257827206163476060774755590522846025447063942924451367231772713429394586885723724598972245158639599433436269021053535182033860995474916577847670746372495125911458168982331254808539348359881199388063715009369268339631382233611366473491051030523295626845617874422435296541046420513561448572783987017115851542724830084133980731848191583622555743354507976772552904675620026982310070702456524476413055202272275835178121729158449322471636797308923181590366338472706278587455270282460575105610677545739293842051164684829938945812210841979105404047644534705474894666015336052559767691239245801445334987993453840458547764901053595565148409953828103713217983504802949928357485444498947620916173288179948069780912568499498858616106796761312004421265295307012245860187419835500252026201132226672428524614401492297628818188795058670494920966351399894824501090589565846220151262044470103055243171451824029416483748082059090170615379043397113239885766935322474252088217249804308422482597315610459017501036102075006718052824733500436936175789264105433965466791979914259688666935040598420449643326205911548814293021519950741875604393837062611609013519470036846046842667484209531923188623592641366598543436821352320345875515014043036677208361833137930484172301477597569250948521691818626633992149752899452945314462233904291938133734596978245688938436201227477177193376173112574318633017412579383855607506341514496677898863233862175367947721020112195552809336054818770465728025468841710034547717855721052733196294319506418819054205872302640011823775882313987781441899183508975816827203389310300044972708365128182074132068367963641380033216649638181302193270441842805023913970435618524767014909271798930705656624546482435949583910865627519473532175524308118805679180418930926211696147819597367615712882222172470353137555204584151386988287719749694723452843502701364718338003773966664598487941425372996780252323964342818095199113112721820373061922918004014542013471543872448217914931587243815598446866574639319498994586429644107218161096589680507010889218611318812592228574965027737437318830833297990508489275052477641504448981092991026560396702875766327548521169687358922097230454232461437993143170680019759806472287176715028772964484222460637291173060910987298629201587429758463819785722010365078703970277642456770689061805221444985948952694786237602050127486903094645298111432602488724637164973639951802083871639287996976708586283263309698512712209338384339029744910439425741215336498743626845605791245446436989440283574034595260571526978961986890997299267904931793567078540737297940532925534204132912519293916927234351734029351373675438367850121383769480135095641513247522823124893833646998217824077074107853968623991375085884889864013348204242998007892356949248620924195514655694903626221490286530529430605339445494309615746351067130000620441690941860993695584183933270849589434494891775278333482130622760242407385108858587140965907638918303068234407943375971548677584956994351946862044655380882155604889155131019233007777684810172937840743071311660230040298786260406801435953182034452644235733694609113005191375094890428066285045655436824451582321262612094499616572604865983652379673189063257302251553120629048103822347910302342239866016537430162284347052121826799213365389109231834992992136606802754285264856584836980871375119188392310625360090075811090017316557105271355999480842582847911951851860419893905275558476573815445654988482083169510040157794045974514256636757152772720627311999452642771196181825867638969119538726055425503528470310196010872172299684321533734065245726048104219946486681696106723989949194828024375161210295422376744293141305851117870539790141429966230672515152331128220415706612576283908132930944674580003044568815514936328303752321602868334516468904390085656539071144758617714976097068359578912808026265935769533416177509611315463446913697689753165694251630282442064428897602430212264607674276900584215538714700116733414026428764726388785752249620507633273752663510764999284212245841893631919155069372174609978328516213395418994290218097583129882753187972476014989235474210548406652341786250102085839830705782643851917326293977045069994995787591486130181846322859307729653767802713899703611391079091443537238230668082669358404837576710440699903481864157012058581110589945703144083350737319223075440743279700624948955821849313052893571713065614024799128358598374977428098116221059169395280203787500396664686775647735123294174067962238779660886581285525807651016602998566780859194874950266604718361518323741769444303284694935516708513857327576280541430214731762588060614772228438359150789771302256442442212727748305874778640425747084236004347452049668941516373680736974835147506413623342209942124092701743542436853765286919872896997461480422836878408312436112484700684658566299526103839542903535435744478736527192853369065383371617495277804617733059308436154776598646665157826046594799741789881074493210911378532244026471807467296007090813775076901505274399422380895444024293653567542625282141807431937552276880019600112330514004095497731638465711054969327483256892526940273578735986177153523385203088871023858457665201826858119487425977386843535387115487813617584790246671129373998223661607204155164844452045184142777306913293129876840179935954886888246469179221514379638072969152749405036242257902172898668901387595296338564159748461467460334755468720933918158470668965302556401260216256564936332507892424771673346800840057139112689075372580239403268509062459781555657824567175231631847540650620942060751591770184205304937454295723540888343727999126215104777229717606620420289923067915032664367479199079685363404821150913559526680461407351585112990158264000937791671611959581043428202150482258041224351319343851012448593877771831588772423304642534952982868862513137092392953051762862506117542388570370806179568059415669091556351466225454107859360146363831779120356018255110876284763857759453067524110270388076784656528987487696418875547638263055300721569939248280537079229095476558031570334064701910642062807277960105650730059103547555642587063192931182834509943360583936203431518581882705064280356235250540690707268491154871036983084463455927400192024413868416475520776451298631857851651457650503380659937818673559070441206072582184167268237269684772854592385298117392091304929937763756022060286457312102836521196321461951629425657422618503903349689892822042805383623370061374247904809493315604435956913802151114658175478102409892385322902301235736574266377562082159032692645037338201299272829496559457022060657245983564462857367806106672757193300125465841142741805783935948212721872649796706174369759858186599990603056907149142588641153604973391951379535609103801142817194132559572007606430118794888990323525787467266888158088569631680257377773172455489293351202417833337755569576858427556602202307427590710002224564979174371892924807062410196398367472729226299341895305593266065293049212631591252057910364690372961969305307899205954880959876667775271966598517822458748088482303320588631168235212945753440645666984046176791728762087005561559940652565176365608757914507108795623956625028142408260678372801704578440704566825627533173546261644419513249893189740603821803214771221173630602908062460505562283470218267118166443746841381625372681192895815605974312047819728535993475436044201424222196142276434739796664403687005362919893999225373200979722187609898717783020483014123454296550471620658781597233961783777464920446125486132222678710900128263571860506541653040364901623427349333676271352002785691984554423652876459642519638833000685224938765377910277700512061595462618166120123358488834665051696501270852198356327237555535695972250263390559160136013760864972537138441237979103432411049230126023205029408384286649570281153765263096100806240847285516532427184099182058379574940474415243502306243715191159337324810864921408150288331823384115298916704460576041967241301423227011896984211463962462727857041662914231914391512268298541541171448861378524481732669281410424426721942747288887260794346060696233912302287391375580196989233507307648869902073653551666095004772038911105759662439864362618694557122208192193072865662550773091923480254281816581428761736098071650808476186626394828641792788715852086926247993598479508402415624330770433722650080507791050702239826185596676421967001733833892767950320530354849526129983712064980078121839642613591743914512595775838299801366797862815813526423459796653829256294273345964660359408511109931676544702996978958767024618223072633829842219092706183354880713507207396903066587127594162543536923695228207859765359523277366497282289217458055558375962667352731720869559981023111280740888599035300667295105933837568614022668484205880154486553887827005475349225925480836100516018175840779190020030111701232379525694653904634335757802237846378499374719234405192269028596305807293279516613968952860033241962213366961484851890308139888059523691321454576635864558567600359877972034259342670680072025011400165685314163964240518644422746608509746119566686344200746501550184260556352394270603034316945048582330850208528593465506365335181752004709719607086533073580092341708899375980583037073006064695485694810160785016617357585450660822346404606180470408333404017698319618062011354652419684514984837020806667655637524532110263481980369886152527918938886482656919251145482317723463270771515837484964436175128522750893954249075387413444168729826263460686425086005608155377462131466736637924377200019817427057873243734721568661930051857597367264617743881552113795630098986591351903013416790234151235997358742947950610100154930575426867712680952112880939643144580014708768146973962751602687875640853163666237585163047211936386365928631527134866497665486088613577589554664387488002760702974834417208695289951445882018299990533468783223790009232494719315055099451792714113473724494831848275217131573697441390469401812634730681594694570098353563635640761246095157128313037998568456193444195256787079813482474774463069776515763074199300453368877261917162063021061749479838152956976951835072128788700444294273889962117974293158667933362570463971786962084228317249518517390846573282965912393039144756918461973243740774643349254311397741352420380479489802683480697522373431748799589049648794670890388978199862006179331438675466386099362457150277671851417771308499440291697021787527110731128975345601579792567641129681135094311375028859029245713378296597940293452137270854583286204389132725213828791653293599414015019768538775929242056915015952218517008833128359309415341221598531205180983620886642533560404836183954673757234450218201304520542270325355224610994734540308210346760208925460025711159379445754225088983142565773681186821591451686431612598095657987986579428499554611746317171202242461759796967068876154827555328313735365136364408138425130984364001344578228121558944689252693281308453438176976993566285478598608481806488962708817424247176619762781234115254230564952182944452278440273895939377016012037465527277323913934827874441678941970438652626341945641747449263199117772636675574530086814633528099950990941675320558135355823060795295143309510023808958649802888135900892635280319871091012508556693631612963663867699459763586450005547476774362481891730752655453908822857748076408749262045889080844153910001841225803492955281757143314428091655653336747543589793114474191479215787753925804820145797119708531457205542213133015117612515050195814793097993294476118047941034145395589006316262793410270743017941776613068175871003816284018785444916338319388163691554374169403241356444259682929865019495657218439459381958028873164339490514092730395938919570093094309654852369852118227638291324242177873689674701729803397428885847218917943362665292668108720717143249202356654562047966717225742958413924130049555078958550422728528069681919925786811270680231640251892616913735803955171656135278752783433083288618344593270344693795175868436394916789800531015765301718761821568892642489031504091042275534468758681458165556203122778115620041601760045060165740121819075766822809083693584216296060642814379252423991449612542006098682242212656701932153874873297331950027902305191940435273143004425345570617246738492607058102658745692006728130861149960398323565376904131845836129136994143356443085017605198022573212493545147275875120627166298459576732753129485032708393391991453946265733968644410984243429679678689471087241381895482362276222887140497712412975910623545124384654161390644781600363272368963369691767588839549434553274053506442328194619036245742279510751454393066318641859668624820908395365351673711607015668993982308437187864889756140255517800238987365046661592959359803941575440525696685677433310033396149701557896878323230861716693678810195937298169602169645590405924448944561455017939114025068679095246895965572339859704787024451717640454822581177350628124467767213299456185707115102538463474674983513158781910391514910854492832154616003763456395065673306787571737787632669282709291522971978443892616123096002520062738582583026286452913564991745957464576124464129993823737465843559709311005353855904823556135540258997628190194821834351396090477284906912932121676954138806116872260492878400559064259432323423843791151424498166894251163907842323357641959802310681263055802494950269192634868169078313608623984585993649629321652252412943373408704394766521207902897033796877703258010264013550729955282526942355785785452246068983915509504531076391132334106862074698122797974666207912610038517813309434502853246837210695680124553200628382041212739160502636100842847269129587580523668095617600316744456711732726106267919021052511072699726654688696234198009099315697102176995911222695980773377157250091903026771086789035927043649466645433743193878702418478360999672658439335040891563588768824848028014652217155960696897337374001442668663920901313663996203238372531416888988760729723398508489838365948598214346298808684650604880114739332594389317818437550244329712616311426353262711591249868142894358787053326955158945050149116378855795899063124216227388421872745356945140569394556360735307119493735401363776947522702711855374333631137102279495063238045138404577050360998771216285616969624598440638661190720116334319827741562461729605031373647235101645488372173343058356562298253843041617995854876146795466231382067467300873221968603588215962692923922850601469134645077413814414639281939379826512013126537859521484750049972957947293281531305422277936616598981482847175944430155355212111822683288722673466210202372576592461084575716327365563725884836873714703024205353418578283436923306782554213524002083327227087980651089690374945815853975846151752933506535067944067528654670280052136427393352793101981872242003572488023488141315715152184043546043323167500431955408132233935623709989045871658306928809032069294715076595343402571788081819514820055303550774286354783166633543554741505900527580511637895247831536439927618128890842277081145834229245985324273812663696878767861869216951340382984524975214563984695825942003844880242737185539243011309718367153446382501546109400499891933653874274196657339800137377100557101447668436305999770110410752299289881818208697290513615570950466466554842010189071517493722473554730457599928088356256669541890458584637136014920553491986262334174405509636252543847965648134820829906420035945492803988252767103856862005538899253164776352376938226858377523173640208089380616105893304308420047371032369761515283172461909379795616354166927061222548470240744952642276776239674231181563064202128023691963235137093732894138374195559429234472912739091540553804625750146954425951411030965813520404501421939580967711134559003284129884851835455894652022912658936101475976966644778762539924371987833920727374564195985222426457531555268087505057882575787029417533793908042689231581018981408002511902725532216012118007902353238233453266845179614830889054471922290507953122152316601272200839486504457625021886144612690712001121890288441335366586784512930237282279389408243530852253146747707614879011633584740385306855289782221876936572861674412478267342520249200460943310706054355603941674451398174166900620480367095655907332936456429319843038640154372454672295674180107532758923218100269350035586486908120956156181389836570427980427216366676739741008157131967449793059764225982410906195319159296545320308976342084010735177619421157515813522339800021819270702780033094290163000502433427957231959299394946143350396554437652971984902597678307091820489555068234899946972915403329085735323461397388258285087498883293703843238678717073623029652169021664210113848737009311322024397418532183578630097424525443100917504166818701709383615507260410498992965957057583852065502282783334845412822882499737725636637855410999358323328837872971048453589235386967844398172488957128419048137390181679121783172577630753041176470915420557982055068915745438612528085615874757657013477580542600127495467866770661994404960110335872299940687397381290649183094477842443668074451771041563557685439186865690036347533700629419592775379813426162671126451314519130690174169581398365277784327468540669914019023174806932347606059612199050433762831232822774306123745895730647865267808221900844889213552965323885069239970959894178075928663355524759351885857439001482488581000931727898140844948652608121504357956992929270035287437210636365210671372848436768192717184838795898479596441577655960095228536473401562882078666549838851870203836645557057485206175830697239038222119160448187812026836560560120876689821966572109139230701377052457823212493634664880559236692713734438913013266819633870382811610092150855396975971085252018298086390505876179610880706393745250645812268993769100697491828156532729983171623200227805998364703786019383196747519701158100644520626064830778740387355536573666431706512143573002619732580721802220010962825410015130854208096994712951940988422791556442992938516310639998515430562956010020521297400873817783079647240185432107051616728556858662244092503392919784325779519950876685388112337655804171182628741089724054363333872977120805962634704442300447865688169191206764796513458450495799577920795803002929387898758695322616774944788071342796827506170917244840397835953111040279983450665792945304777717137059258263062603041590118105507984991348026206717240516072893291271348433552075849554615457691916802910960504496444299107266729996760525107345525908985528220858597175991390453528404321969741931064728561886979118672322789308207395590461810682267115088103688459796900779548918997218477497612864072715168142062116718487238408792466568798866487394878962780422012275501121111738484832271450476317265534381575260115354292145501379969780610321974933813944936971433589362798360340561496256968821888340723142671737170657371236450243184605818459537151060731157082828813735655316476228231290749347297866428064116158754870948023623892645174972240270923706177274999104583602685772335827570567339108742873068368928851125716849632266380404336565098721363939231913592262671804895978244901143800801164455159016331625351933496714542367343805783394053614617359192716312575475493705289394221049760452085890190701691131455174887300413487264770463522302569131737177902055821355215545088761303716694955828582703508439539246553319298931808979415988035938074770786242495816878584616261553908581086106770771821255725370274098485966446564758177915304730348152543973342938842487767442004319715354634171701557183541145068789769055147651690216567025940909416687966169789796523012841532095654443709978857189095474168294755847420219494359103932515592705644372688629651631559359271282861707942980464470691516277187621315719433697541084954615211646348077373086454605110365136226489140024236699787481141585805587440539762870267436098819353890494640670556911885996198190401901027925867447692449861360458248254214727018825911190143162949822685220756365646610128595730352219819048621952882339607551721453709110248140476880275897493993479162608825013143473869468409028531728171296412070891298763519539695221066290074682870229220106562841934675343317623678209276654834993460924180484235426073249445878280929063416695532519842658417221029211320241184767418441187896193598455224671982237999457719307140754346941851168528452089666055813755789725404030386913303460228228712930584805106825184375881765984955759855711635671524972108491739338998563720293560532983517007616006198306836537017052529594941494914140170374741444666231618441436223123347954664051984737463734440030655479831700889450913901129196486905745506640258217462372286688078683622762147825153970065837228404127280847669684411376361563137982137631997237066122242599614320164164506466162140855692190967885508711821048891950027623056381849083232432226386134290239353128813898817459098258563723458537790326993974216740290156676185183428389294103387169760136505950533646571597891172343464593647491892326537050120358210821402450127659561758702207534676418171706096652122240238581245512886596444119726192715394233336976602498615882181580443700440292702337248043347513819715303051913408090063827352659810711377747368860898678067678989471705078649864051977209416119129788476170292086372527524593962059375847682829063035151569136320395558339638290495154317719407105370000840788837159221589904402025199844278964981044424671665533621116958590510155998235281055325774174960472797763824995798117170042958578574247880695954187290537171260847288952102936187057858766840266059277007952509642154380928483595004341597208011193144785364523307761351777156440491700313485870858638964306251713193678698013702664816046297967171318323003379878761699360295349017682733890138833520720025190986222051422810893107545961936231574556554687378666696283211771406016070945912087909433273201392116269206574579248407764511671283605280961964407466080462596329968622387878799959090591496245998997715332589121526140360851023204457615387303486719364371387905975561307969887925374319392066566667868362396063407296012156739620896694555174498542732964187592000557947243805353874000947230423873434105881946166184890893276303683474927503641368944693028969816245755567241616680075676102380619762963237432437993964601266340168938720648773743333231784419581124389428044433408279105726455301000645228622703356832713825634959741785304465102211765890962950225652045524443924840504115857122732384509150947802839933519660810876260355512528626729328170142581885764342186518355656280300928983641883025862830607022310985874224386321227455120038456604321985435619682067059638670538582624092637771679893457394137406798914911497692837421194793333553327468021287205815604373087740781673566220256004454988784664606824777640638225041465858282569262848818029610701227155316189730118989934349216922548306502920481945264125525511434306783730347531267963361246863766438639710841021437862218418214587797085062458110724657198310241112756872844375369747850225209623893226220874231596664781409878550950301140888769915659403032112830418454499947187303389897486306175222820916576136295861741725138834967350101248009112986500102598072949156631394564748437012838283634052275529233330623988776395608774071257924995651326795838583225710356132566700541595966274452669115018076869033674335125057790585475194982335650292837836115753516931863660298790062789097568634655744159679574011592759619996042549456706128817963616902314168889881319950974102497522233432204573316214923620447998926270065659054476587236854700273057318697041310304830125598771429390099769277375544002276127904947431735061610720817392356394923138637135963044093765584529041393504735537463644449283451061541435756753316978042746996464757133087514360241781728141686953537875640025326752116714437037076141037157987927529489814489885224192934756816126386039985836344633875501402178779308102531989397989576841345981366084811134097002824010002291037252843354844895820666745415412367286816814020634845817600992520650680174854028131672928307125527131052655073353644257765593371158586448366027766538033324127908219266122594655953006854652728482307423448162226805832183932748322146981392389973598657361186419712740687177084899763618594485836137364867526628330167832650972096256285418968051885696492326865110931210387818821105256681265237452958704396971830531322595711220192003236154874547993757515329811031554873598804455107809699425738045144203661517871097901750197586559533681886781320987432765641021398778826212860913109745544436774394868917201944992759730411848927531774137348340462798293628607181827496055889006641599858899665307542932881894145164484376659817920922889227760904458383530376469926687383258767678755760006398891496815061467688667763341018682370290708563384878655744380935455492837196202760365620763602867874640337035482763884836132967316980510950766481318953595199188936361284754776027696167903112627363673845698418803235331514599848553813838836222148206258209245728814483665651718572776193080225606447410290839811906370083085116946116532107679907081307084811072352487523171624469984580901168402106731148661155032411144320917313389533661363621087056334491651367161489503099601558678032138190458895800919038684916200575629800910414170180956812238680709765466191889397161199561117773886457348427117385771133989507527679652932498232121799371533359936430622530862972354974670615040928680310305167467042242063568052985219524481267198640417923784756591936841726326762712058724841192567010448474629681569692525790910044867279036980390523727201506075371503959742896750376164938227004713310741885797937137194276059339917435216447333381367579374716112390555703007750568963917658727518183574394827944272188479866841199743285488511969051602967173499062907531342497831239615655828501764056626358996956547877064248570231790437777067757231996103313965567220437405717540221261365543652857103974944254481648331720734044733898964653379887689573459546380542092432863838344868377548806703481459131464728279221264843559858250229054054060160757581711699276407241278896945948185041236923917139691247297342194585500339630990397601456741930078085853923533025876101761088418351415740443372848206387619642261166117480735843593299853149192903088516229341480244811759420434059332732325633907302176195114109158020763894703265119799723358548636909542167377608853269245871962949939168245108161606743316853930333246613333086199037090362212837573531812784984062037875797708057860749256649931830854553093320917602220277146289104006817647478181436969655495780717583515819098696351614340121036321919759244190023397336655036802283391322376241392028288974261378901953453745399405131775610622509593488854080875251783035639430541071196656680405007505895992093630469640746836801119845708127118108061096604770023585548790122406742702338419515485903581865112659479804455123383308640540320128537728304468114026020894005467104844448659930428942561916621912868977024438903369813865518774223196671305816346689652519884041089695834545924783516370937776724402411070027525288786653775093241975490579972581506090342310826354552404929163155368420334316766311246191340122460613947255268546255857653422755175419209805199584940022887120254452583681715506396078877179916452681077154062256294532719870437044690361633705139825967787696462299947009225638394479911086968184040939058181772576947114536298102471532944829908611751255357453613363165530854950526409893003222193144267167786014442186720562410469419165571422780065536902709721546543717605109768410037931434047978912173143962811491651241687091983316945739437902534628600058706079149426996389975950909709297195886821010346286090460154416277306586390187858648130766131789500207859028714915194729113504179387241867456873388368217202024522188438252565185522524902767587232412716631465868686887271428561882401950668463080917494177269636203139754471240770887446754180400251583900853352146571132868187007402964897506051700637814204936491353558958378586788922676287873678725169095646866055225433277667671246767910616841720532314428842639670973578529934839319656757661264132356254668502214516907933857102631924326762461831159386192163529935072655552904990883289523482132744037866956807856372512576446330032230348420261086583655270352483949452276096232006826298671595921747962094605119669671319397577625276602889279762055640701175697650958253742509998013696854185608610352214770810834336433894337407808540019588920320697006913753052958129655125386824097618799745819697154493213220662081215146823936291676305499095590618500256870915511403334579512299966078223159168586656798595132338884794939213454639603466362319116180636092719072009792324902303637844537385354823067030402446622653846959663348322362574125596832954383497244109202234887662617383491354862910292422067429640988312884989204254903696989640745043845711422471612476269281269840525779802146739789245602452346206738499571566528410722896098383754878263492050204834827321100085018376963491310956123411268638940654522805989055666891557145885455982452131413970263055497904146260441336479969972875133265992987649239039869010916993964736908632360881134168412973079722974651622217886830882668779319252072547973788476346310762164370958310379394985789705635199377085892666430210688776727497265130861268301462368688692818313454156644199732604012111402235130949059522082821108726565156470035734936081484654753601660016490978185677949842310615644451143268560138344688076577249194716723736164353695784727315488954811629615682701965370916262771643775819186332486655538585202296293404376352340430723362885803246555113853056414757860592514103092435013708611542795433353549440139912748536886964816441143351563380201317193489546624676604718045937272578762023791531157974473845436835888915073134900726626462664951800260050881090486214759604338359869059117595558912888583454062149298112604231397810640940799115335360590376320703916459645124564292470125087927872825630015597590341585390002018214234671569394889006590235351788419761161012105575412818102831392464475417317506793113565117154366721510752893656465015986117321274572628776971474579394393306140288663568205265762175799344153347908646098070525072712437109203013487642133424433421122986595132416311720922704035856158086949353186800287155412823012916317769229956582541267896369405576810731000910597101546414219780959852109035279292616024731681131273221965470896854806126632520269216727133832851300894758751722454489682982864729803225387067974053904795477882235831633416284333965253660865594386328271686799282157307673418247374638144241550372480281831049166689532079272324498820172718417404703061565607019658448167586876394277171703320320274535147155537615569736787044092060890608081692619886724983802296553334788430213860667176489044565424405731462758753493130170540434752208606064717124567262922390298964160868580274165877275502856191552834993985525087873576077191372723102939382821716980783267666594226361416705100677175310998892715836241423147592567278256508450442141568106939700805185856774688440512411089223787482769825993740991856226305341005859905138119226772032356069895221196833241757054575374949732709457719823734634977834123845147083624854526756208591900979004661255212673463003984091739172952999820865068176516075680071034224850695573442196686424945726222495709643957562853630445173319792102717787343043258600919602141877825966773453459105480557163911480313589005848868208549951300936128251974532833882248456653412121593146049594909474719829716641489680964899156349518900328767115004249447758387018687027503816274945899700703478128422400931210408561878653122990101148934233196243507070300509445726950913436948920287429598291420466967653518596571435310668437651088200519135644365571570476514726695531111616489600936970633530122723208226368037295893528270085958130711580330852801902056582680847433224933598611174050480512948385340110863842958360663271798274684239245714327496268503896318649673454839353786993602029456014510433838385976390850665009762530299700143460582783515024376667628974954072287412265666878093074512066321810473910872355884830963501133229408318460243094813779561843190663577275180572391482268797008740782662145908223885601397873698573954294497172040216196560925205744625429888209151638351197825534993799641812648110782277926483874354947151346288342046870570165995487005727085549267677901613680594324141490143727012993245740135098326311339118592032975559093515737327565957139763753800825758643389838810935421707133847982401941975110743620904202314186076599433119289932800626994510842681223690914952792415443209186936768478266838453352660404448399623654810771801806214053498125368185721990265908778196594783263456232994255412735840507535220233248555059612147309626650883696575014931547258477598828288512934660265200845447147256912984754093631760237606172527166315495747496786354352540699924906571227881190730898449210660572265713844396099225194947512484686832739923005329267836679806022983089341032585873007980303489875856616004235993978405530216161943177309426717316597108317555745501274054370162695705672485305471849042824948460645896035800327085634893595886810161629539739109676618518724520293232812622562694039167374604940165102303396154852616106707197859511176136052501716112074564671441342213743930514503689715546004099821300187106893149700351115008876504861105224523512402903719331100526299847530529202893481096466626224665977370090492600219855069887220444666950146509590759964072443111684925130266912666792499010052727390334323310160667990262586052850100678271927258036471362577763138467397493781535223850672789613959910368354173445135009332639092799322458465904735963347389339828955680590997658713866687941085818882074876717372506465706739549379452597929103965327220081134143722674228533875831721101952319441430572949039538578027610166469499137052841229806763556753826444441562237619481922428855108612291872190504103157395025098646828390707840073680272789992409228005280200998954372141084615318487746351612454169260253526123474276217477069710582635003870836852294751918793278265826216691042204443773997095149906815252865652662178603550408216868225281576420627687791432425555926971909582695860379387259808025991380928172299615922194041067236476829275468476477713683450395634936391406014456920781473588768987983654493953295101771283965033969182171364384175025291939797785802759806603771175467181955867834246130882578139719541792920446969462145833919544701523629712666386551840513169510728234903485557217167344788470890604175732792306988230775403211353399438327469543305300771568411731875871037046487809228727032230222842413234150613004163390368694510985529327341988736244245162052612729158190946574891294106810850762913101620456948259266259605288532509596172366582503008842312470727233490115515088145045604191149846598965311543801722316415846869313308898582616385972501849596796133719582288066856091427502085223181687702737017354083801978921424372863430471432099193982889803281466787056528903320485353146745924007041223766747246477189657086724431320956375714821628841177316969082333829386576078202927711065999604165980386511205272039451911992745247785390451590028215226691385128375622862164537058472115913229879320910775223243761065871401451248179280799648693706046050524393936423075774281339736471408004432262232360362654177689188560342308262553703285422615912731929519171594287084429141643165691054354582565140988919758809726030848582300442618659381523080622655257014509693745258584948726725866702369512252171006172261009869142859257955505015520666771928114555108913450180530751737133964428835680561960791498651250876982792998725215099439447964297019853785804147131311259084629090358778718777653253219432472801427873441903675293928371497415228600507215262074369278367048301646698350626084607294679435422581149956393451367172625275569295061948105242732633834803828583646877270273512165841881876716801136455540758695852870603598022619358948815350287084168537968833481731153697753448166757207641870020098839795436212337208431630787036246573950879098807258488607403288940185622849099155289959547859354042636991216970603471603014311062100069974932844147120198242635013502845063994826868542979405621024793858950765187503653682940898129615663923054362691499870707710569129780816445284195281804800025462607160499768029891439170493565666640243721996649952916748587944592036578611305281729092643424284722771362899998613255786456141673075485478332640551221072649154573610822639445173619799687106947929747644395214590277863896935028603166620780190089216863825510587105679093376384321809279349784534693669870866376333027288537670899541648525590232409982768912106522867261180545780810419487587322173067240095769708923883589718997013117318317262977675830576527706880458538791854231663424565687448041785015754971947060137410194099449507372973876313444455835969992423192417978104765364636151967924145416878066411752963641542792664013897021640443509049845632938859084628354251465933715468485200583861822894274130384615459352978830853613937849511126228245002312348906041928357471392240733841715565793359189268665409595390444101971713098072586380691661026046748364923105108358615401800653557741436178621068222556403551322968214516475671357387243007698263885278760724560326437149545374627334888626616002583547548984700726806461440236097950967501225445833568656860650393756724211338502125047368538589742918443483857671184994157555905902404567405705605724824295518922867645532043826018837466749619464568286309772094991458249936747484611765826052300574934359103820686387920130389965658594916398435300878249903484922378525055796034948928206553090345687685164223288808618230688691189003931888257961502134177783539589972098478493238754085189682644280999382411314455762054130180375805171069277061013125953653834023865212319177381749713038417213205781707749153067063204086952887614237737511643285607172153711282852625838584666387193709453607770577066517431834009010407527225976332878825735648962743710193554322297971751025916147413372071514837152555480351972513557156930744007663732982538620238757824767572409098306697817802482579846041748073024684101675845030422803545915407714140864146524060126451362889316962408809062437041364499092648964673828817523121918864874037549294198113038555741455931003429438399321314494719539506514612607887975251118321349231779611062992621023958420984552478456349387121267892804349041224605059340876615461753058178189084501852918114369953118264176527857644195992552028448645746059420387538759534931368047775607339839792453547975530757160198012189425015704044908261830572408545551566697598601710319826773175631724365308701239895909099963468250453986127036357044940519716944922682511216094771506149441057907216427608624566022144943903050000056138599240262230963341357782281262696723547571492820908790494655504033535777314315387814933261902122907563635823632388324269541608989125816646791176289659857285761999500451714419491757141755189150786246247361809663538104932776036545572821073195657272090031917243986940164025230225394102341377957118310636533341557688974581452745680179458516869077115554753792318191030093399964231311061050367686242192400800464555021147456816499056963793424659439720524423814604956550323431925023852925101889167371884228696275456135732256322836243742786996105302690407998324723915728798487454402961698893827859811265154462346069400332573967061508083408922688727167516236231446808886238730351817512179340508914064889828393591320957022944962261521334453127326088589182511578705037298361216593773856312674206353971116326007789593476459664023139602857785678777018677600283979933696978569695801917711045572107201081195101405341549302494177473278785966868211385129921603645234492583910698402703293390773765244986909264611685441066137954043389448079127808597020680558494245783948804990644438230339508386890456703811796501521207459484398980620774117223657966595486480804639213097582159431195178326870943409321412816997670541869535957823409719961050810193438399561276470953392974078423093977270650675445494780028227997348828644816889645510382284147552519864921239008649096677091244756927503121772266510847058754541599452924146183163096929776469595936190020701645474889746923541162369116792537244875014931748883894453496787181105896587697268528809887297968722015363414561463423968638792482846528562463210135003241120205469960945859489192710422776992731258249802004072000116520498274662657257316598877632394755321750305982164889963075381426610657739042260830984796450421932310592164364708662443447893023626622089445142695585936984508460409013333797661529617511201195774694004734332432983731322036755637208916808293324887758562566125559353207370322871168385553928263092617179725039084025539059598913595773660624244836793670782746561910770135108185678601706702686542245957334328612685344915175759250507790996605731961239301710947249953794022272118316890145605671640709963364666022762057087255302225123491541693038454242495616299275724973421995610357672040508741433503597218767054614799020465811408337965397708988017414475855436377672054655902784685082512780021984039261220552582295025224559816915052344500314133584595479696941077677302925512514415850385997699650901543402466206000835959826223831052305860709671248361046673910222464320787268516509946963426477200016811888291499678225009421318621437732424479904436795690046432171902617557056162526286005414675039229037876351020400589936120461072624755319647722547806973558629687044474618400476586406945468704592196471309450070989753773094979251565631752441513415641177784524526571642295666476111543095232569074008677357981854088789844104581582492852655752296602353432318982663543611814151418441965912278033720405920785061858332584061427820870680735669551565868026253655514874613389916400645161920886484072607799793870660673489653370958164435648433366862345419114578333662947968267737887098182350923334941782351560836968960854954637579615910410607079871058351267172163043407082658192046932455865375450708929326212827657513901919940328668310905077343894915112469870325069867801161804588744092065550209376021992149828937285808090663189578451741066718716920856859049863611668981333413083739801765496628269949469024110682921703281140034370807979564256988117659219699589085045173196629991345775911728297710906407483519968509668274028376075301375983681504886065724449957906759467899328816728679115415307429616039014612692321289055481843542224119417867710268937775254989971038903601999851152318612216797671402155949349407633325345813890838299043798417167612773850308695966334218245295941095909445901075565758137258104061637486260865718343460118910892216365296751433935582300892256266540089572047018875113758141720145708304596129314055754748405936332401840387704391417271289968733950362342424896061342601914531015292117956025927716416096196426867391043194633539957852616917403283224025459811125969011101547887985903053393661036472268322643641727204654554151404914740313381379951731843245927152084700286803442399133028065901081531539479699913353242989160671144237023624884815783581772425994492066969916326152045353874197202684880368590059510752031488489126225370006012765728863301925743107719929846957907644152978220725925689101099467325151925031039206500561544019522411783430245082663047219790654778636846350362182300916892909218544251341354383672090568702250542779637973019297291793290094399011650327720699221100558276567530553208694892388233219082145736153459089853899133318131402813643978880103383109934410674416321534934049784110612039452965855308689168450988076507031400525870618688098895521134470813881713254802623229684965950010512732820843239982052941441185189035177012026740944173915046403323333228000056375141848565647475820106136328002772587854281193370225076840739747498740821811336411524465048622528400028088358599316566437437072161461280671950432044603386515085837902077166563453361153841352291651551725006994398209835371431368368326171076233683506272892718046733878334447857066436770776331288792453001614905312717342621482992474363709121162134106417425838640648282086252599926528266400875640742154687571524941511337044827259429947387638907938230264955066036544293517877876384924177094876454347384873031586085644810761696430675107201352297204584226838803673612680252101789934346501882041969367378990282340661272271493655660064692170278132397813575531568017247246302606711571287067342335481556142033877757703711072348956128173816651057216221672258862529444415221724821695706773462380895078178568117835426502135367913337413122955820181722471901478876526777225492093536691682746503476545897634528290359892505755049012486706475481271971040147023506395318679435750674511428277078052793980455444671472547860782327117901499408244466806209458130797831455048688730643385803155725825183423962894949229138502014363929557502889587650448545409605948388483680691981918260837982264544755061664100690800690257141332475104277182941412593930416304991143968237431719238331528705141602005225058437464669461284420327023164678150142245362628114058928642184482026121176166694933751476283795337952925013061635518339018127979041089182331772063385086253007479334393900929084716833755884535033208110701520376226916935449051752200617401353238829793375981414443188300276760707987938804103856299242272230095911347967304682896253144845048008569339094246192387181021172994874881214484961884368211227690620293271175462650126797569104934855099855045501902001970239720410877241947158156127154378777533548077949602264575561337873343386846559350351550961583212064814950843522042257581920659388542547074747544460794687868411719081863698594218260299217086964841475076055374545191113589538929898875814767468761161977829813343924616753308547999053447938888307339009180679700594661088289040162618077350792418663673392735954112507949163202847843630871352817425381883457949725411562895358989679554407538749782052120720967694494745881191485233365695111954147246153808458775612063315228923844894181867717278308802284119417202316787795245736275141906649131312304428349335270674591914800692838217671750794176651660145226501419097517802199243276906052494256390902753402538169483082713486150739651410080353816548390033007834953487683588370351055646633649277243200400741224356120246630527147419521014266383804711952559708348841208904782123158466091251648637300783221535046880457004870397758310287811247051013999827575316959915565500518111338018709064053133757202351580932915442540938426550514070957450774066757188099024151745279371113703172319680381966270688479915055253888208172350433771903663633836952411676521705300004944333142176097732288334795426955033237225683968551326830874142347738918939556198098925966221328186967672591612243921747990878284423282670288404964411295356243002547949381670532663482646952525049272524623971011108086983003848135819094394869055354007150894091646809088207238287931817830477707546269304997044760962172072222161656652531431550205625270903409411927993012211050081265536583775551975254828358810301690344894196147214746372771068744692433064986992982495662230063877018214574008920707173400528816555008538887605161957474935313450163293925076763842559447773935328343183971111448354924936243337363850083478679253104722100106221910035572385142351214677954366386203699127515547764395464656629374072569939199490608954930409699743652353663562255776341190976436832842626935970032736159155459901447207389250577492242885596252182494486877828277373319209790718162182316656900640249936493665475463684897186911588883861709266032925689677079068945879010734732208846898554376103372950127275495246053635446041398865955133717990793523855585528417677727989290919689336085997079951931546152102651306192432200567391275911461239343833730179486663570218888524473972783705073670101989944915440686355972468754333340103837596065738610251433109546439456961697059590621190682960356505504033547708368825266740736965118957050708650113263242478744639891734842334280712941514085645663011193139952836652395028359604464578249004004144704527901230172319804204294084361212767982256549765340303093125201026725451854936426397033329454756229271300791197536880407215950350247639791401865038759327711963734246461115827106369057579485755976113640928368407260388097069658777556567498853886969234025041108464678934881833059762929809720475556443853830307675421615810561866588389424405722261805479729567406576350640145108008606122768493287848490207427933445521840370000172454836457098929453015814990464040715573247117239050481978753952020816945396425799792822140800496686028299690532612065591618821085743067069333593751522806753093877458213277677915838137836422534601959339823014890372751834752246720871244404392623145747945168700788825011981699764735103676594954387479823744678029446364280851952478378770100097450961516877024000668421801473788854084519674862700010087336396753348833612133910637966455889725881501063322013366240753753116760961547117743120812411706085290682011486010554436871071734525641288210835395473707794490554361813336807341569483554886277946886870375158884443848643627611255371036296099747141486781169669335085819248808113981514683849649236686789547570766308418298837159989186709028007756112669953726310657771765389046399284115457069085347931905731125116353131828505733334335737763750013089011530115329676260155329405506600030717502285186933885136343118174465335431880996589867883357332316254905540649184887478958444948241698614779829355001846055171864900150191808867752613300008373804249293223890091088225151138994850285952391835801830258793164782842806812574409135363752089959265529359931604152427599593763856419388953499865430533542110385372880452814642161241562608065410158422479695906459737091876820796035844416359712825193233545020396096645761476771720337186736647268003194026642639691806338021641869469831565279421497813196554336045729938968940842018007610394726024469822463110378874784906495159731792027754108570855077190281954532764953220299943156841284640523724054652277266707142079753604777173763790646177977894685616425018544422688445580908875639499414071829020749864777934852128232348857310806101736233835679342694972137784536860698332271230946197228549532337002670093154550099246968255208025212984166427757385194240241479149444004930349003675365253821887470153124473401347764663371661601814235354632690477948271472749856281243649336569743541802631652025431000978927223545880734117232432900274616385172521429446040815282683361519638196819877122365908867452585506466983194666778489920349832735809781932935052928667729488764071195784321018958789252193529299482288630411802494689348438417199266625344208624503060494682649336101422445827993666303722577144588009380489183408037826201776747780550151421118955072885302215485689268302266516316464252993126851146036021490736550283104128408209819399611726160159852788817900639250193140690186355852229302856202698826202347171536752302808172423134306151551695974757779275282027572467103511793654695836843528758165507503255333093827285187504165191923393104568747057001536436536384791357244081318997178799956952655095751131909004563115607326035055696651431496613082127564147660131553679287006932184652422596331487882885875475408252262837284177370150188834699298046348410470289151496370506586988549624122126011952581628114059903704625142919456321480306974151931345485696995827986082158892549486562370914271454997227241659964129778941181607809634567226002694413796112500332312883480436954471457584396702879183864256981372766681914208240270366947373797439929829185017697284690880341277382909705066818354829027661524872431637690846108975723271891483693018683306515413179340760603551613971093066222115119825000234294764960764043508711503710260294290902746503102721803290565117659251635248134563352631701745290402651390836247421236185955103900519109042611556027427234957360880448460872359160795993978604477944873776868671286159941966245626141896499945082799041807130564139758590515290650135701411422577374634310615236122683673662642603505809494852172760116741409994618586993387960590785769823158431504311989304205748404609912475240997184022493235693980023428782971359680185063768120854908706600121988794546377030675217902033467868699467839463724135249920712799087215807503988794965089980859177452480509951888822068186345407716613699313555285408243234875608093290626003094868070058959127908057208454516081109796740791929411084794711261455909983847138593022844750091884882506180396871511899132114312335215739819801529534987894272909360065801058412105477055928794614394444023793641746873335751197024767927393468001287122076507856882998370609234352474123934533739118850453914821841630309254179102495446144146072433513527544180393179053483986596050328225516705382545243180503814842274436075913635547847307769117821273122134673474110475835894410780403693932328238216430375005174893746280529479019267946429823665351017384237122487085981100140079803918340165236014625755826703617977003149351386135233864333118593486448037896694349858637478169460063796238648619893910019786306026889555764421616245382747768919426215358299467684731033082751759918574484588359220807752477139515499185778182831653678337339704752158115668900084203507282098009499625400230013531070694203656483039364838994237165900756834381027325809652295753263700081644181787745042984000529565158144047508643040746045964191431492440579302939993217961438603183265202388446453720243696431621735071871959406809043846457776670648247819420883995911685970155623366915983924752534407794140894307052840317782839100039186411246637182588812787148896130934362733897825340257037214596580659558631885928668018455656352740307759226603885603518743549742646452070627707214949946806465790974761906332618187943895758020652659002193380513808393912776344473520342891851653714912788687496093455927610913138448037717569708855191175407678732386847074221536560153454137926857064895208258542302433060377548652609547186618788440231152959089441979013515811055275094926269312328959098245175186113347749037467271935923797605034748978851481556081973795269624777191157001357791536349588864759361347869904113795476422626248643045338112360444028113265695757333038178135341813021334838325214653767636013445681888340052622156279605390519338972482818693381007828486863496818856758427193487007164139623145622423186431311424917237871102594671383582401954889180951103841141368443967038361128580106263841057402123701906851578382264365163377479531616542641702289696142885414175110258978244414982262309366459486205507423447278988324404332698099813437534099828162046710154022267081592970546211256282182740197269657233006802809835714234988980887123210551273745973605037614987368730628491757961309523630004542302069045544539060971515783274281258539482916919852738669744989845588654809661660600402471773826751400734387595389329226481981499051224110598893343965968367541797537515356423376510661724054983120826813197942358266762488540364318114987427332962578626176938203557716708386761198865933084860744813322265354760149294907442131774583425340599454392513183961466401183153664855544085629028900298171616288520435925874165336752740233530603007278697239449756142429600841223022073321127021872040376975924015250123629666771160099125763100559415008240593116632811566386710532347242376154019492000516318133121837830986624140239692024434155197287669057508984336001897619458176842055818423747148665909855557901107325687057489378258915850829558578991361224294380967048705174653518576958107291084178070604052429113058142018554078382348450440565700713984241503976522566892375699975602354508568768920396547571305608636281399988792166455591742132316646271189945578989781433130826519834781316768191470771122303226210740825733190151854708442423291929936038734480046479365184026070817031568079084416127646976332545634957990229512210028771509983352146699517014916127234073474427910460435607503614117719890091162677102564691232240424027250103225368433148140197807241236004655730738610740870634751355828026771836710913799687558766009305156335341665552070812356450781474339931063163518345252450915912481256207713950818782015160204185237562357196483152035306804085937194020367471754862070466734106561552789116343344608447310399824412530734631804314577480025024560114854618371913289309084584293055365490670163670614649385599473499759684773013714173411062038034409862931379360424221550308006130853419537558926641264961931775129666425615198846891569302282507642567086584246388085966336503731169449824098370009554013659622570351512437127138355872489710840395711183175938171468805783373939750939757728587232893509994757229462384821813806667262881492162730171935347673454804946955301266841464422675755930116602309441444504573976001005203413786584632965824846587301106765359061694018009534737999956252955406162490652619336407453301322320613094284500002459774183114378693199412463394134439221885101752309317828167894493660012733937654159717552016010291486172069202671619166188737707738752170069236946297846166518576413411118968053698941738154349725455698363807799119803113040655323946102578028825030290283959849370846536801450531330284211148681229872909871368630405232580817979498101943460933773260060024199194499655560297052466916962853245404249626632765754713365853879827362495858924540703080283835292537961804834386081627029769902124148749952399309103702137997863523454443343943903815271463550404269534624042497179604571412879078849079219357875100107342343754860917545094883343650556131492807451065456427860584156520619323811772938582203669961501772175338615231461387689398236537706982262662777116595414718301050313004069589346576702108888924040190461574321786717825690077860091417065696964165349088597756058143807429000484996317459158673320403958525616019411424623704186860071232282194415499243391535828147813280605297371938244846137664181037560934852289449302973984945646031727961069800167979744891982327301051617737903322224693054540551069425064085861433420355776935011745922035340091431148011281986467135222754986402068653236421560837939891568994764675780950376887120649719644603543074838191336328130843842339807936445870123608125645088623039387283612352821437788370965729603068685081599372372171366311389773283598080080266498997426217995590164666801114781441849067834881600123171027506681376820070671319188780779156596438364220166530309013708863411296545838787156683163811770158388361682353667051151915332307350135785246822848665696348527161324831493966322222778824568794022587889754482532147574865207432344693757787480846782860648205272637857281902456794672204225055438454238868338537140427494674809072720868611735289848461181840592030554300054630016274752362088356002788049775507205125931145738292866738119966467733826135133997055617686556371980138493316050421679970967994866865994357147771414865607266541075317350353829126310882086560852893742420511612475073464250744806283538225980456636916530829093075376683295609599994609261025950389639819914091603525625436401439761236866362989099313713541541694389961036670016612715087266658525375540245748700552660216716690400827501094499642707600666030088968213920352818766378533073896708403272819026756684814495082061972094912428436496411730709641065745640562098353796576679285913292169627241233752371621313975661382492038953221975352282977678960997323201370536386268427433393924763441611421194586391391735163354309303262453766381090139841037099079013599164904835497754028488742756858839672750320301959889552258604584319082821266747380427580741779492817418111263800390688174051043963763283464924625524692298133524530269727124409141540011929935887758912267402677426181567426494905622241201547565126005676520402388792572721319941200696437999978391796325435438983829254122293802133248199470885323257407189312068016996487831048066552146720386151867880986167878136543990258904954485489450698751399687061480238195622350330108545371554878695789305262641802454259073013477059710578608481430954629135378455809208779846012491873959069208964255209853822714159325482089726559639616331759337067547711105005559350308709141090711632888325277969069314143336141111773762384421853930141542590923598898125418986830279500516848310771088931264826023427307312512462922287365775465768157204369529748807927230848685674676826059359102485485568592041513712119147981274605133227215190257220707353553634708965200035364319858738823377114010910129600153960109194390509307630988652025420246033192822118548686787890239139550164721966344658331439534425162223085192103354724245307274730401798132650002163183517741684317811322204513750146777686662493421277788247294006215217578249284270122756458437590229433782414467258238503915941558841870457207873665402687552649792690364657757112075431995852930325449137219831916210935775474849564578466005568576383453897884758336409147018802618142751838379622034161573924014607698768498931661318257862795106138332469559138165149902723502839125964059455094844534838670193113448979244713146513900415498519423141779086814188935096108482371438187101422416797341550100499433934932887928064994020253051914937957912825437090567626092129262423207133549135844333570911084175045954680029332449504982630126445507417940267802148525961481493852840901969458016935927275131457908304246677539350501750126399580537909583384033943422075872731038325891230210077844821743769275949426589726901318486670060433213548715239358276385974709751449759963910071779334402403483947430244858392921035413930348848962359318729858717688451088377871926133290501831845209355539745547518362606188892368466271865868811849640658191461247163558337189416803257040717371930176747598747940703265049951309442866620557121409291363271664487736938897815658471929679589224967509983243141546791611174421281002255338403168729406911547128816047493046319718976765665849415065377132146037370915540955840834678869201170067948660300107148264665471922620641298406159781029238303160810247698221038732312401444586228570975813638817804636741759167340455436457091942336661054986692420166494035910848808553080321475520384558353434209898183086147232398603054989165119903597236546461550161217264938884021463185466656331843117882241467887041658406174128046370531809550613029209747201523515911596159438380493102056658778063378988901225547290155343828327059064497968946592558689265573975831344041414841463819266756402857418269328591864408344798176447452105421582491192723337377763424250604315636976383648224872058877112659620462084623046415160882406780415123048654865483363530151466654992762449820487623847585444866745718336662569063688547334391589481310998353073844982966233428085289719188562395399535220461409363617887350378334221076961945612786528036994853406330878926987290060101208261227942000145608528920921612847214995351445391049862361142060358827483395861031267254133294612888605990769343046090320161996544884634167943359292874514751086377043423500859338759192850414646634982049430201301872436164310870279740385043006975409989332718251550841720293701673785439593432457743659497502708038199383334402059901394360782499474627695098092990043255021638399209842180049650299988976134573966262716682463128582961218072830054400974707003383646977803650772790781113569289269150270074372255880932650374696791448979821663998744973467074531875239245092734107737590854287834193874636602506681098022774378357272707367412022702331582560212215472911251210334223137347585208018254576942916884151142012565147520613799400895884694949964638712720228487099852134307510059080504863385341275304475360734214061832750294111520155337574578475419004064312037193062769882901902886730362843580501185582147558997548396778215062405297883192078359336060614564370282619648558815336929319999005687723669229843837204953660006610599792981591109777734517941075669458646643762292728746519122923000879168140099367344615562514076062228699377429447780630139017552838338504230646959130925620034696688031316865772832166031831053440534294631313097145940868795752660565253955804434980942615932090911779533121891740376401575620733830249796222709255093652520829383168738995311959860699016863976121754135241546042441268215988813121861748568681829057368525346528448989152760150338757025008470266498500564077038582067214783246133549109404714372146265134824431304809353401735973538648734023154187298414843115786378398615831512603102125012574319360862656982653030433225057002229293876225273170425885670027226627933612942558796889194190741853317100192939239749287176344452729481942243412334256602787387855142185814186210410160674568070788875726722495925704381130394451222755984127546575948160690048546017098559166620515181865225916193571874468480122651850979078720424005028982050212959599906028679935265196937578749636275539601920795809535738821204789426179827099028143060515850402455748946911215143438062269853759045653194519913449267698386950691349929697551379507005113111364113319895736192599523168930405581623434627637162719468430917385720899145738788869165305423321316370121262547453910491286911391150012582965489107502942162636947549087457016216820699530440050232544761329667984494810751297923457046231023778294913469692105320942724529597037714174762453707619484222069405821133217360634477397313155615890797617253408667935548913752763774349922275758398864312029006722128374983432995833664661502370919168707555472658134077974202786079958678841176779240481141345846833784892019607962302284859178328055031875093688771156001243852720377742139710653834312215379058769071381950138231854521099010424738425394694400051110176983569300775808976175804770568766116778055079144395020957846212856188810018769483231792129664964921037444219756662465712220715666353575068132175633006844329993118695240982056897573195126985448916597579272309562563643113196452660926169601979347263923286923114723092567513649723937680634613707677614847663460173183177845710397458046964234920751209149267268836143756358274528536675984939654875271709177185650795474626021181510474169456552691468331001287405134130908812526456542845026652763280041963766192676553892791072883112428436664103834175988766084276545202531017131289237202323744247252993938941465725710484187036595232933742291409067697405870019533970258371015530849712607625792400506147745478866121806543541727926553573778831959149711257491414807508266095690882604467784395937892800151675700958897420219198032513332997637992464842182574483323588420268835035603423484538705835381448352761861419671454194702251617371187581168041213005264443898637400862469291454124092714160394156610803610099543097779033668696507111930306673755148320705126037542374428241628727458044702414597955595347701122040028274016123218439661634902292935201667738466106281338216087535559188493037007934191883770580275066360803117746853418830453245083099263138074415283380102093246924130075481275951716567121059064816997822516114348094872510193313772626404679620662012495756880634328918505076935187177281064228274618206138532028503114842872932635747898087265117062468796762710296821158638415811081999547133663623440439000545314218481305542726541307529578475435711607293444331620716464851411502402841655429554091923809220990649128804018546194486900572920447615235395450433836462901994952903172113123974979452100514804414758169737403550100255437022104207098190867548210553783108025005637136098666283701328222507189470822375968610508453307613103804276901523784657186276574730589448028165844084278176703550551494301144006436433750952183086334841177362190533161250480152040727935351004775314439661057531335167126446516547510541127412864923829944657760015725239094010144312949939012867582539519092239618333499582665043397683859496376660349014438298933841909830817485390389693968931473826765727273686257601171132096351409653212908614547394115213211839319748855140996484439731106104358000201719490026003035625974172801376986719457842748016109334163710538680032535613943781099022873501470620219796418193675532580563101264475292704280272812986987482467737189509322942387919502013570141101741405608132501865488075938924667501631054662732167126319575901147237237800413438074578307889859451300483893909770998879766723082529861206227961596674397922152546113904483590209346593511109924804297867070581900785537941567415655280595217158402373294188180652712781245381655478079026832895657387345142535922738915209221042003549405641295868101892306372050642531072509993225717524669069854284265397535553403125232145424852767654706284414557566112800996515553410188475015024684450458934503127621246806763396381614397889313010074103972260640147207946802431730196484376473818525572524999576707249384748370897191101252552280143994039514274212394768026294190761358809365579645241148896638231944544212092342038199272435457834136058436355586621228335820054844511012899668094087552928335577691573652898820519058260816806943709588627083677805512056140256242067870942666350552320740230961828347918961789641905086254853100719684071627413845199009533859959305430718282361499349872181962106912208143399973621331403490155276320484629226895389997720069959058604296639186582008041190481858614854814415464662411028727323786256902200952717303966363914031784914444066756732359216270913196085908110462066206419460498330903911799611316097748612679891718206575612737394515728732225156888805133854545439301642813012392953013164814177033247665619543973028337593950227947754665141194142944892888634569215925443771361280642909607002169149577758952011290426111755991716267983832750330007766750343939208317963389330663474229409877736204740012619883101392468248988468447032575523459881670186663182320654144788705685058992080942295181946914277651789529563983915859601817645864151096203909502712668826755117608722384921378731706958145523084149655353124315780010128898003330951358116296861377087076360945198599656228075833148419652922367222534153077507776873138832042913830584072554819531793912244250815061190874322983367687085448051251211830276061982555197625998088150424356454678791219377619388290939321540943750680828264443377906161128294618367823635287126690933115886915022252248301111066249632092224148166281838213352154338878931060098909608937397719301478724705082986159473160476380734692729225786398926503249191578732204686678382510933727115992563228553447114749828084960197112982646751810371325241915194964687051219625779159985192992221844620860301639303063829806869973065458535797275960777017218159765745631918094578970033405982882657397904968379319662355466975032704165858324194746086376542473373640970460186057737906392865209168144831354345467388314917666330542531391976653536631039422767389986992630244706649398898881459035551027510267810209011556568144003131232378060107988973502644843707463407634720323561012926119128967357316543801466889525703198190509896450320140939156221488722010759701671254043658923668422863726401244934766858847555452352923925965462055682255938729395738272130915338518883052553009069816197269661805004788683192566888046387855200778006404596304514896901073034227343830126387656631525142912959671215747629752571730347344867159105568301235300584662238979104819826273402828287932124225773720727200770663417132790279184020968462302246169001481584452396742988158913856433572518082442795984227672586187468756676292016379053565039084560959308274747069037019867115615469609637291237641284471043435029505612904850217776000700003030943403547708889760123759715705676964470357166728737785878165882523745008031878344170882692289760960099303736604580360220728704736681716039777232749073140822034630408102221546693174790136935610026808418271123981138427332746435525034067411574938656519612171520442650239386020219956372682056428168157541553540865037670679953173217313526006356620832146891055461186629092057806448959948684944086421024198153914925728909948135433031908740754704754762505004311230891594174448367840853454118897790860790620811247215677966121384218299621991897730640258856435990622458843127372729077547610857519158859759752744561064532509903835441001826740880387940328000829801610395552743883481914065537621500535007348512136065915322118388614476775055668042769582833053312037756463739425884989937279476782153162228296454592705356383113400307919944618225074040165363322396208380875251689378411664452211283935522201972845575401448406062236991982108093117135806206214618795965679687952449888588513561914019634372023066496306215986366155081893110185020692927029649129584010544795041761802355994821552482278708042064205550816797862450187759845818357748852250821639743257587402297242532848647388403293061556588343271782516486456598386974138595635189958804831865151671731150903116770616754878968436303385648616917310431118018206708581267100475362564583941023161801330286251026628286808407134161438062034458884600531335563068383693181515432937039190653056009014442019281736029932674459504807409046674918694612098425379042089385679092099822356114479061432012123526862551757301008905915148515349852110831372411268814792320373500946586870092968982606886968521342235569039543859961309513767447801823566903303399972502885891128453902414989296867080694946267887004103052369825589623716954624053195824662845327125433476966899563749057716677309786451601649052903140758448789471289113942690814238551511752816412541537873887923694202605222133164811616544905654418216866767630542455616992528531832309227504189353387077589934334781615167159078950424885579042385058384925214880455648273963423358746439746722276953837342798443446841474226525374887820342394928478274516642483621557766541402321172154331537091588935609372494133861656514683029236394033296844840571756917450681263395421803363416544596581483198622217647225709490432883044747101997089591903005745498904668876520631990262825954543693986331077837812788953218559041966026277169015282143666550000920198849861660475790482137199583993299740082381742658395273033672335701283764531648704116550515270145139886646725584593182608384644231004540668746508819468814863045800680978078491675365296441845002214548798546915724008971141951993737285761623274385708252983920583218897900793799685773690439976019016515503004789467500267281738750659851068640205645714651044350299836732830848484767929454715889208286462819466928713059571752049831679684527764324353767193944481568224010948129151273968377720107125243674218401407678862089044924032491048670675606354861037705475171984142141945481974679400731801802613258159828165015356697993631572370882916653940740386729864070979040777430310161268236216472481611823257646333349504796758121599177769265200296625563879263259561911437629881696051911740075988361488818286043584517129081508609167437034751114362389749545243662829093497080573657301853172187770133902206753316046127540260034624063815567595721776363303003799978279728028406339989689945131023536067585667312295653982197180649524210141118371473684633483171153357020134008941684511663226293291203608808078954140504639425479330361222301070267285728991000205749253770964785493477371360532600208181284113720742551730695656506152347391473686187014223696870832869294797032343839097149792901885733847264445096241125522155844074819255341936847138120164875278863827506184233344848711607999786417805446220806420565874666432576985266417561758033285127087592785306398838154027357343046334014419192797208852188260335143951986788226466069566723718004719488500874155830733105327845277528959066119670033311774291518429676235913122790738747737347868912231637069338162054337631668395321564262092116966812362135675346892295240887453253209230152964718012680152470679607048255126103232836639316568233413220876950953591175568673360139226335332232615108841349178587049106185929728121812315529195613124610485561811616908295825617804745973030358458014166832677610964738351557307436164632092002986863049586199883937068654669253320702950534302037131131965744776090925789795823670237092515571078441813234656083272955907212535850440879002091568173595092344015099604608884546240386434396014465689662933062196689712429567355071560833660870529480038021482647164826765333285939764373680786956221853014651891069157161818244410720903648811153617994885801862270271233684469613651762851739810280177234013603389272455736033987504330784396381788967041954061810009592539714566325485043806767493697871066386947139527071240202076102086186704262485654192891799547818174950436175666798085866422216872897062776556187198109052527718818316029915909846232726845395510985973492676857339905918536891918972693231804889507476848816009711392767478208276849838424950799212512609964108856517609908296264829415615479206897368018518051050510611663050420590577353334120117379098692597646234260782896287518173896200437391147190376994192014406287073455163292046566015823536138064901962532359357501258149809338220418996489459985930666660787051930755817452623690856800690280324900427043564626378591582992000634491437638028774562128606550105697949562999656422961208738115700537060045327889636427951522189531579294636831074309827670430791543409258886880685979756915849789576528653821733796476867287066919415823045121941483454248374941993309070305445344806460231261107858209148888205005369178327496880854542798746822158096609789131194889882251244710504294730978650977728800104113257870425410916740021034818592571162207642223409752923959422760796420877294099779151352187695070784886195801289771099529514481545426806672376311606887844278220674576327063165760379883656633409364510216608766858793570105547839236180909109881730649921853620117143160780981867216205458217376092265153752024170051604105486843516502006470682503704377601982119777665483012985480694466958759607651225989137005527867674912849654779504769702074130747147110462606710688962325493092594654531023440184924635267503668349926170785818959186887381099898939822242220778229656003951561286053345254482716843166569948203611902757603264968338403503933353996114604039090978416641541156303119638575883090463239310318123502056929734554042128559267154125981239611370223829099208814093273321200178838719202148977780317997322757013675172659714425879979106583026091968524812877909068684377512381792600324020917490546133888162177316203015234298133901968271870928987439550192940012208656567628550776414060029332331748519974023432005616761890380256577316640418842373522197104547039886269368697680536550061280583429312582833741327870182265956026609911895307436638602136104226350298076559742349074603290829132579599550170495805622258914952925648732568486032414327555700148180008476515860746540016328533887177202276245227309035910083428744235054919645250118368960629482028547451688158284474228861441059981687495079418804447957303141762994637219332029652601506547923091392837422108139314848337275743997028852181872644182613663154179003848004994258120450338177236437534163445894256726110900401868809857871723025198111348244901705089939855834325469315155392799598274795667707746335660592312503690774999769332437626066970691608620630320046773161054538429205198116145885891887238348175155618328369565741207045205078696752306972081259579091303122759569150395832491888060873874221237185994375661960115254432331588540068717468116062343385583263778844610482784184862553754605656150541387832282015057049088047233991023585351186887373318676275582031859719882733428983167416082836711701112428734932445271579844994921950075546437293397815358744410015446555403526607859024919817448480081133337996951566844280187388166414251676095243703929545829037965441835954458727117716776028061439588145736191982208030271457545397049163193433981946352994189201328995231480073647805382836441334243449793460650533754879107818781542475155348896907873315307558790080479882896238935057988620159765517059046460179180239015389559895844303367658354982001594843777448710727736268579175131865790590477003575856744666943455902160428488553745349348333713215115620466296898376179871536776076505701152533113174214831684909035050368423118675181145289031060865856245973455984178013424181834211601869742706213858590521421955545268836012627788633902877425197917252561611099809869519658756110148240544127669968294268900833149340995648750952370130181671319071052687064494410283833941356289200877388186653880719332218599576280080880328739486216900880095665336363182135054582101477803382702886945633066900689096818497334172962495959326277189768293304288431417948671593629865669358821590663848470577330063428544572128085862674266868918246411703399540607139209208057666400583244769449703648452148051030284976296627256732203907997455303910880980038498191521279140129908514224920442281152810806713511161122928738843205808019145122520108804080756161995605293816676334605715235147072512889348722064579896000850335304036117149198138708870808899079902310759247734397078539319356204008974003651337418798020536469549467006908333872137737243395046515815721746630353118219470998757014836010322850014264699861535005572006375389743780876250586613078573207158470089296957525491126267745450079451017324576726987690131891652195699319086881028623038250755028378501759728869910093804736799719235708528135275968404452159803197213093864917931504406079013007515679226337179235784127297047017966932447429874566379198337144435484289042354262342001831631734291732416576038691248763125757610738416572446367733639056648440131031912459079914964612483420286237257645402702330527407355012878810927095979882148740071334595529210812654769447283040408744450316160179753682162409493303909269161270916446832355134960908023969718787453676802529101846332280932241303963032468489923451051032183983813996426397846679786394830650817444308298849080622253759329722023043117560610072066469988195031451384213444894375679634714838472021819421386441703038378333029212645587521498478770033458295803231444444437875416676924875662525628393245755430983543770309182121710586543171361356183677750431311092590877322651050236195942049200945968967100386141067336744439913966300266893863851525724853371197685480350806872032682610177052048336426953940499737228769370238026750062341168776780005981167643499141683241469985269214933846651469274593121907555016510377629748015564826197431848511569571088789018904612760785424583965561625355817018577201303358669498996628380470026802231495753223570696679118641154251642799310436800771493503174913508231611528691068223147540843652751746249322337289816044629830255668835669235550209235689530593439573469102335294218674451219871536412779695104373555430422162484562494234774675194433548772748476408821694737146050991994196407649903522142308338308530315602383732185850652069301317010826840818522103247927597306026788790378351236521733501001157491636716161825491944694955426103945756047828432026196448296231389007727097825014740740425743721542510860772537210231213084674942043523073230743426050585723499608184640913508376891430180142488002718254322868664642639997174465330717754301321449602320555650066953355268780961087936335079672111217597126579626399694535807046547294841778088529641105923088588979346053566899984734024622275939725935059582819998341896304787237257146361675818523547971469338660319337047319559496378821922862083746781783416080563444453720473251919050747675027688275233419693387242883956963049085478682702414364179047992225986879260852530713296448170422179613374896129465840303943658419302729866148288063494919118409903151591206758344598022715393507810747129210930295206778647296041579695531201280023161637704358840292079218853660477623130997466421405324423730527730205809342962999530984461147900291181664645987258721016135412790919086774114074779430872289702007351236799907332467273709748048016113446188905150702956296796677628074197327615194508608590217651103171934896431988782226404032019373808207879869343822372074905832538621169058728803990981155224181101915115799257952148827742376426672054848741565931619552051665152386973204914288324699023413957217915271274445098071545639273412552219230801594920177946955225762790011292965591751281506959976957767929093441277207042939193502311234801755496496927051063145755304559201940391218320304684014528280145877626851283603883960146723624497855475070416157988922195329743925703257047939215274739445948058039578438389523620522232532208761737931852444423333738256670600621676219032939086306967544222704662996614201079246563019107372616866903876693545636278387139514802957286873005792479086015236320907145390324460004190442762611411892982968891869952782717554746125168985609917245128440467140286927746225268966826073978897020573679769618144396122556165156129567497540516288007471889109742099608468360971619048386672803571872996650491393439776270634172953760945329474700757101113938637180170032477129038593515995653582312009787467181511462453706903959306743614549770934453739578063717668595220377143548289105241397940926473564277645621629260183176790816112990528586515356608428151178548867502237598808283249462107099784304150303956617187391013417607093261526414867043218540940056200773952752162887053243253497960197510683097245161275495637408912670431173415641462693870560200225542534551847653243228292826210521287234671895683996524582870141458088811418782919008150758677974691460494920412466450093011476413346727865741899501563953452696792732302967310296704428220171827146062180646487102286435485192051286672027231063974019717497599627706569448936330090278572533726139985264125570407838090548355723899413089244573762559338293469381757597315596838394160395946747911611864943283425437579283637817571089709019898122131371567496358066564361118292262402175156516309560932117359801462334287244106677670786865821170253524531490911461169035038088064298762402338267387279085233281962671958992575861455336944341308679784860434517280161439279672558638674129588960779467541539644311014802270482773906972856922973955701440437944055902686977219310283072085777017528926601273321593610516613080610476901981560869288660330382408955243850942011310474137098987765942588235672452786354875233912185803719678806665725250260590459669304861811224550895030947798337527704864324523845091096704573092831096146829611808400886545642234929121788929025501462115365390049841762838074768862302685555028864959534989392596782146128381628921659189816845704050585712778222082338031682731786375918204378884504960048648918818101070517636659261799480440756129340279456335849426408841826895094800932438145125257966778795237303065020454356114671109811105315223967048705686429118939021644317714422277089220239191518836707529212848870247720713530445236066734369914514436300029253937263820107732182905482819308138782645144988761955800564088077469929811909471230644186152140583361052498872251460167491048254741838747043893169844755727748499704086873824666022933069214212369783427162669732485454449454715096895177491465173521341377464219049699406409652969454086157668425754007468320126420491289979093250824784088930471221440255450179372766533312977917120934038777718406068666294641459586471350983568846662816954993020161184095712373668970499991069559480726683863848669634597937553520867165233384623926527026186261270978718255172419031900340937740930278612065761575782454390374561314461185650465552300636529976759186216890982835490976841340801632669699001664405986002338121102999941004941279362543617186340947579379826939095120271775306563595836003487460959667630029321590979047247778650261048025839624014385157338017141389028844244310438724643099836681137617841673956959099832649730130710486709349524033226639312706350411698520244902332632081840530925000245798905086039509128451419140729529351057649180728365464957621789778391596581782067781897490040057029057298959741896143317228480889435788830609725349156624345655287246362087129157265746073483350281792564085482417124449643745188291733789860976135715585305061872195684405641626397378830321387376653016392364257611901994177733839459963789671724390977728421074462757975208319168665917871044273804831634800213936258500439877199831837093585175063560800508101503482295347475902084880860413142158164792553857531439173531662027855157694546314046230246236600181183257159752581356644487810011485809912964357737002802854127638083314779756881877989443088756645126759840499427772761048736069730600198742064881464292283575437165613629908971643549654970586244494936447007516988291182852412789433314506801152738491319166598158767528780034541488528048388721878031982690843999393211366487513512489663479088371561388610727237117614756789518367567490782636029901173861016631970605730062020855319528141471950171628366152356363985205429219868990831738253157864852784232490943565278256492589838740921226793037866775630353578908707241501557130639831832250022143089301179577330919651523750611015538308682284747697999078386206448249636881436940933999424646466961810224612254497482407028767027224477153889587120136407220281910945510761540331271237221845335211346619220730281204407058979053451653870545669516277846708977273483462273220474431493115319108916460136190698951972107654159751259053140597547094929611887392112234096141358343031557419284743528919259325478831279428446607219614050085909824979519839248784597493008574959876968183582105163570006117647535511765832616903968247336724945272699210267439508866217749530621317394046453336891943530164066532815843516018017078043712024737679315131551302202904834815118983687956809644410174376385440831880037618006609278010780271692120541521104444924530082562034109143926904279813911431626552240801696701597477835689304769989357401336375321454956073283932682057834180865750962220741062607446585546601630040454612475837430163530308217537232240063876521301478450984367088072192759185826727877511481769287709877254435717608606370208973291890939277484913723604396744463571215203187319256290514002264663207715079111937083827451489101548333335087869890103707724572357994648586142460147093101551332340770286227582432894915618246455978412877460116340722970128055041643734808496317159361137873791383221505689708973272578915615283804091264862116073484772588203308691550620429397745427731195319026321090021699215748112806853018075519800341133215653820083996920200279536403531993442644278726570316483879689889065538611606839453465696322146511037461695071183031226376284129797135531647518245814503626296094494861946588244192814429935119719247244876335518268704104450912846990338032767640763826933589699057591266106130976505310114023284320584910682833642474528071806301914843295232629763372156103884267329538465745649553340082360726942191560786800843176992043804804957996275515302807757437874330615230940551971008160202265523111496534802827310803606630658064898272276027480436242858549885027935295565955311236615473227325064548561171981147030161987259326080650833110156988925548513737736652080937612793806408711494129306514314596568570552525987457856558477775110002651118643910916793534844141706021964303358896375449719302493576650434125720157460582503068956923098273753145803176355569848094963463802736947847694468397232738730328993491813150955401188313842986788615814040288888927853811662323173083278937306837678914998615139430482016101952535382594918953982497139101130145621567307099589144112123439003388140644167059054916818155089937954485929656710179131182328665158427977362365498372283936334135577483258245177397756090355082839296140213598966381227698026896991109016972077728788686781802984387562591414489111503066981005298392233870854959461264797911790958896966288402887790580390053257885250294783185004867155593523657874762519379564702352757406690649663548065306804644364210960030692625232293735446039641252234298673781864614229095748587866878176533806345331100338122798920317930547798993045991521345891190797796273501413401702707626667441852238556028630754302282957944954143422013148521298148905951844922788277258057381606730019883282792011188071730372465584182111224260664439499141527168733286364797946444086871270436946855132379128847942210328703731663188294042794616897335988439038916726521042056896118767762076495531134851659690672858685972830580836142100339335899854550983349642921866445994080049685543879393333570946422133121470342737403606454783941479722461401681150029691727455291230518542672178898047438990038348425589717510694028503515120505910347637267389244533350483126685451206554977024851888770435439405511738731381587465318536488148114554987743401686249462662334313726105222970902661002158497514058857198118849301865764527815079537690404068396235248535631017140821634379026157936533839490783082820774642930466962922991088500408640179591189498657683485762784371155915558767814208251297461074543730386147212660175031963645707311378405479635881853162643121386638106713271297327311548271667817925095075149078524690730633551613553870836435204741586376112187371764578123221146987259021232781185431735951459401431984679483628976053676042127571113364745187050323886981591091746059746319221073014825278775877081000517689183996120447832375619076213609247136103932119029871535912373288318887531343148687034075985185835246071114407955839948966782980529429893730009619314225120869912937103480866639872138241338013251391217735525919251471733748234447882205671311683418805263763367896255149563995408666763708785607803915505912848937637475373281409185649413429800742693132439479835627940760458402839732590270265615441599656304452378149134606242156983622983899296508572512159775130525413994607219214185916412276823683645935887235167286078809816899109587790381903526056541449782739254098194934648647234896030503179648533053991385338426568957329451404925526801523825870781896710380794110051343045625431942431286534082751712549818845309247599239170394839184178679193512264548938909072858279682227402872889031393660609609311123013464370128946635131976236621679473300635463714492893593387453295741930794653505398065200151367140392398593856511123921004187656407858636794156538884418089200868557505752644536495510965477183736808905528253894323145947182544558851078563389131264464839826331076667527693218894219068952535618637473177384843093482608987628931355440851329840136807627418921288172939967356594147321677995828659863085800393619120426138061809785218098183679382674731192320358846847414716605677528633649432954154771579896085966643431757337873985223567059089360944549147440192929433644987648530861630957259205975409180591017824083913776993432667063332991260830950982513580943349929888152473195880280761590489412752285597519696062653577324804018362348772409209829763154752263667754145918393317017486906440389922285802600771620597277320589124625109172514052045879545317309511864992470330611870556119387452228259931777520385380844706465345831567055946194197640817448357194784249823930213684555827626217046269330555033813076646126552220507087480730056070830621580549140588090433135269245485392700320498349329823669244107884468323468977133509016744569501190015780142389181633313264227871151410456577770485246113757827199401498847328946059103496144554526278247687340931045265753284196633140286199175540785558594650181327347329674604064308682084229681562133984337944726115421325111406117451214277862909321390544115374756552839234802665054791969048616773682368456768960645360132116922026386188083027475039712604426656582392767569228734870901570642593111763730026367248524154660576856602785220634279027338375362536472567142372371797509721216701501052873139672586960570436793560555490461977173999085603933786491001942720230070155098420650520149833591482584485666211958627726700239843163950550315329799761632658121006274816297804879800370986019823114716037258230753614205756457252716998043990865104211566178807174260363545897009120490035312054373942414333326286514224887930259594366911299446911342722687323290922190207634334826961958443027678163627061164933286384218102011456928158689011440064237398287076995569433219686349587559620439327373555476068449353546618222817100821794473164417291549264710858900831797376146250725684598925773953135049566608064547417373256443613510523884140574688168623637309271355750126627419816525983120044867815546164577171486437625315264652999904527601009856592464271531115668065572098906480607244957868114246638526995880471062596207642258395106793271825699947574439948790673087241846669102657078891929230928997064053829997816921045882577663432470493748542081057512267475670645183975699360045228724711775896499373630989788540568705009769654988780938635856162278166941125297244110405224315998323771617164877958741529032439601972254140420326790675498347082314066121528664248885953929856812643942671946241035924471419480773504294938613441616112824457160850347432964728196535293227623485238792481191104774000514968624624283024993822353649586315305114158349809821412481209092727718083653387794170583868243632909157640217900136947461775374857587566826011987322941553366524623024646280733093625090028487731887060940135785604502007766846413151538570676529230317096963626770410028429047615244378138572106207294759579762747815634532673763835787100792248667682855107222974648197294684807944195958794382346594006683300229240273948633087159035667063989181591388068672805722798771980591676978325813411783758794539261392401697062947204333578763693029024803832635173632482867306923979005903586150952629882517930955566341925064211112588049779765682342920138004070717664550510836518553197020147442090591867277036868028597846257787701228917194592410763365606499162359623758677422652113390729836757322804395793113585257740721062784649003471850403155579407496360983943626428513295936419855469487303302600370016125683966752768097884510328654572566282267896468550212127514971438475057000039265074111260582291121493177365981994956246404893458891949336443320221717386149549023099746773545458617210796203459636068151801314595952114567624297723529782584711278182712389021390597796329777491565425233978820273625716417408074963259927704451180680834865781819568657113019789123234998528061686235856712343612973975947985516140084809756990820194449548448609325749547188699567390139805197143905396226897652084864445074189997361050225226943628144129140949155570462439081671134125379849867894533409705693878259534943620739992936061860929331236644090971761429845336064081951757902542214428997297368337198029561847078939653445509026211678215017031383194481395300549133025591809065594886193783232480113104031316476585898817154538799384394813662718430516735143653507998224018245941008170596773166378678785984466784863400220326336245514750164325142629953916009752212964030882530262877903109553788911668997704543526465289703381163559974134401479938383300767647496029439539589785425734583514032634518726562956272934064323920706873822421873546205558963523153243990373974350943679462107960426213831746022130573914775875330216376061179339094260054570711078123999798798753107953973560078092610990672685029876185439120885114315335257033725931007473392704398348527897953643161705894112991509627502583496332570966767704694874907660643507529391914892270065776903544372598654874026930243904682436730597870347748365175740492639187667081066886916268186684472627236607383108872756216888941028015351757349757000293371905174211654003903782904377415406871429015002104370535872415787937390584619973910653877787388669730472409611768057391742589105801534822184424576901978835885022096705913139758883658183362395275730418873143660059000318214029698333142025659752415010626872213136236643968083717160470312678217132948980258062371876641317897713563507198212111776273255766983301432864308123277946141308937553979621130984363603596560360819000722276264022404929103142228223433935343225545711673771249447099774008233546226446770732974920446913959011544981168426669351890627698114473078383314491638249028734011319939688849530883716926737897977290352690336437174332498400736948213527678862310439794500122537587000363287734039485043999166653622496814495865777809196710717790586018590885928170215152926690434065638319124854112464430572081391901582710293001421741045335587968894563732319167545256828584045477705922164159653766652357458409876770778315632075021378231170374919402081683237718450543456428179680430919071197919262008926708329414556729130950046452697150217951096900880797285917626477803878134422043333730670554489329192253132380499897860971985928045435397251538130085177459010052458671926932917022038218632405349116374331821340144550289619601414848538747844961843451429166249570201638784876163595951834126322306180580876257358303894126647553756947534285780210012357275742248340717271191746507688992229085809232821908142499914409847038510977617591086960179838264170745669250031358505888125559059394675033583608585911559645760426731111344260217859196454391981497563938505182405490938152565983058337899224000892855513258066285601623692065250721579874196966341534127057463883096188971459011713412641747907464847166489804411511276624388876484305357278098440738272303823559883130171358007827462496749428457807529933513328934297370511490469805034761739273152538968053088785343528237825050340778574611969090438358874452550231651286263935263203858505793411940864104981585637763858950097106896429002102813752511946570478318549424316004859984792424310337868549649468926101674689405002322974254745647787928335224756258783868438794149786101727391057322823071614179853940291632938581433725227861422551493960973050310059499510336877106183626935388175301880171568241028161471607720998840197261169090701650258346654409919823738972305359789953051220947471614252839857074259102103753673383346160049389373089454786421008900588007048595811166119895915979048204795674470126508098282005047574919259601592176314334879640950463775230969392143334775199635906688147487568870050383784551788473704959484945498280906706476349453317208082502599573913343949703647647985639776379735400792933284064514431097729388462173133194697797699459337491133626421748496086194552183155703699695416801131875436593741504969027865901467588304548289647396000888834720527664213098126846872340077631588116554287103893387120823317942991825150709300457041576763126287755794152511016387896500702276933688539292691605810675634135723973807375693398534105205023099999238710723502871889836840982750151469933790523641258615789787412845035392115851109151914153367709076990175592145905757748765065513712306621072116710552986345687907365120344392806535848810250395566997527991166155790316826354565800663399293354422983793357996872239643094113807590900432497272294111761234157015762082229112159058450228813560506163529323416746966282511700975663287220404850344345149355941224922419323494220967442064152614247691397986856041878168250200732632625582403821308711984779224466984426887230958591522392375084499101478787703396385084583219779269152082043914164479789850988502679410138332942583486231213713788292322011274694511392628044414718956003499205620675572556847877750243433831259576784878279774086231613908989712171384263902810246619520541914428032360860318607652570116989547169991745088595129699950496525332521713179491101282744595270952922534230043880802797553716502796132276017918718558962424895002780415673329731783123456526501465588896997323155293973096824526905374620655386631724228630751610733466037518116602477641649024868988873374537557539275671845246645051229026091632413883205519452943260686023162384488941550349751638522232157386632510758738671229421608441187536261028653954790725807766144944296996657967851096979126636125034952185961772724616512967714639476855698345634416285342741792572956441150534900336199097626229480311695772330015153888017602919639620936435630773935507667966637616975811316035947286527790422669547473299689171118445369848835712334237377037230317416793706017934522332791001592599702850604480873845896052324278106614941927578053826058186565204570294823107067076971080106533403220902636223845802090403387837003594387923344671099039515626622820516254855512282245727512728230246468083203258102993409400828365303979634373792665367458571441450197253918319521830420685059209157916651184761017136136540819758203122808449448879161451276360132474981755537414113036895788457862391368996009536845668880676287607615747552030800109777293182297463832401370174852599079713728511108271013708133458453579045356170941713007573072523133336487999042556250098192350023486710743392684280438748784306704550810779627915288102914003365926649804729690147126752079164435850095419505985360916862768976457057901871026190313348585346209778710763759190892559910996564843636752950972341688300836511017390461669777108868273892991088488130048222298511894228257957619661460208946954630546316534401924106902887568682408144414680640834961018257912519253993577396338734423263156475912829335975268298725993390911841999002955120179300353394617523923102234245799891988923453403423301463372872588817234891993019677104512306151340525456948267907237603394867754781161031218770649811752722990671334177132435449982486919446228751123429746856745411131619492090183997864534984771072573134061459565746940424414835761705201454549996455516911322546975905077616590617139263519101295240746530202452982943763609998736862163248211368627387792951613322983962214561775309254070800740741485680855842751665645999958025987223339814171539537187825293600632906857362172759454069075988202190544739312623340450876096973788470630778198654470256616500753141404566104626880007407319083964256027330499608346803758093200816272273820667215671532916744293879992256300254925802419298266457202902541424810775703616144277852825135350134485102301981538608043414791876924715891770097716584851227194375833028082221607295064039264280623718214648937319366138113604329163224577779900767177621073492156288033610623705039010629448144071294967357783222324397324378945229957712236841548021285269759648729107812377324595377732304597180221165157671372349599852789868213647279008585887197599912783541202679301609699624456029555335885625985564543966154855582785436636563033162737455893321394353742020438011708474869309740746569779764180947009034215122816897061558159453578826557002016656624325665699834643653756168000252762987684162435130454612021395980031992863933439865717532330188772283853441403491527342425165495688661833029960800441746557346665160343834539097234294762961717287803881631735063299542780231925494268111773433373065276896236030088139601256301259762458893397969484669986744884976974722418110187330894710057549825096076582877537648076237405195442076516215835128571253535051498557101367209395470485570350823176084530522821267885184035328560864468911151468917580788496340828842413423109137993243735224358597221646161623377625275853822774487025534844900710596439623946156547112832911012309755225734037814473171756860343648251795402053184070861378145823381931050581574178012205046696803008472925834090324386196650316368218235004579041477411996699674697305296021601743798823443447013322158115421954738106712163434409509874886207166156241953320978312338907090249782419410617187220906033649952302788021882546506282505994825618715874083906137933192462575708998725338233636168721931431263434141413458282166492639444445877806148577241978866408506534206133681901342170528247831756190063269271276515244937574906926442495946157938471407785031748212305137179650773545263592400773672088629441464809115557630478058336260943836986444616624450289885799748224905231258102221547843865496298785703188801203051540980693126777011903490395039954485247870139073028483645733244275064732671643223183847740390664320574681194591595887272824047538122991849370557207941406156494876078833275046884784788540992324965731805486361548178309934890795668088458101361713707244660886990384800586713920247015358296533149875837969612579370168785484979952686482012172960920157735396098482487748813633054157283056975953821662577613707337688861206230465177864561414689213840325226046426404574379622637924927237514000418455058919044906062180833232721015988288153009628871988499309523802556093153542396974334043066402845539881523422432315485343285417112222535209438021603389861566797805773941806992866330259185171209516604303215992853234773039879714505514491401276379075103640497712472078362011511705972943513469730963639776670244766678376652711843916544554846289145622709793471611985250692756641610245660477236246557230499839027685004670313225827409597197838987760488221629538088218993076358861759388433719219649369190766765933880624917981778266320462979076544465262710909542124447132232822288684709241077512265413202144029620217462944722262701670238485333601308830607075791655883244852782025025678493418684260431136489672063677863217395169712742384298595974102451307244521310210420950848441142587383114945828551828915873784423270068810621852943088915628791606083910845450874748098918625817406626047496337880051090042437151137305079415132838125056905537597430530390110717950478048116163037507313342495615842139513516679401535771443226739942962579698685340103616656032663874309679364661043392697717760984456238448691493346826265124036880107336337998745175749618930714314801565842587315761512542356750196389256782702801519554425284064809129715809738169180904342142454704647043254880962430640351751797752444860446441757865783386266813604824224010073229962810649213055375869752564348152176884338448564417241754271298342186784324682077717242798607018760794607148822093394567516204490060806154269957284260719724718117931091901565124758437669905363709649582874034005411938454588077770310466499665081805825480064760157926143498030506860498418306501217585971165621874690013226171556769298850308389924040592545952493151609253468043020234721451823737862092531646044102588304032875022701321078348666345936344307722843119274179834898441168136667677691479251227932268368601081211988593081482169147800404121056881232244856920949859176535340504337613073655729227511345891234292266312184095039814099095883780560539220272702824652307776445754756180334770582478604813170536522039507783018045324386627129305722199226219443910350722418771752064838856689482830571889473194922117401678983994382432623513770409158386018266016976256797361687267629117965900855675940951510956372233666877031127977691767817066201714832711653334424891298964758693071083589851375099422825215866867144803519071062512230991633117137713195852992468347143863867560077259884185435434426104228279599404628912269499794504591451468779463371369745272268199688153472163010823201000557179091401780242265224403692940446706444353723455497656402177059548165029814056027602737427440081202487610354148030252837082976598956297268682484095262070478235620141171444595198921073811675977054922511226915961948480792866243842450064552628752040868077932707286671916788698888992623737771319916540464994492428559560005767732240987443371961524449939429441723156639347941649622461301495637791483791911984728246946052376867477757657027048897835699460378957859040484230189277633255993910134379926963498728712805048376267748619729651509434146871763749048593323196656282310710329514232992487902274210785272162096234071969298217137551728049452625324524324018931087594630355042578345014381654825838240738930728192575470784983214313633826468848694608879899350132388662459762828820394710161022168039581552151287085426219463197831936173890285991560462630235104432501585690178922255341948656846001569849500846731590239393112614479581895915426075210345093910407077277546161460940260842719543527531733668587724104958823400610032602992660855306842027534232234833465323982875442697133019830589370710952672597563526928326915607877227200562119823589319840586145102210293292454681227541614699626985109738891010193950856951507338040603001655752015551711937604291046879998194264822773034213009409842672804078173278031006021195553484578951802591800879699273612590291907092788632014387983969172928096484682900605562545443383662274554145321587158152423423230938028217227880792783838982671000483617473382720747333293294365359272166429448173464963262418482669440944918772934768348911206056480681817597627587451488149768484969993399419827463771811417783015681860868478193784530630787214060508581777861813306897495392752978779646983397998557093782884293157155401325587469294220041627877065512681414005832655996923224191117418057149706497987063119548257690060308818949926003235033222788250324243277950789429469419280342252062630214155725447337922479401839900931163801052411594835503640617885708856926727082591796101042340693791763395961277050218240806850656915571291493603863851460145859782846269325076624918467160589965714282254346635911510877832106522466563569488849344074586060441858078467346284734517587065598009129612466822209124648538193812689196918066238435248655895331685900260764691826126946194824536255526507995284433865091642941738396911533379503168859393855622311730591670604253230988381281675136224090236558398484164381960100470018876030775093826338926327095236588233682572612770526337414748024993551987081095235744176263654871507652331742700101872967096237289258336762093673072867672521073452674664096082430435912565783748760123359582735398179594818600705609843397232274661641213783297270448600676481767246332851187430187138575748245873859376056364475373760412016601441836554221651361506170103369839024726403006120231067359015617033991242879990460752411598368889486161754196206683325625410278016827523489272605993052429923206634865272194940910348678100956594456807222076452258024561646023751998628219001207148673925048855770593783531239776333383654107755321645551277834910771359236751132609591131272364805003847768731533359611068276754484172962470934885823468090608757692248114956340445082792616464108260102097688072253295823115651096019241731685649125322215410305545122098309280261997293488690961904390127703466962503071846465121885387076647620288785546147249819858575456779302040429893970638198873616030264705546707809196157813552731988201147659663189967451474948809127790484456194916590337745137127811981476227744083957972664033615333548620718160352040820915350628808694802366096548904423719661629465430713937233304289223041033189625121798427170253926474096970292818623934355381230223780240881326913266137237893757662998234433263532618332578490528438624225128099356221274540648783502084151456574845083447471945390005858637288250050343022077664263727262695815531261580330291130490102829798217162158589485106747798518437183948850692883567732361159572209274441859801614925501965641564050108329832222294557359287342440506159868049937106031813190476163005930515811935453143227308769004108807544439490345952922041635059177245436494259428037747081378557851071205539938596989969732727684764150804997744595778715619145556447578986662652491719416486589365670256540922311207709395877695701674585110682145539268844744048912284410352809778622582720764599940521810519612208161182091985798885618554488829855044400963128693921925211137765412641773112914924633150656846491767989199880622983769082863297039282267323007464677096416192620791579587842190574205151547938394947707272573233769190184766720009906564236470497184958969712400153010693302886052962089778815796277806953808251239665403493667468766504778828642095034711089708627324980759138653525858357434013739551133687442866177948290415513888282091352158557628720983696247479520924944457697049467190389965785621940273460615387831465228922604152156934232407218519667009684412183819169780922893575822704048529901117613341222307477892840832970557068133218578753629284855541241532742131724512938394986132487826436232774858998754236786797517981400528819649224061188925170864925833813710296508475130218672489448053487230600950042900715724152419447856776728470900533431020455683343838769163067369503653796251816624134626210120815074744694168908631827109592596792430141316962338119831123840240542960180273956205822564747737571437336182138262325247596674331727982652743796830289145274407812622946552127325215014223994741124071885156291951931698665289173789267909595230418952572932098344088078548156546159194906210240204798584225283019812685828828761901370361316415375333173112387370932052735466742879169563637876692014733990501244495354152088939567896677182241420735282853420092279042782482956990992607831249578694956314491084338598944906648878498968355917560756147101613740005517378004976882375840598827473830607181552479945184707578664757184280158364295257556055652497512912309137046533622294155031798230275485708791747765332070910746529864612464259513986647196861772318854561179715688089526852191499956468027343995036404320142927237241089970464291631429715090733584049737021552443423875518448658782278722362770420478768021038393457989811419143063420300969687561829078199202015790086615122906151635027457481622410629363852323320748099634904753698899310644638864821343714931292474809243127108850024116455902198871013225175273507257563137554622082449249809811252240737023220068295198769477791537867074996827040785734830208006062629864237643155673579490654524092010359840429750362828535407284144466384589049630048126821082745210111028456344359575748038771132394227544039840637222987922369021953287339335448562107728737720223556607223266089250638381924044578882827917803730836454083604876907669032960079519732707542517633724608991205430486704301750884789371328663448831560414443905086202744933003356221860346374276710894446218770607960390145640376420467724756200998474738009754693365665425888200750488253333762004965821197851437940942031922555245133325134717593473610809135052256174180017624394216173040027303815116510035993555824319041448128693562458768376340421640452356107198787116053663717753789606023386327191306945511343530931891027668634449733314725492456907474347463102949810835717628532157505354902497530590134778947748112333873253487052943080406489959271836089566174184016742112242349167844871865386083223439367778652972989028517751596595749521702511891270204927932562856484758475627413181848978033966918974161841868468619265730147668161827085494989998839990900204880544004601854363032519550349889040841190922516329874170485923091661195590433448282953581106628187877440367118061087000009787324735695637525168464194251930851591300640608522445059239835857755591261937296625514033620753402952039874633620316646276072306897120469785098641464259937346614322366966097385516948867728688057075935535835895910421680859893987664944612930408980807854928561072413081862785386460703602903941313160378649492448849402429214389117076787991355238956258112345755504520703457957284121738095270259277770953124990482069150244523665477029284066261021194706505341948762167915037866636218832221487932764689209130735907129690622570778527908388392317431880747066765767681550792098125559214753563438026688373581830412323276109925972641926004633598816318149394920259821602063064133761284205216031019916559727270861815165981724612952495015603526448258064134086036756286584314727304389786850891860999700849126037804956122888917652740434953551538572962678287903907055326505283716804136972573847246851140277937801730340001830352211701178951920983224649783802976933336390654728155348837141538089863700901701332579994965744356679654966641821424521748377387504321216817998790393490667598953800000057724503387091151731848441391272218628312095246917658514884574969679664415491212336757335092027668245477485608478126816648969039138953656794739077442939258070095827564688249500258465989717313874697252588517316674747625249457566928577907349038296020354888601991404578809841152704031075500374764121563221629081975499154650816982986812432664234205414406283991692869710464532844894943559180665475187553973813969313999937123954383692925092938075254735488235855463506761045703690438010990109482118996791607124918443506146786319959351183246829355925285426296671049064754778346868169045860184228533798824948679626775259573579390979322520728210462709003548270829122498592870136106911730387663605405162945723569077090220920440853114809690736128876775178564545736564053892365538297986493471154721419249880650061390185809381063310707986004784449914059713752496103607197459852267650136245034683036113550402011508412387080942738760534735379853968075528481026551926979899973974592614728654945137658524947702192457321725745748011624246135127853240185522875226239613788803332608991582131822840632600011389347668710030627489207606999577784579013107210794862372197297732804046476136015982950180440359202633353247820840942427102618681543981204509867304116854918444370966235612597334023827216817133570017433132506533182223794633113580874645961385760625374295688961444274446679649183531060425773961188916376040678974313448691104838551827871686742977147129226088588506178242651312753199756451579045377276166216256640253036901662965391676121331911334884755800222536333458965614916207808654688593795032205259044922002596313657620107241381612454220722128365210165870205560887913100692579869730600497476647015684507967490163145940544985489108818636881571412917476679090334669589649308485376710594015427123816756833872478345721686574469715054191328000377079640112714873282173787385578517694609592032897376822448917476706194313403977944023781325494085474986793474970250243385014858205392937472671428366929102509615764293589117191091175881746010749479314276975933688675673461331797717656716677701605166523606674178170268474822536261101841966880912929976336319842263609278646034724588046600106967396965981770206622198431322550895238904372065108635806831332437593863016438977938738816522866066635116281314277395786110685075010979734665136687628385000352858151803636896411290254499282768600069203636542640122643838922964660816644144544242679993860400721162885158298892516189432052564143550991293399407885779445545624711339565995158699628999282201953102523022163040767547804841483332087178169361963998565785083673379258952327415594604746407717828581082234407808963522034858353001102450127602545846477168843484042105322665080500892310541296593548539177165451005610448015434370350664612137788396102318986458724581534335413093862999428390527622325169771319165193585677634884005486553864870292433885566352658675032115472716280991352123449100946173611128433585884017080632939105071478451824517665681932072379543938646957538640145572209546195821909394380512050801063030441229371662050836851551023635583585099284160121050470625987454866047735077972320186398380960250247981199558219349046218812241527208328221403601877688186463436843804266816035919549252196969560095201849482164070573130043905605523526866510152322748692153858358101700470855789456991786786496078066526206568936843492662440092769800779197894208556216211696151134415912840916372897326382561374281802537165393184031065197111495105980137127529211185429582641022718491685096259545557661040302277035766426049954664081803314311939291714429525329052265127011925867826345766521290782602148017690023706785911966764495231258540079714013106505595490657528064937933670835504846783288917302432093857833544093068745831991251492160026263773790910647100779790567202867968690414615129394350603331552754138012242576335931178543926979183096227356219014818954095183576178869009380162007990584847221607544275892525607092851907872503084322262670217908549995702212086956999904858540564959712026403362419350569140916200773908245541838030991423059022245314478016407993723969813721455822022597639269316342701254174319670651844930443203624673063168502777632172504825228497156913288078093537115955082516711683796554423481946103870205645633453556604212061955588553634717038250420726007779699560375959916916106840140763018272197182984816855930965358383657492776551304562559059695961202676304136086649435413430848424271379890436891132225508963636941406548363475304010542319637462978098244523555128573749781371261152206567854776451516950247722164690012804507650775739558164203330637208144192033088555366249100714252044264937969998045008409895051596055676573359253905499083383719168023147524285931234586070816655293273392322475120452655134447892908646130616220076186296793499489101918463968959862802319626916972251875115525873209527847423769214979935098721143401434834369481294621313821441439294173685681379023126596207926343126888096114153558137904991471315259675871641162907728055466990464299230874309951102660985839657098849960799777710775694379510591762925387562866898341791019080427325321476129564721329246092652672793555207118181083228919087980665168289092960938718138040294057074546952184552207613155981574553596116586505345990642426937957650907087191749780395711139401795953460990732600889389944045156115072389816309698340036935168286409617628225977812631584043908370985018046999571327507631874187879503109445774190449423886432345665732040849904551376518566911723431889147817434690224154834090811128163887513384779297420982185853609006643769722217344362684818598865869020027114586294936971475590211290587979515997606289538001984651877601069100956465525965460370773510370449177846185814960194945381864475250924950459291863772449732178609989866502154868429339450919216920171961956214904050419308919403560203054003629014966229481520927194734315874375737554352107361099174345135362724593123933821015119357448800673005802010425365013854198185851897943387013642059936791813159853762903914128997421897614931275079042521526645644669508965143997679108790556989444407367343314155615218453170766025827209948994280384043348226997058251219610220015565205044044549557130987384411684584659305472316308816119639428904012726601942397557977522527978200964362108792979198496198144844781501542370119366825821220255937350460164390377297991273982177474350158555988683542310624245110530525952723668818449363446513150957486920728667906884127824263584365253598356702934248318815100722098093378738139531675550257345574685959631198208231596401818402548587733395468918128568481504648391298837131206792440634769399782205747032066021182720187963508440396724841728581050563578172565397725543547903942504524190034516280286858802234792157175973615207380046427654219690605099408006436786985047788994372228588756328510412495773097712653606905577234397656543577036008448484047085451702374757265754195270820405569451717825673240682976714444329087069882027367547802268544116350444483385950394284446211390214366038197856533804165714173388215156076969550493777867399166020532311045399064947121131832441636124824609432251443799301708557418794245233099604759459115826210588967319509045942179384126372052688238851467636706798244460805437993862863829384679681274707267779823517072338720591071653015819738613321455211079000973969648443496480008944348412581207965814305184773746059399408290193963465409534504903924474338612498317958906502835866438302298985305094091618854772964314175731503227052652114636103136194106110870277429324468247014978426915116319545464661346206974378981817225197482931968500336292995019518595588695691869146965085659472735092203076283588722779188074344469741399716338565259063096308763356748867129927999327908839322566105680543087125785766609740355927930730150161506700872220740906028241932665532620509213648266064981221730765762385730597222465557236239771574475091073790099519131681888754191359078958841396100431167231671677859674073906114475665133023034658847500243172438157981464062623432504405843200180803658671465519414351997830310269723265434012205060263375188109319868066688820042733568242514413578924639230230157012787756941416850384224795246299786967824944903690663731280265548185217923436665479241885076225603799773056563543418560300036903577887292564391942438144125373203941213597567973651384436173929893279283919452567087139908314897699401598006021353372432732594547721996494733300657023603064292084864922631963103402963651253539623096928547092721603173173654176405413015912646627867269400986063010999629359217447944293140043500162650083849502104691646871417206893247171553110409392631048259412248623558559456317366533240011538677778693351190674203817686068764805252950443266300937144681875685807822789070853722621034300695044645677129204727828406303411456229635516406028047547367587860661485674781192651515199994030431152726145140879620948133770669523210477838616892340985063114205040239186217893754425171078080942412964579816188338572628699449887517002560241626123049593934055686834116800413836556591646740097221775865819790107169739810549931234625422699916833624131167715652363586266153621249606878830875413026412532852815959134892831577590539983625368300166201571665518424646235975624483938628991343679254314081554936686146720567705838266579108830513947264648219569764738379036517721534917695025292203897644083724317124109935939470285420631789488798988201217174688594829081140217101856619237000991223056384387912280355662766995088065470256139705979509370789490795075061762703358336662842726439733389799059424330430087259618640530276373913764856724461039000327274551714029784768044915926150074408675575605859475835756703745871609773680756563435894269882184495629712277602261319727183910796247617004840950516284334485270602265984136679564972428553395777651039698060907192890549614687414149133633204805864032580242631279273437406925004095373690723678221334194176963848111230622782201209466278919370702423346485915937558560339435850480487889711257710890970552960117585938029561740879007473238217485741652329062450046150775983713333382310026301957619048702289329628260702365469202465055610697129175429504147142914723520952066071913104554589550122063433025108125496533802625305798580959583425956942056793264223588130325279919949570417324913784822732621851813637012521443012169835316986602921258726326378581222021981927113146687644136421380039989818043879980110159534903714879336642827437364717861220340136869554008516748718806243935544689893894517802017143655599016770266649402041055236292222552025700538148164245814114302187035017769861323142159667965715837598011581842457181562416842634475648690476605066439490351129656135007105952387053656683180687226961768298722981634760149612280738313741894101815304321085397329706903715957837141147885917592529548844439752221247669610551602815900863190303162675420792767184507222951098479514427230295308930092283869571903956269319920492418222828531626800859063100645458706390208576322297760639460705547894173761714771123861122408015577435823662144172356845751907374018229449783069924974862373058168314324389219359890820890307268194599638549406595804055071920568636338904960961779655504401037918703436969246572282160882377871678728303286288141516095016748444284970049393362837168157642795396394011976982529745147340539475693919885206629318155645212774021048123499344235614945341540320635074932597435950450929864100339105121181001607610354486419204244523862823479826366798667085169987850146261877799175324199025320029458547505002916728928663934955834768319206903786994939437997512303920596902841265492645092503059178060424003118401381682803019584016121566736372094407826776726746761707535681025792468220891960007923200337380205190717557785027437843682400885134838370582384279648539679635397600149453348482217919177724799746168090516731572606735969528969722866304977449276138723120171542541745176796872879435998295266539707017193866394849441459769574611911207604273395260586746505482895593672578225398234621689885341312815459769233337256373228939830571838394763505475796027416665534487494130913710792492379391910608996858209218601087339197641540184455568530165850578398792746788317496146183715853412930664872441159534538832986528980010387108810375775531675790954727728602589828513253737468314700113292410858775934955848075191602204797320880116712528193291151653590212450975556308563209403958285777590176535652224319329283488682669671067854137880875002909508187777387077165649429260823775594229298021435842366450533416132723133970998161691162498007794500563807482769165529109375220814752478578469295313229229404916396687705520051172353011758991994884210821010076796577496599650803397812588277245378914639998357111151050835021534994407534115587326091613765672927905661235158841876255354259546852701164253441310483297112390279526669780926098647023104027498459158368565901536066598697587905160250053008570034933611799767966130310011198109260625004145469645247368197092343276250773491403398069252217157252374839894363098493233894091386456299370580974589160338352208937397145182014148036173947368461307576193944542081628375298561091863049160083581595394617145407442107281371156899137842368312371087333078767351784090972985425004292944149856187254293005319570264919223124309550308888498574861203268308874888325843791357129093473520938262321658803143517605316104403652992772774373662880880314958461062726654387453845643393262027165713000944914823449698667279286872017350847672056145046047800387945008822580781537239515546949828759579378788589021124809393233036710763575897549941494130928089238365960734065407480331539832819355263206119080612902882759943538551345937504927543308203252722041177802243975996022275239651772165800536778868863914410075608018667620314666949902440347558521580096971652208188721706477303528451526364551632276537166152681382427690137539352434727484029109731819831733827218055427792943270621511989704174393684069858880017790138739418935078055031244452028222645802168788947486395450077739807751641876801876967192150718584867815831302963098171092696561236777771959412521707917963657795606312728653511073987129421604101308477491347859335021338817479635883881267270443176519624103971785354702054987425212594546995046997861617811262962500563577426835357490684970558940060363197560883485123295318677972077687110820580116577481707722773848333558240872664609263486941330694961955132263261355185209417550064303485412899396222066696891616359257131163303619385703405034934786236324388815965199805112848875825901788156315967667095148210208286040188959347732846589707579461492938293172896874175601460038725892940101587903850434239829428434182974450305233354611608941564643016040760270660962469703013479293208246002364378840785019437674165215798397605957430023613546768606999741097750643389717447284053950296404511244514316964385729911442094591839152065105463847990011231902544805412337547221140756846673355271469894529351650515018105617570922023009229032115864552557873630096355273339546520580922600589133968422881933787173274054648705353011337136083001285828731771691489156443126690175287890379665107719044971528420588151078566077627480177751997876501409152627676367770563966047613285372016846419084421162580873069602337792163898548578024347711186490510149724185675551532443998513878850629682808639598444763227956068320038783676445010594268141728885262697907537656557363777335053971890073095930368757598930268848436839806280609366794622747309876841046019978605683554576051579367703824467105802025969921145422234317705698295269438053289528863218118390127735496862138379829444346557803052403181336625891661694471525659560100567327991769519355932183603838447339795525376570521638616371944539217025911937657932282277043441940282836586852278713818058770965679118736932470105915724156378980652794054189350639436342094041028529222933976882623989141044676393389002247166101805827362962185583238272905594682088182696826504175068762673129243026836167657704526615383936367850665493233317244232120484138914075525779027686430106406912931212673187156535665783608759728158777640787138428297167789742387785299015206772184413423544635468231759256125877424065364432256941488792659343220781831568523511055955112754425840724890166981602849927676693886186622314377013893069280754821418330722233833458855569289877041426255619329907135969122848738209497132490889577189334310823018760856180002814610079273887932462584245937000734283607363588614293882513896975537572665212359381350183379223481371355632353877874359726997658445470045170517485578670639001940922959334527768820251555310185330806795437891967096841833613044797982509675282068622966842938833201392207596858295899714522005084459037765806010717358576811698114162197897629646953116530440183157949478968600333979067008805194347658569556386436133130077508304124575568894775685943202907190316911083900432702723363344661748378927581132874492179326298880847921030824795168820077258802311274087668161903451824169008816370061185540525165989857499901273898017359451106936237019156250039480061415223209161033338544952131888724974250805844158036103580298473913904750900276470628900950443539945782252718749671940222675149610895922529393218562225429616789278439906457805114785475816764391517722173294427944972046351713102807568128897571802351209683337444679508725545234496431909583394079082584196505658817339869445960834469893911119426119493820930153308845950445971128636759040765939136388353020965878045114337136372475802860789884771786672062755777540253845112638304907295628971791253552895366440083460489561469417583536850773081150416635265283685018224813894033075587413849450220780356645793271303904209054785247932113579518338266081455465837838036985765187217312214170244873886050837902368202957347250793620330310245890628384040835434532265029392547527413851440879963918662843332615148786641760969586869391019011060072610842616431109450796765610682350703124396240048201549344444348534058030151810107155288149735086668036351510411348233124873731368901024694923047595286956573509706176705841179432417835484406712799582655247999155048159855049405870857309416787339702405627754159642436877095450643738203043612137769429009420126625427882548932347991750320522897712766308585105347171506727530871607831451930758065931326703633288526101732923657768328606185495766296384458077319225037265564491719337273320856519194504814666848467775263409817741259414223641121899367587388732687628085092319498777493410846614786268713739951871039415304129044052249706915223386721197795412412636420260102148105451850407661909143800542831961279276191104227998868750257344618269166537852305404090273811746341800615876345412463863522735783121683062489766211708706380820640944011119481819671863517835738840168627649286056724476881702187475846556531476967641325805086515346546706504115559931507597907758982939140320529880772900437564360442403483529801766577454085543930265663256025155737697893589125196120519245940137193360748353375519876079943550226152113686071566269532199853867126848531391771492718985530713021489995513111306825380994893246616002975522607003324018519009713186514717710271353240559599193569595365747624241880812925803707075907393070769929809629672865260715150234479197525449851118123210871126554997821275970265179173114346989541478199565810257596820121314594111864664317698908689640461263703153636717193149555748450373109768983351874526166208035235926972508004496319348999207289794671370239595874800344069509317446598535051483098300533961483473990787534184252257071356346401529094810827747094128561292951150981229116421651093202833627030132910728793258999977262623224999786743475711005599337688202763110547414526362442224972875487129778866698687593102189351676072261719630796153263241598131368721392304917157329481099052530446378080147341004388604189985816597583256406044028108506981849207076924474520682487669444918499093507002506314867746954448173877903845221372591912400883232115870109333060501573885494817446692833997023526941700300039490102504848156375595493787029430745352670626111680540333919041976227937149924414713711324551620837091439535686664990296112925135755915961541314373847635307847003920844693762776658883294924020628344179876409369952354983724541016529136700266619226004836592771570190250503397086286182623276527151311394912136198270558490802489157794498717871841021521628180751515996129249010562953001332589655099584074695878926528765991175910353431855919421344655180417365110597799050597046247874513559656946968807495871414263407495150792515836507334321809409251986989678010746752712643314231823669884187834785577548297200241175268212486074158002812409798847082494855417400343250068841486102251476538104866717166837449162648392466558938089783884477822623803991224939712405304021462897388248871841976876715557491744090268653723821700494214318297722415588200572968524542986420507163678700101426885488138260671227118600384974938461341255433069490038581098540851884923087859364014086273613634849402666172562521355880470044021617204915606535082241304440675577709959081252684937981375388630193814964423053543306080457191361445106104385354823721477937243537586776387336644873933119033021233616355010300758641398097895463427434143259481677790769732514854063632178186859204580888939372717720607948334590115902302817059066476893905314259284927128761424618405650839297536557606344553840367887714457650879037560197245423012492312408042915491733728726185976990224836201991156380445977281327525473778410054367152843350401984935775043939663944385433380127250611263086728365227749070267281839893634770185883038090826772519221569611720076769221305023396202430609076458923586736751546494958476851549155684707874723276540055691497377533455490629872150745077925007707760160376689509890066801490329787878370688822538284551635610774364723603650484241365529154710757349277755824748812816652937028760925713381897868733659893630084615245373010506619764849491591208956901171391712031198243117560596901918902917542211811383193478281612191446720446893711922835431344822741860383104628163508444694200207838160744909090240457076370148806916072332953959434016333839560280504295792653577488819955528400216007690623893705884200656609995878537195159945221978644259002370613263056044267746091450498570715763528819508248787972558894778943463302035030550571827719156907491104259287154256336773200409694132590786957934207501469063277783058843644884787123685157152127629639984343175064015116005274606679209240782979854495049372347993886728911232241118174925490800784693507105793213572106491268462944869712467813040532061718146844713563623356415807200655861620605945840334975334589215327522872165515924076762323260476154018205237506792414178526635692634934301679980705573177600481393402271769373338363211044210079805047127715164826442022550173682933112361563295728634310063224617485477619492625300319226487374427840058006667572310313486014401421820085431252828939399832498308756879403741465912838507267485885864535993428838653329083527678329453692987437207449568970698269164913778886790942998574294752882461835057125466935113413225622126778799528489678689083234149968965185240334576446574764997531376064334862170910835280072473352147966241116257342184596928255424719487996090580784779380344983016569621269863808636989208792819961961729064719951625273611384572124651331913701540779075702639297661135365604483330402978293128220749514542918864484626070031689072864445527949392538108613539550774733717419703664919851913866043530671518517726686876939097819217743168508161557111159614630465808179875578978855032836027142889962349120483683631893344333009316326035203518387796832959909997433594318632908062610917496299644125912152086604498986724995995458186451287381649488476089560137358486187312983220762978001054147780585864077762348498097051759698276621105058597576950290826648208896328942238536511106453698953055897408344841673177608537148833967518784153188650564262644989279227824747443323941119027784038385763909439129444740368839297724124524258325203447791987793860424960487611666689934407105218512547570603000204632751948198421768664752148224353726889668593157408577203130269871289744285524171023071231106480634818773015898394273627343281066080473393019178429640788117109582761273159810035637569597537570100788679766300104169843454160050897504929616193434721578839181013780737796182220924293242406794871127634946434660848611482397659581094981689766788438533795418495708862344429883294029577531537422280083453764140787157967472315529792063591019499559106090893318985915679914115049544502842848970163805993706631721879902641416527895511732222583944819363320754289425971517691989677291860459352612885520321995754246097447083630534675290689238572967643948715642647662137405729815410899697365492348984235313732348669306567365505073241025469045211199082232376178529237360541417418415524853577590020940229755049955497819741785648739165753298477133739162162467848864813108012484303893759520205234376871669295241273654027238699760525082248538257960051789798464420824393590651827741180313172639952161569910285677374998659971060828811677168040295952897819969958930230798463578883621202766639082688285858314247116828695004857341679373047712060915796230448757016713619499632391674818025223625412423214468612286063543297308797962247172498714691821095423374310579493928520422103417617691145724595177799223062203846902055079220266107466533123522807306737646057873622685474227487564511102603563398298974903382559425666700218182861994615770614121201311404220678590139750670291183314759610569268960550600905077159036309112921131657563752174561309010139801847435930147992001691745758013082241245658316216188143796520760968598206671588637745996324602369465124621837508599836116441650153557840540529090027587178555843474559769624805519464638093179905010312374891294625027904485665478611091218442400994810376791420808814933530296694264819463353517251434739118316615878906825981151871336546533817614495836575898092328000000924040781505985233432325638476399525917867884019804724450769787961642156129409347299561958562951505118060491579935292701116203351859787331734281605662136670771495762544625755605034922799821474689310222919009846121411800246961601697999405848828596281801467274564369001772384749438466625980348825131674722824284701990917662083983408478706140097996646564868090545215540607363433319363525284309338455305513854635631167964570548041667531236209769440527485046514562081405558515153636192300581137862045535444142375451211892105921687999997772019374541343876659978417899355208386796565062357911477332357880094047206689970461010926271590550052063438617305794567066832841438806768925411127281863116898268094818223844110290790688497845081954133955256813079811078894083049373208179518298500475276800071628731268436426515333684178320282087517973196870647099537799255561234399927613386063302079579228405742815143582094730339834476956219690529083203007363190342373432287149110365023596770534480431393138456115105335738262062982066626685755727334708528441886941441792877166902475933307844465122013851022823141504040976182465880242031468312924641942030761881891547607034850906288599295431579822169826796327241617713813183427986412854160185352613633445237710533143137466064903601517774254668347271869438791450869329378011967357345513555581880940729846527209893571054341303792412303957976491555224002108594046874921830346222387121965252553146624203460914265633080070078862069226751369866824280745864504758056800662987926856927303403007724395238933034877984189863142658871155727015742512743052053218690920453453068549505193054122928509379572203812348661122081396575090899314966170140809712047811712917167883932828690395207894207876261554026186573250631124103264854479061402697397127787661323515956190960950270031434864976072990081029993384375150878003729404555403151616818877253892881732033882682388579467559429654377721552481011394363396960203040187403908557408589086978986887042152043284872083301654129937229646756020444664520075410300534709783459831447314055061496421183604561241694614691565989549199939605723635605409531708409408449082936463143894687184660910661968257446403250925591247464283641801243167047774967717399719712170223102157421341774119529065046603967047943054218370834619261395551723408327278178718260550024980708292317153324521829060444487574269628348674554655627741177614300364114849431357844210693011877095058400307123882867195866499088684133893971066176082777292304187888407252913292903869754040685732386127522989069148065732826440829302542306857566267563171515283271517229913440999083503915673238420937863848739059775625574600411093135473292535247390347861421486105771950346084980797867705416103121608277535742247472985190192679194156025291025700516074657669203733522709894317310630424694665359578726540759792429282038750659061547667299552547583045366322242379436820666252847060134795002929131469232009278765380858024520301511038806870697546936473629746918049787975391098209537616480240679682721972674522198592761196726625408154608907882930747500597441359688470563502828886128423174900204655333895502073972109157888171995015904175440437210352436140911156347111498640818977684081046850487370247588241154996476520490023041635333158132055766139309347316884170321328913038494415758929356118565000615092359542046308879450390228619517775620271344785051022038970554681679414979557220671974665818590891551846878701938583181696053287067645770218833747479487260940967629126204475811205947458102992643521125924804690166810936653874346090739462266457487537444704831762462462431387880468435289196647966936839890117482207501266945802648763391081433802291143502895358821639922253732625791113504218444393025463024916449910434759582544278916593762952690454032048622552259915366571140133056514107348761363577789450003779153774107785744113197415670593791141163675732599555027442532572741965585667459450592489046975644233798046568618847755132225458759204169171764975187799204709501986531777175564153724528389283398305384818726446951861621014507453634923633685344704265702183582138076046165650720816830146055769363633253643323504527856531075423048768278193900746312161532777088934316672597174075563546352593618510605925444686732289936794244224799151521176153866170492643037256957263167893305861188067350901316373572627276307059592642267459821102591334039113643900216038546388393246735630487135515185983334706815394913904276866117761564021690338715374090793408226178914084707253112662332971208395819372482003682037871325229146613020397666828283401036792521734641675431606397790858686414043592680463875960655840912728715171367732876491488164772877982197401100669466114255727425520087986942431440283980956894570211956081402324787358637759559622868667751658836973445803923983303042468617226433374311319919659985604165748256160477197534343788137467423793049618613411534931847248502313607424683527962854117649207363192873117454202410264003997871094413453794096905943107529793401945056753985142374958837130838457286404244991267168827617852044186191497811953804879217729378101870980325300503713060759897486728350181779484939665324682997458481764509393143336875264058413665944905474121186949924380936870002930947659557926179525530338668817022089701182428206122540279992718864098335194989131346110876255249228606896125925757901774222374594734102168138500193550862341340530464827452926601857326737364272168689772731984929157490972375068304775800403237736045300404276496141439901353077496838929411104195434372464142298509853044296390114746622574317042935644291938846629939567358199621603346767733405791707460341534936147011318674868335956286111389639163431754067387344792092317725779025538082022137296481286008229225826685947264122669899486953769146881634758430817593220294364889397797795271457148781312534788844494506604730590763277888393355851135109488288980407069094423403069478765728445605294315768086196331616915246762503705717913892274401623539624360779871960743298727769672768481231016279182390960574262234000207407985744983499376686220386329405867872563519152225615769790737506638737791321422033798724184866463768416611862923495225600552732770536618872960853371198556724601630180689704891995551269745161176594271144214813879408843101720131751544195399599181821485314171064075576052336613837314008594462660688208175608367791120094499426232915412209145256753822509410653732392187998693032044295556882581857370041700211453860322315556592463569030814415170919972806230003375497010268930524098866180066578245536298895760036717608245841113953017862554660390450256882869682380053914989006643982948240934919510461979297956978541332662075084945493951230318453997433659128028249666666542153260010080963686724348130026665800573899161758363587264577112419392718983479164802491248335477335944929113804924561276550075847170734987363379224972137081566563183269800575863443539550284987381718836598962973681640393461797406585125426894049845776336181075295824967474019991527188627294753195527941909798012414069923572830175827563763411032566229777616251221335802670915965476534280358525926317252596573341584790953137738983796607740309333860981966487639310794613869494493775419199749188736259956573602639763684251856131742801947576413433549551041654270765674148518862730849295640907855497659220260482896010564805141360494640856587792427914548436926720304983460096059432029372885766854746757144762193935260497728180470194397622107134062974929669467607840857341801084877595076509544027864320871980495994320384650836023672637954032536435449513136996673130298661327172297067837826816527792718789160799264802266706446863513210510325816323651548772924785317323922330235178847588184988031652739803632452794074384272825684661221484630642321495246885494834837929012764647393477377303266267524795734580066025336341927076113901353315368923201235187457501319512999489802253489514969699575724837470334896840957543077034544518651348008525203354012742153455541566644528169084030686559592180758004541612192181191537599991083599015820177077512052157200368409845481256229418548965340555859932856210909967117569417951507574964625662961284369744761188359901392193397945343694168555159688273813195232532032705646738189613841193688222660368191577622282320545081448616094785580048961632481419653828081507454584812647664905671546083693141022076610932733096172834801832689202794701968580950588549610541680473044838484170767417388423102696968797027500240517477966246155605973430779130569573746034675815660295715694829385025955596442150890179421978810583958785716333097020303293287687910951093164803455174943044612672497575081623951187706227500996477816355417288960853262354336277077036662922531706956984646318028844247768490675662945242879236888830712705377309268798813167741809574248426032999535727546047901145728066138983756498939857956462818577956029649100921992050692035289910395449368724943446071198200755179429074330549742450433894071661789922315445031360738073749838297730249686396426989577199499801749000676245405301100698710376283408038068604852521590279966360469279668281983785401702663269265486511024681284775507860578447282968458541103358073897215546725838689140918025634869086858583045246332400199284620728414027784441850856666536972345884732292245662610634843154471131002020453495026151091136269837644796226849851103044795197577892528420496700556424553004621405362065707044944851819425841819590572757790502837288779040003869595865510631652349764658613326143127196447278269075227880510777192902011723184861682095485358759905335793326757819499205637313867308824089037918290392162800697926885989754891656478017900133928985442465683856786125687284914867672530453882475083942796168681338526413063051001387860571950575903951773879631028064167485613005927056175355435302031365569057790970439420841208776903069184709543385352120913171314009470809917967193935231819420062453723635297127676859900218113872169749419896410774764388708803040818092585716861765408534850248726457342408349411164877369549343793210401880397052549645940112190817387507070901292686764640916601443574351308790115381827480905925262926531428657555880991591888939245082614610538019219094478686024732098363134639076267354056315936297199378235156197334656542780040213707074023019054469542531350228686332042141013477978736670670765120064310594579022999138441304521289198638225377980208665620807324346506509798023221288160116808331850872500892919146498667463908881210478071027303896179237362220678944334112499379891845879648965079081148742819780706135944834170673436726092128682017365365787438084435880684414960919615288770920670708446033486769113018876010746466233723072034848763465805620127542482723350710375377458948906078519419922844501130507785413282253784209659088810980802479210751540678909702956826857243033670368355938625739476915684377094511552214198595139796285002012892090042055418900946552694204453940454133835034238907066991264146601113367174432722692408117299802579632051419630711879281305641627527770616215569579940335490928150490220420859251752867865316062898936666047825157739645963275788461070911290982672535264080177036336288642591722995606849488270200399833286081013347373158254111322157569241563235297146531711209220698753329319509882243461126089689735526105733466576294492345636349829310722032425695493095587950385304994149457389164966656911443773227423027857322991021559768440674479802770271047627294818726408729404430421128797690822670895938877359125677522624648947827591484620510481083560896858852262782106837876736466653918263169739313289335290344218252227165255562736131243165717328183594029086119651726649199863565594212231825805938682656411062067457096008464450929950788335814714315552240196390405593334488125928952620207150507356916646890878007319017335533167166161073670461017877714633891361053072732308523978566593909865722425542772547285074515867047113070105769880886012904288537988737618572389081154811536913048297012801596305444079686092046402919034569372748564269084846353071887348056736684991391451106410355287127041309185525135373274484053859732052628182149640220420008854228469277061337629845360827148372688857658512725567024649754481968429624892387965003863588710469803053325423283805304907563775278212379842627603763768464387095605789847812563396733311397763860767852746083728972236979946840747836923424095618729459201304760234632401997105236030333053948640153999692116210839161636947035255794484132211196751638754142428190743223329512173289518184279243493708726242423134517234832525733457454021747699880247493494504425021092173631554861668460042925632351298688723913207487559698521693636473057891064174851209049390092556084838743026090869626214005432373975827342798438469073357288110648493881591219232640700443727895823530192541015950924342207723280576111053937159044187846399035284067288354850344622521589088137841947224313155814121382444350367116672575630867548462912318471170825274142258920597602281764761447992849719190160369364477948521443869262937880309015889525215444969429870850141850148975607299311382891491492435062377278383142862359817946895790244831986529307087418866251681880901691996889814684041104239081210402049828540784510708697360368336110551023731041367992551855361530284539306912872099438190986056896061442531415814572624604342084643881490422465524703192068179201681597499866305387312932179584313782487533806331773140453602321386499084922002860299443679736033583637832978216277301251535634874961787915909194379030342704904951171558727561973110896866532895008851225269901390623739894170111538631229511018901098722480092165998671653921824360145888156642483168372888906869782556551026200934906270238141502443542835648317682968764065913323368983285678847196893095963477966502429895897760306022020129689569289863885289427273580325250666639209040918378742260875106614458302523707446422380843859620467197085354772203193499557409755084754194486969706804083393154075702764690762767095603932637697545201692936420583258707371965533423245161299820426197996410006071331650401950164384488362838484531175234502083045492701425566679058747608140991541347471921883509101366550466982971977159568697355918747950298890917852837713013891815890157482735867409976577824361761520692290424122334267981346863126969671822078108393840886936036982705468908275165066606920867641016658888655690276884795583768915037454416464461108214607172698651179774262133026400791481456195367181126483597654268659392634409796736178665272563294719966026903753667550630136083343998015825975089671496684878222414411207746841650981799361620863593709574892741082495576698300794455188860264410692439149922685061882903744381331425830042425579918646940388547866962777545447800180617129726786553032875682170898516714998220433258156684408084594166668692144601034188021747555081123505869967150229047278857227430666093931222324813111512766365182256913280230911911116087410341782463566095761725396917104635676037618624551060726480731427338653446149122401867198351110316370034910826361601265503926734616579893841789440655390678953648854959368321964422874056712562150017856786210745366773298493864772561344829519484326110002709627339288187502491280831310399763685749401451561476005954106514701301144026665672707263114721351996661066395514424826767595566210633778552530390634850942670978918042538053323423826918256567411295578960338758687310241913324714526790539873816207942231015766926146478719335404574285917418240213134393959162225228669066848139863859707612743019564926453823321612579520810295557717983659886792583016580979825965579302227437175124335533031284417127466686336775338015642809781871067377027998848902808558898801582125165142970269596455314848723133487149283724557452213005900376411166568077102167486807156261647632434974350122319681330266091142404549330975433039565364226134680472490833642010501368400083811874911830738575275357945736516694235952616339623684804944744310893503180834089112391358622253081418102540201021003216427740061806147255813516579727955906140077555268657896258211316135148618959279251349608849209149530898331272277764980211039060846350177875549173680881864037265006093402621244424645818920242129114134524158202805670826853366425188431043970390349567049717206299144338201412939657551580757021374262965354153785567237591000415696630839750633716343544643030073006759599966764254677961845991830801098008656982438207845058413323233121833831391695133171436437305297699285067658220138476219661338219099929447591900988312658355789559826824330382031099047020073270374239341411939477551076637074768978451237696808887006579903452658786911232416831283389652247104515653810762053575388474811679640007397930329970119185056378144906095830905498255374606695502011336397132087395024122043872610912298032955603152364140210499424497742317619664779337950920230238360151446790382407597935099262195943863985632021635923829445180319008384659010736462061893167642655322187452701682209963304268261452098536114001541468154664538749050846302748802256921726569490258857194166999212955812925084369265352936550611765348499571654146390442656427155791377650446552143844707052480999802670870156997389701595753153704427304574545472236338671578869311124487851362982072683525545393359929219220110918568433104937090971135017417627796333893217394819801799864032673836283220964737317988476371850829592904331458094237728048083336204380788036625159934318366874464149560990367458499332511962889768266839787042028803880305660004436014657797541359436360822604871550753490828279740852215903705419172458513696899564889928963547393782823283347309274233725155337676678834976923292576021325905540158159482477410474740852113566525181482871397781110936899716493273525413206850494343427015034064161178178235031944691835067050177425700569792617754898166447439140180893650130083031939647873244366909175776903605237378336700368723021777006580829566286786001209780159527559538639277500305148117658123243026050023637748687033985055556692928329894890272563289556399554821289988799882568986774122555126876775161771110609336325980392656895752529277012039790900212006940618094621455715010791199882184948486235681191733515559752118068795598541980970197758179516039666051256262324545300994463757510742047706586873886913044195579069863635194066660597342580974832500266444891094344099369039925410035264000040623148096977088905820376864907953226447265799299676592026595992359221688237122214015905322028518492846257248458389856574098936708537911677833298580653986967817345192236397046041197502476466145284867174965143213506623243686884551701183063066652140873718846287802075074202272824849509884077586643679504969276404729305538518864231432614150527179567093541119328757312024184913731160042804856184423535850514107649215275076996699771937259788618714872931673323025243221085737966371682347994882097997303877004457377507681017976670947513985470764122444785220097059941705510313279623823700108696672338938861703510109929888416475356673817559535264942424601640362545017666834357247232588914668295453036171261391725115062267325236820340359231852198180889833594321694008774708808807869411534495396804694428317715228661400776822906037373870259160546641482745266675092635522527938560369897868889060870676973719619643212563449864326582659440263784064485546593908342441132959318746518423346428805813528621104998601849704543826207036122822190216454986006781629733498144040274629115775769765593791893130532765807536510971321973090544682105028460677557918756414258723066889338070790132589718367351276714188527765339202553350766184090631015961557542064910100134928257107887337961453218926469205260469696664586153956451412223704876032144006070975647426888916600819797398616132121949630277027920043222418459370222035903458206356903182977254258563776173658615045960454511806719812487958004372510731367527678725246650971152459309427968912126799222521069786176002229256217531777798344810751385558014093653048332362710383521234746220010609710590624797443832809275657094002362771450013562032949313805011484707932187639065080107369974087755860125446672161802255241114698057133606192294243908307889195937236334863857921813043258818766284176461439910335363605887858327538282711859633483446710941368292814057359125865649628662928495754684756461330161915784067804685275927421078548209732738229735353264582522188036954420791247626179376876762862686967633081420627530669917132476106189601820890498145541902301570438885268664296087362088684853389606434139847735621212348900012403862863650378854828734164497439852126079769342147496182970570564092279193289075812014859086942384395229573213040068951454422883784569641458279204546056489403017270985088138554397510244410550451564479830477491429149405942998040859353341862402845729123873457971330116547298191406909855940539703228609251884707974064914861301557951332430659070206623199233358422019151726554705306039052750560468423664782993298503421037411024640178209771896249765300344749483182576108105978711564800710762595081739804514831406217775047308271302378408926518302033230719802857898006783980209943510318106878920486393711497040865946125692356927624219192751692902099470404189317123245565753458604251467009670816900895391315211944542384111212586453149775508491190562596564457489673132898730451589134991332471447298211316639363372259395024040588782529606990547217968674123444434933740343630723799163668920696534221351565772167632077385039282921927028239610721076749603154052749741222279126297275868390553220853545156906094703378468829893121284749751712473984022248567268484086190925774092698793589938456593708054362106828450453621655919985913417204825093214663228787027373028749197375869998431384955892860078707185465093505245544394852153420490036723963689373425096852363700741929217908467831080750367689827986487798746246457820073627446306226924335794491021598896864897625404743916672844576061593573836012232163151829360032400779125150010824018177985741175514418154182445229042657519102988658162617944085903679601021945144008479410565217396010697877734457301700468273289688980221171576733648267514478603528308229122053221663034341397073569183201913277109227665417768170795806180491173420010779527012377595594946582702760306455745387250752869414074988172328535331625385686071881389051707428366906125393008419768029508880482140498566009412201940467837851655981035001151997184090520677179487404028384452606371487454501331340861440364112873722433177528497395248061632287478402309448817277850378973976080822398186157454076929820384149627385985981088648644312179064112905843535073753591669093132960765074461928862440623428872298839438124137003617727040808041194725432109129066868245588712651696628282085455407910714586408391337181066469814686463606818546831156772302932560609915822509402077890600108077697280966053580128094070971303939380613600185759853784720701332226751294968304550062680727637262334109242682860928816075270979841690545896648363260559327549457801283617690117420653478294086305801962021184727542854930068709259705263342410376643085666837305072160211814586202399468331978262702810597049620003386979699065496280243910092184580845395492404859121379159356900422273884352197015794188212979348104114487754249546704584021815256643534047873208318550229753881955935395307734882162915841327537609890872251872816774469755658480310610663510500797695635642249301717721976827515878851186479422874480322864890477102442786857786201005665587267405323319956467575198801437970883689607423074920134823014529449708548627212614232674212112876865389124283158320878537918643954566254414950429318033197587753663692451704503921548063968915532972279370100542338345084174362821795139970407878485922456326243081680804172204096451660951660381517212690410931809347716231326963258916999786670747575149684508756557684003426159835345308173500442238701420586536015085392119050589949800758189388292001441510599834914470221231473487822107568843692384945623688496080031270869321400818173427622350372086572470658282476507132927632870138557654504975919992297273336715782241780088103672478621122304489694906992738078711533330311730192922489586076063846839267846518538319325180905529090362523333298320900842864075509465336604668448923762151548513065380725372614999592041176290943108250615101729171829241023481217899362848165482405413968441295669040976208651149263080823518101294684736405930316518940140443916664090789656961329316446416281569002893643578511074532435567403436774190844949606360462788605465697807906061629187153155547657216158155539564734450586333699156479792150647258793847607182025379336800279378546839251073132977996583488406687321944738262838493741217965367050845072113045393155913081602797534300380297188175104096940875401020672442631498533236601996995701743099377703630995961458693118233079310252470661244548345543407159461362405465747410554855584589539547532793777891285933465969494374895305227882484013629525292937650570331289211224570423369394440419847238597178319564380682483330563054974999784490929891401165277532186819027361231746578813956380603474204908277991182555550815597704511816464575279874948728500521052726446600316780632338377458383568627102372611730167996134660322688175132617038040544202693972021498778709587739958551233541869781320119454773252336742751543341004641575805061637986587830250352775107644310984225004579133085693285523046431016078786945672516496341808864951387816778352767724992684235767773406644679804256802544803263478834774435036693606650054170748963070588654099097861447604600423387189166882467888064877924278040293126325004468471451481157903186880079340288556958723857843116009345705552656529789627922299906774629873140166445138834450057790714472809199010569904323092248493202723562107796486100343402766979440115524686911112418471443527567900022245338987207595012245789279785820760012980408373379767437441525837981180825802726766298831280581739286180204023329025898573123189236125291512546339997973709585170410751891700031760239519440729184478193480261060904869194819346358438743756811449026984239463730470068002602134479104699985820337047518040078516050812644291609798149693307296355976674087291397277750209099484627304052466520069571175852469742045656096336198865264963476373708202867947091445196167589238539263789388036650269130565878944519973496797384416845025366753710287358375263819758194717223534731422292560856265278069825812495878958290226965456818979552331050509463461172974955028594778710544243245485968136939486359739418850271976818470451340150382823978196724483484136588938380643868407276509061553757564031372549576973864328154665542140787280246816307382114570996386527322556388241680956545343592128494460555625935779417247296836409390950132268515048000108601657952216224979917073008312229452465171092276230383329264248751005761690267837401159480068571333462793471704302628729081867471861010520118950282796926257234482093095606008826064008443128985806478455308434060994013257155488770653613986792962755540775781984658207832245367991989944152257823714145498715479324220006560033799342607981189325955489523687861392870778715968830321297971344514270532839686407480509488759165251449436402225919361181812121623470837497985412402395020845635521736708347687520997629711368628672844275222354183263318879911046587436440707566075262478511264238236210521938122036206983790617665394390672569995256136700702039751048526352906256092941881935774138207930579356999283048357579914277726439067054538957325609238555059886810927513258839725848638836727865982397523063249889151098478443754253032543543077298438662686486926924552511965086204022528478639904134846557858164409423368326049938434407786029110673897418111576989756955975961830644859268616162220917006197587941551934550816264935055326304970183668690538758124976423102747832854620552062022517746236272572721550632959736172956171514344552836230808852394002410635541124762136277015063256425497821921063163206395601991341721113761895691304548549274392135716177232342307566388521475131984569631486028168726206971011567085255945053973388320334672550857988465892669406058001407262386749017541408004498751322010880303676022534608814186706672978278692351817219138830384107932967469689317376290646413577340935762812220591257703118011712970513951804725697510656929938332694867641530508898708867569762793440652440074066649528979793406846968646373937838975884083689661604189488665309136948289550211522221820876878919823712522732991813942195582749418271852281036176794587154593612838799193802755685341751709563266985255675628402167880269848328163786992661154912053125916872124849315776990379021890203872847420766309105091600277027350536219944181032656075234324235254921813896387622688396176751559668523158563458674175002480090651274358222206379067206771539804419745027254647075815616716409666399819184774696225246000809570842988680120752658144424999544586646807596061301230171412545004039811559630086932001792118285725221280751713336863459308899518877168606334415265547493922475327101337233437424421953749791043470559480062782407861800313428911207526837480246363461069098024852061298968557107956879123458134473483816686368182064869864518992420194080645608709066440065035214070370540099762410810812629201400900136750188300700844868519195483651090225368288594397795730091305611256253530194374948200691428292673425490107041130046521609524302764940321764330980734689154743418753897924217910706362916007445246085591356891637027356204357414370366328050366931215601781451049550083545670566400965967959316019375504208734736167205215413926485896415218467179632070103554484920354864673159607275722474421622740453962890793731761041480023291445478683268622052227562733763015388856254169377610958490343145553495012352054256644645757276836298362545195561464601950825329691229650035658736844594989833392678245931330556954028710374850845855656479400619094826218407237250287494717995348126186263404596368238908587189524862758339832015592233229920959252374212061206027813966956373158837708073008805455386480404490087783276551059687014874231465703920497737220103336699818512684686125283540492239115836876555323186375709586271050282064285084135290859884362268652528064991119933973538823182054724099981200685653934533728546456605346912105030110622818852033427486962823083731740025517559578478749873569916417845689094974124346891865195188649891548307236067977140282705455697347408257347232963555143175284624691801287168832588728894677875117957680421171146384823251498234459176667274988624242012881315087494036560421442325948589955717646755314030647444740500448963196860562710967532367880424660980405919732119393337056939030383901333728537668933431465537562186178608714481502821850040843031467704662265366213403094931855473210301386368096837768575764841571518623632359805849200902277997036779831625944518187194796189592297312373318189241651972149369143746948397194267751749881247720540656649295355909150831880751701606990584070499193670596872545016923768782663107904446610544362042581693300114062538859950962311519543346336012458146633497436590495544259487466566641937600454444187647160559901255467431643451665997901180088527841418319968874274204829317597887792854820988773968610430714385706403760455056914656458995025069425050684445139605361403278945702365874083989382293787494311989171468117885513227303239433081546177096639954035329471136808615158960776361712903325291488634594480910134070638516024928265401196378026088580315272530263843975311303186819660755849338291757989608059351362976280919205799983691144567742262655053562817547452419550131100138403980620585642694395909655688843856100493617440902764628807192689338975579751411634650971194085241098466027291037935790248702734440366853071136300396941769446522823727569026387377775690351915572655431717429631822659839173677132959122513608001831475230657522135853861798269107547845607349325948449376635437279922733279227861033850966510411989772217650467570110048636586957842151544034065946354271217449433020763844122882977879068181088983170512164658560363988922873817282722716578956989700532943154058432712749752243990784161038054999449170754095726533862756658025269399798914751886600917520853647630964109214693813599967088459610036426967779517491625283317346685190565392925103877131793643684586871670530298169407603440160533851619365767388047191894365407635384202452831855890080836898430918168442823731865336566494612333440297017959430308379115707774593483422378471015330238521281257023408277018218270201821207482545309353016688950318466209464300536440664940220900251172249168016744459532133440316416058783607491074970339704697209900069531862097744074826809509287474073075501176703448937771364982297963878222352437311000792565560320571020248931937941135647460260849691958163870532161185159541159822412200816818505028400929542735933530730129216737145212192169185683802021211104388827255304931683357190716468650587651396143489753707705405020600045919523481797329477351870551277826680476210930838317541287041146093285413529121416263265364230339514016256774362877296576975002352772423357471959734362759632134901153074391355997344941075203948205973823242523035989294022111497660225518216667898786302312880819071653586300772529266055800263075339454716916168494755197275011332976112390837445611396574001096063947049148006266776731720310610830533912212982815446857642613280473655406507544199903317517861594281914036595073310122998743979819264446366049328669215622394844678939031556156999026274741537648538034864515608623926464534393588755309975850199326444743030395783045196846078031185508141728834801913745783071292877600609972938299503843464458363948696493386412589527793460356449910905012405466163232331880926300518080077763831944606677069795978689771204620558186429641360676554481126486709489170820191200814370343605727130417905538855048350190878559871964639824441582502476672321099257238600100098944864521159320880002812084931543141872313686898220939088179395804161142154464327674220747606667964442302500886617991818866286835089066588896283577537102009206052472062002165981760214510144180339699974864526182714914705028644951610408420677503572249440232212805036027539774626825457482773389095352798869988347547541371714279810277904248003217827883964493987388488717236819739027668554057212663623976759221471365181528137992605079371286972581418205932373420232496594846305060252820457225520998633479886952585357642088322290804447070807926532771237165465160753063584687889532531584248590627816329852474177320987989703442092844282396502826649632534721099824884090635189620780183895870268596157133117226839488596377135201148922743609834280365938654382959921742659389278095522759707404876843805160984563630730494284329700431168033173092055575911997028111369821243528884998153532462926776291207059019586155437354915612093052259784390733968864830504223719160888725212498363517361556769401194907443306677563323995904297188252240500953260018611318636584421599348363683516551250048833830072902114222773527706413188218800505439204947766895985943571673239382905180467119499650561058755296081646284184969687652512511920808577049242402485629908497910698158396979901150737396916734187738087272031625403832456934969559626655833798235945647904919711469649375544148727669100644613724053293671023425258346767181796012061358130159761562680820324834592654188845089169333308964967841449667252965014778548012077460231594889227697512742721865233514012035155754430083769523509682300105753565462044940634316694056207924936818008613031981383646608137367940206107878372034703895469171160620213663800164973063143338670998206851242078967936220648247831193917977299638098030509258507986433373526888002384591705545306002614757952228575246980509557134772325952625773170721897218792317106600726912821963448228666112877981351149164873454331332597366215826022754684570691593897979744086884430011020240181334503137418026696571363712715445000497889810323965584790126596134705345821292136547858882026971534685996957891483282611288841734458260679984957550357840865352003526934507695584613152536697773025336516822506799348089547947542956520137138207314421125186938180807068955245537769962234039750180495766077631238745849926440851602268153086214462768175732136990793311134547233535818447934090742916430448734492998734261289279693646116098298209095404444273007779194812762497925901291196715893328172871448864598828768437562783805299876305132097183855861603488484588091919294854164090278630124452668147056309877130356285414722972275008525934249008769369979058225267299147005155324584336565298206824473751115089964274305702620040499284465932363618257947809088705675224443821108924899759319353808102932389513718173127325772068730832117794799538942535531654401961280459558036207464051520103960913266489618831831517552218337425905094079181582695664109038815540561915038850505588452016542990491319236648702496170891961582325689206873064659094270983327932325751411780517620232479225711843405173012926988298128122065167946815812297178388911069140510401231538900895148521933926300863765408559324996104968922140934950728969554610502296888005811559700759549923573883167804847725544358243123985398495163511908957321856178001867422396809372380502429467806235754388818848311710860685403912304126163351233120883162564968854929071578922945114978625691405392835800415922512995626209176667887589717947310550810167462392355395118722508698682011959499369867943950064377067508909639100544344522570544746068968126754557538483932279277767235085838902983165567131016603782037492356149725950407346838604145373589359406950540754588609557586228295946411479865729246820431118736418497781286644987617865007415803809481298302398098633429976929556348768136107187269882238321407131184983735320800457700535654808912266180470303281328989135700042026040628392327296924366965195927404887328829481617870848491446657474365750646001713264778073439594787197378337439037284656959622384868728399565223818714616147259723822624086852349657812828302529586372106847606950379303585873269992583979644911417610065803315782182067387127656826264978338667657443816800688499118511837795739371784594523524953038957364341652573668007762077872674131854469789222275986189877484060718628502356211334250529978305186581128536831049927900641399318787106749024848534326719344610231213681360272176814320072455352448561061323505705114047518185588731103422852125854168038765824979647652253262382245924990673191600214700369834177111012707835212539395081965693223881812314138759939503797596424121345641041349980517322138212878079815105410172948576337942104228187609741601775774678667626771494405170707990178304980633178678487187155123183946687901409021663919050366258628419543656108183895455687008533137059107240206528635867357724641278574255298718774191331861201025807505442577749287780922495445106155638839927079954840502856795324096452397296958329793852745609285958194255806635431603082822329474949431173204371622695498444637371354221127826556966059905418708429252423529016629298342110481874568255333524858716230544078857141138614857106697958087204991555427012296720680602178774698391915931610555453663757409362897422992746717899248479665182747340312892366056632337490303250600181694435697009208587788461200393680369134218386569382398060766153456312120744727024271811202468016297584300556832700531223073593552587172738101536413972859353079267327153288517927207960449209138177875048040972416243808412920650746088351378562185286517175862766332022673376761748924994452040347642222656324038872273436539997483522472956713005833879923401166377271147018024658069553425069781849329926390432041200079927772274255593864529439139380404232611020517512615644428706164872015763532942402256019206860106217868674622165936250569025176233311694958067820010946115949528353235525107255327884323585638084535075140153914779876081544234353077557310727180528372358630159104133370195149454635226667243641859227056282647658655776884454389143490810277912635256651840149046844574665785519521448688066280155050880145749850764226106493726559832303911719413141277736535331385727566152864054941529599667956925082748573615353273788158691798730651656981773641032395863475213996983509345291134096477288706337764357503968305122172035301313452502880926569127214127950056323883652452975584111267260613366971247708951286610063377302832114778825718087345594425362064754109437202445975784384236149612055567917328010244140415951582191263543387332304322667856079964914036451954018275951040737500926665294366703226633874713102018555464167795157337578215656459267724754188829741164399343215259828467714093672283377751056750985193003889452812624662350102038568670906197892296691588422030767801126290260188561181683090713554708063003173695813052012638193443042406718426638871769621774115975431454380125343023147110052424996535219915342909234277923111986854275409653857746206450942936199307578212686759752304390622167746819954290198353774230027404726399929645387661360443735543295997161026035759269642855859913404652856972065749468796391282963962006339525310287091842147723899227224164940245775342387301140741181217372537196390238804443882193904810415176508688674815289540634365537853711233197831927799653267031439142381305064318497407558557624791015576946470537323019606925253115843307502795361737323924434809570035171060433721764741720958026117763916266451964207254882662976158296519948338826782220249934127217496977787966335451881249504461977145493438958749224317919590474058965200307171297206643845699499417807178973633232567679900826018542839416237492758060787628201910787782931747641992465474173850203209961256883694097978021423827546674896077875426546100583702920889543759863356860169107300439800343527257742126523515750256475493079955736000346201801337587143520941760787022684090582091226099125620222702996074270654915068752234946270466750373591969710356738540545858409228530963197430182046829808294333816325248644125213395476689351086743261523432590360141305756272244930107161428780441835138610873004395712375397973655997311735327637507899613669500406559178670457109664142058993212007635652142647407178190196972868536618755217792440194226777546794474045083462632410609566039126013461599002771410572842897226231895271596031147572330120229363549154868673997710489736096642005397445144282791332531171168862833628036071199606979392455743106827847020250922157829402548355757389184669460586814799303525297351862139051674040726440196740305790358323682117088487528541456247353263373370480080290836794820566747527018177196749875984508642000561651734779822234340991248337894060110505257529540130238437667943138407458615095387451796669397333352542105131602311790400582746519970299926084512691342516929762326439612066694103832202778264838309348370819819368463970692997749816186907222075629452205184413644361335105949927184336398518693349861756136953272064937297450779100104065261697946806190821047078351003046496552660253389368208886763384479232972268787073451343771489707615044081742554366385218752783143782970905200746831353438723399506565971332227730725078415454157686721152587495355895898650583091486266218381746195342212083241722641237484199125493036859312978145600772977645955412728646914742994270605055314874997443325866102318622958400854946737048171242864158845564505195922644004335092072301014300827705201023681553644679730763572631380838772166638608952824801535944649796133569132572773563695521252253171683087623882249694156737717621054955790302045350681055365838412496367002109633087678883977053653493779941767467494066860025197872096054547561326385533492546054404967364253670169399674285594149301645580498500782695337970505277729235606910797663171049857141605766112938263714634599254311672866682492548216446409414443162736101349216688374345809496425738305458807377208141531220617916167751270135866251835315112005597703259889809985211950477473428625917113485030469448869689965992753782221770969176086067013023338846183170461650038106593463586946582071123454856600473466690138578322869859749328475925368002837037388009602541063809425556020848452942646531195803599373030943184885170109518486597413987967547559726042317293766887097091695138982378600964825871703184309759042260935192475718385528938812709172369792628264771405829353103451693557089802299421523154190081197713944146027134512428776753335179043993000916062099476114316702084220691611738671990726350855488799413594263001081137901713590220661310346429319810997976385434109153363016769426498090868644750650315139230809075011983398034277379798673149766482117641471116477659644250233677371360379228964728616198154575177957278896287640355563191082420980567857459022652557157850580462786537311262186983883119377255450725038202025997204329356888494872537524746750687260158795234531741226353245363662725100698417188679443296224534201851488094673102524197772322000051611691044310684981475759230925283855926737645233662383183354300774161892935412705284608369797059601221136304566359382507736005248262962533927553469969787559040249486273886108586720560649540646772767098347455190973104124756452788368707131330536703980248307552920316774741318143372800728159389446678158646903779468461365318488338958335535427083829414743381628229107915596579252115905177525189582886176324435303607860945393938836746706256635625272656703195056907650624000564906435818401898197051359490615572002570609423178078945771362808593883082237454319125086150262955588835851713462288164713042693942116779971696864200165393916720259608563911751495316788925274708287918965123882933639695823603238944082886602412185332634668467379852725853884513074225826236341606536305666921867525248134935106873690227618194513181370831936108173606840742920219792330884446865490050898445171770552972915227294730017554536706032493037931383232527762700196635621333172633840172854994141173489563506869704022797380266978171632873719025627335773347114587876834853836595157732403354393163463504949757062687568050980374842666667104956183720563356861315199480926137036003712508463443293068054656388032088045963206322388450438453492026130680262862882204806983919579820857318708529966896297286852035704734241359675596972520939356332931444012182610782142817840949217001028764859002100558733395407217319696358686883128512402042231175416223624008128648970354886523133905245245986257374014893703280042816630064833339605157874773386492471904580271913699420635421267746495101021977239353221952432444249825867885798146352938983906152168103565351777240303850222280966857222404208230195554704041988270613295038588556158470971382029997307935911397174058813437044334916697143544666437368489978654219961382515005366551716184674021133433544883574158550870058643786112305954184548282413321530264108254801582960685298987494114911556576127421210613207563698000443863978889201324537304432225504132448133669158025404328270192713909569462227812870489202105203343688554862451555868376851327336191021348183710043837813463388109369918988573320299068687137789561698082594813856027716188933078047761921946341367665442330443353537459925374384364577339833411986235548003733870231070686099363276173273355862857428416193295605000484067482500481166141248475467095554913028596466812841215510640106038574076727543144442077369236954699418096684780599797598414144046505625578606490692250244540295756913824062587994565137617364099687249562904016500273649940182251359537668186253563506946257262595643746933854563290510366284837090128338137215958181248041803054244611719864901931269696536565646821042789264104842739516218986467041402282893624225798108261058895976782593991714630840607477100631386433459333322527885694958808700265022879065318735470700050315364172520004868465010166534291947250838044729785425825739872508953836693224690667348934286571678596638438957783828282231738739642311476580985423199081606608425423848976657928764886450673830665658812586701045792552670819184397031722707537028392951024334543214382948272855790191267068676902136851272569750909641987833893955119099657421337412693019427797973982123522673048877956122421929666906048644028934596982600301407167381263305849006082908009293938697396096439100800738792342285797791530556666352962729199210068241076228729776101179655119750887878534104388674572917602856606657485550967665214922367368499268167193320431776722349051106359310072842913671607152783680761925331275162783939380397387936976259766161920319556667941693160822469996786822496985206129042955457007680157078091228096773910639576336882407379201471361836859311963871964695004004004184119142312965393120523317438664966829210608974436822411021589649827251197648748805350361247223185428327956034403154115014707747874920615425074707547661434994736476641095594504523200088244160213151081148885293619154316110676066891428406414152557721924153374727589187786541821115585297322409214424241294807496178268143309738120200115518224441672504352354156098427741419621610153667648549993317387303858305588395513938441969933448761742645899563971641301283085498054159939420808366288756496764770743669894687630936028216549888984010715594911051450455569396560571076649816371713165269608689924588348483383939417980250414254808237029760877099165411219400235219965206357228312023624034767809144153710675881428263069200943684075521634744694659932146448825745312062191448508214904775434716460028297166889014044028020587933091070070494663857992359095922490305272251210933017904571259088768365868543473612754416888060552465340915408558849584504407779361762240827052934201286203714534265215852785362695404434232265380010146661270057361586062941731436521620336801035077806413053571053677313417889116715878501391137805108286238410336053106259848716378099649423704235941924047044442338465530511412596684361190178207191030344949525895897208687240127694458214678612750376644339389154895308727469003003343469850515843608527873778567750152530668452227177281537138862268869135116108991807949826403599019279130701556516130434505043030619702755895665530249095487593208908527761156315425605722062845049732290489984942062121499126368614035650769692266489918017419974094301580316827485143139754056961308793286928490063219025106802710066283188179257737716791219250478279518271527651353303401939257209300090029320288487077699292556035260132739077612508528016777418981544756085876646199853253111537763304649468079215790368760430182180956447972003730510951794282503722926070791985040901770935251823292629816618212030296254464094726913467649325186192229723097629533309236897101208461466200929657640148363092266725892011773412866856319021244473307154180684202666382232527544384742983599958007412298353703888379376506235439219356292365794396273482691871284230819350751705036738268964180292199143015410722750884564300904097082276712887849128686579809797648951219620812073595252580129767377943868067802389955424603060911406676981647011298880717281862074330723564082831858113616919681451834102795009162269480868198050444189311434693598846110068246791426435347153709551894861614148075176016976090020129506892294074896173442976933069980663587804799615771260527290964960422850675484134333897380385368230176517463191307463072824421238119452482717560217889246872232285267113939503618995032502755205937400832447793334455115285783166522957081159607320655143668469712726279555379636567252679921480863061649518392631217678377819912110108157788816719225415009733561661555301174948088887062167120243876406488895885916663394491689400050141368797739648727969506570435702731057599805547017419119946966279018565479784703853949872905092542076147787212611354477005360378052973343702830258957114966703328771125972873015953625968884660446117458537700002867721918458563086142648689142920684091979375422176591961908168927329253133221846286687510389377504197714312942928212720493060148376383225430119900298514896177962487941500747833935738063266639841938467649968648377580762967453072540250830653295532994477410267829190518364977598469158374457814577822317893096280141294467731903958749206733612913168535540625606555842472503128533518293818714926674339036150143005276629762994485004418294272066656909510007215114014607084758694240499783307219031406034630623735724765991816052956123906141468593336127549454967164944451308784073032902209713061116144937441340399253059609161269952585505753346238678956300350171392886243227358164867698557752876060906759838202096532019773375134974541285820979543915518287945146130757094225407383432157151747222219711682410278439686009191228470009597067806477283334833540337645542702701645944149316243543395472714179544797150722123357079598299367436919875086848589742804157727510522116320221226395187072994485661128982295252558909527318243297605160403936069612470944842045360391607408495470530862059305065584716221418854860972006265823965268929310865527208824630503554807175148345586670645062674072662970009078425877777644123358428178105750145687894046199057664997535689059640006557174947994840778126147777250717827887575225424866907507818202131590536798363468594437297673082928513670985206027088603684504290860022129022015261733829994101036934805011506450001735496764068968137216319884969427419536009117523764662565684463057424663913031381603583369855877571493792943157846222299768832840264481963594941581894493020801013280254119838842785668898447473308975119766733694557281026835326569605592662043491627544188637751488058354648563253724130247560888074703061844206623734775509242865420414465998084968566109966788091105949866482440772136813444193231144963218778927922291329090050521725634735596017547570172038883793402877242474248514019751653955741028218197606433320724184112965193119348632369054346325037463614504923848251678458392645938818472341296243774866936573428073024919219231804589915815263149641754836917293830163261396064437292725360890001221202332594855229177514630239336282197964754218623828402279303167872528428475936491540507125262945211376122907608275606867601028886543060922847010638660142899031776439737282683488020125437766208005618306123297991215515777578441945245890045296006728909318784815965744668371152716108830056804406883863946818262673437532232373533313699854528912340248271343538255527319212298819825764391166612390054488830871909888466129969271668089000002921624700125470242345233910069540699491969073409974570658265482452484952173474986459217569587320937320624272175113936336429124437777248969250520301349474931363986934678414956566631865931818215744988061271972137418784818936082750775290374222971501394609600505445181308104982175692777151971487694632849260789368640117753341927572747294756088254131821959510905704868545592211239303615161776690292272841363874629791498930697401259377049911530617186240068584192075527637898210387773789283941148460518543773048421975436393175265938785884624940438972372493108328189654495217838434018154353698660840322383425636803719128049406431449104726689140205447058838501091593417716016081663075575791136609871870492839958430471899227710287769851459299312824118345618464935440523029139603623833047158695789858268045593526316016998133356304815410434098582807332489293439363020887471652712283231636582185635085050175246984054959649938490674054927819828709702032610261112103440774345182020768161577292841135836439830945800563663903980993436381515950079694908936765104457328535819697079561949668781500086721785373335418825371104494734678082025994279010435426603418207807057536406741003959740389106746604352890493015084434415420716871150036274779480322245616361907644220424232647848874539631635940865129096870131356428224385965597196836034225620055256773168715310157089877369715695133953565350856364289910512748208823181437917584234488027259381843332352120858918865102894603282003695853214647786062708775984984147997704809255642073225884404863033885608844411343685146349749797125515610214623717111967752290585353111818025154814648157492812058255816582812700135287136988013048013461856590378868908712603538499351400150102763505317654934652251010116506403152712886481100644634071830271327140197462044925410426183565820357584851352230272123876292927291127978516172542235385916191418418848792938571339481665547868376724807730378204643253061892327367857902807359732633741224161293305945826495468586694526342764698163999787551980164921564660386292177480869178887336811108035844082797350303108014412540684137393918066137699054915574682359782978343505630175940258581512886411305209706771973457346513115741990978767672264417186382525960041635534684071071525240107409725468148287382269341769128766782303593473381426987506449976233964184137338990844139029139165331547891243680253647130964300017187232582212887160428070922066945947815761299995691932708988837836667211018294040696255682941585360360646168734518510569259140700849367544394376462141339068910723740662789443323858664214888909649033897986590877338561755654423913154491501693201223751803037461418344654459404829734316307099969316841697266727337630978868842282578233424606664868950784998767688676906930028664675394804034522669808736716891995878696948067242058612869336693300248772515574091334701262482198666162160935509122424502011009839626776457206823229319202815258747379430933735214936460421510233444451311855801369314410536391589564760804661280309627071819968796328648192614960717829551446001612770185969984181627562259739529071057889465629231347784605885681270808548199132928604626017231295520576671886380031181406723300971138910856218384663023259247012311649555107356825420771850836182384290693749802891407857287652093773006084198373248522002828236048150776468370152520729152833683104491635657325139808074577455861219990368719102383403384923038873676363973208592656192984165032426391738099201585915648320337208947596194517392676695124447368339719483873681434466105764158364229897538978519211616473509561055667680985780074426364012993122924105316790854149157557263591492169181485887979926532147794908000475168421880255847153559689311717090572373286573912949197645984462010988183673270072962052486708773865245072571987656553982616201366510281697861192139114805648951579028213605231640967566008712018296833807332687207634459561790136078458668601914593974890924695294062514260596176039710052675428739028115319928174618643400865368489512054001222674903165898603652196309324359709196932788567594948630431846073608225840409377438090319554515689967114686147201730109217589825647342685474424757830332905000885000828175177120237915625087167056682978049754587825825359946778935237335122925289072376008214152150803012141934161838108140505709906994036231808239890552281780776083527832677092049434473216972364355564039859150661495796620206438023555207433546360718073678603394787581620672934282807098947600547727198000950424722351043262491142948329646727133095469166276196415582050567637373602798906262321495299025267334993842407012770943850190301785380792537717864050609216762089223243858438309868383756259679899989196640070395843416832474684315001925647030619063384734618713586000364752020484315517182610185234765556990226558047875528290889789118122054730417524604760076952548561362300712808939853169240339083025797181262370281737283014252988448551463253868006204643457019795661245904397594267003482356005934338861163419668728692226477203131119132967582702225514623439882722756459955669149559812163441890436022208467076953152502265861640384030194651046028025693277885785059559393179985216371699697988584846129845111360965836473553786111684537326407444645475854659717269630615884898114814764924996674960370265421555040670240968596234496719496323738598628780111270812221887159263596397702415008486824862678434074333871126615156709237725821590544415555228174368989331757328252367532292484205745532640112121306513324720050933049463971224586917803476482157821436106526691312572937623802495195291717337780431921386767068747283402430229863768988512943381884070551240102573491751460899225894072253502753963539075970420960954838628034900376105352258623660369583842030413443413083486007056100674208065738626346412392269142940614085867323135946050770666116334621747126052476910159442119527488459987288473908682721613197535016660608658680444645930901112179575026014831984018150467494434617863450441024716244313763013055113991887006391612983215776933467188517863465416387926600166730587425269585673831037268642109441561732679632300550597264391298579962319515085813751313692362396040020647441028945125844863909778247258504434955391387181557561491360102703963584327764046703956343512891610460221620274186135034099048836051403256510601140642543251338911858986244030136513397429617800545567228763484544230778393417044469882674558863661121816634997106607833536428350302734099481945674017512711645198430380656373279509761504306031064137580886897747401372487941462817470780935568571641627829954563200795794085657202941713657269724186787141995606805488689171650278292420141900454374326694402170602425559529158035687777457820828562095590856322618205378889139728866388738322055671146881904866791991829537605020850243353977850010740825149995393407804945607289794595789271636341066467786281430707999186605571278545191486159209055532852474692275773125867093183846238567207192344902064893186079553824510470224837783466119485803787739790172048650145081456957472539938741745771112743536437067219229197513131470064810275593859340250282273280466359111493804373259561057126896841016316158271640875233480378938761833866339276530286334197754409753040694294868517746667420113042552558513748799425739496000084009594660192167867076058741823673948005658392419506131471552746914329133682589520476385861304304817499451733563969102388260949647773754335258736481707306706530668034216368919053687575499658780437618653607463615911911571598738643920051451609871139073486201710941245221746328779128159496182815409782982845008354271567384825221075214891848348242330553605645526386995369195765486578714570593083885200276153725504692192397755165119040377272718325115647757865545873265448312378421542875570724160044380695657621317793914734513358084548012256462965120960936803963490024943031558070593044617374578928310056732745906037960826932120740725986841949865463354703316275211351435273633109750084492170432274373644168692098686653664593848842222785277793238558230137188617237500069446580989045005563349350913705519556063153952978196761754528389492000184012590656183628398523972372705881776425548932991705003613030264182462087716537806131577781986571489920089623027314694940804230750661461773226260813424554940913125410608796851618673204004402598981883718275401421769067490270162904688774455454572930832708358257353402803680086709641045470372854432567121628723674521674922551870229588536121317779565872004071669500364869436885647487309690533231519837367231610509277599272717268164133821628655837377742612583619362737845275090346521997028419044131013112568589080302728405387284425420590858623420306372545823407629586688033943855263506071600169191501812921634672180321680647265331871582170999647272590422217346607700211965603776673095740951517570972937049657520997801372980214461392437596985235636156516860231819235894663674933308811814726231584271275118516675336806833437399486573044720334918254886844329511106935638065155243764799724104126282253161146384810407748655811842301197249552627304012966502917782464282159727071073039717507682456185198031348099762393282052537810718450156095289536220229100139120488527420353690520995036053398332114186703227585731295217166256943718610352005459025694690306433422759322146752723785050234186573468429957979322069125119240367617233680605095200996517066960624422861686348941743244038776156011488964418667027457957925064247014175446981999433876836336130116775268831397533947675215170931171846324533981173927253973964956682125449494220989592673855662968743202244454778905298644689549197038636128025533416327696627501969584886569783978907700084399883784456237701896162134997404053148468031688856058228649803243298342179625094822116431710485699198498581364736567470224732092914399923856750955713400825314909991593611703687315996189370037590102973785223306066911594284825603368590534668975531251773609061615485785687658736012652292465467669070216194649831509156218236867024231120329746028359369239877150481586458525431984666789575574877110660435315968816770862821944123444889819020513839206844897787989044812737611310282115437528584505156629645534905903786408396635785068843879035177527516085208156738383677549086609819905568025848114155365751723641633716984501658808621436956534392246690688432830078481686758921856874105604789846186126589101311596457537008761810197251648549412437962289191666125332890814973318888164201729713431509969690832581945435364791439583812416172429926881609983002754007072762728746714991819945915663005902903058509965724288375050346287300486761046210745389242441305031674448819873630814754410034831359190622744821803902531074474541144899787033659754277494884571397189227480975994542016401346627790591030802700292908518955495170490417991467305308261374568636302622676785432362719622905387963253746678747947124600612695509062353721202037410263270477945998610362725978204643344321922492929108289868672586796138630556470836908584725082859449633599403002963442989779255163457904545059449520675982559839887286705163683033583807020009645168681942108255521418264855503651251927729371093905701670400259072242146435245156002208327156479888478252901791710629305368075366181510138812147490765112253483504513595596324128646848588942169620278400917920076583509212761577450800941062231503289705236507291854954249944963492218625805508341627339820329926246921802225340723771609474104599946707761997531468393342673360901642894919317347791052659784066664317576021988557313175511021719979928142236115154827638359634936361532652787428676633284820431466956744288084307560561808058112613291383677276030641647193998314046039831231038028360061756312300643713274317618885500028218845192926619257572902664702368961415734519246430192258529268039152130802077699794608745164966146831197155559018233073291829405020681719967423990831104412323042056081987548043579823850331347638633793093398549533452478849447975235027032489208379848078567880898026830426288765622259168163733110541437754088140663363036988638512352892301269802816559808868810363779950186635024985235626989887279958312181993002268190337708503914997345055922126487637108533143349260811356562698331580707650281554518717245310157249115692092829819326901824043248770181660655933553422250232979249243490767090102401593066166996804901538414817475168247993494510744782258332957982273849312779940024937437716568264882811698668073014009932124819395302333841503705971439375323164914602421605423107337284441717804068779849361187814675688256623085175735603202256947787207605743096897449806329627754104911432791131261925386202600833544726076974961409495047291059891064353933496919856167345292831940380364608243736060126223798843494808897191884232623865337997316165097497665602037678291168823434151947687154885240322931155528344043564848109877712733538747717702559668093777349052938886995906217186244952329639881640870091578926002016966341596054265165611216200026426692478824359916167228670057223213013869305169563967259337118491481180182606038375271525477124979155318164647463064006513380161316583064675086674048350056406389419424898881768026007787232493169395411633171574041681088771742809245429279983638005881625329339636000150471205104439008014722823275576139281450884898703801523316875677643286172487938480981241620991102804383432254176212656532615773404325800480520814432324348060541277022791644621406022797112127195269787748923046481578291305016437964957668060709356824166892854063113722126087377950431995770777129710814217851243787750833841913294121708855783709079989664122298183084419820705061662037406342856357497048861380318303592700615323967973884246586718012264619902560372373822202556296417086069655212295599057929915798824448310477417859648931596347571575810029950115827346700695179554738181920346298709854278022493550701881295052387248801138155451806396839015122738647791417838354644248216087845013414810088308722165969819437821270721387740026616982661022704150382580153767234098318722840637319910336288112915356143856049043342603791678560728521435112199178401390340098400149924522206089677655263033610818384737164270069239919021941325931179045917204905697414033829993867269589780613547193635080917027038548295391258553775362802135200176746508656594755874505692976485451446290421797475478601426508478538973841517509969675563156145357835584985092697194166362476007883556765370171561733502661185937711366078464022125520794487203150264008937512164331268075643140653378046231665082009349155843633545970559921505162508608031806722322353964384626863931933445402960643627275706428091671937910167530816750120253244037800396654782121205114755321642116014674483557702468986800916974774740155782696478897493226833432100222963526940652885875422383858969778233781091856548691139434470893003605568927613211969450689121969585332802090782651716378060600181922032301866898424223758733178129566524219686024368844784351649575064155183671013778660271038490999850056504588759110044769862746688709775824595436817183754073891380094539004727218195007165265881639156063219034438734655952129073651031000982421515394944404244718584757113317729050279300513819093238375021208013404806483631956144922891157652610901640044744102458971005282432797907826092769563788665232117657571165003720737940470337631924596785871471792662253758087604309261603313442091403091665206606710990140177091900539091916498054779558019050920092990041453639885253429254387613361127470755969007717695558393459515819959130288228559156099223527309158199323869517676367078186814086101619285243384369133778459783585667909315346085164298689970492452697017616033613027542099700719305619457947756036665290253363899471841307842774406621922446275756639097757745883198452390461226562279833830101779089591798532917168052454246615694646327280128017746164264659334126807908859960216115711762523654406319129931699302167991307255235442678545487438882186971248723912951426377447651376200971907605126203348481184740623305334982879490689853107911995021812779409356003687348814418384791927865244078131943991389221881646220767903611668102894067393404730224080524048517159996064873003971130310266857882821346325462582904211967541940578170883610369543717434849444010842929506719718898211717027940839336240755708405210681268189933997646397398545434615194947627936515492434870864170238620988624921217518677544121787584035646720881269617256620412977554652791893677547342801717746812938795948821649711454081127097961873997714368143430712487907043181390672647782607652797283340574600575289701869034159685846857055893099140516218829056738533273883195987563921880698843623112966734466717258834662061576848600867501948200572471379008400729278665144199670824964388304620950472321341274098950879986472312517126679447533607584713527196746110683313080982014474478010098510701152684307190541219712815098817895447116400382189106665426594087430331187540778262661029030003908449980637428569778123320951144064000431642572461190086752700025989587066231688812881532872232997903187470390030501811265157024488041015810393307526644351001730794998522955062438457262954422777357496300482667600373655155680750954969698193332011418064641592612320795474254521999689600382584988739377680821149861089073676874756076526079290072390420430244429814289765297575346774745834666464667395564733416895003895229638332105339166700002052215817673199001907488512245658300743827127927356144014515900613693092268919015792360203163256888916774311954300063401401131017376463775431987424740032726358763836015347946032406305496331016570895974540979466570481015284591414566323885602356595658273598673902029644801452217095819194036229846727606946195001750252411406106852687981184674870085494250007680394872137884357835936032816916588066797474529212643449741016288291701473931507122803548474523123391173388572195405716593294166432132984996473455025814197309642336037897922567269022153442170310952870434738001860008377494022409405631218988944526363976505689794382377547993633374849674808346531617958425738520323633039145905565391722334788591644025458845744573842596936238758296791566838485031851181674022193695076986892376198019869220995500683317900678851355824182076820015658082969944953914352136027902839866699654101285327507682258744395958454708116391478515534797185388762132716374372520437803924783575922052263660539891846054015750861286056110070345263150584334310132223012086591479110175138949675068139209039841436691919914322405067736703642984642126245420631885610230883076077096927244446909246418359538282542265295428671690095679694533506347120132077833512355801120025783442721836444959448719751375625834831721122124211801544960727804639697563660991842214273934720945880689269389629200904594174499463912754491788030350588360129510590886176609975207234672315094288163673199160761479270291253559646696938584152415666438486443034940396759423052876979372942700164800958021413079509078818014404776310386260203452843900609345610526560474257891005835488806065551482711795025343273121535514952356645784181610809370364193963062995677721981347378473263913375030783351429819567662644061547548364518853071148538871767096018223075971988128876605553196195594001945272037955000962929875411156904301406520772809632551351981548576809577242999161627730733163205307797690793156536304360933632816357526222158341693367645189106470554145394259837895736665692129749399670287831405774368460639267290805179390643786722888419842475628497330773033362633606071777793864307914636315737383469629861621533865079246023848241928329301399506517834040870025063943050526573234637755737013519077439072003664973961975606485688432091978747879415742705229876146022276585875241313429404106465580898774768268515200976053940520843051985561737946650431289509253627437738632841057351065130622193466822652302275287254799616560376016699066264748025870222365209648604355064581955953759955246772058864594205493923368209067741577555294872109482554977970052317676476701140791895983174309047454908726216714287404507782413724874901672803316520606549592973199534604807434502486667405573754107902670509897269951350708053302336644196157836762591099384963251931814822667808316463972947864271166644015884173250736896901245508846097778524976475945697660357133457869871351873031371150207946461061351824719594575323490074492822067355233948317695229166588119514832812680363381564728740317288094447128137585579222844384298825398809502573429513881093226912025509205749023265632846961004360047052577292425576496626481642827521775081644690660200873346699434916125537654266236533023923117285164467938243473461468069493171185030098495715705330843792044164872605206572439969394998425897376826654916530195558254810344136099672290180742761020464300717232476177364140052967862506253268738041008144301849168693397897522796850550224316139359851515905104425102840628862548195971682786303101557526167074061526919915647076024604133409036233069508113904765275121396197175376072418054079025864360489847842547896667348059986810233114833101803056736054940483733605729214988385947462847124142785222969957893576208777027066954820340272542339438844337098235871385669021917294893242130758005081081876926930259315243578374238871787587301216095566483654924743673785163270034841977375031619356901650784204842702468626994251283969862739443168582520207837159314727719524196123279212829773567142727996377033370746245436351380920041263089245154463222040389274794425002881481898010937145965067615455301445297865114514814061453617584550433526508431900804068938206393929483787705341809376381077664445101589285547225584337590152009432598427416196928621761967202359939441929948058268777078917791599857051774861464309075369733539714696809874886437394722010544193593755944694794152713376656231124292708619059467849629849331052212553721271695047451630790628151761777288599752425046644912750167363270550288287791036470381662763945262239202730799413331214923860903355290333836508147692523704287140127045137807151173099682901863685295649335411197804572912292468793565970953842996277886765815052656597887164148771567150901701351132730076912013615337668286577431944081645791681278054124361620730387681786707857493116376545029896091126809605402763513231554532772132513948669469767456059997459346123983281385995563050592955634085814683565671513969218781247551432661836991879572899269695095079594586236112486248719943027498464582866225145274920318594274369714685925812584742925209662081408380365897683375726544797082528220790952830299569510733065998971165354881419596971119661958186331903194132729823293739836339382335406286084990478377027477672565068827337903656026891009252897252182480069140358739241403510105007409518293254532675195318489101561059576274822198058401782143572915146511915250077059454453905712075286394744386399787517640449002594165661826763253762870086885614676485657108911789441400337933628106031503191821590943869000827561022967420629207616962575448731447516812795564980358463412848383923349979382151472439906460174105993327728825325389706585594126624626094448352328626669629322656941187083507967750588042678665302947605675641412197963197228580152467707396853380096510642662497988625232627054622389508259242445691078960358990565003657135860322901997596446338256643582456855141350735465190793205168939586751427597261461637549036421209005496458213249006670827461801718104485141590162256333601101477717294508589880284995410840843261710455615814345726658117472704892116155382710332813002741051004409318635270809490019951219773401329755414265786510179770120920729326961934158029000575229372119938833898884489889345232903286319693612999702675005742176101246534765601760579060996508383811688002762085196710677128417538166498112980776598278257844731190091330917155540009068458158912575046796549783531678921577716762203101590988781600376881461389093527890363527797450867904766621143578200394567262776325643811347567815221447738219471979051180857783380837529912300409642915843999077287770257947577364527504181268835284164748843890796538267681665555104656311049292796990347167448826395571452318903783249594259290149340929425743233265619440415696301086591269158495433123230129266458752897275948381693489296753106609218004245061943395836552923762254346363865068676282177219586762251348554562821291200142080750645790204502979173749104339772209897756733803071406522622319007838418122377241346997458725042883214506614309701103394902235928297562391093920907506149284631978934957266656713233182663331083924050962770820316319612754530617949850225929263264828564153103554802246750544626494496108790430270692591071407383074953365510952709033084395661290759141961949904753562685492169018684484842365507153994256983218733893962041844706941967893573271210091923877344847056663540299245141180852832133576207026484522573903752568669093305241180090047832527964555147759988942408446579003976040358859223906721716724150364418105392655158447755832716128129684196882377474361326722433719523047849989879797582597717524375698964965644697287001817545932721806447150173684370987677401805926232775574222205335030378771193433695594723847668470421371182887726022960752860411657105122543474301085421241669821719611225250997046342978405032589744247531859323385512416161380705645846768156799372327779490238093899165824267799982469460570045659020766000161210102404263996577608666470745812034358251279351366277499919944685047947774893189210335682836095947149279584035480955910311569224824774728171180097726105609210336139863005509547350332170388146683852270571942421327568260323342601099445205562054584154805770999789031246364821156952846619729382863247738844429872207708052077762848393747754887620627581208994791237257062690381352295241307998925772298199839069661629224758343632711770155742450050480013385191680368196161448685028658176060437084462965130229461338145127997067720409380813242338401371600016309200837380107799384955579026851136498392838723193799613329012127076933721509619904577398271013547514764731949367580601159294249214126002745897491673238164301506261042957015080387923345651571572166953031978930889366105282815996738524555797753097281630908195566317809234123329184348369988570307883688207216598893444626673591371536886454355356665304080599103916724863022302220699571044076357620163607085432838549157226536425049202950168348059017367357065682281411472437462603299655218609334987946323107870629502797350749006569812926315717415932447826364080360332466768020090782258217861118039286148130960512840004053190925008342835437813673637657516511023466082282813744599231615777130707944436141381055655376078660063279943237749807641369652597196631826869182882108918379549925247759585749745973068803411944803785439815543590300331289099293721341679454129634209957752946343163869420094254673401657601420438523945332697362278835119137870090404309918593374332668957103447736791537931262279173593991453716186674474757476778686624003855660211619539538974658265132384691526212883361751995432611026694081703197633012254468500580503847531056651157804362982513344039698487615512139085906493941881952971346044904795708547045280350699965726542136897309749457399144650366112568275615541107583914492419197197108454291154544258565858615674977067721629622918269866952854131880671228170440697842220312058129694753764658930421536156816260427304172227054072667195438944686841558174385059244706199750501444839771988106339027219860196715622283624420826188201902303297558174654706876783851640883878986376030185989913596196995776707878578874131121393154507739410110336838269445724915703325992555941632710616181763170730897583733954589179825847956554621962232461177952739379040618803965395396421286742748859139538198810666081657435790175609238262733506639157962012010842028493266968226819876905446918330035336475855250217307815920132884785762027131591153442532688534305969780763157429077995313668535624540519843571084271291830026552600454756231411112517405636644769654781393824890204503969883794367068029092742055826341242104314029811702229532340401066064809945004159616556222302230500013566685191368685955897138008229558351077126508420311727282554099347755676487057981505019416131902843757550212189380776424037846154095433893958045087285443721709207835000015453990681232100973444520368557663658374032280737104220540418167599879004983393183888236706147924632328801931247827171661268810252003161855603832775381540880821820683662602576515298101496406072458518021271395546000431053270211999527131387209717831307898701343907844165135760070045152635732158136792437434543567879323957885842538507065694185491467990973721663087118879215307646183447005103309874193623801168678383326284174498706489881539237348905374790094078344744007985778182229907879308224966049274874764466755042517176953457944371511943162372068166509123147373181582269423160049617808786786382084721099076766058943884713402347318210358036006814160660621361339225474831473356752037851184165660282197623381860873762908432831122254912196381926015344147899090824096969530775015455719365343110680971703493500954801144470605115096570236301437967102198667246477121167524153539693949129562478897655334133307771572040705399330739480609092701218382166181659339959872044164071807041995841992712707148629518958352444597586655388089014919686071790710050700453859184289501239181328404570936307845791088021045647959834042732964819747529046069567967453827365372291887786778806319932585392183836026805731041258550095442306579333100610434068213939025927175941804596497412088755304997187726580739565660514618345340015581659153438563184741796593436717053423913819849960233189021129331042788901202228219076448876684037486969761014416859340836558439399064874741484423869628063501657250844835681079391710704812382257207911963861722650599316603683477319905369769294094932630244179764974798879108472699725171346632675896510306079479036111480047269895230426193454751793274826345250383566471958117403754136088338508712374995360540981266757224712333032264385691879865295248971355010514055623839370705018834371768764012686414933087877991276761434867610940528921653878931972597514817345705250020502833420552457135818281367725884389384538195927782892131091165339492581970295225512086333633965180479591174499286752923201587271133062445877695797888437857319948903551154467337342637129138421817111984431024683369815712851283628651808419964416895891012107026664302560891404962329730973289670959244691108371616374202068168048001956944393427275252231831772683994672759376200537515588626014775990299882494453370121979049498206738050627672045220831957214151766416259101937190227529420963565143740076023897932919456511565497740840719372983900760594940852672497880676086702747776960721757463306391994764348427030908248581657228493516901174039455754525498935654090736400333923568377718876303286310365241503432397588099710539040365987995664244899643033986855091356753086496251816800552140809169081197789741877624323016761290570457125064341470742733088689305665308444348302678911513994858043339097776599192666884054807789717682637375961736593365112627248368012251966481137925061676651482910729079836652535627394222658944167203632597703947858914844453243388774963375126177759316384121501283176597331186510304384245966708215558568841386483891589693760728743718070404255403625450035821652757696668038610958057379806264635548674439808627057547549793128502028773298416852040759918432681206100377733238747852659181943820690600917480884259667916893608152077047609450760837829955974617487633653014724515716826584129860402728740869657848130549873773753394647642752034838888494644940921136505876995273209179421205059137660986968328004079924560407403089438657749583780129057903785879300110392762402163206156285125997043248705427596808536623618306267085484806957136018397593882686974106016074018671948649183780575810833801376044357581918914059772401438300627339158551697753287914704273910020683082248319518128863302375334710301382239212376687811614174108700554126068041080882158392464855121076955810830765184529996529021330045247665819564979918878445832861502882570007358300996385557067785390531311912301377575247779161284366609247679634089290994519175242602322945963871831249300121053844202337531852540217790932874894104062989467753756440202312257898793785487317614452920377772653326494829910639231486671537923387600211342551908965714949488270037638820170382244796432820814599486290182276627691608618801208176839327357097668984014503080526807337770023437704567229126646935506197984008443540503995753393730750930474468244989691502417929007823532889158368176109559607896001801829673984578710850599977317752762676760775917879763510659042116411175751004188133049371170226562764219094095012619259430718994306955587098409109496438860066050561707125599177900372522012295663232333186842053715093729680754787617428183820878321342881406783664499625699468724852059225960081660476104711078235509888589800255789156723561236405996992202685484039338203976375456984634804751461217070055400030118649310060412618769980681745733519345438852622882476324828395211797012850687941639668819401710037897357195972261437862587763128003103077973868663984257198216081521249401177752859577798621710998947254609407296132545128893949544912529137444909334029210173943006963975321442893803989581263842411537010113073450520046213656393801378936389695575408494744713517371597597739909674862069258180018026874786383902679519216358376734462459111711724147627388462512281136907633099571282361967982897467180503269804326334499618435188119438733269468996920980322226712968241004566012369360349123393571902738929683660511001770219218395107547609595143282803761343091501010847544579874168457625005445344713937977834605721374570168142878335066255263237551685522006893162325346525207838355228253901907137424112923032308429141083326349900179169577243386981746639592919157947352882764525668792728134581975670811236773833786706719626177146937733001591085719009541988050568223225563643544878690099834953563573661843808689868816313612536351131683849533736847731947427837303777616333261914052647304035635272541092251908397457233685919467200865070346125888615393210193056402412774405305197600833115276938591447434057984779480617868931813172430908912104858699361765221029877257059261037620113818975027862945293202241049125244058436412265916185172606406280380672595711371174913076998846661626109367279802448330562242571167257586135922774114664067959227143997213441229037576443995533087031649581494151462635948413181726125440953513504499384187844840132477732282352725445126927473754957676680262960608267310897843921286668867552232426226292557967270385557804148939554105886824457809657949931166811673564922720226941871337744148846443256451799848565433464932211009542564533297734359502083315003144371183438657959381961570844847523222423496372667881808362138934583482729192992541990470528204828596931146878882664929049430804332058310856994238459040374828923685828430477512074486105076958922387411701133668522404358618992707050230042599859265906179542498516843879441742957697524195184882861768383166331586249842048029311106122324614476590354110311330364045830136980875842816067548273566167735334946272351429115782892610129856709481178310988284174350058685774738217221905044324769501918026719094482248931558797258862996511668506919927427113300112058932911876547506923553616937135818305604466123174757796932465193426662079563261602493823649430312182779687336970383842652136578655430799995741588223895208711222760549836344192726442076991216314661075904746971835755760436946706974772395554041185254162306885174295728789794921303918881590373466418481149097229382814535086544484314008796764102720358023792988907156535986246144431926182602646348584507197889538492779540989624740689761316693421806345742242086302597176508982257293061939503409975545838733906367427625566756870828613453617454366950095939033723012720526988595727200398582070284365885362876921898410910752854116424931934009003789351931179488625703444129658994204045965724307238719368955611547814579273477094754813296634247621587849440877728746746965285985677949174255759579558678274554463961706319669421653563159538515721356783795156197539057508614124496737517128536079232918588249075638857614441383271827327657644279843542799738467828155579842575243983683161950372803286336328409188593440135015996350410944952389299494591053157010241278940960286868011727820919786275347754020357586647514679417097071374497249934862593722040237506338212323043847696041907585396343422315871314470582089609024954600629974887713168597514525119587561720763219959982899334122833551520147009753960839748871929616361335302266219455608036137219577055544127485992797695628225755458905063004310876836599595958833875007634666230899352798899592526853824915525308239683076669529421011608042658907462957506455064369536596426900404985093381842039254631461043611031628111799905878709084940355168206928426270595340146001329690734791561766539628017512161972757443493810446081251672422219344830408536649917596001602658484621157579383936401254598339132528817577600451823782040730616909578781754947090963275288312552648540076888453805644081633168992778375199970660432987801219030839784075426554157188849960434864418284002354389768177673230523645208613375239209179324086350490187110154623269187341127230969663171791604068050141123994965852979907625026073708450158908631588725196714893998014042500192407093802766712808755978690527200941548670020330689231728346094178011971974244108664096668088270227580168511003010201451273338080393450444131031851129257356837124472073178247818714894856762120358875967987056327720991507541549570649856103108733531841599444814780209997984472457644119202666539531136453675844358925710700695654400135645339074036504783483479619966080477373731851638449889802650975502397619670108708465613748635143133130943531467350909713134733915148285677487608337974202573196347739753845662281278806765010529747103282905505608583752438992455989258721917619468671487099752268151816620177828821125195704185454740973518583875714243489669293273860914003128508432378682203858652806030247400588897157849240704217882810703697152542100126777137904349349197906423178853142273157656827458848592138997630932307370049897699275279966336168603244980761383793229223027837252202268950510808171504336251245853432285698521464343160743864286706245749031563309365699501529549229195384039303625074871432846641924278805731676867623313959642968394381855909378221532101894122616627003411262055212551259969108215735243995068097193097653894527864912385882695354185189421281377456134507489218658035324373810383689430999582887853654694975795170142160714588096582564645660370783109434198338355852328884587498497068495499364035553123923242386724540954593167925802899504537994390854959747342928075894569836255219607684214921322161487152903949875353323736414803795712616841170901897937281948237752128594242312557106976944630500346014033232914356736598043492948801593661677739338021829043088494208191554930540975460155570734571032706077765883330450608885621615527163874018718605851434525059319826565072788692348996351076836803046869813920991220833453117408056932014950898471675566391708976055104931660199035985473990112672772742866331674055492530244321947852172141407520363159169827582498309704356124501009274263961630705763115996321522526275231081940244565745651964443921326454759483308768959670313283187973642803596037546426618019676225859967527365065633999556302984165517373031662236091615231275893464399216805300862544705114671000439284105331152726269158300703105097973807439487775914945585430058282293871251090528188990129912855540381160852288268925640102179124795420168604986636535587427693018988782475827784743551108609113695005649339468514377437210184200394262059604059260086442537931139187064706302698863331747208253654173189180480918444405424807935361589901402319698598265542636832578837892338743482301188735057150155415418777414186785013591290335552309387075323819750942192770921833908901628455640572881082609842713849337105909560702932220191910749629197636450883875503534539878039435586217690002958474829078571536430775175839162457339235274401382927289303705689806457519664451920588619083003644246421687067042061300453443523109373224823197623586656254081214053173648184357272431964987312310206194111581429855080026345944540041690286481448218724176206276529407660834780961519898248990852303990635164693571695571908539699164737061630963058512419022157120549732810605926342937462974729736401458961605204567916068667288403494604444518274559788342864951606428190413517082619036073426957980627845232058071679804442296215123339504705955497248482814517836001646183239907890464900903735821262105522991942697277671461788892125654276089320709362990596599618950318559370049308984046758752794978151280087630913679339993721342419222462200725056129622618835500516283759494809669425950965470084296352958629289572958000522943213285733498547489402090105311741419919708574919059780743218831879036287688912838321016566837040668892483757143262418883227123707972662985510846691926024747584255819112068931533344549601460155288614079103136688891790127652815293450558602714638023326001212073065191664011787010668194215029562106959395237715923741454026949889088944121234742050537285368152722363777581049439743058940087373398118022431601721096575662887868702193228108305962598302787952980827938330302205227844719619000908980022086645700166793156591498587467278126791108837502151174361234077871965136283768427681218067199482040320986125093838325741736535228922813382434958251002975049186076621934455653612800758708523635350737740647110667606253901624284651697506100818932512736915402023250999029541490848601530174304592870778956888715248549653943389384393851239419735607110003638551860747508048504228768298170921775898656862122058811760536782390470772737093922154551322535219949992473229297924435653103097650302606350644038945836952121374146569771149424011833588593832526871032615503462252211710745753126673827110704501615537003812992813370569497078473947379834512564944994824231494786851465461328771489544737655249108619876951038186477534628954178337549295342773470316441107537878059127474679190070711113625415297139226202260388490926611543187236934423370555815973063554663347858548167287141996077664540859279674081879340304225524529709205970480302840887173489663550723420295382031967813952632579758880567606018928343791537321002791140336237815523097808659232403608116665364255457134362339316719793141413044732620284498666885458080302339811806778284988857653121824471459060977943106965342019432107483675824230460739843238714560432796084645691407400200463310424677606251262671361806726540926665848653866225651760452768417426376851384213399644219595767068329234275517608047581883734739821980776026867772087893406426316293588594084968393081557652398657742851120729369631619385862358851708839762261152720632529238682816469015834291421065522798472373124336828340959814495630861334699015461608582995055487657662902839829011425866402156927668902247764894018382278865656795479735457993554595115881965637366691276539291354817841051803801126331216352563475897378654963531857238316880503515892950309350914126502311418442992006174782179918079029245367108638383062111866363031187105086161587837274284258415737053558688572360405660012175326659288589161775200432168341637072021194005747603854992669832015590749548768274466930077555552176849476233678657679876959570932856077972575843302428366632173196520244448828275598654653176917714892144100170310351391771629912669553539820186624075867212939646114618489563345044094960969642262744715607719062274688218870140072056333118544091328314746247697094634412920338285267873110628810650229852031667547794308835993346709261427230492152213981979513669147225931716972348103156404611882433627835770023097872150697075880876573169198111078191714428900605067722501132215443817815196832501907636570281277779870868565898524497786422539961870001874965457412214768595445400075527009190027323526013733173667393453696313569079346353339154141779179363401561123890612945656248007992218599003993327523041389776881104953608335634168889237956880062340277039137069013650551888656830106201825615132596173741172743248865755507907331731778444534012198397031713615165112648778267703281601076116761461980352857513146934706210856695818413561002828336100963604493119717781324063700080208052723556165190604437771816248609952452338252918936398030610888954422688096730623495028390593485951526963097238112252184534616837038147562202739561145474664819684393899073038624351718267308921491773835579071435642393219326058937875815677543580038366422191489079478135448467100495222613770815452945792199823146079624707579535043036313407889319770147111212440604066959095608833673483257146717994017502343433211759361402820123302773998048882031736787575395263296402096429090167080288716648949666027791198368741993669573400546415696562504784730872666612624728429419670158373936319126687165137491258712376990797400208647279803300920934029540339494792794403013377988249363226601259958852347425980140162798667519003288708381512302670406615063901234339707383595748786937553517105459646570686334462175030244368433005122443376705113563644583958189049404328291632894458149571940157173650549720865545385365882740332690493023115469657928911272245325888072916174128010543777220179724572105698517760916528311226995342077378553601802899014186923643331998141991455302887424550499901925753437652331043467365737296330770536657512928513436162086620389356858906141279009679955666675900288810818197914814042188321718983209690000322891724772363052625446073297354064135220434422995262065448628971814936313649270593480783676084021144579722159297485283269874286309609682853979268495300194729807853117218069804631882675270529878283711804704811876504255210917792644556982321242884200636761167965941543386378840638551103532558442375566725244742332807215764638266896405352645895293467168734396740244095912888704321608242134495738269222550998985035409594171076447998019868822181450687904855488029293657888393306204055426476284903568973585697292773664290797013652654709684719743309952594564081542134550592023990935796378213018760032099296160922252006552715411287450875359372921933185260116817416280813920054284483189033103571000801486358482001211606121735855415452229627832490352664559686549745655571748693177969550201296957021911766600173109471226864249531930019789447320333917232062106121338625306164453073844569614206288498969653453341234661280822002111134572546367289755845849042927959447546828329480561524650453147780348307746244771411283820331595463328342524193629746090030882917528543926741701662544253057085988238454347113354127202828592122802584556139460203955185267377761155578743428941353149197336432055118319173437546729769668796522993107259691477906452974660463011392165077371127030357885622732842455307135847140228879150195767962925739416278370417552919903121042640609690062424451536959069638477803587017114881858433694820905032462630253189935214940080361855346056233443737760821754419948759161004229832003543427431995016022315740427737879962257734335934588233223471766125075278719125030964847720439924500458530245337358929620409861057094239497805447875629787695595398437965050396806236204411240423553481612664039846585382837355197694431285577524193300797768195125847591919925598451985831282737171976374133122339047004703209775567704649965738127401458008621055482072607800552912177521175170036106769358624111511481619356695029657631855350415917711669322148026829646376011277190087072635496579696066116571891700770117920972270731158738766269602279139403056292768725585256623136956314444810836167867118476559539539768584516761413640226124798206569343763326820002222810917840126969161305205798495276011319866352436557531972959076574434545919456055377010300890260162797162735674965828898973752081456667329167074680319277666077068642381542375430844884161136411575972726869987320854754109331903688140285934010172510625144993366020350095188924246425381705276148602023335832859958043016886311562769298919261303145414352944471322545181649744913762671840564380918556468157969482012504753370931892371992291569208588739420442568997309957528281656090965182609269383812845898335283824254413905942877872865060389545872085462746509307995023873412750788934651934624949981003662116964729342744542108552134759892697174414975658691240613648876395867318211049721528878138316219377104706368145814544977695899885723220493222187253026734976033858019413876643167431219360009208585098124497898825343515975750494566545860600603921767496928084356115405755910622707726362516105134487149475597548534303389904672300504619047444872909246803049807521335025326639967169444122592934436865345387469552466037165320109451380759723354842528127630263740026626374548797228018453935575400298241658409271219367481816705964261272604148296691922416970530409552511232172777295489336309037382094812794366735753716862399140572048026941493863245836148477579518432013329252913745986375274528513042713151421492597914801234716219318139998931207266271988689055198817757357961028809330004052517227455279882466035693040651923170444672639772039593343485380624221045843653384896934666242969217031012184887594206719653506795041135087610620232720690237231173335347921092609311182977582846114895368631852520420395225092217467097861457139729693003242702216395043097966759100710969577651860961038834356145177699238552495682334734057171597692488801252730143436118721170415846810329925739391208830119466247632432531741325723635890736811289881150466318792571691492969009369611851241257337240326104133669306925068872347015082229912412851660549491775645995285861828347643233655993010488159462046169333441824205866862744967583521929341911703022943357288751891519247340013271232328918824116201921725123950677120366541545440113888483073884576487899308834518588751777522260578204091512107800188142751712228312203060856826495083282520427265349435199647662870924500387537553395687972493393825441996118723825925268772780223165469284984478604009462801050869686153262190623202364448887457306564450826315447542183910119309617284719078883654953139206257172890989970825883628424289723512102078454277540551857335359612310339030225792109201812847031408799363622960330460100342301691631832705631108718676169563671813035310172084459446923617328291856094811980325817502328005459396444539588317322944901781015791240497923005466154760177013643474253134185121457249145295558388154949026455672536589417630126902540883026485091004039280737817939789939800235314691558739273012093008839529276931189407771150271500595396391178605548750737716998036513154688833136103195946132797631666515225741372335869920533641080615499679530177681871940748782815123698263736938196411248535897473807421257004596362779007700839146818170122793343131120402623582704805012478788647157806213452952542917828215687619759589080874653067753590906700116567279576923341500410043145982703094846891769619838245107394706941899909885525514026390429396206670403964688661936706445833311899662625956560838657876014382765322359085839387206975463637409147017408313803947087270208624228942344880382345898599377071656120398237865815345598081967340029995052111365271792122546574816627661821045698595051126915750425537836695042445045031592802027455199844424442047399654911977176149558957601510112463619176023954785134659032247336808889547078648560321120229164423988029675336159509890571823720958612039827114800832139963597003001012296074015595014117031458921967339345635444159559002014122530808645957612576115696302614250438708884698434261876896001898951810646423833088489013299263495192425900826616362716179107152476455617190506494451754340413703098947078870265531351770684338446164933708704645225164689253522464214590593051073906302450663297223487052476408536663331883950814517414922910992655581229132087531274874459989329988154434885708232581248370557281376068966797160372840302200954263216470967139669928417135229419747241449097248681000908929617831171590460243446508090576277864753327100892966269544603013813781732193934463061882702534297229896143208505224657014512789827633894459165294099212081007630455397177641528470625636546768558349252359976421357209597617360353722019339425961774154511428637523173438897794103198646954900203038088135056098544854483792452173846753508152549100048125649897920393509872490881849043630479613281705159761032535803024792955659056883455752021866137662216229061337494304533886565188735828114617036980424104293455364075125405306831823806368730405567597495792344295596359560963955860564811434618578728798657593178105150516531114391960376827828909516160691929250395580360074131413211829228795607756113513826642696059879005398192876813549615271340823507423238404952902382038227911119777736438550059804173249220222050140805809609787273252095455853025975262272541302056677023599904966352758355652589449330764076524010256506062128693288810645782183347466965511825378128299256167800474425755729182048499910001694074488819348358594058269360859185825147973517239728724007268739653756430808373975129204918579721222669275487044732372314783452495598978969356574683100764702649623076603906781985362025025733678430167036234018710103755132090172774738828434783974550864817527650329748040545543576816109137992894826594545879576849600218450884051144918293842782169091853869445761073100670972400540580454379673721652509590354571332577721550070696617165904412352887209511209468876223398558096584661665060882571884016383620720023682123648770185356904975307293795854373390738261916224165260829925212574145199861365564056390239752232933416091321223280971040134237883615570237898329232480066246102113024183946939331431566387488781490456431489907443779260902569769072878196080548339099707601636721539963866832086642407546988340987331967346710096820320778652330342812828315801260678700615550346871565089197686935484942956416508374436395750397346429500000526480297018163896708155093978785529465352769767697404149023813020771322731357745450042398188106229658927995751861126554280459427436528705694072454436442332491469754020542399658842110895539945395219822224918348674840732229810309252146058791020600105718431652292491932205984178648669327255553973623184849080046303260560024562930832270567709602822240362622092517960249669637833552837804943461966561964286402829149698791881446497525661169391497673156598266299651083794815242802723814399495607177711798337298247642685975614234688240669335889272307608709110258827006376536716686027224619518798897078487657829521483331971303769679015691836270870395628977302053655765370947972330697356168941843846677503304301831127446357103966246609368425617020361036215219173528587111976487859243601088282349369497642149823856694497171742765412511277330182781499487160496212702758576007805503658297810127281626655725264266641102523746380326866224202752759177348693853128120082796906946406037377853843374342113579424899054410672538505385086305350807716709450454375072916311300215783470642035282262611854303768529242573489307431320412060101991640553441666242767067835731871803242166566841522202057987259931522547871305581224815656273318446503815094204358150388825321168203846075447452245893631888949490070234621681812735458368673567756766586720285655197535927995685721210615411556077245749318448563902531709947759622133240713471999586849582914817486132033764485167241567652287319137493883349214922318563476880939598869265152339099878234195619070020517948822575596061727489803129796103214432765952007725651375621592149938313242339101198338439936235063290120762382444774881326973582676960488508635284509837710752311282825256657926637425745965642353751479066021125625257524260039215450211403831686594281940319828855545060727996336217096904489336970650122199829559078085625579952932779770121074599055760332834265194002456512790555239248519858978118151954282178438183530221404072203545636868034793527867379810892019848281894457066960817012766479303538145606087824651537917835131279538084445638664036547530087315085050226640966728260357709611222049128850570627454625537698359345140313487310455269521324190616466131179029587935587950129136750869444112452477247902841318342673893899434024515019486722710036579145847898640701787572844084750838706137938057997279319821263360342819298120842309172463474179850588533915164587407728277616832253667238532250859519017460548529654698840952487020844063747150945307599086216426669859095504913355483498767010853095118351093076741513058733879811927035712428358187227293512379533757560333757083991554113335434885233141960935992306278520224437935612442023470645101836989495233989497914149879486617775235106418656170045468773990730125092676004138643592270809816958409390676344810686321125426833483810010304802521558808247289122641969401858251845702954338733868457860623697948651032813518735891835148695776408475353077005968211257546119292999828511890962384315836017107549104139881489620811480830098275272665321995153533734884568022053803144112644624501760954426722658236233954746305043655549958689841644885404924596413170184830125615671774739361928705861627452446514405195407426393371753846672463126405392162169090946036758777808773221693868830299253399793417305237606644332239079615317031328646070759595863693147615727441973939034888904491792243710855416433775700549160198288843824105446952595907142446783173554120352792012802699033920051743694303954140999310927032670872851943452307922870167047775399202097902116293194554747981586772508869710989393883602912954568692713968100473923017112109649894972551648570840061305689863588372402215132569809907892524258836424859883117022687496104492511063271709833071131911364086688901006695100644443100044159860514984541664183635841002956486816786949247614963738242188833057232015246707242183215097669476490909067461762114800742604950388485531638684839148530441085690038938845935587488362654448762902471605557097871604740471332649938479329765587344833696296273286794868620693803151172512811601690913167612132730888848130167963627362178149219943207552911967278008992101531716780609197267319658679439435970510323373058503544396564318868888573882713310876371699678833720322515570501337594655154994884032042799900960289984017677257054718159633349280895919784100503599542165147929308114678717394137522859272514637715626533888454453507434614397200272876556109747998380807299572855048734273905343462395108830633251653605189165923876985749692762429136348846653288017621372173011693736670528801378460743811881388919029143751702901581528814573482803103624358438029511921814284289278364289017175956989800660860675495094246682108897187798534330478101763810722431048748301423948160552206951391627164539295228503012496354835346512238858183245360828352476027039704385852718012350758206667754630427723346068321773219722762636958715647055087739624459688421079763096548910707010333321313321994879063488521965528948353144791472148329627276757124752023428926464142438108315043812617020023804817746589687559895582494349993939579394238139320387045285068963262652200336553298814684073743280252885462751864807431041347256177776846831893482084545773945488003670752622194997077013309487178498404731159089148887249242167717205312169241281012848893503870585658639797469154686002065531773712565640238567880971238978661177107735359351802085854607431694348203186649256332381782735962707034667396933779947043048313745760675080824018738978262006421964404938440004387962886347704795153474963147051814231791443870131274551292218764360789191934390999101444221319511544031216227385053811984491605381069995351112516305981387819634725577529687427906387620658035126616172101728006674299764790376400631425554370288095755926600766434598820089604417374089216950388756495730462709300912943934630700364802871789151862590476401725896160967711441611014506567428903662684778431745946042574423329855448963855812790312725216740262267603124022411554445152507879933585869349299995839645309201415001008309240357122506892449408411386269435417095889211948081200520307784474755106310468504443419042637311811571561592252533403939748266258206707510657894989398685579570623526363351794081294605982136455553029526102532238903701364374346273181277605632037100449373680010043870699301128884731317572266167054298993935968525258548211504393438281412674002453210045155386359773423836073213305729058167167052372101332221809862981224959369858945530517715206693492409477710867094523800147450900962361335117704569338546873529254071869297999586801486841434143219775398523724168898796809864627693729103926609840868436792302354354394941346048626773638057533915609880418836465040854738930940900833925379619701980640941311505314524469560340754212161757530828124529278394030743758517848879225638450409440422261265915043331563058333442136111545138345358858257341821596435275053833903691085713584156860371348433988274542037261094675360145777211556742438848676634896757200638037723428952949883080536328764234933234395256609937502815532085569073684613708398181966361696110714713440980465664617234597446821891850844118456337865266450076199851251173723673926971308936068249616266697013021044754320837086278620026151956465069048322739521311602474598267608403354153276244249150377220615627539280795356814538764500500180602510586532474256706618257993834801733228730084530513622017596174047487504080409350018933486946843196483104918788837388371366653946327834692747145168945283599736332445022754560520062668100438541762322591806139695121190052320335048129256189422364090582665290966612095992355085533060658541480686411581346587350950160587454381725636684697360419865494720535407291496467592407991776472902597618913006711086011744296574360634541097454409340878694197242324066332312757706686883685438234539171066570892666692759602182499625913767179966684749187579967455707433092975207611166116817180005702391830208385873631231916098896806544748143614792331151566916946510005427044641732467409210895616127463430144945906146640402831353552468426145423447977236462988878760748736902603982398411697329782450909420012762592379017928150209423084610302675423568069856712458366726726577760483918090861569645597383853574032685761192234507392185185052905563570657895519401062814657462389831838221923873952727349950424775712017922409191185116218290096976446787804494432243451343632275770637447207778008625689944146490666013986436792990687457373522143953869475233772632106029276768274403314778398475513064443001242988633185264243233245593473916566446920986287129692844279381225217675031378392934325642790158913338766773782430770485321838803775022298638986929066498147767351338736232633155672766843465912317291293481130376793338593437830750948656803988295109966928570315263696952929667161034667967330069553359188718122989755309183498028799240524341630382459953357026659094706453192843041834486606683852326980433690263147053045767829306693712971030467606757010704794601394319041097922946959238023837575697491478034923670519474743212049591060862717488378857979743354144693040068707461892026697832478052786065082786863910892624759073243147171308538730286452129789608422960307737307576935571181770036333163244885127274402252394108780679122534352096449529458017160997366514226498690718757392004927718586306132849133290328367504803418500142771012928398916636506093181203177513109936768451010581466054991803164846671263527433262054276532289122424919445219719070046595090742680402309472441920791523676251326111100597440153321411756883872114757736984780339394104793425381576123632088968328849371914049321430345526266214659533184520263884795025619418662693870181541535543281058737310130558781201982164577928987967111598057687200037013004627666536143657805413407676172312473815858220127056044226224467825981382980240383534918073856968297482491990104344153162262878954598806784365738862791614739131743868763210102700412346017132266779640826765934899966863735207452542146586347394088972291295789591482826900821707987963764722888000120810949018201502877786559408047760768922192478734088871608902700059472378728695457103298246132955927743190443236491167520372514962117524398474982698086981808284748197029618577049003351700917017491831376646774781761634735376189628730053600422198431403424829582676475398923467195681884754478660861343405735856867377473487245743973002504169688739548575367535057760227871000239864722472439368206639324865465756778062384750818495407797199087246517714170208836191339001681373445192567343191187212799476489733999655927173054880808349372749030138598969807732011723161862835360375595946829795288712435808913567451768712397542996469794745062078340996528729115778716185129101456694224019725124348401940320310257888189279839690729582969313977781551744082542827841759621157252296092918763467614212438008876300984676601613470639726134048639839119339478875095807849261946648487003677190860461046334485184889173740823850250789051767810597826343656466330280634435692808176955986509095684146293301682418984506354287202409130206748082942092077736832222105144419823844162711606980820026267883521433999850179654686039348368207960581790053168208651947121375886289270610986189601156194893610688072023211951030266196912971895370979120978446327811496873572320811268982970886245766367232473403747897552936452160795984277651770493278969072918599236185975925947649219395794147001883950697453441092206973706290284042402802797203285039740246288675766483326276102157006276980644585751697493089736178177007586785322347232806234663786974421932340623935787895894607192089986540953587070343778538455995074813600653355634431621141080507758451581739397267502926278217232055446969823749033421068097836638993886982186862943316140239598743083852100011801563378626163820720245675214555101110409100622380549766082394530017727094424651975665968953757281990073172909127628679723750421535527679298303810866884282725224000088913322462344051588993579251277953875352251695688084684575056182912270687113320948300684264749882560938249238318191509307572377361048132805064668547784896531137770987641190646138613337230634912508030863150667688974955652787941890628340384190600727025039215484039200100037271696847909142037561603319457165054336516429869253953938273554939828002632974462418576915590545119696213131509334828439510547788338215810372752868391433367325516018310328069351857689585202365275432596285949164828135853425428357909081641986791693831544601425778414024803681723842549610926667803082070684460082547946316928590370940040822424082640037598970122717992168860539640433331773843037513532430817767378398565573139073178689655696904694971039152143552424267444371230892589892019501896125670765377743010801980717753081019917368989873709465671732711280754127009178310608897668457085126433830615896626047651043460799404053690201078061214208596803389153522771421776771709162916720933306216029991976322147714469391140952379184191413906967234259380429374402571883182803141035337975383812571784421496342002673505077083476675381779378294833128371616449405675096185907281931073560501046803968251686208279526823154343858696169114769888673166566874262298462276931275708456079461261697937737238225476085533951607052081967309972579066230004319397262094767619207393152153389735753761572781912585108048823216410480124458571851830689070774478274016005281072792832962914392003184697309697545421747894191206036864524847668174430980525994526600512365537013116374269364437095006165233232433814471360046981864712609962659373185077544687480220977076104254638691717888576177690263309043666130357195582814127424558470982866304221387110765473007184807626233804311284737541306345828668592098715778304819723593307822683975163029686909500914142647363332270705107647834529238115028083985281925703301314736929174136248538870900611559643659840129603609429146896098047462361769706494973295974089377112992836515377298483034768378164371430124965144527039058919107455636482182467116407758856345375266681529667213027405547153636341804773745926162380308023305333115648745167472666139013528874863071968908786002753114007500271569789069385220088561577738658368105850439109946585137222125732686945194917807692784570350047052101496817077170187583682500934556358717700193496718258629373518135516373997221205748577961796604610307379626332652574965508505111794269704308500742485469183544157919201160425190689149476808085916966255413432709843425299799748466967958280455090793424605482474810666474485150901239704011380166831613211355241249328719590371829033119559490882292463823522494709316723162806650370117442260388194904359902385815421578890364800683994858286223812576637636245199051119497109056427939819535943086240000690549477663992212025408205538506124995430055170559964888227971487882779094495960632206129082721093201565192161711705271446617838048232521351617951298965226397385936828632338764889717105263184695047508412528102069292342050218423735787556852022859606910978142045885237294084161568687927953879464194132597728890878316469608384844427770652478208762602008657274970993825313232879336795079962119829401703930806688426132014760206102299846729205838088807849897442980976937090068144472299161517650319449590180470687366873560185744040028054372882611549135488227587657153332493014241410763714828100729428433781200210712101220278232586764741983919451515154000675605957576214165792039499599134873369998059475894031098502552885685902695701018732247476584333202934564054749483736162720738379112707411499334413992447623287951508115747011832263057274605779737090563718573328915223299656984980157152637208771169836943532896160921920842075624888527009027129284624617944371630569681569534365164684053917792770687809693514161844742188668028531356878020945714805833284491288382913079306218917361651645086153503851457764528890200306621343603753724992884490351814978146700215195602658281330144838977200045381234459175821655207047031030954959943584279754137037582551056091176408781667630721929477983646354901731913110091067331382897194802672171294470811767301906326725457280076359257203129756929395946296760076135356603638447064177485561367761212786837753655155056244035551833491928053373685462381056834096531411169157635746643263300500596314207677044579839658840062051802728821331514883747513151764588513209377958879896396876131408438384819270618351872651711718002829262943320962385926044106749665081249206284677576009517446335530500455452800624839580985902336181534034588610935195114542287195069009773557365524670083532115346972845342411147074495864219699009774135245501599178186178978798112152064468212648945854410491454399698012132525194342318651616583435483605317186335753813157052651274612311524541360302446103147193348853200774301366955899788672863015438221848300091881737495779738433689570362505333849483612741847016698968640080865741868586685698126043547131902858564631440928877360100534870640241637685202497452551694560986296209034264083873477275546144400959267471350471154547243564752583001566623802141654757347034933366788115892051968542111508554779082649488272904341654755925462139275592144745890518613449940809322251850453236067898594146572729081738369857962800085206838000659543988738129895245750005112681949282109853010666832202422570542144870413556336626342397688829253096137749741255894690070451015390848885623860404840909527374377447959022581522859081057621408785790347275599610049762426648179078452454374185340827004565907274296378357481621118366745062371111625460628313917478457493199553332593858482535527346295541966107638073161750650774047899051325063217951305292352897111038907362952802358832197913973631746879168020682611397354685495986564979569795216810805407501344464175260578175905884208654663231249909837936915231932234792423951519034884598579869241346204685558761717685850962168056632572238790069508517272222006930203153362703093021481618333545224743320207271739507174414769846983805291101296306217359499429651001602376354894403103467395610904440217876476590035304296606422148756195121675941893899240037771725136756040244135482044876238123972667161835762367453880100424727990220850071932227842562061597164919451155571742434102383791856258994510182597787252841078939147886888721351107109524026559209968823692538811305102953166267979591126663768020879540656323967696974851371099599514662599332573269306806127700183937994916547878147173847294086537796970319305761820951301296334034787268932219075682482421456532328967683099630044771695892634174287250031719658788864403809860186833674579118945214043305467634693158397983385740987834974078424136062002765273498720273597210579850020858982981841341357485518508128573671270684660877886761660009790616645088094499333840064437529245655842869596468191252815195321498732071140707967481582800917829882483453976808946317223332706991071996748644005993999658450215746248005363613803948592402365752845638197894542966202228939177898306784633764189550304905281457205681861664130154922021622652966233483797904673060007562129212351561991034750295106021657466254238149027239815817627984729080374844262552169915779646517522035630818451990876234990277651648302295377980702065889713830809104914409225136397574250853533416908527767726188605063666712383371750312558867993181215272533073450097905593194482464163621680839268584843044015522180060800908016280126834391745868411056622624255497760146139917636958286191870163794058079753185087083570885007107797727389240471670984197467318169907934892024812529987289182629863530440234950201391219384658759368431852728836644770114701581842936727325036310366435249937690499055093831995467891332877906074527966633851274899287286282521348365665915944217752172927311103495117209193995700514056418830042159221553095798218702669238332033361917839955342781704082771570151340123774490015057733455766102729838610988452446117395201857022188369921164237479681366380649995605257076298008752509827197303350097094006473663175391346985567798388326891325719778852865920529070675858948730551106744607187695060937022293084266392888762192854049735162276809681374534711659343812257750717756151512936008548834009250207812183795503677793289850220843189916931554455919094562054524365401453971803385579868521579887687325599157825589748989258787639200058846354753490423069010641886077087670919844309718518622215084539556205138350112406484141892176642237786556190553327004912091008035593035677929439539318634551065966257246761815762256566134121597522319345575016249594265682170466868816495691504384859878166469168520416345785833404878318063084685649515096132220892705952781987566293753743423512028948978821051686451634793904969368550670162631042294939578274119384874589451114185147349381691114307034668935419966904145462046746599398020675591597326986329081920897338607512225595652707475623771177867671828234071401448117359200875881515886788531555631904034188624541235758698647031192590412099579655309016172603626215637238114561766719227491447615539695730518604639846782592530840736029404681192439130216464694946164283307850928169889933923893533698693878117938779471468842354302617828860999640735555958476186081386906476151129853143325629508763546457428090067377299696838234653348658511900587470970916311874553264642300884334640606580150236612031510048377286637939995302078758867636824110452681251392897340022855890908773916665779667498639682093316169817692832177672912847573508042688948288979148426189666760011250978150632233321671296556961823450125975133874330679000520232690575633094171699257340733260505585784488267345873514195189535692619747543270430030783755998100644812855530405001631295938560474909810528855289862845150983276299303011129693415535691290631831472865510087306570712419534944352551954329826583765040153687704314359520740975555403896838686099255320605879140981492153752725712724500430198981410505164319124647978191471360790490319212296311146979691709889413695555478435239590260762756468778065343251288120756008823908903753234770117689823678962310891365981458996704683717962788939411021901450983839732113194367868928882445247526922129505595098585268277214846714939807015674391048694051368460044455298970821123433533813234351357376857942276166832322646830814230316587393696392692463144304837932589545337699667130243382886068457266218886593666086879172404975403080839868154235132035328990583877378393184722863005480570535758661474307266081714425916843594049972126480840347371441172270675406214108425065624871638492551945487599331672556502471300768348555696750548377371191006081264649605938240879551596174294808678095452983292063776417559771072920522730127527988805129419511987421669152069167818294678847348128948255878560297437876804550325086182475565800723483502111387956010995250156605957970007762846633237155739684280168156817353649778809558335129402679386831349405938373576322400837641003685969066842574422043823503935451806125530494211558911062188481516896175876938387836428142502334674688592917525042964745650491973991980717553053713050453670351538218767888715821499744373165588191588788413565606942180504277990005719951023192017620381143118750567115600371105711214025498415720436246033591192795104866340227285709139802225551541074890329199981330764058879999189431445488931177334194080840941148549748683063980208605012301295639621246304738874686201586335839096513113885620262945310672928792964108487823230239523215004580566269516983095698134721352497626060678910709889989896472994537135500582921564192353347855910596334585051067427735271398424057961046084076293609471778662054997491506451662149581765258315136649801540143240608367101809965750923061875479866637510944347530562505297947060675655048274830055415950629025395257650272155781033359476874627596799361967173756892993153817561996826218930527304700315503533851812104025123211025632218198932339610511382950143645494110726728133202590988526118486161759577428425422512682893266465437637195546454564970721584749051204817266695921676811764238936389050267452003872238141202831565589465754892786742802019168492653066852223501644327488175123550418197086439239262353123771186169893176516986892743916730729143592156440891112584213864902748803212098480646442047994477881943691309914515480717734532322652218089949713475962873053165371850196695881493286740064378822142209788543444103310680878503918874020570725105117189034202081821958758134297568382533250067323587166792340265977638533939657951230846436138279602884066085959400673689346202721356917628559411742654338870865224597301048279515279189754516162080888999180873129426201406353642530284464913552150290473225589580757968533443335980010552785348194638153032416624975976859290124991504056583081686322059683137899502028060785096365666171733306297637845792945528894447408367579317607304602150438770276119882100452360257706595033833865857505370390996964840525062850314456189639898563313251964340192727205226497167245751421726582272013108583405529763999345519619396173057157598717823328992714886252810923886486738889923256912776534721321415362551037687976670891073305153141268823656263705331146383628092624092869758628604376476795125365552970887322775914231120721488728771249589763961317838926235332203847178787252715565084112893926019479624164588117050382716726491537111544135367131338774235039836745740521424784649076073630853962655004457380510842806320532206866765297804837699190331189833110896848802971286359145271649997331558744834905982710659554122234793144820920902903098642636822212572307233278016050948340969340521883544249745772244217418870313819362816160358517161497222193432394685066029191589497107854660594171616236035895547210389813368041769365236733390437165204849495238066584272995980250880197732482205783748280446693673009269622435082908037230681178656321175388409895846861818766856056486636817398349077169440577878877488893318465788972139743202747469168434695103432800148355735165027954767324890559915544132979972371569819406358865542016457622522244529003059204575533667647023097346945065277306091224221063070604473742071947632713269662092861495870220219190182655665670213276357172520507042477568404696828445490740764947826727406989981961238804678095511249123969031784593962068424431747933711894037300820484642398589660401772334743068733457271758073870558247888425448774251975120787048546050191315565402571470627326468545210862119236350900781840316297107230834530643200926782100521855899816968303151063237831287735469802649877541338245523425274578250240039498486671406466189893769873167638331251854411811086748606368798768874981159095772543493055024388145734628504878389946997393451703288588528572050747220112884840625348953230145565448496093604614503208092943200251319837141948667747131195756440778025944122425643197590506201195065206263147192912916857418505737078355408121023760077966055529973823005328636761571253879087846281820545271009880443006123720963872531172844576060341814249004468005627423457432539446767027389413933827056028936885006906243501512574200381601255921533161650168751170254293462965631492096521717596196108915663520057852424643557591453215805021248799770347628178111810021113815778585747722459070257553085278240380102226135679688702842010264365253081776822074752188349845181549161502916729107083383273151623961657228154475150929350468768645462319922553626908753369451685656427293055527389293893199076435612514363951432338577400505022599561304003323084231316904452939114283986342490706846671316827365226054918130131817512589546943514781277618449224980996710989708777562623285096676180574770104763347474835563183291031681771978036429724799590727381007482605470438499192944369879982120093511603882713441878773953346429046449845772452515662949013285259885090208178998040293439304724474731557448248381664350515437519075892997187005884462741247799740398979193634970550617547549152630679728233357931347831028270577403149161376807597922196321981075886573884923199143977346371178692763491728765254502247215776240036054708762993660372842001852296263683680171709126939684840041697145185437091701667175910706282134892611126121678152837244782647024989869419322632949914414010915399551940922580047408009787281645600333786960213465612785706279503642656244575733718189414167835640408615953803197770539915640248761911097247919922755335542521289806714432861474177756871942855678760581343083211644794850351451563512457931756966422197526405073366688740519551049944639224901140703294856732164112122757527385541033903160941903881719574003362626615561655817563599289960603835658987333743137618944055756243840328473949755942913834553438202706522431555541693740383010514653246103972646049351825122414844525116210339130120294339891965998999778472074805007462303892167514406306269162057311618048874174441021823820543607728273709721145163265258295366874681519997012330892310948436076852865574997631098686349712789043018159089533272988297409169964919801551802743254254596330580419314447841782730564587520091130892669246684436638478828074079636990705046714935875918706086033044766041400923801120863733979722045333201500883730592719865298447380575015101427522906862783757881442136438780904023321164235287499281135328592835017172337933401663452275175339097897159148793381059121993797753096135215407749275671162193681192764713885437336544381739292943817069796250610940595699116518634279209509897914068828187664810090032618565887966028864272438629061592568236798716750370217795556655754924459403608089098815369741853649227076810121606821343646784755034535889649836685359020211458621594003243239285884352829224584884618340709854940115950833397506507186556909603914628144967523178517413968200022570879617248326882082788978363824398461308294130229982443671215789977220786908319568712640441141187964272525944316047153212240891743512935064523081779759337658823742987634732956993167325586342846340384437405959779037851259316380910778232441886643439294251659697391435735217537408624994204601189397546582750538473341403466689607974274297401629965996851020711663904583041747961925608394771435670677559816899841393913393209166432938127540901901000705468622518153115787368246635340195240552254199338517918690216633490033782825210024461792800077451676046864752577891644982532660157486803415837704314976404863206681001423294297160049673984786250666060988584275442874490404173703772720593800471058140264945657899765650145381012970524677899719670355319559195521745419710567595899587632572013816405150576742757367986578453031638596920936500290393571325440184450492934817099513182752691346912151088001023374426327312781334636719259411160470622153862734330783566376265857912302183784549601143533730023499879976299378846671810465270819461602770372842476522143450608134549514356359376625682777084435134116010796775310920625348969797401328808723487888432460930349789603080188483895925403620285411478498944314586907103868296570635065446897852452631363323096286730587591664426881896499854087453440158291183517783013868644517641497488798256306850051332129488487595769108666694355513195938419191013965280997139152720775993240912548381436279509576819626451729806273374451830617168711209117739361594424460084789689254896628640419395060235090005351079161673216993644558218798987681775753992973948273011598636441485704613334569404951442529293269539715837560001048012892762063852332509572596966144100449829817342955622223467575025282210495435242869466744712903075482464754333289745259932589605410619905484572071767892995929760573198884159147011309330267683830318052966198545245656555024570523333994740253203784483234897161490721059061260269619901410538560025467483448802495641143667959538254371228984830100441080674810080758591203743843621521107794234200659514073269361990626957658575606194069306778083219096381339533542710996059117222055752004865290643506781133898799249645761652844601251200825090194436401688420688941371567944866061203449865269727038290260427706084422248184672900358636063267763736158685486955153993526437959697956376237274374371532468520995169113202660595472182094338978119438657540908647140483764101056191335099232262515311072963121394310463209145299695672359189149430630907818701117812154592403963342560622680602320462873821206516936871900566556023511901937721789160058361507414156353994116689731835427975539174778454492609611867977939787196615091004497932721101071693027419158296438287170582970130854396059451382419158952312617548554040447656936706633885415444050226102142902683692759915498526959615554696535681956400211613490962769002909206033835032051485120157381552218639348981166140699972924371425270768389335973109000053982638041167835981247777667217443957947660867878494561328769606984014829267011046310094370564694775420414174050541989384622807485514963197941318235068104587757513544962869790074520329238622309746675884280824929680584848681869040958546260209043992503788355881449164874693764152010287394099952687086708661748123576736559872999670064069011537875670694641425051300261726483268738287343956769064412309374954779364679500568827014479535698049951536141049023464457892455281570060392688775503402590790680386549956814886297719099369494498629876384871398993335387396244770945044144309504628189859308504766274448427301734863674855630338544242147532717311728841019537541000825303462877352078453163581777980273672130569550563588175252975705672395674642147332547331161881789573691648419087064209309136864264588820259576496821064916446699790598436906550181459387669044295455142693925329261326000822815816958343497044421977746220949568800955914052684118417115267211099635194205641291622590238447847822568328167376847232854064894654616694354463241124551243538241760958192356584019179043854094835082959777123697868135304869829763234388229570257857131826928777835864923778337360896832841023175758201388954277478827765367868120051997517431789686318772998508484781217973075682733515749101975091799720374393497719930338627207773369265122040484863827584787817175025902567788923748286498242024519592691840800060284261344063551405934026747499963033749795020957768936544342365505511112258501582760918754574998765589771434198025266156214635478785890507022088340587393858826648811523956484705962375685752077679774551116184571378875585521275423333316056452417587452965975570811116758352326072963547535604280713159311651097389506970022081828241262550774121284829411456829049308446533368685215817732230521370522926471215247338170390466431500889284052219970745069559357748420639932398921849140085531704162892973587938373677493334305145520831646744632202579425409441400515608304425517967191004227708652241075856508207307571091933508652784726060494394287307879481870755358133243313055524940501833421049428884867768851354044840421358068514838287068352360919016548983358666101684486137461907990975779839817994958963157820666912858265302394027481515895822262345626438604092674311731977604241693330251070338264228314278080305985453791596052850458405470730488703875752160821155605087727911169609746994047904962128034968421117188505057945801539400795457776197200961155501111831123824088130602459683523753783210629752659192366128730839137926913583950565255985962812476528935800437972975078960706666368600366696033478539524955456636639684876191002439436520701613646025291369234603480310761971673638446427746884083486919867603201030608141078672120110996171748822855742140544672048014773948536999778830750579388158807589413533955815178718663787136489398779535916637733411851139658123073393808536343248347680963135591791918911154472656210049447990815629636094518066232192075384607331092505298565799058753245838821823426252801924208251997421986906225330625114002803680059700312633672833302819087365544935234537782258449058866768632891042729368466889229425923086947571657557899662043125106877566185887258886553577402743342190347354663644494225933696022900752954151061774754343985969458394641007885238215408338350533219345820558155130603461816623578246081422530002077198630612214493986260107226515178222709024412006344977752610942811727120627613784210394923303930361131581807793626940225818237109622909156719547243266989905022508424788699961200450183241704736340252846296464907427122918610865612408581300573201443587808685645879980244502150655989587063362737485951824023964798626863837524066938337812349042414767612965994640866111465704450554994170810302808248829201903833051954408847655307651060675188891926177597371817174646691040076325565174275926301914021414983833775430070699737732317691060355091126049159479828123708173629778281545143439096272571894027235715245190280058675236018985403509756290019952749610907436994194573519983074122160497266642329535152967157484304325573564111926326664931439850651072432093687163389106050335268317402312163297370551109050789155336235401871062890775229869749238417801522932863702510376597982332518480695058414293581172357079926613662779119364362386561299688369615417846768482040453721106440745189884145621696168964010158189290147173406645663633375979231216946927824178074182815656412924923990756704610039130954529901492974265482619549874923702827539606424256423307578033917418285339997449103056781739285390407349210696709143702419049342564358991522379960946284149255581102045042771697946805348453982561888787737645201159031893183515592794263924600334929797325365568293665621427707219814233928059213072171218720808830667775324320557157311621224293589902412681393669599825119767349715610163250879872860189258717089301817295770356330924320248848931140143663934054942874170197865816368272621459748548032411472935116103785626533414525306670533652851733652790527245876300430486569944633147478962788277750001853251223832241975402814185958711691334513089044072691348736480813578025859553094516422208386421442585417035016444507254188130685978237547871136524316652057195972471284918346523131370646706492114456929201597881596857684532731103474691647567761072133642301621912319991869622344076005567851864301019991606317889231421122198418706148371080622180499454140059773495154319070656706272828984267461155658681161265383874039789839003041346569905138795938947784598681983086424247353089202291834667615377061101755056483067026591744542212925564442836237322697374665637888219037507654262763163659234717231399031635683447943825324782187797064851487765434057119005743264605143525428702088712892827022135569206667112315738399066711828311303693268904691860737656440173409854307051783102282640183344491604082404805843027000790805778798481792103749078683145275372815570852252576082514323647969035643043355290562201084216023334905390211471819875861621267883852430583042079770113936051541283136420340584081371780773431094554699168503754154760153298690445848408554947152926137440786059482857887869517156737657918076071956348548220799930361638393921287562513170679084200824572580897479962080210400397676839075012650796157077214114600080787843684243131444418264096403476893808626165691508226968072349155435940362487801583213902943533004727830414231626463268715347327326764446015298786062683264960970730875031537869447860535683964080919105428706470700118596637894334544361596286321939472327735572419870106896247762641461145612722990768841009635940163193010945475617122737430223812051290720765848308664549937697477778043022591873678703862726668751455788400081974612616780709815617114066361806722050375542167582763425649319602791894116199029559650428681160546447836244205912794996699214889648804389292871080113218403664957150154362648973447343421862997473348697599065893133355231919741184786155096880268384418529780295214765307959772090959666386645269275325717955188445592732010366035193473946424843627562079657865351948749877936875464564775523302098719511802102592858386211992506339392703461209253190113965842889015464544178055964617526853086984823095154884691627968770601845832450836446092832826739626497281784467077571523576505708404913518134795645937168869368015016638771184845950279525805152293006333286360931689077842197600154035816140953100877612785336123250752027745904025568416367972889222289812306363739172565534067361403035140022190104732473149157522575614769964897507474267938248563464027951510518559279631738908556038116442353938417923306369706669280889275482948917231135240623244290090809416630214139613910969068374378578124665413685795728673436130923226813692708004845373686140975737816844880217482288297937528344769011463398020916749278923792333595769770264533942404098157935986381527312302640967781501615376895204005942143418549182770998312720099757490701111921051546656805751594290203837482099433139129852948379454102486619091001144832797669965708250771874076087271711173241663683978325879908844206168962584117342515640472237794545056886400989578409815552416140952635214901716277885750539607430263633648934902646404430929378180504019429241891484189113775340424753796166909742577179123977622349478891073945311331651034068760185578028215798549518533729349955066309599584311605230207462527020810968266283799546875821100391313617896875152852049457970832141971910950351327396662756482296514914103006998611232575893692846378514536472536232111330977360600942815100440592489436907443781892483645126255779465591352368590791232906641387581570284802397289231249124004957332932928246232916938858033100356266721665442870163636816857610725784897387710446668116271634730606211326397427624217397636674004595006126494657955028469177946784587300119293048693932568200128138761673516617816096639417311508739457538309910384095109287677242553768654781651899212755436208228410785035206505532896918634249961361721310902594302975487315525107318338133307421625877927631540785699559620038188628802011088334703318150911277489907720995854506627232161614177687975269001416112702033795405108804677494653763987629698560921126965373679683235117827875561511785884866462588245638755648283450520156883450147437454225760286246508463470379202928995372949680519438754638080919215461444744598379530813100183439369155696797605089710168634125768996766216833035721970664420697207839539464643071608015679357508196971798473760064903453078400833150079226861169488602526608922934042621000753697685674783520147528433396603896325385742942632636254408681132290917979022457712777496221500985607853653367369132382136401134585034295237302345874797770727187183895751079208558187372532575107785987457335312722531586176647834752745088741924017071379483961677825631967291580133173993785183747601730800399058151542287807319967667422102123444404351094794095676826208453288773569442603097051155623780290940793642438139670598333505284399723021224758335250860165907557311461632411564425497328183245895751096286972504845127679214342751778691354164204389600436312226614737311629791396802445612959810676234903507661544397882291025307688222510069788169317116370618451173302319133222900116756270426704867593800322903372846681140257459995407869272493081976823557278123238012635058238829438631006173123176775916126745880323843729032556516138507050522076396470744750068010888849150680516781990449433078534862655952760049297221431177533927830349327707012595346680129503295948530124247321544842370480070386950172296861628936991698518801386576086835807791495453307270175316953857913152506163442472354671362002124085828748070349820957616555325310062583580486205889430145556984476592104458582878001056395074811012410587797268956750780318930375276248099012839827944604062148959978608463857299887529332201294842845950370736009627786945796799898519879364449049141851579620746819313835483238291335233924114082451703734556441656882513762594320591068527213045222430841865572249504865154517946957570184196697931175190438751164931012566374877057811146116334083125588045892582011649886272346959430748175884340412961825947268985601485383923518192074465378901411671564915342598161594195247350392089165389168410153694182070327278336225445524441202949846791652897137954401589589977555316023437620232772592981954777553025934490907453914672426529235361222221718897890921613692486003453361145181751624914866171032358258033003991850316197023563161860261878371605022439907861230510912026310497820831483398458050242243817818525856366281880959459577209695886903091067875545883174211575004274582888144611549830435464009966116816319499800801192786459624062319297143259489295450682335794455304439149458393532743785831243267321494995740651982043406022310359447885739052030710180588191011412215667251648855621289186970346551278970586258733828625817276558461345162030517141013017070204182636237757895588159078504646920230539260979425519738139776895224909357477346177470075130588866516299507393457527749665881270876179105355785017027080806422641542223684761915918561480071844062578530701716571077588020023801721801195725032667300929464657143403052043189180238939559833669835567034376308832112910605863934235423931833688586467981756927486666758805366903291674517940847081248652584716695473997820515129617194678144726909097054553919181076806522858329403770892995842223062943335927243920310779858752199814737684946699871884568290552974401385044950233479303534134256452873627467297015631228258354055530700397319136622001934607750649122873753768415805769243681666432416952443923762764879509481623620462773609866099796583328010827546919400677854851135804289394227733760997190361626699216389509174722217217488826803802667774378504619884874589631339735775147216211669312297570349972913633944613422684999093630963331460677311562047964760248281480210931803749261061467749684515296865927230537472891699596883694968281218294433939231978317121080869729248805147494917830820469105446131462296858893957279170961579810020088078603026658278964706082453022301527227134004928066305732371199351092782083458909172480753170686531821115391352777825132974055432788827500537925181880757032244932783980040964620263632031671170563653965918219941392963916344475059255834757482759021746381716496155279326619034752269375916289131473830980871119228881248915412592683876462136735700264051196266538790607815742172837369150613205655087260086303806237076808280146694117240829192667613175380147720673724035450615308407574776527305179408048303847268103096629847065726471665626815653749057344394884931157900653167802429502065578909777187638265712709967823450962195483505434506448839384895948943229351352950995219973483092395088417197262867553268608622129721599382200209882340070631009474850995787479774354270626807646338638414977205116012066662416471849508482786141733528092879070413031789594699144853718942875261000928727192143307146142047746349353829657147500405657945462137500006098590873403211516549754071139815603872388203991234566050150593910010260892235414476620532278607525146921892844616036603677744619898440985262843633897845886921799577998380869272181931338861590822304261940388305529794191504615181993975290074762799896140487537235846886618882318541877071991841952801393781302695417950014321360730684185534184243527066001630227558582263724758873523256761399584534354518741990429952346690995843371730281892838418638249789540938917419131639833415229370041190533020046758037923717139907299696069254220984394216098970923377873961222093427030903224281433458306884166374120568525581377983125644652278948653276238674271044264556599094500165757361921578852950027124688171106435884787957489381898747788083219484216486334475876820183756600369991174124616156124473370260607962998569961033869020753765937478573408114372856651960718440620510714256252094291159976625291189532354689412409719973604929195941439556503409147815426725708251868635348545453949352404372900508606791883437179350044594867454158495860923041571670595239532684274116290445963820435962165134416843309264079629390185636070212228087451066408668919399286813918143121420957872296352435421870885392235958694637524656277528215429381368884170826193676610903119013091424784057365811014394190711995099413278461253293875564364263349311388682101852779190681698132760627997757077074871211158552381668963668896470495028292819581503267222640088630634932207935110312111461757590195954305780298530097092997850180037622715867867065677084780712997770868933252833846842766565851465354511703668502626921574491775789160700197114436278351143172761828257116171132460592980654441673842945410510646365702308775528118025561652986698416352203183313174397512782775721920646821444114460687292670125499954171782261149529621526219160997163635065922459256588867980010633860956595032380004525543225094836415465900901700512190319635826588261715326306722471204081588952789486425899435532191619029244646806593596227521442919477553654627301031977044967928192900764724268486421413137908832115668099935178658702904810136599022430943837354691165048312378477301234649246165435426348625096549659564842518685464810214839356717898274182932719312088621805424434089546546001956649672763733015047098391599163452625440265945014104854019701783154760792021148398331275376712587395445714125013893374781196655636626864401673422492087303331879340602703611883134970586016107257718139593473616402049474625402287063752922720647116222602483795950766147426127835166945232628564712346875611472646771613266747352832840886341623801370347755804947375420176787676043467285698323484521539582717971624704380789627549736427876001234577513545450151961544952819334506360409444632464759832086647617747416972338097761045116749570598952205343191762160074087981627793192434100935646731439965148321373379116142568922651076289236135525586725811491388015239995532571583370735017845015198720659919334538592312951840654962875017717859438086606692229215213870368857578417627192925209662785016681589423388518462648000129752581212866737377747542266546223542493235402306076024326768951204360704246171611100745710790570690075167774487004629658378022734287344391379420620438453258425522752666951963555883389503308687986602351974723396496813050549340236602904456162352963644976940912886980920451417532436118203282367647377960531226906380867009097213360982553793784956845647417089863947112763879369862152152001618666346345716416093962891287795617673072598815362432663175408010001239059554307552120835374814405418932020973980464019927238223046029361226684773076303189592935597710825956888590638930619062616500979656617896921647981142249240548636332301379174589927866929911499441263658449347368161023703425593741668863937000857364891009162111949659932402306818311093928285309851533417909289130378885415370351033907362572437732541781519731900001069288560334524874342360594298632895321778380046532188054707789273394314190700695043903448502887080658749200546567261830149901542304197897708001483003691912992260461425765132228294613046122890973485864552786148410379421481751161058919821542050798846575805962002230230898982409848886849002177746031634256913244226457455615959497027729213116558328779162891764913625075815149556606962701904174749412000566040086688880576646328233313893153833128737112648451165044044840657577546536506987887445448855701932157936035297821688646079533945427397384018169310860568764451931686795477532815092152676471623988453377805351514475666395276447173856553639938894627510696578817875717079307249804166694241003046296167807306922930445357679448269855060240942564972593371896656628398855401800747390037486473869255639088715632190000580543008170156519978966100319765192994311051948716970360012294241496535637084245200522061285963635969527445267647960547321420425199808810556128323589036036212626075753724570994595945337108064999465462909224781775378251053645723504514181732227553893167739618117230906069288246781443188319594448357206896645946575480215220326064192064451508513922359435166359095933486284001826132410208817527510213338797181618562339028666055524168688431216977431178302872300340739518529486448497385480575919422250157342386939286932136253169427366322659694194365049711153131264605099312267738804828135759958734048559099744678543829309886990164249016994834232341486767511897360422739992066183124099190973821586894209004676121632624476414158331436860535683570127312135366120510405981503904914369193950169681072883498283889633693153160683383741942559319809785096389949557002728326534615042593894910808677951695964224554569735761814657014546545368873189788387516097863449596832860963402939257510829802761363340220118489729976561498832347417910698145570674176865141199609816003656974426734946715134749914897830045393788601830442808011140258787008140814463359326595649765494069020177313214755654304783599549172359796580392980369704965372445029581942282461445395654383200127233829039309175906554796050922326043054690471127213287717925841428021433454532744985420944967345854147252601397030710839170645372850512544924529014904574920955627875848964108018176785705563985226630386232203729777291195273614340938224221889807896566581657400068170166966722964744475648856407055684524852004711078365758402874795305969070911022010250819031123302519190086753153216709373850437689567241647255161750701908373458200260391007449504204459934137998239108022857830043868337597896448006650070857933794265945510582115256264070266503878288265744802768532704227913149620533719611912734619837804634199452685106341173108086428482428272382249995107752679264839975898328908487694465624525585599946212800846824520165236258852453116399769055872405859383997013798744287449365267820816236027966283487723659305512004912101298619789712804739427612126760505637209519958897784581753782190253714617168258227623691962598433811592152106074747603753715458788278804539067254791267698786081990637664508704424889810087031409936349723858902022866165181766241208299992040903517738160112977083174585519219534467310594120139081628286442917288740288132870983795967905875593951748407646372996273690815521794182955047652950833662507227625319343634367536518445011259151348431380601613148175684414647720552414556831071283352026832285589031583773106147337886949507807518761649837593167272809972796300371335405031548383120548019370581715781789488620518974209598912610666464431034477832351584216621121733576087779434500103567917940681386906586706823809872851691018735441003397938126315257096983821173647580593318891298725933197528656235619321636132277600560486137244961888646819458206004987439300704358376521579717152962837176271183914452247201619207033874200781876293156465897713743332001762684542505077421684447294429820260099750673459406805964654112643916882665657683028238750745426879014880089714164102865906993972831436152532570323392358855589873956694025891471049392206011106382600310279524894779964430712505893424844492860242139285922733669417280130630249011153456257256373840333893245297628662659728024383732806771154958283927097783951836045164566069649854092811779127987418920044626663887869473429079044834168693104205166451634724578766890051905716335964593475472588853003208839980549493169627750164296940559332786460646177534787511008841305816760825288997949441087823538859592812792729773860522912958900890823270965629047966431337069513828386671590246531028989706797781242604420107120800251140916050818568324223696301292006638386632935127568813752774330495588787473547537431543260001095079545463417154616962428053398316909812785047351888188277251344633413261943423117139485085645826291838614772982126046860652566288046712334069385370238412000186342784260907694279222656577471336019907770894072488141554014772848394204121320807778661923397889569096515586128923693707691033895680654546207147921292840201309493192732833248908419489028611168815619365864254347581802169903180210776969054665329613495873542845915579735477507005933234666947760206806325285755095005196615849890805662577407369481785271691247146633406602056533860267723798291577001832344803499461914084665041627698599517829023715153298554896162440439537138800017262298828538789842494653429606323251561093826756255758251640038172686044220790689468581799170547672831410624314081217589586221032953414330380033249545647589296331776005437271416006907161513877770882074094654245278291371477963254552580363660327660821321346431117342893121139244470722409735054383036733504138645236163934979509746931629183617984781684166639584072833482803620208033226252833107683107293139358029319771790324416867485379464493135174852165754159423047285913357300592428667703767908291910271757954619150621153115150664464959012813066569963344981463410016326279903176074509247268207049185272233272928601901262078081730826861649563497013654598268882520212865223928983425514211218407460091890481923808237648177682143563920542989330216201023246413914182468327477858195432321926141306233305895837690674651045156008121968256668194270179071126626026849721407977207675135421861126975595482860899091297805434410159621826302547737006957230374160495254770509059556064410273670798318798344936819343937633531699500420099449689554166183954328946043700912198105449860741869133366893277900418556918240774730460750489722718643280256824854750420858725544447858495321027327258415935146845185786243309028015442675628034923969225877277704293197390754369528996508798874690155234240761021617399651656361511098523843869901808183622001690587664385179342023341244710707304308267218444855500114121217625147349178691547761758117399964256262183572686498378919669170780574103560735209890494998579252812257681079972290264233219020173937612498257402407971870475621303414985461130371336619637574682391338903682052666384804220657974951504514184121700916608114521778263280555105234084592638674796403519118267179161832208407153542879884596994341794509702773603479828904066292148960940952508220433495678453050916010193353000210602279972238354602479588962508024668562531093136330574397595965574807096240178797859975551975017269535394632670387020935706580197818180703855574527070039486313567164006034118171069190651509626507988197206907611106905742235946208187013034875554111798092747355843018033247694768342688617135017693837869981512852924558898844139098291338620339283832836268837163240923350180012527078612244908644971763114573871139898394043861305967876007717174054401952678782687731742743382898053499202748397871389861707997214401779428863406324835531320047914305906314747007543295990388555532111500005612951697947929476880510267558014983315284829463795348130043629597731825679536067399623222065399200042905662839971406250420782470607216912615977537348577128756275651503728608634901010102418012429919581125594129418585715411457804604066835719652025318780194734292209485942519645595665731918340765107124819581901480943963492064609998988900368991468339451453927707605592827148180919777277446177672144785603032725383718245269373730821226400930655072860587124967594581069485320953089360466589491799126522027801831849306368904679438692807890817423405948687323710978902770097758159641191843865159495310497684631127431870733671164355540559197491166865938216110426713901534385972563521567852940248049043087503424523159813872928501475166849959144341688351258968580698681362800189148049687519743919225943674514844379155139179811739602803952489001350297638558182800367724800947265924635013773886769895939468495288848342788870516471992671809819230639161172195155492621983772260476496994666488359745295828441781012326620741544958490603281422386646618307577436521392390746623345928453575948849011437381319462220686847524764220723280074886125452812435768690898614777774870240260541227802025957434406032540342214568705548258593746176231202481350707561571078449806386703322316005167441834969724641763839214338827859261546700698049263823922819848058658392458495194790066730374695236891241006397941298007159517093140501506155517388029218942145147156696417019775907953194105852516835478502242701652613966347800995599601210764746418648401862285592971953614120243305593050691310059615707045394439682801910829023057752339825703465897622440173738168386859764253887488208420910341707315594204809597619649166382002126439234958984919821121075785864802817012224044720704164204495225154066430857755418887971985114499444579708761088481328760190691111832639598883185009333472855823451739577677774837754193325439238972609473841504857906062566648355398256342664540089177708081674795731355765919991494552860105720433134281114321613270878564145463782389458004759707318646610208680050777694275968411786158303202033510434610837903621340769122072292891119830456983888185366357282700136092362945742494924334199027502277255915252779112686565216223602672574956828791154887201211558848059064560203717200255824721948965082168280127522331182111371355721092630218444509036889812080064708753956890399121900538615110118637069647376770835911666956442890734292758404748784314070399144925635544016372941875039763942887179790375633798379414147182294101006724424295032464721545335057724662153755284589782176416947689989695305307955311332702874515857261080230607198167964382848520358602650232305847966019406077328029541273618462862312110375439240214592292184314997368500155994597994884716489788094858180234824974818637819931187817961328522029425606859174611248365220220951208087557571587867434559462088409117096062254765955870104786409402190845219053007779967879906762671031170381454134637092262797534056606712697926552084938711872070460615415811749845793194058741822013159300663354443002332090995386837988381137158964500173177485537740291598153781255930568793568601157580821489926666747979992986601613970686916524598649205436402981990827233701586921645992400696366573834876131149350674588424155375584323690514323124593075526586857204751150540795785479030767058447957341310864299196327897532325019712600762554783315841764195803465790291506651003367499134102214291842888691626501309303837921379168468365611502736553004112626009672059914903660800641488365560153808660142262824250859318155283186164852117338555774914214928619520331319399078556408837689100647327415172709662475376188921218261449561119860316812486084544582872558155976008171879341277357041534015448450476136319611244347245001801261856890408327224488275873603662338008910134420757398378204154211511512789579799493373253074739961006452964387671294216918938801093895541025469552314154427064825739361479225931216475984961948833715553658581933420882125649194041279403463056055648960203560884696636437679459347203428594155916718259549496192767913491028521825952017483117070858149635472899963375259553515061805931069030168683195373142050590122506717547129565792173501533600218731245405426644404089991094986322038174610794502198531680735029079020426410066642053649667976955404730884033273286736626801701267441856253260920110167154338600430263773213484910501333332287087575268919028697460099883885134044477056306971335849815771932293979971878471875738862688816223973785686419992959236699803862368990925491750995260262175231438329040160554089250548813483197657268456936438185560334136022716435888707880971988447964210464049403295812699291643116699976269694250240459399814278539833644903026824736216162123890079296105647588255696624868572435897958131770608706610497017195108976076615044902518420709481411776090463240071515843920523050794200711303331123717068349011033046466869170973624344714027608051924316999582520496874910971057499886353193662583711516192932532590253456334205197138071877245305908850633320127875267742413093553333376153702310225439454329196474598616263129125286947721157692902637052067798734474262806332632914704526516367868044160962010779718418346723649272239180046459457755401615541753908912366684162215739468002051271403169041608424786771315440925403769850226917282899147494067080919712042433344921161191064225264849850689097780205265386066961703951349399290348495158376472357110949047069359858243427048370248200536028886031870051251165817169586111219694014449766065353147443085256597195338082147277994647661939624492725504770890987815679498258449693545084218755101445990827433719627634387691818249626341441193188118480180306241262499954935355019897708471415159329381898940491702195431469333498155158871964203022855319125426192786810614081308729719338640051339391337930881203312267029233025849598826241730453092472210150374550648386591854343126917209323468380214574831947551518236064182738385422295347990187773248859918930076694328076563172289802663473806684873994949754006939399745487895204295821120683739275207977482640722535871108922620127143861052654476776609405454020880721844924819483429400207637483056816995971953436817219745922888720131793280770997380669205273813819351202480709413985863152177235494723320347223862260476308304903493444394124785951946273109691816338013715815319213218588342756195506653818815545743496436097325515232026963763172806873352271652875949141262976229356009348672457071105348661197467668911034009752125629898941873178119407606291112212531898328139794265367827858232895576958918601250696136875544498496088539175508602936418792161577269700353029901000117324143925499999610785420153920279544191773054518504399318738286864524389604477997912794493044887278020873574805089585063126871306973293266529344793468629048201021455959996733140913358394028858308386403247577365427963956567395244432004197045599833979215421556041354373238874896462411252241283313316408076899313911386325624199969816112731608723242091667279255953146679250619249473661755305280526047052905172383818514792630409786616886912097529757534958082147166324010268730898007712311469803720707679767549756686102001737032481911617418818790803598581934059264865205611914864709774291396608366127060374982352334320219747011048033871031329929676201156895349052062015130217689955421108330870743010190088721730448036329629425059367229296325565387815788987889289418986344260744317112625781866762642299512072463930900586886974288155284652388549856196260592654555985328563052451173931670360568529547944697691353346709566218589952967477027205332400913553076948667682462023347823761696888441070948076333493735823301098829077823827484738278644427656222688505695610749145585145142230773880824095676920090535458216108942938276604505990983238346963255373258175843995593857675161482838779768726002391171921170162881339365215951780669442771709962048175229930530111693924953855709983908144770095695044134936285371545869984783442654521687995856990464747410507212195226363996112212828861853282721759467093071180358448229031479090388058293385330632759551792201363807586832330895501812435275139964038933994810213210480532026716970395339220998441448481090597376892660071458915000055780348697047799173935862704121854639447202821986332023685070800126463173784915898397219531508174610197389854301788916147542654273033324919006319710953220378803842558450578984692613013675581389485319208271473686788747320758852080059576779100201722752281931856418667524397756653710732310290826359688582927723235415156172583064514507879575838019232214096366975857295144789435556808840722434157582560429778409819767641361606014864588626646590745991742469298134197501790177483809037964421002742987753195012727779747171260789851927055015244952167772114184688383394419155979095458896291274856632888640190581412929020944725863103704307663591441612588523915174947845107156797470708332635367145817187924975713817657777778899000258383579794930837506627822407358446646719279517203962111785328756062357404807652467334140941914765591022787804198908404785095737906650028956480875929521712134076044452563805497922158486157696328718892749535222297490043964869512912482108940828131815059910947378265252129600544912927324768396742860563324496936759991358723689853863751274546394944002027839912163388298317801875989304903501562208636834543552049818391596576254642045273825896432734741092499146482534051338365965293358265579811883352891549770198823488848729154641894516107387257169993166211339495262464379108150667413405503706134233142362906719695743715572291615524615580581436390233713713821723303095066806443343385559033395093812557099490910828412971721899908094797934074154669762141805818275534384544122254424745721146064531665793264307472980648169151443243624394400371181651866862647887014627898356562654448796378206638960617060141803102839818281745831916358460667760404263197734530261102409332966075336167680923449691487151877255676621796989060218625639880401377619102126629055259123133630721197689423255790068106467089182463407080517380025848764918785332527950047256312394096235639320930064190844999290209299889432251798393012086719413763238223032917023809786012465802378727127151357234093751346265633846876240361142981466458496858018704523966753107632543841892252291834454990064806761784122294460496533099457389608022319683320256705587930291693239853334873579126929863610918649375344194133472166883736901025307266215661828489915847178574200245892529050013323112193583581253960868156612230420032770646160181743108374724407663343773626908561132844058567410608325317324686684996669355670037445026990230663264098881466920268382687994592973662798459822723868207275051536727374146639924801502133713287630839603099697614374425664931608229332492174744348064923645261295585921879563116975795950537123743088652445676825609033422638020937131949755556283885761437817868750847041955634112610360498283807082209992931308472403107712287745012958231328399401457628064757496650074734272317350002659556551567160579606537200077097137578209408905672176910958659125903258385110618211156630773241617501581380709978512002078919599044828568639025268896002555012052334883628008010870670240357909641084281741364179901468689196721451633031246922625486902952530579397696430765697502339011748593636507768379896090960624651306467814659527616370167331639846256823557316571441927917921460625047400519456133294877061182052231207394060000696128247459142513278348120246856732703359033571057128723568233157303350602779338167381285737350747639052721719609577160283068259516090363855861609224724164065894015744639615641819849173638226678856800240182624773676911946906667115771324947927050833473136392814105709401364978063071473458786234932375783552108515925976009092333430004647450631204055385240557661068611409705413530664004170394753267253185366039810373338538783628157546682915560883405550677789827899102544578263507719774277371027640804299753961432708285583622376607875988926302523504441122804550087953509056385418647809275259825066549350433534695043122824364020224671396772425344643407709654712030174232535424409232687853783004466489005085800618281950104611085945174152751419024676866192917469005565998440008440390654259786881317569112794228487480503032513426785015947186860162004216327191321102750927167810203862662370691046955295152876766072455660778559142970007283732835823236088032207605969462762220632996455162186641976554494502254751911897983884769114428663697011397797576899454548928257073194577000898931738275921131318311187383307004200931407437371803886637904905046022690021578238202416883282935207494443445995901267034844833204019241298806278491013769714012967943376915865880474081663573798915271095571283071135475710562148245596131554550215011755617605328854056825820417727633935630801024009365216119381898730157476322200094742747230947035118610840026485939651410313378452248153118635009845001858689386518869464869844113772619801995021733146261380244414469865022361612736615536819703935133298289875821041866835158066100626908822055848966342550103081036236121950668988467827189502830073050253582202907985233250996524975383047598154232591152149870045557606126412375557595200936190441438876892665214092431882339227390307927685451378698249595192603464722097534444353757348850691306113271552377685695652111297250849641917981641858340427464926929924430397408276448164075456752323132358856336154450052562313677470935925708536045238311879021218232258158330594757824818412429962205741504145259226247231883412105700734047534885082114947132554125285755927165274808742720053124397928328799685699142842567801658422267274602906000561025579580868270411480833852332009109631041273324798941179608855339051603038192563672577064854502482791240424347509684406660197752434068522523663630549127653549137441285973689172962544375179010650273680085439790668777066063203752173845220041537454754831795173454387071553910312991314089182381548827877766992712827304562206257022982446437441321582010623462006078331085129510476004064467205999095292332988877392945163113128825849092908272473808103935541363551016988380496895847981715553636117142175720744282187270139952612297146666692709737603801027463723156444929700992484196509166030239965209200665475898121635676511937937106123621335006400609413294565969789608136887398111726600913270130444005887453531689137723687848838937988690999632891800789567465871617883193120255095977722526232402345583214177368736896939783858121686299877641391112694827001015413345499341264153742337216991648425318735969951579091975529676356948465383181004929145691645157535771817822689311455847911388832173017292037010491455222508658308892799932702857181692296290157775664170831708603336718279394011948375882306031412021065287588364508071314558237454434154579739583776073425374407030491832999673683042348437744886940828833636175499225303722627070533389480354740114958011947703796880031361071062455356817054039585238553510479433968000164064112147351145811781431009256291888148074938233942705576895723062390554892387921497023205321013831395197006327037561914020777091630681460804327875873067122222159620717890555750089448407962758422999728922654652475522648235195967223339051744819368501004418742834768019839733144821671440480758520184759001951366059224469146396858604045796253541437408517078646175017268084523991840259482930566182638003605483296117711746424318365788281679422220761428375382574198579206447217880196622856312962034510243579917454844284191315515356372738813711576036893874186635019372153415096923745318588343998436471471171573066657650119961300087563765753582172282161846258107321504467714015982397788714627453167391333427906315062869715398604773945776770263511344071585213018484116642629497421094144497747099320935689141782082126043544793626857552947982713335613548362751232558303592312514733971958670535498262126981263339424593723540525068350369776964938935031307441078523447957576610283875447490400949924344083976194983038540223728353138029740018706813277398470125001997622478162941912542740866644534956738520872780494553677754707534125310185186507392353203526883874038979061208943128834329961955103458560003387649490729048329501836493876008128453005327192156435415052494436079389450635548480325869430925357849182941140450755043809845221841276628205187848324486274691367115715522336941318249174522826680260327953997890244236156497586156208665105279069343025168402343947918195780651274378500496159429603360746163889996730753876762218131898640152895902941428224162376388308040196700985168684751442979020172822362009504243472732823805734937560706080349814346066983461349138134256404007435416582930140057895510990451573505969588645121244693625484549832853098140412734918237218333625776461446306203685169571624444194771901290941900091876448001533469722504454525051132472881940454704617075274246779157366531739321683733853655786734558979754421051479129387534883263904402757329905686750875908414606960462380035471045284077198560195923634784486453783231903371401274782989361742875843946377696395481107404138747498272441110767084405388587957063230089336884840159043360458396598998176410103221562683292188942126218784050533038472675089119942708069873444982239132781259565841923100329161367748220079390755144902193075998093155754842391644861815009420032425312452051704082190379520490948858521106871304135384097492728290321730605864519492604956429320721448211187588242391807866020475577220746893843804712927314882560927294530149808950994545308489048836758699892848957911980405724605331675017022345868298093467546251133897592424710180741309221340612232762612018522422153984613981558750701965692567188547441391118356294427887948845682178183054535806514146150454383467115231037687152148637637497785154050037836238920894729083743489252889882019514773254604421177285593408970980657977951613802326779267325262771967265925884312429029434013139095435382457554433641304784533485079862711203506142761476716619063247568317093277922082043947807926928132111478102291024101529901618032384159074747059600038954247559982523200590386598109906029146987699010015219443653916830309688618497962905943091046725309757737063879090147974155207347565260919699484655977037315553793769955958936748484018146646992910001052295621995591429689150741658951693263535359961293598822958350531716938155662664148257587090061948287279474873112266287646564779574728803931675428655182425621027660479504292371270637004475109725421807668755098152251312260767811809627990945828795978250209989213758282353605282251373869725800986473755585062465452197965589723773561645989782068471111881356307415009617214261654309745882491410331747151651361622187241283443787224391287922110579758955182624248683034126217491839199603934604004194038642113703797234331377215903079258839329533991649710454989499926995236213059550585214638233545675862553988503185049559184033363683838766471058588195227760609270992575480660086511507565660047411858728803713507628565974437682018558409675035709877430214719957739911812025722422850933287513555788912541675816015186293441833801050602196037948360259964284888770681705966403681523896265503780164823864207305725741024460198027680413870008057265141434305470727894263829250841612528562233857052811846205338488995272371717753044930541184190946254484326806466144993569880920646139670925726632945421051622502265179470008021077143951721134262986998671697204234454065590040607546486384733575777932982034313957118009279965885834632055330137247184297234023958332022205961861496526916440547838699116222348084721226438649126393931563241713187097923987807224087912440656500286018849221456099622807300756410512606401193766368931658022837724794933314870384684560786741459615232600329224962500761108442029468933637478591669566434929835645666734859527205352927407677241403786526765828880187805233381936630297882506254489675970717147339433502315370842035943368725521047911201344910699357533076201939402797482934425638901136832100705935091883570017441541848412134044026347247403126184900174068513069647346894766425432405157251441670428058062119247697615672445577897145821753468289948103472641034753579196935159212280499956399606388036523688277414738739146867006055755701832556863284140357631290439745035977869491520434890007857722022609391237445441878757487911904265396945215915285045160204459115182722457069456719358585278206849152704154446212543487740464880225589342157409789235089243108680924943627438693284084412549324417126237285050053624392336301915653290325467823708192656809952757051982547202923286192394456466654373335132195730243429504297322102677200887552441664101642117102109324146774580325681437106379142353314193013793355518515727725924653861718976376674151310838523713570997923918032633067460696680183488130617774508808411187232099018722765967867666066622591732676643487524846403482139137084491287126221924233939246591175452223269555888850986357062747903107222470797157453382982261491511752968567684169142642623932690450635719175216786162851104633123923459200035232170058151669395742108079577464011566967305914791393605504333589236176642697770679600883748576994235264278316964515992977401503602471069846698138999582724857509463201933556129828473988442650951850000013596752972974666673133598769681405043211810982112370813947209349680657549879064136549167734296723735839075676029752953015190807764230527833341604902426393794246905606688502347162161893029852807314240373749997661590664304476901338846691660513248363494230525182839387115045689087098460581228217621826884521042120697878164955232401058891126143989369728043400852320412628559152888938907490795517221221241491686011750812394346331625932084211034018153232505711323930380215645239509573994264738891707321531859259359993001029686472170458906241696041320006292186223355551309305790580741330155595690551581342778135090868268420384622265378617234151236202171383384062139462616643479226190722828672839891453398324975145723102879711868045811705203252199112709828146338330489593963946627616019923322507137206561026529676875299312602058963684516469659427665372702261890221636548383471240422847632407275893538163135826830254312049981191886348558499676691366994393069808500745031165248279778088139679654931767329517320302359857617010235444620141128362074867818361507071234348765350783577567290162986163389569792531147041611859195098387091294740609487135308852871787180548800642798600628924575066682968864905069226037256383492334752395741572158045904749658380644623285019554560084704569383669553180611628070942189714320371502677866416795091497471328181889569846041770746636830971487117070842921095069120090719089320146683442058546815778905988248985371784068938859824361097893092528729900040484665131476597511385659383903559747964686345141170760001240148143360702808079151771475713765883374141340926372734998755722156971772577444135603006452164565048779665608196357599651138855904355696699832756461337455234268751857743884421145115198686215664030993644140615894591503203029524078379158683301610340577580822098762667357264909638606853591228345261637261083428156507821127024433818925843621012844187780554011149465664904251123983166147671810939838992043502450931990741205348751807061823983801006750844503668998769406864493026630218650590503907592736460034462417508270228242039179856362635710283462290721845196510200434852619164243497440722360640994977101312664727138945602591964238622236842053405851515371098569645151700866429351069261636136021384471353020309087235300423423597844522966790618196361330021360635486777555125084215299256756300890041177612656541056683409185096032713128277804242407706483228378084131307392068115685260169043764734667201934277992906311319723508857407475802769370160116710102241039824495714286451962859136341225668240267805325396844363668860859831571942595521701662299566143117620712636703664336372039408183145518361438175246015449563276892385297341870381301675123876252525278003363752679059962954588176962065581509532034460735800819534734292063035803839891990544917441078043889661582641143294226358157147063571564881921960090461345324367094537406312409393551218899193442859317619584034894693516609153556904101558556872546985760475974571100531891011326749554414332831658834675269373908611414883221508961346609317337585741506653567919955362781905245190479471958689218582918133361300682543977628338147864425372883888548144079882032339603635370558588828807919655695052834915276272206676100890857316047809302621659087349656318985773801195954557528634547344529980667050930111626547122446638102226080073359168117911886038867424399225659936156700055331943771798979416637293030981864997777599201478729959810927362436666155590934912124169602013418204859634450220349207717351889198278078553773755784341753015992577581746357627446720941715210658494140384042927250157098607766742494506298082336433354172254053909591442626595548834629166491871160558222211614132976468693972368829515240750849743602361742020263381122357609675568830195671655898679377775723211758900675898145905985357349846890890637773797514102002217531557058850167320633586719050801695316531937759066657048572279735020488513742724354924435708671945263860867991842042581309367767416988843389020738468481753685575468256003829520348006457566305323615115977590945095906936656292880777349377516271010582597924725652728649704199426360126121715810777147168986840476602223120131643305028296812288804009243878672204192499045731417430419504288868863024766521188755757132853959824488553631002929932171213429874013946159140409191184495467838740890898209531111664306006402547469124757219107027449775415623469631376348319866984194126644843021640055490556680256280049562613191288291703662095018744991901786629160698104464309031905064935579121135075594127256232767618715117242783012752904309967918891411065091721350111738136453878681972696294247644061108556736846663323014484257251713268292582287940899193308615353635135917366350737484654012508723741737308020334401749260176542400029513505665394678363947508378017244687747884695885031904013115377563608407401226854837477554093974542079066174669838919167190008217028895838048391769954417494950998836517314781832800195490637670289375778580811452152821234860224211583904603369453476300343444813553909603786357475287806643876081761553092189737430329173586201473400082147952503296176041716593057353955646788300745392750782019916723739178136152004214090431023641346683673602641551379619436547180277738378694686851995963290589389599547960142271635712214704659595568674116659868248123027260046715064529252890043838383777069715019050007427418277402982405093330619229040790263378821855048794199213434485691329354891986707854034697152450332021383297470914087730236084579502366699471876320565864435360769543531781117261691251517149280055328907585239883054441751573983243256063488252981620082256922365816923745395959277193233892971399803702892876901303179454494095852918388150791779038488632106092831635602446722243907385517488394441362552337293992448382123779476335979258025880515680452272299365725512332377420863011683220084698166892926700941615144636986884975469903979498426119747883143353938822982887794377296312862614320738939503357776166099969600151532486031774058350436927644316677270412741504433113404646388458066406009638706159774527788470806240002100229317923541957462943449998193579769272649633172591650883258893170595480807248624639718144370327251530992528223399342456882456993668502126327518424922670370320904673710827575586261308902318486581188091145901352698353534333959161473711910782516319086660174722031896765342687357056780742665777004807605523036961809785464900000224018632921396543460819616140753461092731085625733441229413195508239021473165476370062041464698202535141438828480203102910346253123855919551095595974952557920269297170698128429645205367524453865005506779190835762714062639653670016302980394508465240261796296553398924446844079136590815957995580254149437696222112338582782096060545519790619195957446308206476534101351972652117418508734677729215563652434614109319705503832269711520431289489133165365581656575176308562216916849319536121758135539683612339464272970749509454314970954548847017676154347972541067448052252998069776149705163255886878934735732266278109655548850934492192854816568432253774329808293346650956420766954284659387278302111671794060513046801610533526960292104380682355629860295762013489448951040049077620668671734412608162217715763333510507738124824227522017215724563100825230854228537316351592098127156390455998018036794758466031133641124435749598724015464836763750452929150074085807660198823262236917383275660754887629719389686984092331738776719078551041852982085979873624409004351750845186038768145632906222126948242928505024698546280526999429450308844598053776103241729614989497639640375499399205794386245866685672697625031429342263636819741033600758855286817409672831773539249413692802178949630121802576706690542301711732171261022799379473122635133146803084424033215858712912810279600960433479960533445506728352357688821504822022219830170789175505774992543115682698891075272314040386233179030501705544386880340116606796660564663308051003991204603267025602794182091450131531739386236621772874181674305932851907046235678897069786914479969814369837218642864729494254515616628858518418256625354669609412665471900238742514586994938734221729198147772475362883493317717123565693128731725361935708097334703979923194112933376886133638636806216332606690365588573224839875652135372414444949346123086887316712435833123428224465234668071029687336284757097791702875387391219288340566592440758698181174776171316393579944274231520957773048417846028490163640467493992265391745762996148364872919169451625423932001803731179078794631838681599128560995604036441116278559039404389930901058276030287255495121778735883362720187339128984799904957138668845967552323062279060573106132783977159426844465133430278279197516456247504329139454573222490085279674286080788478491497521297150501282501658061389409453487950197338544981410746003203804109626163856837247627617350905628849324422514393644701812640109021461879394998740826967825587668346572194550000413466708284993247340430870082044703655518265033925904577877796964187678189999293436683784333669849905825586975521338073705877748866872398821146919044916182772336100832713991643318766942666258305360187579570453470333668876606478376559051424352978803166317807114272164060535640058282691412401779245597703197830176895966499100300891101620095993590992220128003736241154468756640230997957458654878185188086077083924299295895363687106793312049660867725286779637021590598963184316725974587932203896625702348474056373866284418578440587392318461771569435290007672487249853469919794339301197326020630104281399314601842692856379932631289625715079845649210877774593248146768002596578572733950087462403062083445150324661540815010208036150351623751471271205790458761996697953626429030602920191638758142216813575684215644480842475460503925665848559751828289254848654585950061858223010624601274694897359096697446794177371377358487113296760757587619282988151817664472855279968061037762207134864335884996194593371295311075390557325477830844890033584219537873949970212556629349258448731156721486807346795074125334022546063468810214285584443453421973559591124699011804042314402388537899994328575398276453465824330518642464815077581774313127435252231012671998172568113172783447876087247965068538771085760118136148533067947324666079760822603810843717068817249678575789987535507243972994348745815373550882327983066692471970607101217443662820207030844211247421108530392300288394660877549223164408516161486376858022929242213770346996302050735067326381459237178452342045656092693049759276208379365105538809553424208878139562143187953641581119620224616033530630906179256915261986179647016138923710214896057786622198040694548628898102479744759816653053847867087950917291296098085874057062163739993911547225116624227428742986508578667001896560157673800622404296063445999994725243452107859672350090166525025754288690037186342477586598196963218128633942459248385367202075457481872467197085692700467233275643570274980216114894991669477431050001570798304965683022604037874796180016479498898115862149133912303197983003419638052897672324745434134409324890920616539083672836027772450027613038356021290516636894891196769002311337186925677435883984704953352321372667809114834555612835341248334147845661770415249824388900430970255016560803513910992082651598020551516600679044891412390195510453064285126109217689887462259537581385310381726108079105913034703668230771587220911131364791007800465381154480009787304627861882650001170254901598033226254046527429959503412254048970491372411168053769517679839692241384851169704098700499056116042325349670753842568550889904156504478146999591558673454398690887925728775276447182666100501762301248363078972491215338795488739166035976426847586492315239911376945607024654142640879167451535321012476817621468148924311933437034907366045394769364263653631161897097816852554521289698661278614346387221593126825553823635601717800557102629284017800491047273000911213600270537403433008212362166645312195312249107769034949992190363955428904413060645814862425632698817845448874123839407694851773510832041988720860539037041786357541498180322994005945898476901256914757302401295909721670906818847961139176990661935578454112991069375002030525090554839276275375358998730807757033774511276746064443204446272294814386109218814557241092436988422475496802194954214567607279730444018456894967132667950701742632133749193652399740889035388157156651747839841979049852030916938257520855057902713531871599783946825864439036463879782619580649930677973703859929509194974261149266597396361631311640838750996179334776211953316997186116021149448146072627477624509115694850904382833257796243909833908496281988591881545173638232135411610480216659085263522429955990324259816150486821260986389938653887714630290229613586857998051571333982968420008319262412835501451180408719630281497277666623636313673807301134910449414045199050285422360635554081637924500438425407957727430743219704510743535123331730763924921122283823474699237208581331028622909062501224071858801191295949141485105752385837460860850944197959427433330378879557113614778306221161277966724554875081239266162026342843158819700087167517545752056560921466206376326596787263132489965204152224917378767614350091908495273330934085787072356662092166432437524681051741217279154958201404869216880587439346603984266636305560591269366752639183536364762899446760166965479586480360163904219762612185999302836927833844189916314332483925271709629500744982036498074953983870378805837155769002302283692183631872942567075518877075945962396972768395241009077253330829557647381427972036233846718406021570933792890208912432819073466384642273246639114710026059363574475938981071348043219644656769105868559058867713887955693043813695851835923562012209586872346649522531208790415787274083154787586798287042511180078435914601464730268709268121154812437183215680469196014529347253057712974917641557743481085324139841608904522461298475127627182762223510169778566489326751719746863881675812511093893101239179904484075359245803023995475811723536004622954616622981797845339269603133622557577225331094015190801706448570095501640887940342486637112984616305222600954978258434939387114949047151856004443495521410631638405991650028988014626773119804248541401381981297227003208798656750160955755413944109680567505696879851933923555611816292004177985270616634733925735469799816313124731887875514870029408413369231116658193786078768066313257951692267507933579687719138177236764732498385774811092473325793204457506932904857615840545957798462666748562290305051538958781194016437163552693399975878231362822931246234091329209212777407013494395895247995833000426357562572806320635848264140985854230722581979803485739290792652341229900999393361324648700397160663132209500494793344360145697115173685426443437448062697425788736720674100045710989915152796950561494988300004133407406720787215097986123959831155258611964046259159368608660940082618043474818478891623040248988007819541127730997160216355162946588757765837855303732421781933737207480389916127555676656064733423150496387314931043740467989708093383989972054975648071717154442925189937147132449339120629200537353805090740025126904840682762008597108673801451099484621006324897170688607285755782135400526872814511994250302331818728537897908276001828819077939941266498183163115249891194806937749059185001201549600066098904248866794303731835178847468585797219367078828240729032210058658900431944794304307253694314629605088283942718214182101126843647084255309559987276799515392050998898154880914939202742759397188764937985035926299327964601755615000560448958227352272401613765729579500604288783622416596086232615756519221046959052936066352803049000683220149040659529729412769635205187068671740310885309895825391788058746265686203360946721529484372623803221255320476122575500318914733412762291694156646301788493966810137123937818341734810530862900337303078661847210607059479138423385472683517851397295254416530312141133092051733701842959342506063973874822130818928523973697508179164439151098575797556430544464944670798210233757425962610358433005061891723689099317789723841691746502739282705683480493165310876114510719416235192329792827670799059348827714197220308804651884357808716368526322022655819755861450418371409987110346340283948520073753902320991035300495785582380303370409943270170518657987216859475100916913094365159277818177090646195033041074888681650281143033488281413530408032544641004432063210546780829455911104421216592904476507338550370802361748134398091852047331829695320745146802518962259037833398021253760476590135708458247545129467943181893975194258633130633002038947296772650304051313082091048207986461526037126295907305251340777078801063003439839206587988140901791450791206965516290163807437617056244102410276404729383707324313323435163987123243269217391514493369183024006911850343785227927081021128934884540089502290628927255461034381280760369542262436177044069508596077000993222023848294283248079160620338232840422467695659812412441360450098377232371943283656573481616733611642132732994191982766520984565775456378011946909986200291675809797640404635029697074801040595315348798500664877432997811258574603695105823909485098044217017174246226499097530982827353432522085533709239660627378675808781701883099823690129382309523708806979927504975737633765903435489305880919761800059801918502299810240486651134533220287359346891674656425814242255390823430404136587958268753066127105378136664894442890049947195759934788190377677552710785773758668050746900087994623090488814308500557814291601666656734688401286907191925813025770417523997458784458847512382752333384995468558070436184975214763587421032299956327606664701739066228534007251061766701220255401081648173961298198164747236738553783717280260545988066213233214550249588693866614296152304143709428782593725426111401231310517488624257716217268097283890628914274361138867768165574143662956480383844958874946355841635944702496249414002122337355431834440531098503450889724368439874426359466094742013941556373822112156085122172418066807859265763938570953143354939442021345571147738730545075317066253573036009925560336374871059717280986696519735406933309447316686055574806629544966651227939244301324548914192370614915631490551265650966661022959948328040926654608085817685637040906026117539341324128294631303096530127961579873650296933534615419855852648356752975448880879326786388391233149111070029950274482776800371826844412942651314937949886454931412960414061794413720326513399588106041744279007839001244992117113749847373343777309545122246554557046181744164069193967257776947906279088953699586150630939374096753586220251209614031678901992974352338642201314214258272352205331448492587533495458371310508830378529124767164531443099739450860015282002412913820508901762968285570798791127284370617876448615790944508466309719663100236604499239155492582923928356389935717719850078051674269923453237343764268054916136957919072806211005345623752000904793769772642812825488795701869574647241579956502951237271558738359616735099139685689422774887084540983758764516136797573962816595020267796736147740251973743579377727155071227552402446950633211747282461975581757344926867258386536565201253788309258167201813455485514017256679607620919940655903652320563234250577187491569994900588110909375307467174704359153895049210590217168670089425705268753434368064485565648683404438181020300232698854655321091518847534212226407580596760102717785463037478130518907955268300455009755638470954739387864168105694051925890512437537168947657024167698758646568918150914646575920171350163149624163329757995814935479565910507588531210630116116888324234221855765611236839609316878007432718433764321851796733209784787627269662832381978441570241838161160874687335170822043063384734180363490102219555088810656221784108120198761976496122004849678370416102242527489246235459682176581386781255802094683599288491958323940844661343767731534734914859285922324872893761148884710322645542997036988509331511497887756043675884579772475738634811987574468944595691401879737651858499938438676442575876737527469242340220362613897211661933109848629767456933524925776184166599855315612833712091077499327203784790156475011458090587630719978331666960311567991728767486312153436523056475609500924411604378677792108501233765399775949449299988099950769328811855978925788102039099656659379473862893485654067913640940374395361542158124214639578013274362133945672545947003549408870703606061478862560759050069655965051895511052644487810381549718325582866060600447083500010374153056678596783644311404115151457187600472328135993222344401653050625326047691680463685801824935571896860758797679305533421467503749222787931821443770092148389898882203333644163472614432306858474058215795384151597027147158990182357123915493335774031026852435135638375048182329956829161471509180843989779796352065287496149433539659898331584733737431646870723635188451422686234810525323092846678747419106170574910398585429689991084627608878252745137033788535933016762662175649489794885890512094775640686525963393090575695687866897586268838322202961099295375290674725780033485960394059358773012879809540111637082450388545295977173178798552402623223591480035868486273150028678909300126548449470140783840165272493756519361174156495002282455455177691528706955310022186939312441366612595945732502242191278206875565420517999690175898994310834716826731026097825837212470731506237277271789750803669594635069137970117620430210749092254362494485619829532554270763254421642250571089080658664182515949175319146491708981756440850093767130762098849988010457799068857419032993434720128035638221375460710348499501560918888405877313697358124498773731953366448663631399081929394132530575873406190636565376776557499393217316641083478210154392144782043880269467460221135267403281834962410668900676486352955182805313243281270359096325300768850479148370614837294191640914813388460735589017042402425453023148975847446389138137569927379777984870188773115880155842448925496161846342265013734871138576784822528081318968198453733601245201907426404301163025253602670507248768072390326316767029601870653085775907424002497214982764372700715875838706819290815228158259960583156508662365002959928634419626900200721175997325434649203792956579499758421742564367240612972771766324642132029204164261921465265023273827657364972531559696201609590649019172288854666677138951758943877495759859051772646081437118135359198374111269448075099542702604011987927253361584553059932320521270448132654569792978411198920740503420347632423451715700736335794097944444163156925808298524707843905720207402646032836613330509245281262534383311071870318652998516471354446719144784695595284615127904930479893293678714297906179165743243854238593221170273259165951668768754960393873410259873941704515703704573804350116038479551210398430382632004840244993533881339321840151564967793154806644145040690575831283019341507430925421255333512045787774302132136417808206353443509382516070624249897437886516394225548931401793858384940824347079793364098567832407142380387360893518179359321082871656442851373453719920721740101501237726578630891383874537298984119660436355554751422633700428455726410135245109019669740589825811079636218800913465668694389462164123538720414371787062744463868288067432257636492784406449932926224526621882707652003077905674511028709506986761025227571575181947009268763448235704844313392698608008429681693535298735143579642019316483044512820970230039531661680683063833852809796934633348078434648914539487992403666010413936094038936546207637083547218815692319094466583967450666232981365421274977969065483039808537710887161662398866311116196490210986495900746229957665212249165813937554069721272106219608901760169411633900479143565114708176462006199604762158155284820779300564955360700540090729671848069039719117531191651796923464231180881804276064975109459754603079404150255278322638014967608207363231631970232215783940481985229765839441118000630219901656636875283560775481071671366796746425900433361457291543895230469732593333073959888295978938441874187469641539375100475707614838992810749830707175786285132818031136735169566329205282524466753979013413351011485109659441980022174822171988832215641218843939901851205586406661306141280825255159508476791878274970663069676328350414369650015270446077541457068414970074197496763409685952147588881381057756813499783492569231598293914678489453552542430442936060927593853738748842553687494105247039463990433496702849235902443183652427132327737383469334245840125171537496016213870326760222004911115958763007867801936637789433132538117540167958012347213437593981993091486674726613741445272095824548446269440031404690222645163697736849230792156530879980106734097360974143873028766900106289176585282860438974894057327439000316097412486514200907912642374341844153368864101696453551442675110667591717328499917174898459671314245384929865776660293771165218375021206886970413950396259453583694806681023371427240062867012322868526146698124437708087275829174585885535458997339641238950387966208218619354419675945843129565874671797504016344925635380111295104053937481111614551896985707631353344948464583922870697013723818309899268466858265155759316414706558681971728449619922733119647839649573319517209636465689915024738448604349763720380971612992468043900511214924963226965912647859311508150285317429954378021012470549112304949422427373282149740107922951583657291093614572614758164069611899346509478741275685512239620179137558499045742483513670138855198223595845514130717213499992038534292565236375800761032230556276347872274167698639633352974062331857432162321253383369805746372088053676236569965955210862173934366030013859082215327590195414921390017238416503719085736639373326061767879993815825987223813135092393383592918072328174818498732717742366407582567195028473252557797084891125368210788146269735908193238537951649756532578725861236521429686783292840339488263862496115533572216465035474438997399923595928529136705232847868643753555355771526320865233127720606226911755374719776564281240756945257023741760204781781079210489566648047365290095905286891629424693271871929757444667334142853182181939658163718271661277548471191392494902114854136324071925330356824172517399268179862615104458330810118583003638195008184913571276282983561406536959195005514105468162552937155520790979325107650225418349817943594596880502707422699787622809581785104052149747155183187851958943390968387205854827597836904966859012380757099234093766024047287055786376416725794097286731974943624240933973135084607480557989633277321129608446845891274853792623837127953577132054494522436382287112656033125313878350079580726461963619706769855725485326327378032537231038079927335905136426299399634308438438277428925391035044359457851315523566598806120114606108046568496805387212750753709589000699058634272951773765932270283488486605930375853384150798018766950455194054200299266273148912396674829836807519105313220670210562428996579724422245174329422853861100024152307318718656309000970826482747804226002484142168348308499249365778154805110670971731899542072497579534973144872018222791216028606628642628522055610412882883008500061279216556029361418260274679253148273373325788770570768145626762183540773215668050946205825811045160917730899431193851405109862706305851033799868099147902915316828160470418768218574347686530203925034628473420278706073059834704900503952307271033477251265468435502548845663705365332287621148206115700563401536600520227378386208354852855568952873776775329525060003224435497678550062803506996450156502491809060441351295534601217377520964505100815334556811524975707339199765363440773133323785383844806631149510105784040135187552153691623490882253055460651097714228157442238600328069621392517970340569153998031803812530099658980431448717450680612904942299024526274867931756931918065494494787877830304720332257163953398931224178569248979923321719635847361455603165942013719809350711152997923234698393492389253138265247052544126560024863307467374537185890052825958909366437622862801749433839610337540237650863380949694594957864488767441043969621589033084739076630846461693938334438376210346698480392173013683973564172737063184911754757798630531518694076614378136453694738230915501588567710342254254076663993302498530796587608798429062682173515986406540124938662940448172330734993301362403712390216706526503439203975528243705214342952941355221999442193264643568178894277515907987956719729684073074771669115132021441437749934491981059770077185263078509097690877234638313979211005133156108240923152996335792346102732541831031644452861582534157941774151804170851899670698504979596679236922254856327626802731379605202562638828987013874667668559175557195200543539947256796223038928434791335538810290145208097586609358823727077227415612360944735740569805572348617502166073015293318469258783638903121542425837105766640604456891102939713294114922014596753560507066985753841319975939054430324551912261984386011744490743768495683202120525371007841356471345732489525208355719111085396969786384010136168341991884483913532896271785592848733114070680773571302373208518667566699714813423928215727102887162718020273178941950760512096740753171507369403682176518796415212787452774165613915910105306815920463921962806195514377029814167024210700331240575463607953731840278611394891703849743703223911771403614281282983812130145026176136448331981710158362666244149642807047193102339890240638589933261814494557348696436818428628911407227528756305230331099071752378164592638094848857737711730129047029225153047425315729307888000254280400226875254514001767348073851168017287024256538905864716086125349227704164514356268980496703604647280430381876071670128526737027151467735975638449024327125614090011272236711099373054936929414361344192300995256538299148854594944189344535110589113456222969931579996143908658637425220131627761837412877415566837957900099493711699014134881559152719742025392484286722800065534991651650003048742208298671412766020663666984369029643083994138907626492018251346655336522055920201649432329418283014938399053320114134386462258746986470119948811698930942355515483945445588171656553275203897290592882132196896803267152278388291639960614665210571937300700687959909100484589965765920036992808263481383413778946220974671426094655095747992233894245819342081005319467567160222973847262912519326618432449954012685898849788223647671861727612956122160002299153003652052210976720044743120002912367159910645159943896221684513753262088323709940980514779483840663188086081518931439495038500918254524338549710210943958720977407652751931580924642858837069751179980127948680606355623644585445608934935221114070311072992908184414131080508928988565389264215752913343837931812117624069848873919055980961221237889281444278337248312782667982043510010441554134645490418651673146278666675973870699786337345515713170694442688111332872176709731360232670182627088604784472944176020192627796248014230473269135459367978138838346357060954832837824093446638918877171808032823436009989177479299800122380415525578321103883669935095904576844159562630343618982972780730082047703417204200799941091656916784258492730733652393459590684234321250803552819922268582969321187584123486934040876386059371125701339921138154367744757991565278814524378617284184631985877962613191329482698144302690601268963494743303724615192359815015373501833567733834422943739498480311856917889176196490205331072249007306118724387743768084948543167182175466593623356875008542317785698720229499466259035864928946386374359507620608043738212270682779261648077603253876650658630553152021152926516929960453678509060624761013862870410422953965229060745303376285332624972665406793023336546587453885212952580728901755694527733826466298391677891661455788869185237735366976442139765720720484266761474704882579951405102851043647642021129294374915246682492136119995317537459534002925476781392605690126267906140590187908920154397766585554187593212626578204441318145464309903228681412476967848109389396710065231759613421854948283374299886411373613718989940926894663021168148094328083957715379669044036350833307249434860000474714365901417078773869615157846403875410558680316092223763133421740404737959087582012810814118023891455973701494726185439796477339732663282930270206449464643211234072351562905296009670095518598745452119996906125765695081507819804415283513305294957404977081442478849642333101381080710823051095695898462062570104728705511008925372292497646408165915670817592214221393844697413560063664264947034707778858284850490907932729637531059372006382301083065045555105777525219626185380610500553915711071282795832254505395694796953768483850069026714981685250320997631599584838222289581348034343242464863199106493360514913831530929256061052833636085109838821896309646301694213387227953441616320161987774221419405026576753840944560474661761085385839990775710273421490200676015136986923786140325627495495313107390485298453045405920234879319934542962174275281031506717338786380977439478046136729826008912732801593320329076352218555643744679061038848166294289459200767427968790041174158079597612921812090196262621686557079216532013918536059195533304655180767544309405250423837925710731787168092376221432291428676966450680162993536844728523360111729114348516061877178204153229535092875424303388894037550687413721287931466133036207388691103027962438814342376057457457652427695512038942308543377392029273740376979330793269063298597448569972592520022723417583432461248701259500823993217633224210722190702424229730705256422781088173037613453648147243697384195715450415515928542911527845979444869188739915061875332534196726421660851044237824277353580649760995143510702750286582212332323309900718594309856969240107454349333080570024848483687084074761837950304262936213079423671626245077454287946450143384150996306413266470928453686072382875362816609593532754039572301629090126043013994993753986641007602575279019724300860701990597552993800222913931287772084669278227070209059780550577543860935712939626071880649215496940925824800659769493328972868824116902122176559470517455998006259876536387183031264734753687178850505648706886854501946602253257657993637882382140340057988756530179061936045475665005041557860354700394022588527403840278099786046365376639676281069092841353677306708170546252348291334999980098757350052887932634375508578572126796333141075364425651005214294786931452826759404983626458427861121042368928916363966561617007732197083764580541615796400033496598085376327152427027362148579602314297660484717788792174291674031373696690903429368315623161246335836496459544139800008741069545141808341746360614987722851807719867040671384525678190570101893532161229162985870169000100551956704971876914607203480550064389601385106354225093609927197125607383005338878459073651013721608767267458599653605511695774508421476407674233879792188771411714866489649957692653336267749957851617719367559599979830065293617089252672364744898276697738586819782723461810659762334618906675990060855033839234184693675341195583501414417063115495511249428073515618840527251000395036149890520029550600837327620524233611774505760676257908420203839950592283989383110208774056968240804276635229359045080986593140668521409450886266019261430567735846605601665854041270336171459413992655275111249731054260553436895288601886075772491287607536818444287421367094921686845203749573380389008144234825577588866712962184274513821509524655983018047998136666218037435305757550688886494382879474879142805805854038484704913942962698603317421706172511655446043281538680593969522225382556223163375580158798309480152193206602423355604432263968325062204837830296430277178937762553679258531500190992830763087553803492143163451550371941187210660716738473269555824741180837960962084566445684620472187376434417630707641307927323059169985207136651024995746145571689497102650551367763427012239343796866146068807860311078855884080825516270768471267250482429521006988635304550517191426966333242237036835194952183877936358122095623459631426255007552045204738737288599111900906242947279525551966606725974868913841913069288905020710883062907589910338019711618197069580491150715727790125456045217336178674573679977368653062560059507653797098881928829445611260985773310453468098118119314139451994144435976128245158611969861014823772688481175530775098627269234789626427158426983045290450487360753038538283134089302533869148806130600524905884703181022318863912018358693567416405551186578437619798209862708168218020262816670201732612727261968995840906455436671968792582792975109492454523242555447580129598326218593206145790066654701949806250030312760520715695207730578476451540484941153523006760654966988133803535323406795473125519161888133987678771613103108615529848774180932081608556480654589248760149130622283702516185313929260743656735124443983236291600329878943125779646779463046853288444079859947977796616504230172061121402216976078716626879482802219716883078164212485083710392733909846882402739518615389868155171267688149915323446253661731054621048876095436006422455442089993638079843810637513370086634030642444303130441778411587486823146074816120205046450874158741537640579426485481572562356010136556026543262836920228323239238487526686061559824422973569423580731901028474984632526041637655474920157911261693507919766006512764697380551048647825198843005303727947406452703543502208943825848077642730799543469729525474562418453819243155193763211999476079431207537908559826145369841271497575748071821515401549163790169283720365101366667375533955818300165531107891825918075774127115658681057509638060422541602559234814748842833961020813900943736484940207892258308878937979083872841803803814572272888507551001633336789841935671312794298753235220143368669806888098439282286712601249919565933837563020470897414661190872278949371995483388040422825776766835402296241911121679333744113820722866896669386977409111756855781305217150992584704146713162753197199121308593883385784465091932281497532503666195348609941840508807376169141341835748923492229921242275331341901156634360276807902486521898852153333261507649581228991202462108363686178041204872202098606751029916227856360891009509486528464344289104530472880258925492575106579946740687326606569066656994444417446115826763851188128077664358398165278874940989092146204033728255666730198394086389981622507683420440474803348199829445883362049171014120355281947778483850713332909394970181642547606869090907228761517295333760969116092287109576825394691865016822411956467130945560278825735184539432008220055981189486118011281271954202781028723564117401301179380892818783262353191747072531539333177048452762737869390887463502448028318604975108495956621561053203698492725985629660464060119714686268170608394991075075023329671955509820213862288166863094291494504479753942786223500709176332159355933569763315266989088658196435438214438480871446999880148046372537323927926962665719153571516803380318254699317451358502584623897876595111551669303591999695153146178968489293376613995510680497752079290314086000069619540551687607203634203198277080231159029216349480954715822096266000069903851917141616721378848575733074942074649271297161125461689595259221421250505982914821468521244114944105192358713942284894509243492823892104052482205871781514082713330947029758570620082374542993273045454761912132500512055664061692077942451864505125119619561975061856412371489072895961118944563354226482082783145442608833479630606614903461522420407640864355998320198532625100818767279743992743614240794500835796270746003051520854082152090695174657062924167153977269413662933984388158680373068869727239694178177896149138618199849669543015801679977353054630051103380304029217914550186219508093067552197399364847721483241105409934103132474709970615472673813130615524512301094556299402035728930109423737409694450245113402360387526507343480229587994277208269822182578350229187615354635594698402367549750363423965936852304503277280336953424851150122926497162130222292407710587388824376933476577866134944741438161668489556198204119406775482635084402997118526120916674729762827034807070417116000089214417553439862996386905530439769853643757034826062134439004536469233934604789429012571234867837929855270581698953412672812960968294130959734941269780503907247461039101827019097878855095836370322699159419977251361852828995892647714683858558904318887574887849008146656367184416950578097912449444859118536001182900510824675990117311209837300367234682998280314297728355178082402414717022976730635597618283577210725547482954793538102152605758205151324756979561598680448651351087745806087215840458767680783581896460435611836067611426580874449410002351922377996139288712037805139400083174382204554668881636135435060031289451254062106906045260585770604258854701546540516590127256053021984272104658514668162445755625479361640291145766107591443305899303228540990696721174844676256561507724580219291141873784155504609678876579106439911546458399898744869410479484002586320478808835361897837535428675751293897166799936427864733356485915463938525952713185414348285142271390428293061847445365394418748872114686192878178838689191118099181223644218663024232435274748610987977896619755733685937896323038820744510158279602986596782149381803258743603991770104128873418765177069893500089694783998238814362235264443505658964404718561315379924107665431429843506922818895078993810040462770220129678064526688344663150531131763613233955958963952694866095915636316895123994360449324311001089553018867013773809676523783929319911642849220297528974093571041542404158415853125460783024430875506238457364995455880561776573953738771247729514363980423187940079301632112645629570978719130196460805078156784139349627176866162119788918085269048583291860844377861302703098161467879793796427300317906651833859681991596240226417374038767001853208491335321011697188887386565168355620271291959943462615607613008267311318286500074610565432924621375544490695147691552177252187642145100129223251127246338771604376302221496015460381723991468218904275488220988318728608170532209942393537832883170382901136882420831923461937862206920754302326232702717549171057296516742935477923519348075622673251880122714689960816157251285981376687367985101095159356819710261608683726520593951206242386761586483158389774704106065458006182885182456448212600495382745433386723831224165155345925277884734996069902572456170651432149771624003868709454699035780803376460683357122496402795304260891525823321109235731272395784879832693044538062093249686437522061539389810617980493172500928168575791022615335664893488383190826115893625090590733339394212825797481793341212487926854235628662219878622172767398195185451980471623845797161995553901310071564642394846994514879707286302985670134674227517155449470349617106359076360281306086169229773532906090548483219521832404116160981748611295048887571657168355107246623685205791102093196231923032257502768874436046038681631259693828195718259165369547647946209796847892450536295025445505958036814186284754761491020373439944467284601597967776759294604701277269441235083300985117464019014040808610184086680657945398408702292392087309899029814559130824314667972177952893971525083043991841312776011301943877765587302364936143887583463047300751998665495062591643120782800947447767665522628521991801568524412532221047254748528258693109666503603608567817891340765815761626871946169275540855697391021559228956422173044895451494243663612805004675896161748248252087844647077819766050847282481702252551448138249424382481681053132795337082382066070299058467913624050868211629052759340464919969651595071496146750490997935462123035264079774271877412784704365164194429045359887534702758699784915540328469155152697009781282422126026653242796214589254910442918069657888194527145607592126045408482086048917702345153196417488066481358136905095321530311402068332446957941690984242337406721427246843048612506722217522472657160901851297296988414324139575870363878374921038993972980376130962304057277160439826550023528692892424500665949445851273009874228652208514526692103090112883734301954419323317586841294281880211958682729701672697113468659441294820924212892288712134749535822237373895713041795254102720884580288485066356472425940403058949989737519064078485802775324639953099289565914365858896096473578631036035185146314462928849942274490805070545760413036534568701436001488422148685504648361016726931381873034157932338959334002776239404580939264725305510763008183114379787349916242445307645350108512624858668765053422419466675075811709007361905575302149288571974838316630027523877460500946889214704704395318004405670789358352801029925975010074611474067068394782476823135630336898280750246160243438698441094760998615172447885089179430735239894378419335502828403290138453032669480232005166961307091750814094633763366304365735212908111442432338340090650743991967359134686490652659195437590495095275241422751506590713596714067294121315342958808962557447140071640146556644601896276407230893219407660327384714447030456351880871304705106215259148835553023254796530908419911638619573436311913574079768253434396767883272565471477587702454404050797450433736527340511939909859090204201529513592269442259738792347403900621166110809113070327440108294541265932076189681274641742776077018619305570902717222265934009976947132313382936825987909814279403286892421670680163096046194169298029839469444305945054503884124080434880806028564879672804497707753923618542568978650431468551961678154589736027655228679722564642435725976080671318301090008877150420899165775031732054743236180776282705871477378240084527927643391084384200496656470836874609441335306813310727621118506641183498492963834840652026386475937871652663844119813280152843717889272314245203771807042100794417654519953258435760198701599482829553568154410887648296419985818094428083812267871330640175359400381338713815657609684867911133949263638613516205387875477131746019710982054066320324733947893606029612160545298095702537093555436467805657751948528560503476670426548898476078957683678985102767680291061286793854631339870420193227846692234175504864069196259486864757100476574551829873632404987628003845560203771541915582390954843340858275770543611031620537551233055164272941415620199584897531920676721334875558036576027899337297159935504592674277608966563308099798923424770853960549881618021306991948452473271455826886443207827016576948342233982705427884285443887490715515505644017786234185405746875538537682628907136192827426861340059260408390023923794806351147056263754493212624870448192561322867918419347890286800039505866126082594857352920268533683879432091560524416930948173716156578593184920276746350335559036979854768050097796800399824114296723729250877526155707777672234739110446182549039960300250790323390140458684841791690202151153672016203439690339555860012840016321224814509499315303848267113834473042972286563963651407744340686213258958416538337548481526327336954177021245920028461447425585298437732869507312493797484111386827470316103482404779687596925132267400539893668159202752836369927518296963529087152204083978654879055675597063048974400185708303802639225887308614940068113649123714772011213840992999124721833242711771936909884579836998065498123735047411335398195146332971259287528725142199247352794704642290439966619988438398049388700450855082194287072369479639742324133527788524951117967609892076673068620212718030890586226800798823760537119081789750687851694391969253417978756854665256849294362444254454085382765974582064792912191367078268010044207212777753802155122431735886301908054537185407372466155541049425366307192599732773810037433926182318723747184500790166236674985473747494315241917818887935411231652259100476403622524163426292554009433596498510593017407869693691949317140834455730811413031876147558566438398241261427435646230833413920565290289337495689372829650789638204127393652298380052529054231429862585183218653182915184660089943946499130934942494188456332344616576411723599770015059801946144671685148122168052178981453374150526037063398054790801497744505106729110109547728029390249961475946998954216434112140583163134430741417126872101239330565351175625902879778132536070772129501494202358407516208223414605902831864620920410370660854373841559194477419667210053879945855948057688448935999016986129857084109039136987593051923431974097175000261962627323460349125879089679954636850994865589771312493506972722624154500607208280023018057086611921041367045939485885962384327393760520704746909261745089402985249584593192126423765795514500417893930624642858928666963886934032753512754536079117877381029866306947816182657883084577725584070776171166584981793249693900527330459904162965090250533718154728892636731551723167684876719906383721703505277991034480734992037315237143800453808930634974924617631630224120237747113985845182656256438863466920487237013550023267866921370195487165192726803753447206435889964489186664110825884993919138832133618740856314893789847891162873559829750862008509530391020480361763979989210246620099349285057252388635232081281954544355366868093445719496052332885950476243455814150123011902232184234701232482246322975023655275465211552059032369418117953799913707104240721719236992262226531351997789942376874289256971279712748636212528993913181782908638656552216154318051793171130105390144957620996352082324425014146157683080998577611272956112972921360011559834019722953079512508353830042011429668388468819586682056832459969982499206573999773393577054375220000204310701437399061555804758300452799422108287973742818345978656092101217912223536189072821975120905472366699039370574168829750236489655515853946091474889588476670900887922582478917603949253671339329425079365610499655950486245909962553709444559593600875695715449868334468370457193831812161856161519774206587008679684969420972021595698500557636176435047570776614457818349697943982561421633861726592514497214019943679746348760282640545696792572701606527755922166830546595412005859448387483101699661123280689044064372232378074356858554968216060934696331278248895677617680934575821936402237641235727484323975224247041283063304593510853035086710957989105251220197579752665096071014880851743213243123634979146768114454364027804882697395681245017630283882873599697395117711655043410407904995103469086690058011654962581990279433875391148080601804860999898555370019451699923074441016875793512068537526411932904855170110301618481900404256028159873937455818961027927990128896926040871377866455108437617265497095032199047424466072041497450104536520543965418676940043988146056774746789824529867012941760405819473326640049758047736975804696014623546697118217040470931250710303402449093377962377554907228838589314255945950957373159476010679605900162587546108178057633695100933029058105868734986777301756544572596105843068365041827516081977508907448880426501974911518449795503747250271250847177321639940836851740601426897561682043911281979758014747379783714074020343359211664411372386572435058914689700169369108653553109202376007445871195905411058001205083534568528956353096486241315713899494457905282274372427212003783398067503614754289612904629002223474878274733653629928045264077461316646640418215292916119637059972400118955240031169660637933340247541955391540727624020405482531934529542085944462871875695745762298698372026476369816605262341289047866106900619219276901555263390996067231284783673866969758482455574214050763416119423985083913137836354599886088483791570987413195284125515769134835566212299726652771595005242659792074873607181465254791317799942423754598946930990462726997697676512253195804308161150529889143876879553408177187516525148443433013928233647032044315094422448462719734069035782385161293901178780701208002346269708126971757361403142277365951086672500768360132364780190174197920825908894821366520142636873452113311159838656484213243958284777931815748039034258889500270849860397762288470705716022281948434219178457102510865161021481315831343380219559035208196007314351688617887890811356682551756449584948392469158340875306836640291543993665729082948249154644353732424393970536655800998770189884849686749171883026219850215900161494165574801632634296408779249863139114374230748859670762523472009924783288881522758080054266451257502794498619200826808862086545644776276575889745693652590678182436371474751614391319559838936658186814768836887103498451067771600318328959825708956721324514549127404221019909529831889458402456729427746612105245828941352625560385659377541321215979514014252910100433550917019833858762608145377268498204347983269682962935086665549244481559845928365189819120664626761497223587765808691576966604425629540218113337396994776155393059413541683011574425599718123456480831833913141727966519593580410841052134018505819714825700834112485312228430085646700483370995151746515675600908386610649667870986320467243278220823588758487255452533342445931086488032460575514348279486101316643610390076066763330816761763044705379572827433430199414454465396949131073742171098129932633272319073292920794324670693862166243104890197808370077897648612720018858963018243895730721629014523227294804706451079764555936887030479883586844277969157581082490041086931598079183989715946594360246705294881398775698804805257245651213744352763349369516218706848573191325405598183675544153437256125705608984819640038586169129209635887584096181348511700224170570463135419324851517126634800236442751681123041149817490299659309440048067991163300299159037476905351616750423085514688512603362613414560827165267087377445483518647862024712133383150792869173446557464311020920607512639909298299627603138492782705393931215974791186332794971348233264080597523802320668498844164143221797765263792013473373607920338669409663613804314433119113915580836695581715775978232869630037008662598675678523799720898132843408948757905122675615575758197351027970100012537932340662903884910052825192200475027002546692498375424050632362749731688376716349345514494745958034023393397126648078903796526209037315754205994521515296250366464245455708712358263630762033526554497468701977392463024518599433629129645463014863303789108264299897801561128893604169847302951166037189718796286559047264505219628100656015283491162350634039957675636019553362966541783417747455464814466681931127847140246940874641336205856891193680212773491052200680452381362113691378564448741932540968556994624168672264314822461809299206621927505894373181043556398401145053616057970834007852404286337061489399352980205363299120550690877653448503629505392896730532363710901423619882192681263860727677437357679120279978633317388820673565592359855736351375377460185235853749081620519039778987798013508035625488077581626375312446843785082193533194624130470792768156149759703999830868820775419126243141275103917171422184148995137451434544565911731175192193457539360227376403533486316267174269637784951181981704037245224577202301998166438395122036391318735610592004958045886634602525814101598358827512199586488274902475439227636432911796314539826529370254854902141353189180187133230245602739643021095694734166300799680634934580832628654926534627046336943634548969917850718676488361212821601284083678341470934584835590761047406166705213818849803742932628005379116050262907013266628516342337998002752251711823640507324257482183892631775932037250403530598605435660741707392903441438475393047345292959933486306957047280766844392820005824864386759248654286848158876192306930888886008987394308417119022706862638352873028245218057697062821188563612512372466764645411528888977763986998475096856419936593340997118027459442064273874579007377570094087753744901482196858114439358109669273064327209521587419495888636133786386259929631780698182958919875235567852131862090361240310147599600754224955960734455501347950330353371089837094847406564710304634335466862914830630513835957936369120765829208498076459694035983815136621642404816832414037063234903234803313737480594667681805066462981357202798637270010778578925658694494306987607444865101369189411468365593735972164215387727819353262727535613053029080107419487528331957442698370972894332500904525693622646425448460221694983170743256641273105896298455620442489605046466719883242307653244794588222007653252276688111488365004204361293465493278434423120578645850956439200127399034066428810458397953035623506479232909975640769034911419699848334945120728936453124884862753434324940231563509837204872605114763230626308079349489900568551790329304845032948074383452289755045355830534717800357903948254726575810014931038967288936071746414688452114446331877936105185883765580904090979095441399319085743486976633611024878586284460438282527946518312227771033048331426002054735884545735554892663281774724464525940066116779906700998940448389030453117049895499467565745731287893355786335017204122539172220896608374732304211096485741749105019452668297231752835440198481751632864926705501347720551686803325331854908779289856931383875102589040701714744786355339684410361879078798979479181397005896248245881162200667264435562793489323080807503891467844693810557317948658527944798341715660484056449292045195953500599789943468014378749088423524201444040950701728815523765676941774355567499081301009095840694994626418342254380527759023533189702996536436541276026552105146837970207142864329797261607917478700070611641467542224087504142205697875484427411667362158564984707948019004741052243043325147913680776585548171782932569982667319128666091529893055512301618904835536940261365465913074272470208473803189481814799023273607783062839435706318815264186261737413490213534604809418402222079661188406319741342007972834603713125924013250237823910744208302798829636670933295532469108564502725413735498147673952481051806548372441402724011695673303392289119159697664204729903726534714241983073644799802278588424301222653478746250085971161182652043293095757269753772144199088617299543373994650918920492752941648699265334386659476130709067787833691866423504652276602061330827628150611080167083388158233064252321904236588842035834173057719261306714654725241380006639288250550887772099801460836913793211557779165614855089611225819059700706166003667039538555609172619555753221450991003386048449913673007297914906357128993275754772375052839546888056257052914918058191329232200228256919175671068354490402644108298455058415488160823858879959692905016342928603331586449720350126840560995336012606335627627557191069685480835957258218027135416267493861300079380535528479102280796762821452534211598984792546313384560076137790904352489096199452708458827659859680621500017490796727911318823520420740441023996185502211366547825239532903362601128604764149114010483024556732503397401289649868761699845750371249739671727470657657501897507497876506888050650325749886786466826341810932206400228891628628454227343254740170743736001095850028021251840922398374730991189239880472605329398228286795696660777060074160145335858304174903523858122743614066588048191845443176447299128940739214373777313969774041688773989470200514579790135441160359248759646863505655950999265870337830817903015125060090898899225195721153359044424858847739537105926707203328466783181958792575040033180941432056046074836256397301020998632117273508000070664710151552525032398764396701195140593840863655366407330462964650684678383302985647496919144765683926453423277999571675396017080508109943367633779031584473463101843840800948889916404623328741291255052206546547660009612681344841259084973791274638483805634553924734054357461241354431578667558650483176419626006418075915501301090672112841877682638438685703081051143112910353352160927591896329966278138001685641079527892368584759872060509270416870057731497825771662856992504541006632407437216890166899462216080294332469811380660659265147372143393660217646490098324504511063590941639910874663627248143301075235352823493928224347624658803950391727195146697121399537074475760444392276119787889910859901983939428676018474762366154974497681882179530352395471890605489748693009655390379803602467980588357024490873323939544752487917532568886897438348724692327268256368852857636230880422097746775158797423973096298367926031803827678070716817495988636132143507758188436462121819859528861057635846592314358102748380282634339186865832037701953546338847135365541757635107444743722897410406043533882201034883826777581034259044450635355401344018219850540065514266595327318184042195640064166970729115926892861099085178169398939932616716321797386251902355966419135253013710491842412806439614208906862165158785185223051490647871651103475702318709027828829371704883100807584209222667158930598990299269244992439704874941892720577708400501320110700297569726544059742009161559655570588630163288009605226924223023283247526100490267013451307713169472661205007082333590948682784383493546812194438637861587783695496117177501763492285496092297658011184942650546974268564704001338427432565239370805558045947323858309368122879740580718742810067186183503284640407119183951675475413750576778239029367508869930038637546105698959736249503099937888770240267590983737971885233119349030169740324854802249153476118895285844206491659444132393971535701901753490805252566793702316180025799786613864461984623899189739837398526488348418460011585858740626971088913832756342042543170584389863122298313295555312831666085697006823568041627955225893736203893662030933142535232816968348135507239140970636509071288849195639531969314379733942909152415343713706949049210858837648158887873249777163473628632888719228077434419238643207584704824789835219650639829271162499464858692899802138537975869183773369507368550561765867061243440259030173075638985204292349819740311742020704644458921095994376855683094625171563126340061931301261196961448415259568805388840708657195523411092622388550429099842877276791938147287789836368395930350757001366703568126885388430977275771778175143120901061199419912501026495987413099167827493330384877884985205615651578507440112398987468133537200355036829370709575368766500570119645684262972457755292083506055533016256049902551061794752262891623099730163542145547995272037620575863538211567325957087340638430638109789546334695025841705877611516244600038610493871841558159072238825680206959815158062490750085480166348401575375816571109977086447071328932811350266568756382031814828250715382991915726797648728668060214988273337901456351651845986577970372496243827847420431598512679839558731461469274068740331191400118444069933062101368422596209572081660823496640965183136505063707821277908498324592859461806170659883036739227455400895460752283778966248319115305113079466189147242407385475458289847508188164644922978955748768341258370942379954276481315562334384592571699371037683691244782133769802892499507913169799431656388485800203763245561491499803311982642518007994215384386234714231794055430129458106215776655625262287914268721133234602554407959420101896246606772867178659095923988654910047463776436526199738422884815056367584450329560471941653224370403107245085322792211246047116396948155934598985993869365389691197164667325156891239563371580196880832712133352467741631661139575912522809406324933902782935817822110121430138113325753141285558670429872147492134026389706615617089453012131171092184785383715993155838133791367470048583406816626680777166613421197303657753843398197284677631374402999849977701617707684265618367471994999172472395726534985023651025536012987365722194002818609342473045113957859481085362995628195651768712093378903962944949701355145020801117975959794156902378090019459248779933117557319549260409894621839104684910765840376392439873569163062303726825414741570099376423209365154065398707990994167318115835211241484175024126633600600948761535374206372115765636933085050987467299490604527884777180088752752853728764876729701455004554891016790085322402883440224208534165369137912599902560750269628261839013138674163530929835485130243267370366893772457007586250757329829892156154822936992828429429698302311922571218225682947209703766935899407225522202824539720085578532984802518659125947758655118390278542558675759911549418263550752168757264129138073221746930806697381174815695074510658915416386895441372046856294762216665522713383838432861107463739952654809202762881611744836567832203673489074630478425543297326149953008210497235958305809644960241571146926377090816385552121958767622646575476458423972178356945855942161985888867372405060785085897419038682469187134208636252353126500317461240748313968238460503328152416211378880666153038917968874556581375003065257666911265917202091296756513820597507629692548341459364286518486708251218826346800543107224320236182692267129578760525034790466377352750782320503591831995233930546555221295885261883595695318160134596065332852239679286292320801146474734336325396367552758389629729101985712136972056637726242284885790278732919797314791150425315610910633368302226290883538488997919303457304213624957438530343137573559785138435081462348421783450732567386185134139728908009536716525390710067459343414663178327245617781899981818784851057811682407119408907722559044651929328340288835802855758988971240137124017577391462765595277292166854466067030419754431156381171466869294988950842415299982054381520307531456175822239615899034157582540572787426852038549716412633630611787066780925822323080106179188506504295050362003237311421168250689980660424847168425116436018558462564904345140468837769084669067334944941351770966316239311739073504702956765805711644671975670409650844302084556665193524053079581639572020286833515077156516343419736274560375836063470355059290448673071354793636510702109322273691774591108756213317954598963762872157373812698164193847180858445638681156989299986225182223808800177195404291607579194077071254885124327380347224218852596608523411406265658458351673589706204794654982942700440904470577904152059865713230873970720777670102315375292062456653279562887277209236470774161877047012099166624755448308233447282123094062292273807669230215447270301461024602977459191884447322410699221989309392286295275150677473176778536935109526669641036268914542963158289828485039458762933247585518712382260774248204023814468292697494533312942521805675505370954246216492552839654559466044297342000361720465370083313845641172120195269044431522041414496517658467024896353631895334464261479353496032184424063604049944255021655330448779798449298950482035786406736646486241990175730179303178766203317609545295322879395722997310310064638514860165787030835294394716403334345660978819150937226803931732725331781534287548783749824073776937018477112575464766704381198832664263236126543964349867680509730255809566450694565323041312744682714844248261584635096126959641345908151218351209219094986283374343266504936366889774890864315967295736551346193261682048648253340695657892865838732518325198898775762027911413139040845317023895673181499166450656361927304998026975133684503603287679935561222203591870873143371700500094356570575373895564725830603781224668684280789295377541817247929423510032724528199044396892584969022169729984124617415217797015001404945421165771007356208668675679495744270536583075212841856516948757665670714897738547629223614092703184519769430232827049617621857960087031108580398248550774807422317401414114590884190673317790785672562064164116403600192266269049057159423351937074106172034485890488815370888949420818589370706358489392872884786344741110507948584804175488494257894231463056042344595976593654707446725607048458600122834186448953929694875228374617694079596669641821705295897197204368525860808401504030894604782764350517677317856784302512292177224559425338721230926557576820433897673552648614284633263714318922839221678676245630172855324691099171917553561330702881193003520793366222818961565610447834769413170302754009484327567631311767376709674036918433140479623559982118819542705220259464260395912516386535096158047439041408115746916832486160133544553323853912353120077530642626892837737203017866348127092265003088715296682776701226500636480628512141905187996637036057416390905403458198318214401746992414542460957864367340348261401520262067625337568783334432483606845038349763660588001773902440746743189009052363557520427009840411505896857394087961064834217244184516115934858233781216664428435011683386467099634237266613624499784651791868879662292901762965541777759032721200549076780694112768023923102664499518517390069122540417556570850245566326669966799780619849335998253739211180926258563359138284739703157450551025531741813400591842117894373898665732889967210137001667155101985550426113457592775891496066751103772468980565965731810219534122324623392803902853764247191597503430515109761663648456203634982212504263134468685429394215872041345847543695323504165368922577599021414270907503380114251237280456800717938676261662602317341504152557532917227994670393820905457479295602485487723962578834997561894790985167462481299639785381510635732150781466611906662189540359703210794274607445427747055909699139472328582094481116286044085987830449043531383266045840478499342462017635939691759128733738347441697162315975436718803195148387046714120637605737492550916096677084371729349911144550715714087889135689562654938997510583453768609028230425567154593626287362451312038181799554504580544040673894913060483892635568653128698661521401535267588238114071174285150409537688432901522948148997288590454601830614436471281384451649182821455313118602982434447718190554131363129093612704797436572524444533114897827106315373637633599687056912553502186652386170671399443422516544824523914048611194904959241823356356710933479426189418102277576637952638266335969695000001316563030797329404158531122635048568474924191537655221527753258161183370828567185676402149812408906485117952347245903275597061145680217175626998923927444957649666820500137461654561539881202734153726987527137829807820128303712147131901298526169994031053019559372546730480062100682714015387459952758977138845492821607100196940966401072287610822295005143734701646879014579862451594348783123089803353364146844296460978213160018917049793068303865216818294215859969188933892048309206661934960693060935000180495193218181593214507033265068387659827330342767302273965642666962917808043302522451162662953741878950583552354175406995128870154145123421464033245704672218407559694780702669623759756558043463364514975755259028952409747342794306371298564521731093005584969794236447512198881647139917089381697192257386803905182339420492855213810722243619925348853467660720365983088961406833457456370979727046736082483791793341334271041750247780394036865695611649577590703765691046663434230218834275499291030778591918797596277762354918323598507372228381031375579657469410260713824039558778011230782616798505089277179320239709178685004734824111355709397854873259581401376523949579281045230982101657873840202999879761883101127056665660980424052448856041570781850093237516225110847989172954383141982480220224081103239384356274890062743977905401287534720015891223198095081965481707041533661814933427468649820432678105434197437466636179655055434914363309399090017211410234392267047175631966841404176115049000596908192550840007587524519637895418707750119404753516513800024050032154189770182651751569680630472839433745288852199301498656462691263390088785648238963888576484036336069774959465422220519715642146573917205458190084273833656048243220148921788644692996201030718465291462075106502832538982040022818782083054290629552127650070765457534669786595927994188201005133826942594708342737051907677336731330995952653554929490303379416276384966785148504781786020059722464864668367995187506290483192911332655236551152096897935921224194017801996109766995336316686788380496917564324836733385127789608074493547737667913457653930695348894292106092003547864693360231399099152098209587042815483548505571117406528126582005649025503266823675896997356948058894481158197824905667063890733219208005345472044805736722916573060022286354695858106462432232005031451278569591737669028832185030662549568589672704249543922822050410088076960947070710433229014107968056887395982748201673810436798271049930839412496057342423577544827588090084282229842672144826644690847359382676143200323890292905994847587737492193952216539507930169871367183427857081970747872677062108404851694689203463642256849648724013016851752584392760683948074638401246016425176084811453773649052831607298184585116642879187312271417483783812687020818271404808825491330281241126111597258954175639299465829658429255211405161734014477183049717628641221781954081672795663793324827693411613490216851885594371257627344263697268959100867183510542465787243836487394532296698250596991182555307278368400775895225759277894622899162104652556165690934756440749491657848159215980583605978023086971171823933908465482100695360297911065196258307635104974048945254682716260591497641400163220120132930877057685250539326414919858640472011637120296223246550212511474936863196828703231876658163360568750535936877240017717696763034507056703606101581607498948814687859891192627578998318883965694500808245850046738657953904363793571870462644671239257008027079272079310278944814211187826890059943531912800820167928961811312593977710958894142370079885798150815725736754068835720696982517344876518397631310870680301628905579695734392609366021547629062800516557223856312204433677584128020026752978839733752000632439392548474230734240550882938245453618358616436075859291407161064809735313712644569448449355082957991679771358823028219191185367717412331362595284852080282594898903333201673792040046921381763464200074530165681634568940289474881290400457535790227061934017718295411351972751914149189671312976163256355177262577338943020669203079037662466761695413000129616241975294003534090313433202689081773385300352465664077520595868693893002720024505231958650393029118854374903117503463846037471058900194650717962989765569945470817950528723366576613865577523879308607842705262498358999194621224044887345211298265797214209942060645200485530540265848411063859791359930299748212901790866297189945600778504508448909605939589073334110407936687137736948454211889434850159102828318919663155989870364575131960918163526921445702482604366640838896920996123470344543982670507502012126111614256699415102606308159309166502659354057831057031853424632621230698000541846607221457263475330290320313295825593198664770013593534165512661177455709051217015999941650219172301433649461496941927398315067020731383272672099993310360410350842824501504699123535802785041004992978326681268254396946371049932443929960780408108023628014202403275140058080146860416837346191018976352140674749031369237891390808150059992093643009617504748290560100750659139366536757919094749846712047960016322786982141563389514790691011468013869877720049929279252106713968234466211702685048795011524229136607928675857179050560070450476969604951140368557715004348858533037073078996488455913098072705559355100941104427347524061381896659703893894650591948247121390246357592024174586831457075466155615215729200753660127606793556845676938314884304718080225888253944903563255175088149851807699496043340506037650677997437805771142277609256475777006224476732461414506266314900483589532891226006439286749375228492527812887580451220579465011195969009658779301357231146987426848914559237883587936316179779812128434980888339476406391473057699137983644107692373012169714904166426442774195719318308234324989974453471102101231572535628538795184715365206023941717492944618195981896819735286352975849153506090189023861725458339679135888192690676043534172611754903479478663363718110329200818727793254563260448237511039847868689033364738423596674789031962190405842977451400490753799758050046673913783183544179200031642431732584763707412789776251256756937728633753626691314145239354099713629234211261075821031264725411228567681877398539143905280974680900207878087205002391825768085080569759519599442538304441409456657098680723914589780449667721726954253268952773391195615285201874588236624669297007577656043398943942136688454495436895896421067266432839872555258366328126935699455777177026248091369289485586559670085217413923500083923622517099955904320190426213940934446716221437548087029528199200123053807922849882454609783401554573555978436150100648462744872056608209331926824101068934081445889841990218646885470376212063412544635012525836306851872699587674713531323193167763394603952523928772791843226370916738991900516724222220209461625232184091642403692161651798019219831533059398764169037941005610567026823687412665691727911868463004792689984268576455024307577493695121027614941423651174613808523520996982154796786802459529125476381727693723794375642816833246231122611577474342250807287039026790620392427173584758225851072659385494218953460220889857486932543425492569261624752183251455679493725943903610073503398024181465439179166763965422568243336625854431311228242733400819235373772648231263380340042393879484841289137439042100236057800039460518499123844868060989624389517269234863798375746465231055201376892466710086232555682421948589770868513440853145386498862778981967002934962064519085325818213206571001451337068159648569216588898307858791643746632806848232438470672696507025926983684491607094931824969389597411549627862734396685323513798301311184419111148818695261891014130989383403270354436802874692410198559861700036883947797392550562131089553603710750402136376614885566989304459199731207724704234907113805103522870862872467623646065484157184204496732742868639703583591971144466833503729138862130676757345514776186581020495339861758706975528184698854493766880643645338195483723471234661705904364412340017054497815320479753783231662420431861494415109554639917713244524534201113447340230360288196458543476549278560630761247368905254578118151510966538151972307038377156478586069300627313083809267056731868011040098505733253738266400912134687606116722300482302006616341475719570634187267343088349077278753500957878317863611140495651783417853727167352699232541186317414866104917072184190414993126738663687215480692502927637113405822878640739848748988115041940688141877273942263092721797569876274990108719299502479095427458889177074295929612513481158045239767349008305349636137468977572364747115135984590828430317698554732506389715212672394025479852319978727824852731329516447234191345972425741777330861185392169299339996732289305639895965340862506479215820247721478544298779751845429870859518139647011462312598056238994463117419761742432202336398213110084267810146686271340191736534651887581298660984322199055347031847542248584694375889818784771545966222672016888481234604709725232400960368333975074443260745625940982490263168473143877167829584891736555765260808212764944058029168869060337903752678617015100567389246427708364579320924849189907995704357296220757323953710459238639214959877353220679103516765956984830827667244498143869638323409008041565774675819965880997958274492730011588433336447278133230017333600057797714840751976211458094399433359399316842631065157767905926954539148681988147248813012504175516876477256580947282386495360226734006286114767217715281530436507404854310072258014878337635926001358797952628892118450195351431069933599311744974770940620577407203611677535153875358600260746797814358841089602314127104379659238511870312467136040219981330284720649219309469789011693780116559396049942279183917158802172604005091925080920950611241782044834478880283695576567942800628627217393266831054175081249070064367857240210695044150777823228950697678600182052946548893270515994919658695391213410264708392244486991082633215573294719743353162589742573682480588096980975585875036884156464480735159829114304063215915618069375491655437860035509780217367632483836420414592407044236575008383704993468640206242111824522988101680352377805792018789219359352841135455752173131033885812214356827719657737163571579643416789423896549511204590988491158032994797085236648190216701941731899511368795260327410945420488469516836446664386172774225569956105536232096927048509555982367378527385643436396047086407561790916966939686270319001055780962347668874800415321874326709258725084684968521891287646131085943375880101461034706376320939429091129720081212945374367970010618157770566189010085110104233316422955911732631443249477885038063490049417906519060832468745329331515206243121115727454765799976442884799558547555300937619183021143540126548413117136239582987991089062030874227475364696291548669664735954554323165770968569894859897932260409924265102749163067144187851139320920439225883768812255232564630772345515961157028433141707203466839000575655155332748163114781570759807561603636657460020258893968026148156717381131903451518999137917170191346659260482715468093244430327902559767801766459192348929392466506040703942008448264664581254952536827878088044733099151776846586603599871871848890790222133230251128467290138189565074090262397681787649059397996484979564254844430709113542296959966971022310415864544757901642282888212814030510758982398266485286047426973125464261400289245077851523043933836312391802189437558097610709854241655319342890758016506965349892455571052600444014723869311698279886213536872306084868437803450433783740920926807395612917795388126940558147790793179123624624527915458201022642756057504588468949832620405380005566229904455379112403450970615856032963670206720982730395283904251031909366542032072042136184298612945788185356718747308186163066645353519042230339070428122921392382388344267625205141403372129627638924003432224473418073933636785800586792565283482682413296329243675727882941325970451484020274839859247146819773363166059289864873050709618310000568672945574765521476270020500631737897198766727387062367654648024327532706512587405042931495710334165894680607796922111492554114673190992821279403087684680537343328208511330719732798446705731731561414107321495233597733999593252271742722307315041694939489511019795158258462435003393482377072336676232797501095453571095520612356663435695156760858612945255441427379664081612007199618493074915175699695199328641397396436618141348884302723743635035225561045496273070329193306877585008417436384752369928328535080043289299891799698024482355350802581822265952139699175932219147187579144949710357657567072398521932328382681491049533770021121575360309127436836739150962621090681628663343568517909668685841153245356704578791916097988314194166218005301762774340963745024230513322544367756820480612106808812769796818795429077803079389309572225732301870604421018578108074839525037245036287264282656468347162857718230920103106334958721856469346277742942987314781040044435200250883595609550484136313914687269615047504682936484356265497996323335668881698801405835729344704184214183551140368278649896012828232266636460979169563119504796972433437360635979041857575503972601740895570308206278133640730391884950352270231933605734464671528896448272019604096302341885425385373782357951685210705145454788099853014339870416226552188873846951835919474146123513697869101122459874051101439113159463909122397513972582278626460252902473800312868840043319405945769668949029988918559970858943540924212651039272460173040670078519974268469184289729337942090873680885328206305663973125923940247312631776031427202554377570048702343066356488527017261627699390459591661677716291528311737423452846322659973419600882718210551738895343128802732322163280423217404531946946314503149493155912096510677358800696302054825759765861958326199790969804487745229377262171310302992442498951031256845245119317613080832352808585853607065030811412552460572580515614066651055820435021343847503495359303720598312157137210495264547710564457438507941858392115228272036435362196171303925385305843629973271923410264277218931874933242425747359733866943445020786283320017239670865954992227915326112345014377398668595395789112906857521094469128046330263141723199838203652081259943150287312404098160746236366738642904524045899286893394562968587090621951123848497933966313190849481420581919579960237106184474649118980980501551621822629990641484812327052595399101491956454657099158802887625692067667756050445757944804646642343880346681611376465306191922993930098612869113765133198523366003840000724286372950004848766792417471929558611146195509707734107424695073345665907250500060049255974059010652136560625488132846992177887765851804236378807275678665178673922634252798699068072364013681004901702347554527457158813014711998643387786885181901304502792381346498950257583939497473641343420722301212285309080832865552546119958554475699369130882750519508808375051291489779378180995921624117624893481592014615011946212713116792786474621889567360095183738116376587365550474486134269480906937368891680638642949518869076408549523262903188281922934247453143453217257787474643074831245702041202048765041226923386730520981144909181310121335701698613487747910822193475294253402739086088677963314387215089484738055352241253919484146551529474230295286580960616070826005107965750448260167966323370442359948382052294178619037592814103111833638725352962995396155738840124999751945593891737996206710770214957490679946361490285010414467216424714286662316519394150604435776492254593427626073619970697086063802412071714845923583499686793066530151218077850844577577929730192697883221022511961161220332523791763421986165419720510499428944041419084547249913462813647206018287516497941373840302265666350635652769887633085832947266641467032782434641822593478690098305236458017348623566390211865382898418264105222202064315121510259883449290063186647624970335426383280191347874192809789787460935500086871105092376591714624064115498648065635070263287661562072691911405663182736180126926751282113528772284235389370696467185841930425182564829691247629686230661136429005950443430767322981534260296530477473161979164064721255097319138677128900130748688737986427085577167303621547408553602012716418180750415419098477066788989213594967806982544664389175696551042067083690634148730945192523414454385312402959312285101903124171126386027725649945621370743883925936954419682105090196431438397069420184136763068529838469760423682014146241930196185229097708477358698525615945950071096610723588661917032463310542346561247254292012743066638919915309841067312363290112884110979836927392264425850322075021508939678087853642350191124790672881546103505785833443852073251915846717230104099104512640408238612772209815964236042947401950495552158182707774836826231228723866906999750155441607950402163160656781136094366203993644626991448119830357489128282355381332470226953188845196377599754125523321974602774381506676450594916421958031825151960473140705949489021702298282432703737976226762630590188772982117584403122162757981834378847597525995479255193548639522920733274861484662139297187299554337960350630847120711181854632305979525964446914841290521239901608399444059039829564885876403630461120913475922995803599022182705188466021031898808215326743752040198740085557794903326760562078863749376098404112789423322041100805337666107825003793444200826182124536457692622484254464626509469693407456617557977276061670526088412986669957416759592284679416693845716638293536248110539473031570281405282619402635379213765776200478628475663523171621338671090293320285478335545093074811076161237946461047929027711720420067738768038833772121086187685503330340499453398684455991418082671842660374559245413239368648518419635145406566407220466960204848282377820000704912442124759743568284724139498920519748945691866075489901528162806861956991314364983080104921569271098898153041910661309031926258580458832991840297326965157271363788711594165342667095974670154322591411969030107688119380120815612909803885667947422035976926390235383915025529545775391018064907493223913005958680534168864708981006823710754915778633526006360266869058366982374170185732920311291052140308305252656842186980478442990719410226180816738199281572463071737148224907148322404828630743137974932270000321842271471892584620864999270819036701060356748852548635845295838755444667852672975501560722696214860937307794805273576738296145852800442799206754339089053864052663603649660675125736659956305139570952981023278210844462397981914886491534224780282074050113505564765522301136528627833740480140927159377120732546401477399591591314667733551322343708017888444557176613637631295241935147551597907959061911703985309262240197395878383482410720674651308780741522819408239740367887305219041314260397553572433359220032142528023579282712854956448442389735768597980059307030989997944652593082441665357362265268865491311546138165926357737195295917187078138659956593932850684970863214452035782764262031271174591286157294461472323738420362891474938503566010901133241625254253838386788722819608525696772408583305704086308331473753603291079795453253921226664910615863819962708532942723146109960013832282371046024387983223578169844588449761907086316873694795336822264161849045817636280069765206464812226457597264532228707304010571882704358851193692335166340036002053812148659481515153407007815851317860729608526970905631749719454171682026354046344582529289021504010620015258728445231052639842451726944607328837380350512506951396348565826650669774817122242088578113995669721624341836225024303114762237857688365373219425840578344340313946594843712101533912379468650528869815017902750274780049419333944531896632273559694243946292211141976125677086660979347917943377299744857424532463366204221618500664419239267690445174919343656900787163704985774259259970875642146432690290051088853666328782704085926756213561013610141178819761305119960817438939635619075893665962930742911869475039925914575080093224162096069835156956009395736071581330477003972753884028066952384684394128634474508897319274876839692209285341169226873073115034146849435475405165906223367761421924576404221406460077944233711705809883763550858646036497238044521542086559985633510983988362132853787316922112439492956908433222541373302181467421202607230420368510498211275748926222691078824391450285990532914919794581748543346347617367380309037204036340399593537546035838788191898155338240431817303926559087022489882131338685148004235012470921567975256749162924208061737611663114172287487798360395530426157988834255970434556993332621021640939504777872164854400543044192461129031720916333253826525359401496084339333236806874774924649428934888465274324135531410209278917989809197425293069592440133732249950439458151159242605932904770539526429099161786200239887552283447149022755396175195536438349770534713289750624665054641239311991019304488667408795345684534090139162431035218977339248975449978694046904115094408690299592376026662612780450921922930403765762602138664451969069699384907191752991065956076928058563353079363246914167217151539939369477221854170206680307977436871990533624713747807701926098174504780509254520208204990015318817113960203743599853676266303170980661967641110773381793540397689425350082082907175246091293627908795990916043202829768402563596160516104460550272375533592798544963272758157813638836227193008504474412639384284533021385790344249710070063167531070781306486077051084884677102267593959628805823742270792807740427303795526633565839222341902466846597051445253318541819755075223305728494170614566033956996581024052122842104530583334594929629204501769398787174279809193372536714162300863244330792199556364871808711561989967907448910335254612707311743286558721675955122151061862436832061099817509741758788212705128711180681491927193222477905442076811567289245845604240305540885295095532798617685591782022032643069879484208691387179263063413853616050365850842330757063633802680258554903920498284746530243168688416558749278926782732120959193423160227004098553152338701234463176363119051167421034472376468857140971589062953480157406533512070620117909153514368195573109239210920880069540850275942671180249308339530627002686436755186528948380251904854810390422438786197578912358576339502769527779134335196258879884019534225732086619705170818705541648597318369579067969593225267775742174457646692912715091755988966996218428997966156892158098114107747879674677626506726725604671212640740114501823775690518989591707971354572553617486184676900171888354751884014463044965938559811205490977316020337617327605690110519522077425412122158994734178477644570694261246359147420581956841071767630131649657694847565807923668371256042550256589720559632240895623582785097799682496879308123893439324378469633263782025753848711874782576155905396586234397965118650683360411064136983645288600526285750715941319633155014494927834969345830694800315276411990695581192816582410242616791637915396952934712228023475390029464969750163307924990264075289860796180665756269917193465636591065759447698127454829727526507996938288207535093647456486019235863178101796012844886357129477041458356844086908293149175511990479697214609838812434745838575926243907049151266367610575253546741406612844376031133514683067070149936508748152957497314212685779908991699986929204613350287194232917811577390805994480524753695070619120895678364689587847991245388261306821036033205803753875747968450809557608575332520046679684784824597349315500228610531771769424213203143900566776507552580097066920075249776901039083150893092844490006335273283882247735760722688279399169617792498814847935479466590841333083703771757463082616336065063018425601606835464764463413079110948974682027613428963158066580608873907097471373732134163963034182792984431716662075605489105326409496318538007346783538396101586904257344132583173387918202444635544874095922254016083243495495888529650034434090802556736508529120887063119737464369070756902665303879428524318857623009874310477802644300929773262741562346805947974996892484995519709023783967005364509370869034568306700204797242836888759611380915018656459544393321395421076533446868790396225789230883771450325524711111008935787329933033737840861289928753355444521229654316019028070901657467559400877805265654863154082376986524786530260552259629867261528981572597529291492472012401459716718723296958629208289513101919132125371320857593294004120659563204596569494759942495105854408528759454237171766457431500445370399147038146912564076731197426530205129187135106168482888451676329605104397642041548316303245720564143761004878433599015604721552382997054385698479772219158425563622259224547749922345306490671515295712855455927871658658539379275054430133581863741974091435113364137707090461530631716195534379182296397518044421350830224427388359832671428940622186029701388359968276807058324672948064275469163359000499847711409619264888661391260332061781840251823148385536203948456868064356059205114191639124154842112453748209680399875674666108514186563953086562545682120386083408937834548531494464095179803985029869364274954723511421860883937400433796580187390814179477345590186968471934396992830794534715161039857023963935269899967331743583197848112039694470092106075543073315173885965879259989513292214412696586618173057367382938706212999357465873971539049345182602191754833009985131804830993660187339835981816102949054824630320120358548173376075567215022946525853108353036337584939480498317351143289672213565793064715211728314032866809519265689669953017025342444617964781509265906412311479550271907693228686044170648918098822645682281990833024925850900455511294604038039337626666885328439925155423166919132291739109761051977969336643479098980559680455510397365836233093227716848454999156524328283115300460754216948183874454106955092732551263057718855710345920635823855915204248022384402565516855656679234948799287790350797128486996500822746313808919629243140348561869993932737359265592313413232330897360025492530174288470177263158333910917958006357622626408201770146941184403851403673436508887240100606801122039830438512013479486560854626029940055924357718660937798302977168020773752845226125672975245875438419133156198703338621324937281447756068255346162601094491690647408782803732293948530489159295188326164920812115965770956105210067312782494903452863007560792929986449944057478353886198445706423120880249258361921150663398411282430548272134640010285970095890759114394131440827797693290485946392332198954458098753630311097800222071584236413939881474282174664090216711786141133704824280009747565942042957558925790083516572357798405139824526142707776617507738984166125706119123804746778265449047059110255370253510853527934874924885798059834464258805761360986330858759205670779672260800631661709606843905984870864123872561475080654684282396087353731333222097726846508607323302910269655288894788781354188249199980940342385192173676886711602950196791579387921868005777536261759352084105640120530000101119703267801975100282151595235496344190297765250453137598199598565980487323899823412457608567557656076195946306886588751052498579246312915930056146918101655983725458000918942751123453366234672494287213341399675931857976562060877076334685248837760897652770833005888396306285144406428496299249485117587837456752524574793093701499980884971980475702661278273315540645765282339068139401219381366118769979946528159169147921163627489861848797191528263503414641528149704343220773437520038732750699481358208441915992296791042898745784422325496508767590301666433058854947211998355907476481571489586652511358228162602777654230526413011829204494672091378313815974633948676243397246947891740183509557661060858916108219273774679126557341307460015162284341951845378397214911665756176340322336166965740540530933217003048516598763242624868383242975966353115703489177482510180091853581460770923081379764690839489779949984932834283265915544601651814513575911059377198517737102465153468865371049202356684220668507425371603012551239944413822880133800327374580054744124159536337633485939811251665508273854503550112506048231815463991538831048435196427185177812850307944609328398224265757657694691754755302530197457061942034868010146567036757558786372927471626005005399674920893136437691861967399464447428103825821714326380632661264253809663558012855542706752486694474279937140241507392324231436009813120132709773717440329066424403406272011474166986725129305656884708917840091779413852302541127271450512547003488965031162007877935776405255960805120712681436912334391892829645771421042298602366598794280538968535250014913109256577629837762655698347505442555661254181273046643646021575794817155545897949960139600772673138796492918784093243843177868037279842009965054639862454526603057397414068372381267570626018986056390315710243079085109823989222988716525164130870318220975479013388711539927668433307862187409240901166018530690211166087599152180215340257148536639407256711282262291414536306620785628220495927619003613767185848549982441342965937548437852432992789674962757613903272452155218330976093096667707099942078339050071470431129937030959623655760045884884556657305104506526331316186189957165154663659296930320421972279716608751122845541271603309249268327010746390798699881222767753201188230386524162890884278662475627633486011922370258255512251325153552840439641148174118437926353883497058514017685868078723949959089085674278182512697612535091611762370372441672743985025683143795335673125739725109827248870380979021503951898096085641092241846863754882633377582532364812239397742136169612082591862942979050914123249263877803018112144679180885760658783841197663252668129486612428296042392535126968530273232289335622989952976483484767181782873457296795189269623000011126571428202903650954379818608973632116128471826596693296359700710549979184922606218669547720386387025722729004525441360358129640631910410013598667039863267371317481086658311007725190218703694043814938387100217824112870101243188876099574522896407871245508909148202928662109395258299185447806831388195205584300987272404459627099503678389234027093780161183983623056886753215149729595062481804883980875670074677754102469933188368428861795285275960484990201738910306405899681737868973061886538134393185158476775395713312399974107071817332515102575124803315875525472681700551018316803922648992119382366118630218873785329088643084248158773111345103105094582261447502222285734388170396631675300404618327306752668368088486890798440804236000299565431222612570699679630214899637465530670138978442181650214711529457685304868603070996111017037156315832570004861196464566482774181549465037187750052818792292859821129938191126732833052270525260094926963183508871394457394202970739194214268804927985331905993334971779677380508573030276794350052897886991216325897066034134629701450120229210376727410319618766497604663310512880153960083701346406890347230987376969882694528339248687721544175556765938734077408170126009017846941227681993268906512348041501097222225771987480547360561925018976692396687715388015673687286289919296835032441248445354818378928479745257416856645805072088810777732029398542617022756099513619765553857751231398557004719934859816766290364499065895703648274972236340901481261820621079413441065492021642161170121317622141902326753140208056292919211832445752001741579471344762207373041726799294268614242197651128211126829180424541903678516538080206844313859642912940336131884760624557123482018246294638630320698284890339672180083727041120643905720589618886998052640712872086647623294817545790886311589713697841798659851819335668076366128600808836901782572007669077577592449144038729371989922412812390862538750576876869886771368963869217815189579178128823131746434294613978739351376220433233944257730666495020980650968579365308277451416702547361687445796652162984719894382204833986291441728507838676268290461031921905706471666324644000139335321926100010717677979255055155847405751833235207670658589617396986161564828981887857788608026312398085034917959652319067662669609010030849961282013259757960421296437899069669724479331617655794593539789785536630729376606096236091920646967500135958957901477230956934261827283388399371511850115969515873738634989073785178441913423075597724309726394366207887708045137349829692630717757417867924199888532473241526257667050683538052562315240517982979501360237453423155269622223461357358754341764604396778600190867450234552057431627126565104164896194897939790551437649061636782943761362977401323281556841537100216313503733958400193644051053285731158158898156425220876570085137679321139499584259431121935422632070197948114991884858827669797536407162391866931606143502602820232752886206995765577762799384020335332043005744836901962677813901797257681332419497850643280792069561302935236538318114229973105558152306025211825980889903837605447636905882478468473516124887512043495736372864707289289253731950606873318942191129162867596373598925036031286733851120662604703903642468628568633368594246618301489502070742575786350462839543938090104887027637450478479585026627359117141986539221867315508218458232785128090980806396693005374070764572612307574830708870707806759723889282276585329302281757596105377536146118796207132357434082121134930204829941512699714134398466105849505496120710653512158432392922134829421300556163468094166762811879533979692777081359365349963829194178070200272959147111164205999657860095952684633294224414582698916969656400106568589147158257186696129670087358121589643123567071403446584060924447160620162358018306379935975258987017613034490417292961564003894470571982010281100035570492776045145611107832906957800561660444378066477618469359828011378337108960202961067066262776761912991188677357982444132723926054184093668149345049771196863688435985759002116230145053029746158524024654275731926595723183580212169412047047202620936308576013751416641938863592033998688888451327501489020996965651037224893157665843515666394999474958600435974531233684488470171021300670563758022404016695359156666097589108555879318209395577957521447223283974697932391516746654516361989059473537308215931669314692916427371696851102156375607208458612523904309678682331429627830667841804265234057035516007461666992862960294494252877596018241221426606081079575743469366184351623264779352117877180074944006852983820871024612596394696283033117595033371539831666313424478060090547552086042102461950658642113677184952165683466366346184186999245006585636779532419093808523796503550904772752903276846026727575592436449950341649665654240619081105833564516045609598661101859125076687586595255727029265263786666067163168206619557691829149134435251733374314504149092770417744712507666491532534149164849167501061770828753208638834876816358845766415459402640203408983887554722805691605645583003211598581448724804714022079738148765918156288063116026162509389550337028540676502379372411322356151860539293828298193799083171241938974320163291181313398750704687055563262375223303072595369978218714779751886281164165305117571956008877867719782550157168767659297744827034239297590436123161181501353934433581589308084941074265767069741705535193031608362313780015582519904389001163631102700568788581522127217587661841067435948915372952603333016497721206387252361161600431873736525222163611076534737514211342877861425480205480007693118014455466940381632811212062136657637902939401730314588515650767027884163706978949823286392813981081303920320811492580930781690826369606470188584298659068031708821502144711636294769114758655010238043222768673848583458191628490946441461001889458529205200055006763465613699992598685417024547219296706793004913685547032487740556868232026529030451725988462340860204824950236313529398992387921899436925801121291031287047197474599520264074657846416637188920687820055847978482410371012343283136897492056356985852273787661877505408959178357062285407321545249080587429836723430146105547322836623415277686812526412526150782162792902036401842840092719721799019487774235274846252041343307460873097497962438295088977562794849435586692340457231189078684943161450073295039441222862218317890390696947781774341936943399135078942929436828955754867924675647657302348316117597097834880901507594428055843875855503300301132557854073482227383136709475169308093507927136973278408614391175428367417767253097762420973466993023342725992099136828998040476410447313967501950443303066733405491187449984650318950892873400281799107022236524965485386325161072110935768637037687502947413778772500448480270145842667930330423684764151068480200810220604305097863343160090282005776816027286393321028137766508008288342238351778396984315045111130716262270306518215644162855689988858655288496074022171651390446268655838376917538092480717831908772000461828109310854437852482324435530581913687987410754382175510993999519379168909291896103938522722610892715875224308006064365544494951925181618937055829772746710499303800465101030480425012962042439642639856666414489982621174855308659268931012898989469354663256949854246088625592477761013374198079853243234047657841344738009224780263262192720763386312808409908292418424048403428188410946996937992558056863203555213969261083550593039922081315346871743122421484930313893469826195643990864479072062484662185859182856163856925945177594920905555107481048531582770224952296315395348784869304255926736632657016147363409799474705672255199660906827100748430886179557711476164134583346418721038326189721891094211025450987519444455908042890900015655808516138838184456261993601090697984418685598781606911938041783243942563614152223591002592864190267296600397745222385206529005057893758076490567719485577137863862210977782473994922793817636051015946334582670766310054507266535719078580080339455268846102964809438006813652966646317887079602278653778840282780833174926442992351915103054342789059399826470397992760753062467177313363513538494531334543550326643366544196069038575889569207437429237699826770686762763941336092286567022153369372189708045298623891761222857605573110313023350503873734989188184600788140633590077311810966283369250763462256806115034317906016872994683673143634179059135844276032070890504291023709912698365535860409976114217356228999881693075589148404372388162696843119796661871118029135008461334414614911744481083475101970689805937505081542989857701412949359254471945277412761204457994741084106281109508018942950768973045366916377763850752826752608786085662034107585645081232426611473546420162314787373708283480988150105484706521543815935221086392711616182801850752484006685096881678177358807552361433938520871828984392385048232628088752493193437302245559791976236868826742017964383804107493275315421167731618808861016558499776802388554195569809107516980055888727537555533891307082025111114517745754067289000388410099276646360668685916199634594294144126389300083377686660467579159063264284363838295736784115900824805051711856900513108732885845633608340000896627247944353994035434144024413277198779241857429306264782702884416475599486028457518409819656708910899388461625024893385128010596641903988075082206119487315429604935493904456911001463554455398776043040640876717316580230454310956861533864276674111653254894970432098494879474686735590895982245773529891868032530593220823587470208665795152263413616317789584935657133022050114855714555575639954699927881041285009490535347167275246960093981202533059656808662825550376146060435117387341108194251727912375368581027582919363921065916748682995846715568846624924998883929832225657483940689932137360196354109049488447471128755218904714644809771181978883665313370733853721614698464782635697454640967987642871128400133685144953148875888579491402403080479770961113757741745202186545231865787985375967155605389846433155348369415102938613113057601627580469673834802446417985696320918920336302884281339434521473634272385513914055490029897683116457967163837557721260580789571569950970490521992975401207478091496643168016919558212655718743991468082679859881363181047555481666314291034358387482575531400584929565976402500966394110338618196508120436034799113645378459183726529017130974756324809454970584754641421669954694837779557948500728127240843496738202465529109162143011179291532516542958074833659098489926548567511984183998881838110427701013691100198668719947747866401443596895443892914230447263149892578794370313356578062406223917049012461821292631397145496273549432816230861766756810491051678231578906351593307825235236069372863724551486779231524260945577284157598818116440864587063225680360226123900885218389562126856034825002538397778843706514078761876784457198339420555258924359647501424588220347144958540886938817071107567150686762335513520376638907276732012645574348436192610644938351483276283155699070946136075642279974641273849750743301222337794964201952645545429865719271642470677486572573281706719333766243132191739519361426660860949301193874714024815249301946094524065149430622125944651996733025827351701497393522794904729618850542183000999248751329667378755541493369716638274620271779425499064241122035803828747003405713951600099945482682974209240157983955205077739088907776179143034653597025477662263910761474504522560397827125671222034943956706172644555311664579824453667603887576732538290766323025158635627351563848688841967144895654659568768287241749221489519800762035437138428548839966379917124471884081884820488927871038629910719805971063417413056605810537352747967689142054583255825657128242628729935013968237909558930744984875259331119395596504997870032556969947733981917160739900724500805507385177930143386333082916332565167967097892073291267705847080032029732935320113137194021448814117520907907780402812000626745441477543803149075926815049172589705816167525396802903669448218649066445062694763577676403998966072140330769704941010931622778030898627074115850545701881242049881982160764120839955398540687709844433218392800040154147512047944312815629959642768250199312816375396013430327065821726739433110350213702893634518233763572729236244611763600113808125283829715182288792952273279861766185381113453394547286052220960421085258143857722285700112222662657160826826267354082564579823357067943753283893282125480173364347747128134053017829325123272547702351547827288112862599522441215783606698694033869603456791527940327740633247430654176697855093056988773704961236618543171432688225933105557800132807268637990653886602610242046377366234438129313973517766960597476195951477560163329349149132888398588611045251780513376801139390035856515071888277836692089594792410050399060825335286168584108003104513971719694375897777310600836815134065521456067408100774964128814302085166791075956452639296026947999910132944165326678740236282002159162891189310530889202677674658175453851185595286345608453746614332110858679883014345169299867490577889159475605238477103800458752976523833081923382939885522117588617034439212352699458216307975105614975694255490678438919312044059743530965497794736982644639169861877683487935666045811116850362501034606765259130406903412749578948597809193631922592812940790544455188798560548360644572943765724584031119154465101511675365304375372841683177437315741009773870754837200159562760563215328339979643487937684715977915683932313438596191270026830966038414028340124875442365143189141324002545625136880679756108738531587934634545147869472812166174020462173542627388319103997347464363916265281094317380793848877537650063267359685993422684929770747175465722384280818923589683191909168970919873109833000287903119888012725934186765851238477692591463485200568113245647813728955346373016812188358413758803395077975549211324705899965475047756647474588317759876570332051307889981630456424282723139665834312920120021726823177408770558149593802694004556240265981297437653490221262167632339969538132266230726197581544665255872985371120466269233533793492619318421198240367827808618376831111144577848468158392005163686789113167301945403183708690481128703583767410198837779563632520188130009509577743414102928404979084711506007333777011255056298399372470065391532285487413539230074200674654501441663900853175197467845003135248892871786220621935937910426926057099926588735542412587440874290359686692040486128510948593614027627964202715723511952769164685308047052998547285872261872948808239158722893985313337135220213818145268392683743258290384382632172622620019559959808454160416567045313516910519070142174906278632113851519084967819241406161134890867526249745921014082069926401183966080924257057866673089332531144633788808751248442898122823597064675194506928568884302368725240028926154727580579571764817933291344897823013882268440278546894220152911984254235720576337579887890757842970521316532779128380140670251393401833387216582254378661485423260846215263008980710455205118822099147685233299026704527260676707038233391140459472492848773923116306065866130394245907140836130712115996414131343951214470947963200919763540313814171172840092275264083609245147696265094559325005857339360272407852530092024349774830212875710029990651479243761899609365241004479726782904838518533659914751641761456500953493709020988686209379029406369070465442730802127871490402957587291683192851396100020259303121089949654796631143713684498269583751471857914726937573795395887504577606922318290235325810700700010709101837287520031794087680714642921408542932135225519473620181216957469911572518328534661349467317505930800219287838352104753978104250541466024419749803045418957429299901186673828720398865012316282906076423177935249660840070916102119764243772555209188685276447379407305472068387701308877618749136767944627794999495510348014280972435325663217309691564703359978602892485048806005353294329352949138408439211226284911330611688006681281669348837808475846388855698018241185758157105142094312132215557966017125675089101187675685615435860025334971702779214461462669859418185630784435244692701817249060337722908360981863601554113521206870198737048896038123815314074674083715965087654121264013368002182894539294571388742862502740933215372040515771335986714747828611586065893322439802724338742603400771720141580080040037345897325488154744656434538061619999777415822026374690710837893531418441996556113924704212179661345875480454579605529963440761429868780079656649690780543858910983541838424160501320748948970476543603736675357650298578964195951122044495791208298109060712427708907325089650950131645446874761620919839814790530852518674348799631344914820408447651616427787433156872291766194879442015027128682722351720246831991131730147181587375725227147767693019617429432391672874259361809861681810795842286620544882679767912436487918600167621830240771819457092733211845805516508854603327060166364254643746973261298136157050972028038135981559768152283353055680599354177970048839406230559481880156653074086181210169349378917945856614260040857112991515578191692847672378260228912084064903530182781608771629578547513830114506438172541278653227752423075559181066797969671906773484956864828008825960865761821522241799962614203048047891284003606073723670562850716741308790369482483892694130450078831335812034900201744812777577797929229910274424615863257077135225952825352832243732847714395406893211282705148115803044517845326352674339350097896432359380588605458747902899527954256576332082481907480866101735519538068418382307446801639953102009294793827948359769234621153298831680814985730400437125954665829533668468561311291379633025886582709801164037463641847464025254173629475523786773981523878493888341342529867155094502270752357959559827639842692460371827637405893382276954932760819810497170493101517147235276521467999682600302627418110123945903743251055117626219153040203945491175148199705087394619644990521523676491000233522370420118803105444890987035394452621796938177970793168599179354586917017298327360227452739357353991598051821632981936030461910634594641169442593609707466464785915232698110427168917585855333548244075463980310292965278110825226967112158601632691202364653034384326433038905344979595501813205632945144612234578854972298161235424749514280718657309676209438030154859679555785627544351472396188590961992832149350745963362017662693259595918112035714706557517875756068880190306304168359458413038292041149631796881350482757863241015230059678384621890151635545035999050817126243883949923383880148965046067528629082446280014142104376011881123039173494060573968249101230040971837630407838569521185210875035167038356094243961815330727845986125148640416555299039029690766485864083836333456490538031790395595557080886886828958630526005497684434044838494437492594421592219941505002531143733823482046060789604981142711746078259831493243252048952930691976487232756045096807749728415680230025626584087588144355881526759075835735262787220265783623793081549324221483820763586100230122906707383816508404875418091956947924743824482966030829971344049422355541582028371429104179685525934691996771550298493157077218042470986427878959080222136085137407053744431815979459905912132785622978189409005152414499293187821339333577721220140238648115288672470432499211038895760432324426697885959531998083216038278198195651504115475735242859306601057378583241786825470373398414696874810779463058640476175404150490973705775559491004057210006399101888787229671946995926608752260657332966382292577407143195703154343477559259723694880137104387057065638872350601846032149480783364871922160959302782500675877969218803640013806638817957501536530421091319432120120661898661852851147047642467689039246432753217814503590326352944722915357968041682386798252703655606820182017778779488614269869858930157088668049096670009344421410014719942323755316118735170226009514272519739023177630492655424690011686706656120495604989011514545139635269026245597254954728700407767726935304735748593928489632238626678774009538432790720653945654190104959289624186223752245824213237074525073718653693746651533991437081630985505183817409918466606710136086450316392633245429949958083805059269421020257304665943048989772661528411682225431739549692223675644426580260069436548638274808700748924192337597656486096077536752092390655029141121155122210685348661583058732898778553957304799852672677632326197915463606162824155027681317425929039477164713678493800792668895592391646960053221727551722744671356161970607643565507994928647297448824014516768729290905728260574755404646319603527975727354546437180563513453500528990441399492345235101306585866323634928668410168229696695207546965337876499878616870064606367390621501886260242127684955337227776383253651787088431661528077244253535949625654129510943340111033062580930953906411906017122659630417097707121053956571773387598318693856574948600499652621643882081110097334289312439693971270275548613181613701851284742861878653612950189117339776646480735239294512867237539470175104886023361565465188873448301226891988608620965657238670052661921010291096656814867561935355794697285418636708553639151415477515272207868479547354599916656241592817758340002309415966827065216178409585516954385932541862637891260287758784900921903020473160390238956749149540809752337808300649863465472051555553343175613395003443548263576056445100697249558623889809541556282813809681269954233690890775918012506771033059985021946983798959730299938831459517221411591051484621112360406469998314004409084000938718877700556095949197310980680867216166071874756651647698783162760863006827760523873108927374272433773437825789872792889129258611229473827430568366014262929287939929837537015836383457462112046314064734238474640536864615465042020148455952077972572996621595444009173174938191110961087657546317027528813641395994665797638655977944528282869036120147120295532697645907143479187309527624145290631921654421856522194646576094746865082689688957798458519701278088623315816354824360048040163742365948598516919654300796557530576773283019690421719712767674204120162990772517488139439426611891270191294382943501574166109572329408966128501520712946586167834523197244089733315929155083055816831454070609066430788545487057527820505634453011617082543817275047594860694391058760104290558438946750760169490328867646236792689865487630127441869331929621296394519866937576697692414066805736440985938452350371995334483442640767428316631834093162611358497889839136802846364762412360017221144429495090578255681160853929656020362313876073410054372892052039851572618164324214758955643978622803944719265606385395912322624972805682783816822331476867149597148968799702376182920815778317421115682885681671942429063134613211036437010760913215003010599752426282986326380054338824538888687628732162185575814231377613227894673385208749221574792887799438114214606490109474068935249599045108067925883158483777416805748069026825668510535381823439119656676495463370641800015244965200916184775378843601875180222224977970878321026560226045390966210868503818178155443110646959765008129922442341647221116734565805420278731899596716228751063764678120142815056304187810044248005290496041598748608057960097895029667796638013769291217858010268999697934874722782920537332596195477610831659912098447450802527820199770406837921574411422522965827288355617885216202665382670165145782031525671332841602195105708581351191948526086306556375945184001980502598079120308775144168512999060049458312534535651955283474392283736579311399766904757923357580402654214168204506842100594624790085375395332443342471877995174120634899312752543450277972227888312144866754124440076794365690880646390191773736686580204300295737121805564932970458499384294951592670055322381042121477853037964795387175838664603584065968477801236562830146645083788908896590451419581369032438850414881900833665217236687160838133864813188880062378567541770892187884834823257082905785599725928285429055905572764945103507340810693642339479683073486336925075208689687442950519452189712207444660585611772402600103157227482071244522321533883283845051904172837901634617162698820063503294947254996929668956795798155380752382789250726982001865123527294221428257166565910741557548215271728664994591910594573895351073269458428859474506306669654651390730361270878346238220266234020774965342297145877642363135978430611411612114466344331026073744836017891036243635977462121613196715952316101634487564298493664401563038193113566051480898601337477218806641220323091701728191994213661891214095987369456932451482052677284417136227919054199693656364829427669136027550075715932012113443087786271815528514960450625935284539742329517359656736174815892002933754611906259141769598014394854426194975854513611326690467914958842041602160737404914947168900860618001982596462881553159293962712461833894004623353507151282175238404383023390485998674934616918666334962048361624620335316349740668412281928101645366149907576435950679030948183686610985644124284782606493787440490118351165702545044613339607850531631481022997098232994311206548451941444274860915115733570193749787204670553822638794170953948642979388563498521631085462849300968508558967736212357121240420871898045690816477095392271732668773555039279443962208956097186292177112229580059894139771275741560555037324873046908686748712415515350620162407303351869364076441893873588416364066762020052675413241642428912914061050640805212282358405604201831688249855960340559072550475552859644288553385986227790456345210857363534297243892731925140176755224653549269209041783458751740436569820597364779685210846742407629840159216930558821447698377464170640605171381258222279336756632527763486545900936303774144845728196391850760337160506155964054769429276803877826253148654060420223924955808308341882125235801395615120536654672460377882460175603283517419833108632893698223555013385186026162566286711755429490121987828779462952221936547820322908503071722080955284727236487712356484718112228884778025643637922940329122371876895297355811521355180515182051063963734651281414027656795623772987483568013276169423392578593162356809050660712304250139331223476749448688293709960700689100755658540807548566578643523663079394245184601148609596429084157643014437681373068397456706384580021043336678684788301342728794099913371018775919888103358236359468888442685541750038258699135987699411588801533773715551699464785616545212244978803180587180948642600899793613430451377920679385571922323095041374802671240896815055029611910215862997862783725262110546370382232526461550392117482557112291068973211629229823380996091590714540058414350074271912274987632453893837107792666303351861723632243624057771130332897052652111032416364787833737812061774846079940758206655912627538668701020645253569955608033731662063762818913159146308858826385151681926826762437831180550879149550719393327320847006014495564195986987268104658987759221142962095800433871225254485258479057953182151910245827932614036954054113910876045228780646801334406105965226542912145086913006168773574050984499840194873319306483043801346677231078353488193139330277998569359435832723190206972891402665024521771810498700440266043576674201992915543949030234760595133105362533617856146884376476556701524351131086584025537732754323334980053310290941071541659876910415392716382313927931272577214909677378181482462229058975307551678640110222773041156320188133148354589244466863302199094616812221612616167550283449192505005304495003786415167203039872690965680496907832465972947499744088091966541274530115683025942475400291683380723950603940010703133654773214365760881239286879767807473622222830512269355492775649278402920248772327849161449692017592500253071131032210330860152477994829614017574963970678684635501862970135653634887451053770387864085015413369076285352539422250391417490984175463063818063855266718609631522613576556955097233079651110876898155629088307212637097839802393781717926336444553646996675726095779916320337578204181492863913259634898399897687151840671602331972584393720344223443070593606391032859565993461230699889105848938258724581233021655203913125911869126683759950197493982216229538175710284256118533587991149338330527032406283173052658231365019938626376904105837507913829156866214012414478803545481559821985561299825227715873543551212243820406776090741361567119315957769043913660678939269152302498542009510004923477483584454479798448803752376539873515718827265360147522670049355503105376594162973683647112585169482987081494091285134111848304593385285549204682352014202269992893578585376266429295841673807995261288843002458650231465637990338090636251778318276785108280066651740117588612204100226454434965892794745885395091129068917546544283444741828716798473875644046786035609102010651705858997317486112396021041179792911604779633513539308109282635776614822409940558916901888326801974044867702910957486959977736237615108007254467620470864914669740332007743091911497814136687637121975389266596119602913104429728887493701217349563274778429236059209594632918691760687941858514987844284507873303378528101329889139431899823732898852197078766666654059064968651334982167907691836797856373229401270502798253488656414600350689617123235854188519968976938358657051397430228084875352037661802893528133655266954919757334765740611988765769360557219616652995362932332190992452774649827834877155292001827183980330841446893099142977624977001786983730113657731956757585094287553689161908610483733615806978855606752191226448385518902598635278207356799780023542486978090170393768412380936632178536441715936956092935224967528134243644604781572879942462283191523355987359351717470330627974439825351369218660903211838575954670871950776536817411973505126202490853752221269024861921820838016947608405910084956055737068532009260789864377492258587150357300557379546362674425997632110689511882891832703330189996796414338856212293754200281232340346463200464264824803014251769616553748243113542838876086425498494710576004268915880159081727164959360306753605687586222507864473311349375486134192767050723057542344900243668759049112119116779833311940973653877289846699767241394365537875889707428844029278385760587918507980688296845944085103348847868307858713235091909744325292912174465698048412154144708090240594234183978378012173121546950666312998709604684229625816679850202176104439640588905489031350910112624585374790594619255043913339891973808428854776168159361044962716600113518752239339791890192708941229203439786311489924327773932953175162700575731398693915141275073814920896367484343599685564891812610205764568394256954489048079802052983245061947195648072919993929083581335920617314815779966500044029184303999141903984940049295723602884315372734667388800348523485477382010452598537797758005759599388471010423719882308068604161461326009192411901236241576686988206400915232007693935807818883925952146208657597461285988834031548247774817728213752886407071325831309087333027101961111461259078981335145368729604956146837247405934040439486973669914409156648633622675762234504116226520771356457309762607394189113101902125474176645649356323134850846503303466408325215607339105111369305228029128510100213777870540142054917967277094814091245411552001233566124958218598533993005924331978236607534196398022916541133157165721818433329033971886310308816131835902510912026487611157598985510659914546536913422527863908780606830330508338601708942568482763068307046578373002935718906094527047240098732090734238660761491586372347210001307913570212102029084143516518634766284520818014914425607197621628422645649769662840763524261221515866088805484152005899299136235089382503229170630480865193073550510731599505500134533547395053712076685532249701887596607348741050631710704132940945811081377270092989426118881811340817669341779702193140668297954820785727063486224226078845780179239267910570143418665681137108662678037116521454904367054689842534966820422017470414634595843454162424489459200534891869970448440042059261642495664913576834693987325547039049757194766493949576572010566530187453878542337235956015442232592850092208550058094633678601760239501192620775329771726881279813251026656365320422020979390275242603283492654406595895291660485034969145290620295314802008639332310142772548244314675566842165903812905274018281010629558674360551282064280848782599875622355901767207180516982128650265664830759227213326986090400327377491032355548037070043889661900380444273467084833288312984008598042539064136093765285181465124511686181222069704724880167854445617300514252751354574397260926881996866027432442438279601879245402416372270696602154622455997105752425739522379521184607191756345933043989580378918772413258971108463781372328616743804983622700053345602775349948385546469845942630057344962960835786512198389995277534212169842660193980317605946529853556876904107700481147226806212842720167237606002742888682343265807572787927552825022378361324384223248614231413310912451689342808294547019562622642047268871881142587910142313055890244446541447650261070790105576847909847466617177071924038545257249579810772525459079435487667993141352732861874939016530868184322094025478086055261062359858464941545952788058715514020429587540589093109618839032103364820017309439408435008832371010256962202365895544306367071463159042875613781075592427915518560742433004837996322468930861713291132986673997826178299910857057831320066329075968034004366509095595211792085935514958730906602387800949943360981735024098046122696150172339964028988227813573144883648458893072818789227029176159563025612157986096302696492447973769551762026313392709264636525319270028974538663436037184849119784851494871196899870407929654217614602123712974874239027287590997624148652939148740542437090609769724309912596249344789047942638721967637092392499126756518004018292779662270402361906325128379161827659425727932535252511513301046274508197136189217583426440715905292779066069508407300348784582269911121067536112016784985511066746684480396847257325399036974662247684975077899352795538653762360728395273182851737760541345314759146928383137969526498012103527900282563867757552308674929070591546203879072670739414136548744577394181684504608720843074644730334782208402699131009212453266816781588922741967181717876771235573201927785845425206614735585460455497773460574935353924908717932649376476585291235128436171955386993048724426269544372049873227293184908079866621453810832551151090146587390538659707807679974869170978431100278380991538956773968808337628392270126017583303457987438823323264099052346480394096151289402840303967286002852206789235169476068085222649328449926897023838404529363491240395591120833906706258405126974558353322566890275957278937473513991843091255909930958701329754168335638367582910379515682504530344820473241298842120225066989707875751910278958956506031778266356829560202887910723099532449901533169174330088443107954929872147814291755751472553328376646047675115611811597719629564044388460658496684521447850569828389310887938355792245978580407910131294561862851025792499696110275236794912074917730785817284193153392110447562098088523537395355043088287296654115086186564053237556362234147570384439790356780878338636941361708479801233092047285636427446463574912019592060169427246730161385989851255861681977414989123101064237448545409106393266121255438942195294636419282142408656400798656312743353731480924561305493532015238638534901045844928630781128798052222511068164996663064173276083191299643511850132758396353439428338777760616709721490733996755471508912209065552557352489168720002440820616356663275689909680931096002540073319210690258128842383223847395729908269884050135597929299186152712633648754442283031818151755432565552303326308165213551075360307153671992622537945085585359984585197743765654923400258130896434623878465352167193770734388163701290777426336258946148483332815960966736639649253760580489303913889400464441169599948797153076030545367481129922920789981447919168430471590351389175644237137412723697476182516685538316882601441695143557563292440001191043149109609984383278772151198913453309840731142025244381610437224125234787833968729895235334426856907204231467462082253534928109305158012466715743603936083844796021908399847863563296943024856176684657551504116737725597068516525986719298380714867532669718907088832003323594218402232060036194087397904850152885803937205662859519152742567077331371256876736871122691651021845994489727572248237475461384602383185628281353609100130826607572837411296870850836610004229386110576846934198579067049536602616215309498569757172475369207333891209438473166169337806131831162696883888119593111789105525970036430073497467704629584854417298149673361727324598334341969006832538830351124127497384992977404062173990104900120650604792179877341769762964426285990190509916452803442739595090230278622968007640099546737964124586896724172495064859376262170326452675668798534203639531276560187369099341223790907331066001138634107353279593364819184617350215184555331937843830468293876030821597391051216201133303529744157942327818754008832254670043661845290709166979524532796742550991390881459413235160623832273707010537349081166816852704220106473457806753237053438719268558574187742580651433708533095563451293263829867587612012581704541197705574009048647038351262247142945372740291549177796710987576144504169312053733859576939462486551211124773539988867243456635205868733612761309142090611449087901469720516172824658675726670455391809738427739707770923577505410641242150185288150244808732129765149152118869832326321021186668410569215976855998569944414786753735680611047455031036266594477186311269669197358878992575154812000024191921747402945347789423785900161788291231545118240901779703472319889864705092682360099381422422232123436425039745685397736064483318195446281090687738080730299401965318164545387259883188015608001980190346926731224745443500875769572514292648667036418702017386402632164981481972254550269759299621893474880367014552151393730201133239593979511086851283265888562891932576380983571834937641564839039647986859611483950741151316653399330251087745746660894529176164862122104541748259189777937556496110936986150501191734329195924047075172187778282320546137747931500716801288244034878696061292848022091588004010590551010046301330861836578681066047508154047507791178142474036368645757483596477452506251780446226855159633739761182763937571308492566411679356184854005379702922363232649808601818977608245768869769936625653206093090191815745979631581860910506966748447470849341649716781357749465783681774222119444080065294369288432364023529771458861117308205650982841923235331870558480437558754843690322143057773326357399186184628417855587836901996253408528025823860448703033497672474357388137659999507625066014904610823788037992687638787028793266932525942918570143605470679446119133946170991861943002612704838596796660301355207119787309185923133931248935586594183184688770244680091885800422997208103019640588901937522121887924163699852310735172327605213404639722758691889049463213849388654591998084549348338426719625168385541093883776816758608381890451181036209155144776450301965342796315947492994590161072412679564955407193425628939226969525135295712680147052723507967425623655168647585464821170142677299236469081878174560550283639483890003952370000899725785089019463075674840411338624038171270844517174693136337211374105174690125922879489093755785406529012521803216658386083451913131024818585285728692750350020121267303395659088088341947911773628237254075823206696886489377281264014647845405919030254645151799914360390694915344252446457833163179991220951724001550336567550972574541819116436195251831727691672321483989233168106926162183138597255813895346757285039244163994224119468661760934466807994691519938021084837737622014264854447714754345796074263274881150021349658439095552420774776690359035626831001313434970468662990271111673854786598842989400586569470747203012895122746137939972551258014556791672692007992797133279784056150042355036345421747342423893819757180320666909531325237970060844695907784730097226724441929804285725280025958314874864158516722128527021093563051491112596515503416713952396961679761746823316123799911608743928697740294986826617336646572225562296889076451323010183549986664209128305374325858227590370425903505021687639982527879913261259247499959437648412130772257730131716825150125610973655691099723808708429612254432340723083320203572459954335529848152969053322178273900780058233211042349683073628469120717296694827656446474805239668031007648310329179045765255318399974696779187578308672972548013882358394583914616287637927145110194309362458696565529580911528462421159713139126111979588739493728928110527589974023225087718914772541218472419611282814651559811290716248978258687334086529725826295552288368888874942478544308275220849343701730319752631164101260342340356039476888223245420441603174778573553095995051558088738318945750335096809477096028475822027038421727273779917320449121184008697829353890150818636985949156164770653589944622136670675700704325099972147830407508337961562848546566765459266418972616592832282400049656048065230551704570538864961763954258360019957670330109404736689202979887843928557221925230369842031152146361501630538649511712043334737433822029869750412710152590431135317824821043496702284131776665100554334020714516713046361111678989285903569608516580158115406470474608216644283022238106068234016335613519280557873710393109490969327417236103243979856209725595024412632187122524071211019317824992613102417124296054493935337464155979010427078489117082827113410500083116426691571879070500642580974944246117835829009817899079172150222033055700136461568818677898537018673832999244771988934781886512667448866171150772260563451542685836948792945138909834326631516318501614618072144315540140512466754100215544409324295334885408197995120129897368203568073996378908565858116662850343431402755678792811204153305463707828516024743167065684264163785323022238270990870532596440859233221541753134973811536771321170449708017336919788146690813958021167209768729551405374550551583522521183741470064252598744154113943429616823232641602286939122909796415080054617417014738664472045945403149123324176302503479516587583245941155829296778703996549049208828741295364346251605909396312297655747352182382602461834887492709775624426559067216364002376793483744446921878838205637409194436648839847123281424529573186774815428375946693283614968337518279437939544709422301148538115873974498591094638112357745738601732872245488672289773971725241275111634575259222044382602180300720676183950188089158302073420014953472802905778894597824614414978889119120930549892495865767222714256920848217885253163831972311949980836417762680717750223042510298307953976960466834352662122458394503073205352589274149445820298304161026911516273694429096582572719905595996274585000059776714264061713177287099227013271411861115316120160647308222470472244812471422592164362144836884987711421966835838669143644859687777029973618894706369346079748843091634416177676860530384580567932720914670531208045952017247941806715323074391257340498453163243791039755573136706918417952631023353235535267103289229976343368860505061609852583456883615539773588164892603235359554828492817854684569022175577681489759206541310764106612049883218545126648074697493789602761119899224507784970687019165332325479959700036943985763361083994472349267028293630408881513059262591784494701438233269389068926727672450286421288500767290067684623963612034268272825460186170460879347144148532355053602173586663391689362239400934599414485106326208612933424731626032001518018983344276795090647619328734333768917400520137412303515193333816769287150386787031121372466830946966705195867891015250978527401379661278955459408331291640241683105741862058170801370498324831855226142280325497379793610171743209599622603841486115884690684253617219189744973922274215683488008862396927494369503594317242331124045559111175581517357281908446062129549534250873197527829333194175195114723489986736035537884782578442375869488384178205886363622386936206159365825008975674048099536803353351688052018581072184637771129995982808159874696103845686785191724451972205222052037275731687629625746789034672317729453151051563923404351450976737104754486754789663662181339667258410587670670811309137714160690557836630394729554172150969510266595529680085474095655083315971458923951388206230304453559831891074889050094815291512484833312375443519375090949068968458322732921254586011248856871360105227206882988960002504683309486183703536423116493640120426146296880914024616471789759880262424167464504666674511687409888467151752534728344075571771847103937306367221969763957712121982712750144346905884899912380470431640903264223464268901668422395529429197919998367684409595169093241727935598422357506867828698011835373418621999283187038628673247286913932263266166450345338865930155626476315712462099207291482566100133839379404022450297299921656372649511394919236724648830790779960655082747470582763525004625804687386982008851427268697275190836159921409798357613598461676876819418446849150137392055826367662326640583071327351184004376580951629585127402472905304571109493766606472854768634702167128733989324061766279041189013990543001477621371824819052961229251910496019665772985840409184746393218703759451715723914107907171381908856477464754192917770196176497003193988964608651809991830267069487233878300546742402324406583914441141314668491108926453587482896394392417057984097795668426516132559438646460478932434905951403771591219652141515718813337300269178843737512296721087188166982760587590922670674007160096401668380268996638742661677280566783846767391415268276313742263870828236549395790403357971264588441327817005400038448406336780635336587664161089928104542796610768306419864251352549209871299258217053095458026052958496607137677967554751368412240541899539498174727404294313181128102844955008164315399443069069966811365901600123634396040632822910390817560379080920118477564453588515070166663905182448874684529044813798906496128776540004291750939476636181578502127765169192353566374472687434454927213420735080218737276787962180522162292802127525212010566181108148144654100642244247827192497722289426632910568092972035469290489545003835083927646453716143307856373462805453756695032381970206324269872271750704610661692431709050144499998955804685190695004198493160342026659059604522719496380464927172145157316229079870587982264496919143751601940784230300161376459476293455033584782528805408458394466666576878615706384447492879951020126823687308184738695001606544046131689229128429239146396606860955616133382227775948618956881679309842400008559257498923810037686548993520634865950874449620899303610629129877680483833659478289344003651285498994516007279333022758774308005308187829269937853309610437027479993826247208770557315692970763640216970821006090694590998878551128233722431651094854145618437576095533675410726600418154034529817072498264530805082379348801066393663464210042430199910030731034359958776655375765060812048979378467966256225907558061518464765367928338111173863230068237878305433955147705200875370838500038450063557410134106646545875193768267302189678684345896648400825313919409722380419135693854348746349879897962632876489046730250247849222706143348324077926421637283465628640282895308496688164010493038745476180671875938800428886597072879365304608736616225336205387661053773943172683644135660879573087873542477885552883308547536979801495059217687138273962668691426214884816025034362051886014300282016626575186414533228258440706317920223632862240155639837269563535764736566256731825828533644127694694463891237959234624641544462501483054641756406916666200214469987290058597923696911451325419065670703211419126867602691623183931221904326743518893099141442479159854416596693259424224841541651312448937871876861924402523673918230551048922656855874628973025995444310572087949640913200509858522160391739099735465792775052472706508095424652007665475085576746241887244649827035510897185858151197779277801969098215326625087527574372555408367684475627575409645953587520945809916605450311725769248303156845901512713068334166796181554227562255862354659117464214031479609984401340347509373761334587103937348772571209192067697400934614211938919426508687338723300461189909092092548086703677813172429220399252948921120569164277841472160199131833901656725848352493028605085410019116174643869147424043464526271292599963570707887706186774624416824309942093295564491128627777806647255363476365871645571855258957759907157027441071881569046940720187845395892427111215714995408202671454671984982012874194503417479226189657415119446291243614437164478468080234815406285806861338971602705234304914981916349796278511951838949937410784730594226569945916442356658474997541255557607043130417936832886223956112284296298763366169886113811674193500759130435677626214361844985998126332888397078467733651247032285497538689504782665662245020123221974624166734702687323309785802043769947541614511487432480573831319465377853190728612601259140121063960235190888844573268812871999216663505232876388310509305199481490838036255463688355931526049525155358788739593400374225303829268260639101263387458487909190554521475724906185412653733706236806248947686033396894993379840312821056592365590208713477350801590754254283247272826680546030918782021697453863477482843603798898374552510422333524932906633938365815569848129351541741070579416813730081227654542469830228607014191275155724807748638922318953317873376397800723074768235344470032499721389782024561923659668194064779898613091565516507660422788010920936274307141715551937120239317865132348114552954671650874171663104206609459195537300590786766084428870485704161887473746600360763648394346686814876673459142365713399918981916544263050846624167441249746109486819083085805556612472120805313941182933335311697003217372464803721698082001574835682055324202232738506569695303058199563125230226600298907078744945204347703415522355669891965793320755563416013878911319413755715725701416716128760814843714135410897134716562112556300252761365937531928228187423407797005850747220471225986299076434591021267046535427215436651179715381117818257638862893012484730700025279007849071049698221568704439330464066711249923788256370620383154362600296588582809779385744564223894280317810974812126933170013598354696435108980503895471821124433684941671527888900133618098652065274456523346641312821613140295679758879494944471565177874432760131490386049326297463386741299680451266310308242848575123093188311514132487635804496309350407871241666736374534678701965368334403434384762426289655292504243818024594271525092115440696240979266761509899324423878102108900183566861840349029466597706665781524747485768483728067544679583018207865161113996930020084577915144243705741612501729538450978038262498668253649301382360050652970672375824934138281841487741863592460341646549891955225824911719021114060669360804907633712212839599884498757817452737673682837160873136653129219252584589711819534527036610294676171187262930855594917083811010354136049122987636428510235108266130523761347630809366183277201135005712928249059467063274197535198147438221900092725539277747118059955214379996955677739569707519802793247393741232176085326831993875120536206067864142877506251858641399701644355573158097626295130798726476807455376225536597767074549862610112102571108874577022262662607617961803742252532349459549770044725536700657644662802418730154476185971862419958658052375627915126010252256011240517498693347101467886817989872065122019837740503067597318915841111712298816268226537283032277960552755540430555344998979306388469199222442107555777022613378912107818829160226047541768941490103299473809521736930047330183451007281785166242681054695896091012270077884878192957272323326309915624663544334402311462524153102507973944835290265057021121644576660983144191074247441319694616132484260691137777299416756723283144928736091279046407611553303414486482735363801893106354757173052222622622462079048127701092661334717811864975404564872600346890090998514152790979020782464617799158878564264567209180397149193178149347709527083009981916796531532973138515575708862059281511258073041794512459406768529751509699995645275016776053145275647069731778973158075362272444817877576867177280756225942245210789460237048387018577753483046895894752867730849984422443715829581318983081921234577830422864732224547924494780910225162397579304317426161870184259278401824651507535201488122186414389569829964902961483270339613682011333592841875874236928182271757942908607487390331061174038430613853142323624695699413882538369909859093294482331281547243794487764133345256439060469890096680617053806720246315638809223535758694821820632936581332037277839480200170453816523459045510653788242955277144852609062313168366620418280888560328910557710896967059551113999805502073153037179850111008266332673095134286541171477692454215942487530023162073155213165564133789935258025775388006371215850049735461370960125577816452860248157330025162980329652309149184543012264495072670356102893007507478994755938931610503618577051914105214245504210312893621675611787449952751095427917335797490092013715748636084001323602720410497581975166541899987296738065202586309979753218156062854645122193311341134880757270060108680859358807289071190789505969222293211185097229284867039428379443527745136151379569181855271314386285476285850123323062575112678698565734342798974675734523392344710634493725078511907800973562558476677948000293003305158256957833797561401264579226676131214043269137080873253134423704084460763472366377770966474206130342030051632850691091859203110316608581639520560628659802539938818709671922144306307326873657354975534544519041212715799001754805921051169736075038212823230420241222807987943227087549558047981944581698500926546597174146622726718170017152534396810147073350531861881734606888674578820399965702552664014781825458041469551063075072265831921880850008324529997942293648614170961080218358297176328481963767059299351951290087417952605519991574238667427775296935082390326705664301823768471529570910416353140533302950149009852823331850258789468452725436012091324077640031519847613113145348373032310249259550293078216849730102391690301218333914086380361136501477720993164535982988975585806084658916088402011075979010368375912956941071648009613300345358283452250084794895614006102808013561459827067258059130335899908777821301573552953788818969163345000090816815259827912077376323755308437351062455371229603230579984472748940691458634114467517366350794879432971588263812424383844624467611691811810338546715419875012612005676112494523983500023389078272792368567732992878170988965721237108724965710378014744845855746650331482030668018767696604492565241427075653493539473942736845995269676862172642001028025750076187042247398432119205345171000627470837025182952543348594501621862998886226282410182457314848670338200479171434215174920098494368340708741475836066489533873634912499330972803017361825991737713180868603959928031964591720730989918276933963888954792614998251702555629066629125030685998576113763180128514465272384099393146010324612035698786101050687323250080391121538813939288761932045341547025248756978748652953159639882266964086556847260532218963907476699977106825352467679145270948101447688177815402556133960001864327832286702490741104953355292854978917077838989550132336391547382888390508409793852996718008806987578226194075501662493662661997905550140457043990197084884245832369049939021482382514671684725419908500826034778897589280375577035415065880885285186712849656413466844962430083360832185919758546015582756658402328913835075614291183327487136312196142693836922320845395643123835367075316527834821802229689141240775797831528002000376244920634188385700413820836954125260052335733681171826980074927462734548663669174405855159176776607313807823790888051342297354688984843055823303349805250675772688501524549788957239239418971491322438193940332117521383004977498486971587344510577575881898551709590016634579353068421967471693292559468697136692824506848651744371891841027364679566634843949861979037905173615697657743201085172383289995565806362112358552354774726970355793476219664817004278384966285906188727662699870844244798526457771524528211062488555703663199105061575975779657662225942937888723215135481010304340473950371016004482945767880326814851710991725425779633585126398336557120509649213570403381112361499918287224438526497963100043166700901245411338460292755403096116179797849252417418049651616976327792754409574554158446945663226397827719103196629939341986168911462851937413110861252855557547200873149315616153400816251028629822876335520432635377721494208366415711788589477975135588455527040883921970175096516191062917754462981255800655534122802716310741128857665572026853170490280882264799505374555884644404902986637201829490150770767455869006455848541903187063801876562326662133981151292725456995921356606887762644922467804174705321637503007484144178143587826901926275006528008849323330900774759258780820490767255106335154519068823666020999296396092788457408083737862596736190547581619522617924607862851620344382725936521666117581558426018561199741948559474533160999222631324596650289717579295576213684858423854686743548032925422393355453356098569913538818348855184550553787886838075868196871633207892568647318631107949169445761479301555079735228711313235906601578033341222824820233084196563241278793585565276860503239880757937641428933293085917496458893004296256991087423291491396144534559101171167793453450127589649515073862215413835134543844684347002352317291558773587406560070531658819750284963687434372555331292879940864255827958879206230944907727675178707316381790842511213463405967017695054848023662037846578597076682165075117253235060541299473637628043618527672891939801178126740624430645511789745862234801855865372958949550487339878121712235976509127227685790237357108474100542709146951089939468057465620021590342041891960321667827462529883790749124428155525116141072168873861734803418219877254267929936694413083953448026626076693088291530042235721062888218331520742293246153094323958351870890147230724539724489539985876825623816453576123684683642690588076856677321937617128999883065960923001651785293552660362946300331368011007623298042491508063900084254013544286140690829545260597887343940625373585352531236355347018636213054102830804238911694925672076349091697004369825196426573732757095597840365819839875215183190114300239570228896640308545770024581007591704743699937875427445475427294000630875886396125379415841321480047689312271098673178085603804718766359373459871827603061583742407922214982752477751172483100147242369592466315825143682044443937088844382883678473310825573495600234624704393138918711223834599321692278309963349972523919183762731264029454396164021920474361512763488452762384634150327733418722618471810349551750312087189500395449902763749294236802211204742996517051118282733357598699684026159646879001029763111310097973961559913600398323265580885791240508617092028900247381114374588583264815069206191062151209779259092898978252320550242319736527759359600120658295491439198263139252541099016111079822789510945616479680654785247449877494689402929428562836665834347221216952757004271678745560245824625104524874052383647367840171939212889131124420181319817424770318887636242834557100566242913977147815727169059681050348384769913892439182354344029120628901006226131565962065991654729550759207096821821916108543203903743635417696067221016443427947138377613374894345726890911950455177131286302748182975225564825610760266333544350895130512733489769058865317464104346015247843224793630420296043838424173840876584221799102984914895803642555361575981131613919044763542099995074267031972658066544364196675960355742158409566388712926817301340540743180218235779451655501752623438570381271820464573357399517840585735848535518001678806512686887415451886967434345105260140348375154765856859840392296227265503663555699344432048652838087086818746778316205123624180607868048759367730304797998387632927108240415844455097851321272379230007513803085092462213879756646474432187401602099126839146556221380518812812860433504739068815998654853091645227817833511195189225936025329128344781711756406465472363801386638684986106191067491768872065398692264768933668221895120743840903061300502029839383755539512063986617033232590307003548122184786531335623478247086374051276494228451251806378218316575014677901791520291319943455993065562045468502992083730161096688410540464320905937228541179693414348627385571984134043234252867791678472789920509325594489161380261307286427219317274495403734805208758314660062049554907514573719813959541331433615433504350835238484419352361664504981039248608247913829951868903558558098267684549352694010923873998152704915316617315058116056016055237993323950935048125951850669613239007903970868893231215931940668296139019942652009582458105443805613650639321985594107188284259364742310600243931394151497595678577344265754831439935958190381509619655414603903281346674541710636570813567693898409301218945038129023023203881628774393432561896245618610713282302701907580460516524711922901662779560764532723979859724568442130313165752017000914048222870931123725641441453384306711653486407621968518554836236410099414950008407238738140355650230597007987186962716854128305140177212977170177684081962130742937569944810271623610651150930202526317313687839720722310125378254464803273952173426433850972580746928449381741530404784626368145441541322692393853321877766993354889712761780254440307601057578051471315754325189321088801618647142647201360103200597369707366340489261735350846575748591173055915928653254024538431240242595555236258223811272524998995685112745543178775935382020394878734745167458494636912136189460758749083553149870312767157053500386957875749340455322698274839773027569053792683860647841597452918540715640308771540811073568978195486941722146944621026968536297083052507097911642959632681113196112163488491228599495524756940107541285994645004715320458777598725901211769943700886693967384923273382829257375036042855065819050290422857322028246648328307541419816194108242958667047370228062158774411535748397435208532967250948700822261579428309427719605613114098622430830345025738106355820536334482495902823902015594322288623706620315707732739655929165419844802677156290390158081810386148943582964257116673522956887387540839335132446529242288785651862357202444248772993467906194472305426231840668291123642930395569326195990506548873897377778416326410390157625435612529622024764099570171919937297754876275424640447494831962464548662522522614394244027296611570313395769828779297950852584331818507402711959283517254915022024730950865568107655707311946588925971845016939174030386722845835136695076777929855935103000539682249781195184257709996749444054088992293632085972561478352886603329029299330642676957066926947086266291301649543234349956990218869378877710518600773207454776194365597290561207864894523418004986045267322641020806438041927901880610416176174671363735243410995342826616665831338288648037986082681466346528753430799610575151936458405324590687853551967441363068003160291576438465085081674247780694994250837602374112552731168627691105044564347640388696936622675311408629777245092956874781157452377809349643732551826437257656621272491427398664676918841915233073767969759606273624939088548677652866590052296558353935838804725113722624131981350720422548307737976986504773681530662031865481844795340016664305348927612705445630133217771290975620330989299106067625820723888617159967672882103521700237983414886002891930160891593301472565149286634467957465620173635569520062905134051065492149110713633732185635732973194067321802673139730751718403971990383902408759871819210770400312370179056923381976102544431466771433820995445721941682751888406349621880900031475521507630648158887023926672164148911770910577349837544437856196920951587298537348931863991132941177040358135083060266629265949887022666447671219156312876891545066283773871565491914622013699133798700600943663395813420217411048842599300012109350112773848024004857488492463746616446512785058815570800102681176384064656856644332523375508453961389951452299689483498444506213766345278638680995214217602094706812184105816659814372164666242233916989393378449601119744122680882532772891417504537245109586207365371845394910896986436121647851781693500533336835706393644524309462641625292750476342615439580807413090828811229655973177708341909339167960297294400776050063689137085532840672322473421241552163994239480563689237576866414573510433742351821451835708403770188502933828723643353584634745717687328824980540799737171927667034014429622841549882470508132407050024733652368037064882646906523007910058629568519952255418668689690438104546630422852693541649191613722983989985271861722524502092320352669979692475872446706160611462793495146365210741831750287912380256870607105377730530915160046411894951729303113167060318721936784546885770236192387972435590045881007196401571164963869596547542356157565653536773103458207810155169660559153572960946301100257937038792120332139847151090535815055205061514221000134486175265556528036690582759918724844947412923741289640307159955818861471335658717677005625480154131106966608779528108514344970887286119407514758548821908759424249093669812767366095701131110480121231428963538205559515243126424130981721703950854310527546500472460842571187662691508932823289438387704816198947906713429144000180357127069420177725899650532001261480724095892221632955820962914673105960680300053253014535845852267177871836306946246489923868202034918814594405176710151360930841539024318731710490767286507216956862146870544088309136525172674488759389329998463432181775371709431349020662106809178178105739289720976605418436784687410486558635106902779946691009774328878530577860643417583231996533023154481489011234444168162963022604738841396222100987213301082922274459751952898523467199447576578562378011565812025920410023499978501883803077831047096511550689847010929751232769017850825715149509887087804121279644604781611387086450679756517201072886696112347035854365541975584322925040063223440408041331979344105688932752261592221960142144132275511923543594675036251106340026369512651255667797705213124976813439325293670750294263381070838288685295123738747019433444390551429863566854437668195306756179352249112121986824288175335783318774443771387110913955217498227970802237203150000537369602423553914668911685552057936063610285060947946819724021255638573806086461312421916848037230426887031033106200510048611085838080320827483548559549145268851484609112516450324789095589346459917791793417283360630866513440935921453837529706507069488775536484615084253124585936566411879355884077236199283714572200911237482166572475027217430174411737352125850686441775483194232421250457324688954411151533413918063616748907396540833727354311480438778753673276078424871218806306169530254381155626367196550207676502250483503203289113307780391578179763610922068737706089360607692483515622629430941977053378448140105612660622466462702732225341183021359790303587336274423042152248394785456311991829560697694449552462192980291794189547998156806475075791100770482293498675048785486189159743340928415985912692467383314095343318554692707850888767215858838735893944541834562417433050685044932186767804584440833995101669898831043575189254545782054066671321025823788465438177858368757716464209847084819728068880210413252655582735517864230232575914625511877610929281056071895973893918934961766444816425680706198463427688343426204001311443046918735769686773660077151833727672166122818289509443630789355374842553220313275396860346402039406488019744264748804192117525767345030445974583969331317851156004414891310365768508177130845978978479563041566929221885928611306022599696612300845829696096669704563455094648215328009386971923942903200667727035276598713880954637303770743671778565061750153115861432661780982118426822099206900366574344372874912560737381819813368951813934060472455693683646419798160035092121088990885084433526502149938371966391042692770381096420742064546137064937716957619306322698696376390316414533848661255984053064072021621959496936974310434410210400900683967569821079859664400284653149068878705066476277227877019692284786187153410001809049220729896499116267789838598473889501502663640193528838579652605088560028439834399360885508740040645539595511667771162962599818312791472278291106721783901300451043906699470419218596381077130971934679357854169994357114687497200625649656797304108871734116454904542324833159540383805477407985924252037884119187636737615198989981888537052437206554368520797092097436215431159175834370713519285894329074295081193320412881271959269644230409895808912148008575370451674098425962277222368767013384143143389578568688212716466110026097548098298688987027805361918951665598442096367248846594543246781526132295023306555875714037804896414355551583137346598682845383862581581968036058165268380365246719567599048589046133517766484245249638567617713163194675214324831226652008731486052403468908193486824154649626334773997141581037556965064564251314696418515988349095364256241959919939192678655896760340650191451951658850689551925025461093514516484165398951819224408547358728255030183774477553181091523662967828367777536265887446234793720218881098674460854266666738152333154565188275380256037509588667703312574202693389196169029836053440005240574001938038421753725161543182073709620653103288432596975865043201414842642584729492201950507229372876665771093950059095133826806863507969489392651103352066173534155028436976533611815587130913905233359964956779385657495533535777948885960874316654677150879042328797763344878398543279545835413775594263402298104511475752405969873278677863318767929082901897105281126448184828731911090201190508029262849993003134111095916594064835453385217258484586025988033114208738813681236455125589541875630495353169344098041757626164789565955879172612718123241794520154501231049361026802701566313809314295531137088847181343016191394683131889193165810419893121348368058012174027232356952165762971699437982355849789565127113434553015200471655257103845053006663453935737322287237523289306891195096443006775081018094396933432780478055124494165171375230019422245037211922132830692437081717926549691543112513065229285328278115095850287561947081516240097768199411581973808617057428052607850195224626518663907893492613880305112250059239421522785214439010840912383925179933659368201374865510433238951273173014227925244998727853511526092292639905682647317739438840264771191593482724939423545590518182343231235536621006463450688774230832910123033910891195185117502118839675290225669619391716503540856051396798378222165510479369649148513536338806637666595775085751407641647934045963222885957730733491771547463663936328856978515117144642009454115787060225022563479866861022025771429058953406315902147707738471811998690464738723570276299835646824694812090395111345182483951600100413947632111492626266898980187465349696437932431940848161365649658424582551183100461680434128255392292624665892297394034738668991240651333022548946229204556195226071089898259251318456842372507390591214929415659955419699359496244062689074436437059799957152924902383393724820373634024311232149045666384703596984161259660629905136947297716994184371508118730170402652916916979591911084769329110925421203142043915733687537161740032862511600874584183435311829282033843235186753690046716704224897574012907880152531531409126498983780244878856140006160491005689067039889196969217168465263840685806703077786659327206348788694555095641472052979406675839960142331145735310438540887312592101810624983997919475927912816680415349087212633994764384895267482436081728247053724092737449466128542867431770273528775116984568804125088786670735404008444420430245386786720494711000784548404537054130026229408200872487438664379058070308381663893224736595959677312030076797164096466680785375312575080312772365820570776955245339122410919643380908807358455517598986658381863328241739875387547035591711756714658059502875412199276647573870021241852033790842494764323373309873810241881620542060227932059265833521340725683074905095871481638074840769921839467351687723934503421673917208174637853495367584963714015548018640905950833922891623001576866229273962516272294637496714454386065835915868621827467721953927306071462325098965554196767277395182642977498284857296498417507430405537307721233624076379036327570605365021365542660165325208412150146356414787585429283348783089068245170561310695744442861548919928198328374715396469159234376722726845989244808841451760371963366875758520802588712403682679794266545820266006027085028233885565587752528806190028450803258777509380914284291019520739308299916288147978136165525508074900613298384177646923313531995533065851438660444396255797602440772463696907050163004818883886198138881527636157663938762438965847572048803366310754765493880997534004272147646136517349117455438524674418769086264658129678307102930080072354408213548227568326565331961863532380176324664490363308509602935114606303565564207988600720880403877850797963269197202965486647760780758485017140072688469294758335852689253912937976680629699897886586064371609016721924592468778169596704637348622250141518550809454742128691688729017725414452221622788659167748333083185409952618478902558667549697121337350430318070431667424039216408245738799502174603459656625891246040020947928409806938990596476788192538872892381736917171306391342952090482323132211865047381301344611439591631257503852089629930403925807001174242153814651015342999964083574794055119086448797145720477603237106702470847582003029329387226535599141213914006194957858889407713312026972870180146059839840418152470411478487742058631069443334633948829786758209150394721619149132939326708037206158076194912349039581722600873487864631056246667356604061152245585296580063351527308850626025208652098771945657467558420579759932735759360434580627181325138899399614665411724492419522784523452934627111623277549313219043095742815408660721811637994830483777371404344876885692175092998462374413395692431431918884276711151121393049339417390762427329069394819563689056357365693373110972199154475760580792175840434595177880946699418630001674924498321912978456677911440849462407182533829147326568704196313320344312459710800945467452207027128851247245956915903809879271049774230006599399169524158835055460050530675968548062561292134381560535384267576325048643090725548812585471304442689100900189980533530204288546397410394139286143039121533197937899115839841744597648987922612735281223080842717548245110697387561720813931900152475558637196900349211515848755923583008218262243963228325193820743801194357061581754416925236325637585163430041714810113080356736464869881285966766688075382209098504269681835167108952236104380029268376970376251318886282881027680935712524433067393674059363709734538342776060372774979654977098414437657262119194565387455552789014866196192315825954632177782782364280484429682672193889013757953753053848232946700208093365565729292785304351687177773383570538588703685768513847974547493817611379296306668781927107877268174884526851112290038735889285485473615084553100094439455378369495479926773902518505021830832310443098118663221878881171045008640677094874973454598370071118135093352223824449150422477932304730472400375578427659914085827787052444566334332973044435148972907765105005033805015964287236540532108684590464823200981629571955129953743409856038326341360923491415371703126810508728514500763680992328869311296934662959618498599033591320521677179719107142693979723809439770099751380598063924364555750390639290521246336328879140997448504141097764366314289626615589292190249824847392469930671907793152226490878665110118906343549889719215003789505076173721294087877763177359362082623156921112470729777487499452316085553231561371952665656198135319400186755485827100866899195076717577715796820800275236089431408155311665603462382601814364913897082402596927845453238264898268440282405297148566313017458683268388319434602352776136056910803049840530325682896901548538382169479909007264356158568764675293238156630098485107586351838202511131716299471389325908951124555858936529209133928495073665057748592724426611365801408407016930146329927368545122874364503382107490637254701259030722828494217579127059283286785534231127511679165093561366405363520797142189480031491469437975147095721522691042943227022996741745348905374388373728649367922730873136608495713334408883828210895147798243845807126625962054750967960816680377232070363615926666467976443227885133415494098975374701796832989814786620772557862563671872715010324679132559877110080551776286308210536268826498001579531867469152510947161326064744471425912346426899158539070942885176372466213389405744144422725550076136346543019278485790818069006281206406212156609942808321370544642328807518573120586895323361529829425609431291584106647388766465973011304058085784786338916495029116219537976393300548628496048909694110266369300576033980085170762734002303271042809486365759303946259164353871611607278006650417133357326578080587721584556854232279014548943133966985220970857451155911874948909492795814713856207334468589973556885039117844934279673744718570548894110187875987272214026134622918192303017585502305503973911953096280425764695725827375696867445832914759623016587138822618864327375362530345255994738140329226151302194813655291568506843608659447485766006367943675820592497964784277771373462591042949195525975143088095378533520882471075071759129711215459071511012540205547138095783794876006155262059551178105848288016390032122422459040586231522589931747069647360822232657887111274589719413606748585750755958504907366712350647870281541173883413027190296219349950990900809184925746529565981562816719425368720825186552451353793604755847867736297230783123964882585790265028738822291571836416831930402302196290528882641226094655813406989344508315998765956344431456881662245165119073314943735459702255697652734441747663928471725211354780826947194982784661567194133571247207283268309893301246004707821021691470542049850902677132589449781140755377111775256854423795113220122581476226973956974153046185058724946205998982435982737759762391306597560890700780860974708603080903449885874743459307977786160280181061151649975273136696473865211069713721450531746120642726860567374585252810182926892574339681345195023668265662161862284960381100872682946811873212581845579027475363098967567315565124419137432276477727794457081667572298203078370672095363925294676065378674014627656014464064635823088741400346344828576002347581625158616863526956229034269393809368349748976153308951425371826176662777429648716456124298016407923526992768426013071384868801734659203080209345855686342463592162362323319637297625688706323359647633446687923642702475144153830447115188977695298232815234089638952525543646321325231715448978339383737486509054842270298065794372777998167046442513208467740977166455375724433193669325078435687209501846275624304709187052543054144753001510450569120200464293066226283064377766384911905673583302471469906970672976163478508930815933175216813970523950551071471242801716801482152534957330108788391996479112733244505098534709838786208489561650921706122086304477334606706658093043572311608185412787535442372557013124707731602588157065924136636927916494112057703954340132988712494983363786522121337655432696544992132755494750642733686255557942075196879282876138414643523003821523082781621477992781635586304153659031475779727811590846875247302605235205274702858633890737539868255729413799588870742359190632214600569050426372077541713475564156592054202063818135656983956144531675740415728979362939398008833255432163383331243262725813993881839826028843553705843766462060950563266072194455618209640107326610696348870309718572570138912907545956685276865431436126475674926697942770120938213114754124346388411115864315809126561436771336757907505893933889949636454078100287937134411678526722270000177733008570953253380653122356106436145005622488965304246931317385313713118055420074457421038575943207813476373220629290583639670425782050443359109881199146031547951996582784809822560645885210954931327964453735283737088199457338106249427576034081791275195090362661271241481941727949800492672788843362288520274175811534389745017532660106326460333367808156903413322283214530133160730943026100813988239477843850437763424524925241867257716547641657857724588136190090729369836736532801309373837230710974596642421896218778672556381597443341080889419592134858789431146493507032281051683464818351928685223167120940695509443680228890320793673402933862824390376594192249018836454320794741840834106671240837808157399686906763526540311172768832564495685602519480420332404317389133192682489559387547592140812331049365039228076123197240556180753928070948787159036110495567313190492250855716527190708169243915670404221392217444649064021494001811795736593082041200565276076684135238257689530240603082283131585089909329701967788200426143300701865485212969778903633689830716312860691434070211734380582838747580907726048660195480034227687940741584867534539302181729473843485665979367627897856984446643468591656598278941423991118610346326928952040282797715715617616591152378104160807669987841980047013516923494082750580162134658526862387574065128545529827100811004955273033913572477275670191549305466237558037047401955279839100438149283705594471202287702847681181224544034681591984300679338856950834127515798256179411604479558119413482793834764526051123625115770681376710023209896276938874862244564881925260576657435214256946225279376704465330488704547068846998646437340763792431935011586718874706544569223458586159445014918277530078532408002476034775908748655840494507812591625972948702741958859294824549925311223367888321521961746730467735022797050289078436504935217977749780630716966348554673011411050580405847498459433141507727853748307588296150373285265768694894395058045106454829802684214569595594917406736388902019203899320392172911505781683921576163228768239098965986971543118363115942041308701951006982898893067859793321010498955063344043551537046473382963815247281572484002942503425836646783685971515353720264595850751003054193101274028932314147683081072630816231941944774337530625066243483060201257829520402860922294607775672104725708226515774677449036623334206050855630735960395633717866216104990223906529791679435132784660968309770798169256164629872291386533845664588384447130231516121005219869293658066215862705106425165653492952212129843300175195310296748981911611428680347730660650822349021292293552297098908785927449851906501367634047748083401861032088394798137475577969966046649486924697238417391834674108352237054671831755522732147178173266778194740557807785821086701796744202004470427560511662477648705761767493767943103390801648038658660382720010560303896367456712888860200385349032087415722048527542242863977994061861279137682795344206477434098467909848577768743924920776115204199862152881543523449483598271507747899978666715980392020607423739868394894995488047276362640256557087864623347663764622811308436617099754267424410090988338602200528574518302794351211344989717208306513064167530157074231256784807340953024575393495009510624052784742222119720409696672039121314394671598100221622765094168049321627644911000275895407427673304330244675847604818859272155502977050327426434033167788588645754441308590897370117327719468649782579755791656652466692037936105869735482812293534955859123759743913658845990657523964059863774115952389713055612364794072392676922917451406902943939280680554787472710420316239851959045525337982278547393376107995175027056644413560977388475576143594624987188015680904180158904831732838969625051268501247633449482981900727116919843725495688297532440971975430315141536447425737263304018572940805594455041665546736307560321911175031325841450918871804270094585720888246222963467725478113060829309551882837741180368090397292178457919812352281608102285717151299929856457845583461473772904862960143040300813753583252027321399068508919667487765474272102589003301133545222803722277842725825196035078870800849447162469132386567225942994183547050482995684961177817313166606708796616277394017855009460062484150326746870956905519232520342196823403970711535890470579382011664288896398615785533627082086798385520892553036615741491478438124105322036139452611283470532935525158763716876775962245293976379486846273920350936561675724801413419916297305541694844514152752212798896196912235483791977836064776899572720953791016721534492404346783022369115493600553700367337248104496927535996798782645558727131239173482155697943705268550297791105907929426530894581301497721091398997808763345252442394962264048470430077105782797943826737337788859970297788974510369895170811241023920209110056074934071432940790107411424723633936359524690439325653158176632369010415997951246321038830356537918672712584193664724068032164524091005514175301669801651092881049056673868434111073441245846630329394777865006546199403979984209610466889554546861175505144724045274824688246350076488744320488046052074929692344978598205689447788686817829345664950184720268407891771282805689568463522056675432665772525588637667228326132137368954891596209478010584746205922548663657665195593764393180373082760832616726311935675367054860710701142325414894439849269218739572701470114192175006801297193620204683857034081128510561479035445208387819178358319730660820666933591359445679359952565169823164615266371663497037887174468159200794458303790197180267150148919178535388060839391854236763772160904864999896812882466571230707650320586994176801305150794076160757583157566477977810628362304785390867918679018505035363459356089214064257308532020794192542481508167551374092669735958562120180360425210904676339392771439902406911205195355568788062130604493175156307462763354542777639864298847128877554595126984158359073959358689089785509679411773279345374343939761465142847178634692054996424884213889191512001792029295467454675550420095265336522840435128310308252295202173371797952357945507219044198573074037734290918858030058736903247122133943272726453681927125107622571257096133491748649864716215768199128254574668739284874240356436161244909568986815822368682203074033161561314935446385605089933752967990576328046618672265846236726247614431182100668503330733614811998051627290147944904577698271033826147518038716965677377922147081681540685187744621760213119087002056195126964158322179544444432406582250024339237520787484614680269442756078314805717102728520561210751234407653436303280197824498134651417569023164853370705298127097735252574303740658618651171160156845227032355298514747292209256232708904007077438596392386421810630635595890972302820836125570088712658522324264717677182124652230069168872153306903700237214486833853333088043178405072178848459462562437463076175196587891518387490052691456331485282100932348771339159897286070689594001886753886859533476869684546777340272563502170293168466777984103250846940428854152649769803421759098822848477471063594846783723135884663547344407285949243706732015790990255840159906869877635819167375337678251048001329506222030327545586887815635269445718931828300523974011775730779199706612274815665942177705021789470834901463277657907508614803550450371411246353167660772388975132551091745418067861171929090594927965351695746308637562635402334609138153227451360100345162971009405256478050202333283913858792454236850108578921370554527282993835750782629074259708344611275540861860219467950163715043129651000340307615092629217489400020083841431835747796429988657191312093285903965208238774544797384674056225999550795150377162949703637098663325679777343567666530185718111093182887538804405978992624131451994296689090571681341183773398613444439742278961284513937658915399541722269300568780710901809221640404576644446257880128801802231268506832489840216743639795595833404069566570533349612797180547051790360836420052864983706491903676144617187381512997942972654280098974555017462602260412615047060954449313974337734480857423307164155805187629425229738224273209662716173230255752361303970903908295409911500875882455319799452935087254915119023606075356205908211116946912535825068333255738399508803428196235519981049292192103902739134208562109216132770003316188289290189695290178017215424292184454540343766223736347961188880201576135136462910947581559444323993848441425790792729853303519848758511145261181283459205414054213550620094883298338740643273697910750256863284203485062025650555509815853004748415601958429311574713035623515037754228393439155009482741773896843393410594591943165766948957898828951614523413117186090269779086074057446344478103607043610933558447748591209765768935037278357307059874647323719125384569929893941428811810778109460023540838966513085880030388018359461576851645030741034098797845798619353540835939869117227911412912300285232530102184569685977194011535196132054892234154250598793820581280107731792995211370210227705948280862022298880568199902274140290746615102132445962449997641880341701798441166999230222343238306265479339256642289534938723909445542502135415027691727708025122857218581027136443592065086717323198813988214343276418311667348638790659132579447934880378216575842015251313253754339785878213438188660511011916656558041300304705489347305152213134897450001743468901998130245034636249163507624505809229678010267728016531368613901178321624238089489118373809032980685112793831245717907388911747358505835585165032502319699296259455996386459935797749015164529106073067993140901222642847565970653624385912602066621218426149386889522390283887213467934460475178326070585285560024964526142647518610780098176112333486308998217930991374222902939269169693037745923062301453230903167303315948050993631907172321989174893172733221949281928629726591590333713640301212894277380052699416573209707724416815607373814659331482296606171428682666567985336078448876915100329283355902412878456859300653481406345353047273390920864238191522798547216429491336183713114943791717427364265412219995080555990180638913216000814783188404777149874062971332761971143658720043751829768719927714669555460781403487328805883281090253611296084162836275853046718515480745044972084575584260606892100475188820557112348766381361062151569081908645574748930945856391672367447281560257577871969726082475724334873269035877487685580226735005038314484085473289552693892939499940237107528258746938434809842381944278932240946067380367118843328102211496232759956359896702772350841556321902129315334083339544886137961261773908766688935969285746024568869206997760777398805863037847412974743656441984887788797322865231151990055338559293868705876960249192550214559475486476101222706290020407914171162586660245310998042973477406623633262381907123881742165212904284847382332712302928983521758872986889273526551967483699295698758412055946600629944622550816756322493253275125675553506372660780755364254904754419991100381295870556442702380053763648014781206310360600219006340447260828103237309898766440523524196222578499010887597370885167089524719070634704360409739341541976703845482234798620386507129124135172675055755094074100578439261095466880073575552638154147648706285515736823213080966817867178238484359498403110456095466275219994892205305587252655403733272477449305463013859906700430038155176676371945696537318545331056274235248267152340469710394400924195356544437944011415312852696693013414838437885378755685116168345592527196837875098528089966648283504634337392949397681748704135101013827042880507495280758989605165366176702028743436341094348671823933858129084355044313984754444850114957902922896916131214103238145942047016296532419047204648904383075333588163809386060995698735604384843930647197947934658494539129160530798922284838604928093972265961878876147420403165456849196093358643717529652472840051007494498763269090809694853027179069128283813853153132344814348581500344412536572659365051703978075875576391520639352643042398043001118007304052966344453397967150006255064736643853917011549926492157919622729704238300765466982767840192461728844595757678492153583894393132024175491499277391516999905345110101695087085157116809980060759369192230563454110471293770047094451588906600597897973075297676922545583871564090061330251859908613916060492692773821478019350739261642271429679835199874583446909878557605879299928097401954113523161554678194698633420858791968228325023028967990401805716027429402143288563578415683636796013873087024665629548662060772932399273224227599590799164882949873170637685048572252443791292370520245615200270345491410716538296026529676336248414618811597952860400685683156913969808196790395802526262980397462898912404910125762422070489055900696304590841014125084634930663283610126383576367915748527779914912532592991827941098860339879929978790810891808168120131891298529411726066373776914341387951599927560744926459122777330891496345293086727032988923686377349714156803308874985824938293368786526976971900554555722630349588378623529738191150380119593205281460102657652406637536612026438967454452366598646683890663245437332992149243461504280650282285886863167728293817480254274804303437617316409190685054452665433866424060512826213999033561335488022752626635247936791071968495092904638534001402749364408410669481780308896844847707246879530047455380911377662760993964191985229622271601179012273732368517344205048064606656930942104409751135730482321588239925554869171777419662785441937494275296686987373278682740404989015245542541566944713108306647842924436986835607508142022048982136629310140372225838242259899508978552279196697145961925514077318763264809464433528100163419208082446182904817750250156875734270961371476420788438700666772385910133545790031824918421299750427578907741739739018188741651375214418865231518231100027104447646156521576691335200239449839128796340601861235293525003509657694118597800709780123587651547615345713708082944661340869308160000524790306275164300568063310285803258943164955442750889899190177351897908247306421900246162405141050161051715905693266324943838522328678414091465776000002447450707901718596517309655497385480048294023993306042889288486550621366450300546532299591881650386050024360911523552057988265398415759254968533269959044074924167874990938826512290035825699292401637418710247536362903698046735022340190115688623449214300577123303831102810860366502003961067024538497338451587914907562432693075596524083448917479569956436225365411120100600049395516006525989702244860772676021047032090613263316961057030387475381441237498985053915439403422603479841061174171279618229380904460390851953265663713196718317399041059533552011629791090569440655409586695451041033015770795549749350639986793557614143341778414001542679783580802806156766812672047953142045045974680235156550954611377199761039412007963510831466810354918694634633193327521001349209248760425363337447182558101883910635573971367733469697057651761849188921216863317467974689483691447309055701452052986458101245293317140405485983908621771991979788127547992897851370123434038111740149386174571069136426092246570398107051763293126521540525545711151572663105297281034992963383084267618744644256278653056605951526041255549932740756553013815573876386922977861909665187729561643353907827776270111464188624258090033833487667223987474160072579750150678396240419454539997402073865374399868835424471344624374561188231707827605586003658169735156441971038492966844485778800093664199229207016364503893104851279282982508370331867211561722151039580759653725074359046963858962618362717392337684294646374207710715769407876009517916296924684555313281575615299050928514171156689541715268148899786545887035715687748278276382303890185018287206677308994468200806638390190711988244607762275463074976656083714461822967278917693491773888951266676327758395498172721755219467493643729411857864747569173094342808355573085706772357470346354182994328529560194204574314174011470044483137688931867659820010992485452602644269552949187536427034149394652588011939783394023089671085159998389199260646641126477631939023706807691666512430745493170888193445205077342075918453493099498718593949742238570471073586782230839117121387966259072528501572340166617688626553180094745489239838211650033033737590100071373452596986381326377140807604116114250785472027938585526286719169995795990511530871553156108810543609097062131848910950608448439368812310841247456678870289940285960502655703364652336476737988539762272031967196614040600327891462642989589301486248891546080067157088418429457598585768763387427742745767776038779361048438076283127972198860004372501607902511618745929722370153622739803101414252763588032355337013916088216114597286163088546808724640965764188350821622042084870314364478960452243725314144247153480510279611722247871291625684325921874979163826779834893860027694796761285949081463801240890957577761719306222819674204032857433862925999502905454068738185305387516007929003584020686226482005606647142796019880781772280355579912248363771540873196724759752653635549390954785809105483965047658048993345560359344464625124408164653365552119394723682674904969895350567795186818407081293618354156184032579824714773000081575947275504323698761697371502769692419606144144981964646831512866819167584774386672856595212164972584994869267321944998268373311461143070409744402238337431826873360491692300413442219611201990142435752005034239534973178917125151588281749569924386766922566807048480217698509970076279318663690073573900101107136603171433351751964798474291677794934341764512659347628469572522782689111401879028993360819732979254573060367792877638986466563916515936280462634170535954506658216314190952199775018098309077679645538488284211184251017634469881625939363099682133678732799457820549407744589669151553651444557463446494949970446724393708655261707674751575427030284440430767372369173712595216512588660518406205336983800295408163065289843613220492274871386351193820782541329780889772784085180394619153348956423056890182524937873880466981174075506918196455252054201423808546584753078056483757686661632866085404766204343636871120168461442596806120513143251216466328649641488779901148973014740203294608059727839711633201240868585536744712578083087681777034762460327744046508100856285491424245109022153840648683136468095473608760984911321056694189770538936975896428349951125300788103687196250680129842325803214384705650175655958563224942573633177641361431176644889060952651023124222826391779288748506273758014114681812337195540040555891105448616201093883543701488315272397205895081739334358302655600774673152454054478906309241873287167775193493247465307780870956413654079040866200940030578553995301555343385907642913197170699947156468648735215302290639072849525991701328456338468096439001596053321906355833940047119926803117218094226295352323939224005833394311842281517363815542029625066037559704800011611301500767744212423588163589303311072712428688186107558229372300574460671321349785760146830174452311992332215036655995712448235629737600001739951469564049036533223885733447817659762921420080255832207529488517511363264224728857162175995718621008983834479157290502717742014327800174011612652454780792035291553262660416484343384305747380498500928175764894711905616003288878691749812813914452900043370924435148128522148754721891127537211189861839616160121433791030526305021328242185155055578269069117478471579041804028427345634874289717759553472730853660603082900288232936778595299338827877338113106525801321735883981303337337872924070681992815746008528062454561113927266858688829095590906958271253930289601357846990785344458303264096582827064036099072870313847236927710868806557028278694544070251941522374079487975325764842744545403109590784043530080296586493464420320329776102726213279722928087219587015620826602726801956662915202174005097642336397377338735917186904445127775080052509253813104781874638738179295594178931081816981036732141737869054597422860450217473866964350683243649072630553138422906235017257965314029286886431093692025595809424803722918675533664615907081284042186841794670833380254685696114862512685744286210235859379476296014904659414375101080049988977559369594298688851071659338145851213190523857709269432845954231623134820330245023770261027105097054221107393390479556101132662798879101306462931638349471991879705097638199306452065609629582691840595940125124241975609139063140117517293241788467400155465018474011800072605211962590419971202995400327722763047210497729774452010129276784631579752928196602761995709993223509252894398123441286608613810115353528176797763449493630682976988020709647100777769155300884724208226507054972207595549981159126417033911812074963304021770597507498326286647329142637783883894209110028905971997869582327087429590303200385152378285365755540973405425783558742712291851359056780556497587849540617642761988804681235372459102181847223748232656850667020132197646007147775872247796692248723130326020851811722217944315771191282322717292353279539042423962579600146954880605093787889498181704111591334586551444132508839663120059310423644516017523585986286454623804198974675739188402912267543413543881720825604576727968543708034212560568807768948514608576094922530596443380773384500020674398904414449541863577897121400436176153888165336178395475616277281062154397125691324779676658918877970734839385837768238936332553642216987730524891521957677452256825265939723049353230581902139851899473296154802189438873980465477907476169264224184733974372067200278957697360028525052942134261644468790693268093849320265950876474253646206248623532145725383802991972126123723270702442261379499489300642742263900157497437985423592339072349314123651550393374298548797728044234406807791496056716013716657765035847156325519866660622953848894295976724281472354929488710213633417733790287472536863570567934946996586075561158146091826214176904058168921517624076420670190747627016375481717262988120123187098926365509638852460714701910597682187340069533147218047337027375634748945823557551973060353791887316952456950176393033280270081529113414597259815485835794496466680691498394044177669806081570878387330072199310103133246496349298234017400945476614886555593476765156416558442471654276970979063021126994093687907151121640459541414678651906933199459103521661665854406353718078662453280430046276102514178869018626313099328343319254380848372447154781965292777388394207920010797779584189248477214622189605398678157432904686814317295399453263477850208551816761376204065811861817978905866590297847919740068495442543114624417077572299940273569153768983556638634544820996595697528832647581418984005111945798580841949791211344883076088979625433925574874406324727079257333043299106076504799053629780570212084792205442931514037033551917280906059614548547278033163741547078603951776779806787709826965156586141782383207003385814920047524275198216353725685324561485500235284153609794640239520305504165748780060541627638118108200199581537045484978679891875011331813267094071401601071259345721395035620588226121712093703880085107393883387892207983750774198309411195010508448101881242460743194523878176810500208079168506991614119954994217103523052757674739750308847785172270086991016907958891435162952015173950854313323321975871538882269835999967412996002061755821340033757402095748622687026253509569969902241381197076202889424757391052847836944783062948416231175741824718561044317005807177619439448791710287404543134069216872012780445177397400646407339753932761932667322782248096153278730306037253509227745728446530831167782309908308832555342032865626618418629156913171417318293391731278048561425376559032417237079493908074124638190456063149762264973883544318141988772337787021595067519623308818189765325847030292281346983709642616818569276016769139329913487196392781889797450971456335654686278038989214664946854442279054626190448958859092069576186877995963033788006934811872522499888236462992986777568096211797049229606267405234872393892222778740088544916618591691002648348886631712107570325718500378631465683409509215192901508481631747158940919014001653484302850593125155159832866110362334914491952765298428286315759532881833975899894431397387155915108027408926217572334755413060127841243481063455023873768354720315322257971976982737409006366566019358042538550225810016895471067453049656509746632696855963614878468287261897236846034797465121555237094915357313461407367136068600012734980721210509810357409248200844559264127978736641217684602019232261179183121554005244207169763259039601465820621487344058221231903654906456880961605501723741793075327294487143105246063970575488995923535742322381380503935406690746537845012492985418523168126258501693897107811676660470105157553247012225390446937880995681789613544691710910727934484631418175640963720711649527255679588213277686737717021525652010856952124230385534986357260213872883132011703527078458303414775548537833630859864584420641653565966571653830782186763127953198842181405729644211820715208373208289856728116017231518733502168374733437045264050076284306085356696343479617330465931990799624315924106034245140521275311923782923689611775543552511946964813945905663224511643554518558188345021595319320226747914360839225482226511655466757826310323895037194633948528981981175509655292271403028534723108147167809690545873058043731634949374342047644725841178524720055419488447312065555897147970785997715270307614633357317672108665247140349105660861741330727371079687670153581964403405491134608958735790543355201491644155873450684293541185822709556699130645093518920330787387410677170749867065777363768359896877613849099516700080910201913226450689320559432745622486301301375442920226470046986266875556671833873488414827523387478740618553049204253083689811418598495391523450486940604503737263925865910090639043414179079959725331449368202053739323099085234767266646998314405994157761335778065100158490408376209507814959025521464757369202530437422500559062488154404712684332258096905239837772961398840391233405953604872986802758262922033636494615917446300219372773956180451805585403080967709753668492332346036563351359354035053022132964477993599568597919293961133251104761101942611193457475208223123695273364769017215931041478921370801910487924738086533143573746477403305091869288449416013397968082293068123537036450109342036777339345722645060376293311929580575235219603385953956681585326536247409763371154417102404592373615280622790452988169782906747386821402813714728908247240189430680760225351132964231837261343605204476296816311572195967009389768571599957046586931163341719377352797369024898106815544093860137974990384163270141932072074550220593332769780024925672765921302684290722261277699763038813101649246713219383250003483688057280272052191418662291906789352132454455855291123480197462973224454653928699630697676521077531651406562620386883329843422525031774062141210169220550056473558602153339167519827753923946750164450425003288242779355921510165647081170140449915749108856298411882107509997340008356143605860799520669522566197545765923089261921944027394135465754550116860986205671783057464020246642267910893029356177424890148140982035678649956588958257584584663287246011460847784867720218348201314811169390394835173563420333220352915721146716894179626102795304633500664330873782746749365896704441754541311671805750590018676034649854126840849214663645310758704518651301470618862761925660479335512986641224811523789695363849142390946048884950464216973167507934768785326478145137002674519264953421193652325811205855353673410159124457280543796448023755976775846564711404091302711760382806139460654848755967976289769945146826709296767751124396419869395582564936721706405007865046843345548471040268055553715357089966706208090491255904622790904720581780777894531049128572407118767027131388766116492679521470165102799043559339137859529553357484685138376821910301214419483076688459131264441739117386637530218971618216924678871088330372150381136094426849058240780734489696128251566796046757621342263095041984371302230736283679261874609718033764433734210594693788002277105395673849875339546710526300616203390293250062511107683473068880938699955036152147844434895153779659911191743402148844359015835142644044919088702538452804060831046620931348949288965040397491634198986077187941825744286739324539642980407780118404632847899394705169975108795010934821393831852498304480372050381551749741277375188986665934035774569186029772731828044763284015670526699757709090533516966277532359506028448398425472051175348318185664955679008111269845751767092962856204914745929201542324238007303684084928334663951630823369979056275116212995690257789723834100394363179790765434957412528000000134869152740578558402804810392254989381560944356628339604701493061055260655400005314590911802622379264131036044314364727910237532617514692042522965644936325723409111631206915913352132493429954440466108732397378358257225255182866070663294654250789871877828369902407440706618821921602227251807397269225171779472446528926764701446867798549605390020542798660673182920998266833622369480641820891850401563114319076462402856879857963794287066078049603622056225554657651463583390766565870024827435293531900539574553967952943361572529553472355630049964133361976857828290627948326422882570429123779155821153687875928555843427635162337179992882049620991065531883586513957842023509839340929188734318100026867681713881983506669554116555521937172617615792435029907317695706928000042979132568497121665023533000444093071081894909836242544492422107411796602895547213864644689600212122816013455197084678402457288301115046769586360794356575978937951456751153726153009584677390790297323170217669446479556920288856171747548109516905916379321710718857778517248686315542830578222437055783922858271680005646661846565734796210702514855740280003506275690153847690319739911361902325040453541058776267421089206011937573762353408686788174005607907785278104197051916684184042148994519623416324504882920759336850938814281607191580396097778367655626376463733830461409471539280123481098903738764929123664961814221998899100520451568998189804705186961877085233465880774750016051108460298419488790898586054770644536928404226076320090583714030202169297532732779052259887023260670032829364429906271983425428981777624709463739524869659340698445125523198566216558451200940261902331473557306556712904490624145267315527340611499718395691070160141365965411800786098588630044340227752165452250352772268895745700286809134161933976865006564867130272341521038580171494428713412305650268402707845749971071323389671491883189074858587330557999311325455457561267066002273236111334610503993881861875150363648067503795555113071747464164977497140741615336688048926946921938673467574125210966327109253671928281862471740049884446933003442483235214171057691171096462888122436408050633865524723248729443870215620473870086132034948430422813073214812705973514392054026823328579806965396496731163681542020252391542869418836299779931361815077475610254677526843046901096402591732281731415699113760908796598401960613699140489757469724409705920902539751448502872062927108363732993222384709009175716267103339028650951939488185187038479664927373801921576999845882393856515718224467889216783140797378128128097360554732412754821659264008271825857584538559217059589108445854863324355405614015454000538085714802512074033013246816209586376026448069632603643604340563182663385337987533771796921172279223680808364298868481609529439190405211890482615128219039530156826885965343469698740263304347899847314636525624333704206245016257362999705504964047079460279290798911920848879004605532006793898706930726898747825399404153975238760984232709857155125421003307611290231721705473134872899321674609732656226634050977838398419406367254117784597001310726475999368804173099467949438215687798655823938911224164325904991345104969504263218219490495928687994250729445785943067004760119715308375088579818958039006143908661078993499769136871933357016920510870702775800875769853810064514240867185064905264676290044214451027918014888805220745045188370911793812405515082156154084502927986990023592739345741738077244023736926859898020271442347857685067286132089244451583389021303696707938986875645654288836085176475032497636714802388733525046412174845575535438705534278882617076864690478108048452125032415803821530730114096545725081869950431241158414364271891857957027428736685783856391732393112484903609030765173045938066272918746575081447538927357708679458606376333561627504979713084550124575359139079488359196451293056348270928168034537014362490975033322590727621059447035796427175586665978323060450982133296950013866024945697193025178858144397986581300433371260098432711723750634630475146083526475813331007770401218304221329930030781470567556369207261050023468881705398230498570889529405305156421645235328173727023217908422798428498498600232622359424220438858199388290767026903198305107637621832499304064438868720668607565681457534150029935922947812505675371833618843983931630172753947974885384856813056621918586339902809812744574215197198035090964813971181165751776435327501799021061884950919968447722006144723265562704940728446277694101929214705672762354635620981192305393191286241921149059246304118456349288951836908778152643209376948372250760140488838235060608175959489755926659880434386998009645038696511881122233938261883560144195687351884976490184224184407021447048144581532134457034648785554796828931443490546796860930371535593562155042308068386637507569647334596377520491368687794185344115930291811200347841578295365364102611814580094699163210528092870334336782059120337564876329105740187764497981094161920914127458146665901983590536485388083078065269755138085741018462006833076943672354604146705708103201348229697015248372871949024142959117410706152851058315666405728913617899149540042267582857168291467281244318759793404454614860150999924798814169120868625700531401925899819189984801127672713823692124848932304480831947417127759712734066140959619369357205367820993383607799775673277231645640266919222309126721913364474557320347160556642802010841798791122964336893498481990508887840353349428452365112601436426097576741934782490829057100662645405278679455601690941931563530621307460050561351600775132419233308094233582667348828043738609778604319642938266661560129009044426887528131104794164561762978665721918953193389006573624910158259228814135488742317770836192638132736507831677129207485186237402389421666483301013224258276665441268141092386434398791764447719938255368891531241421008201282993110889761960731598433557791123941054726902528802344304557672184753759212312033263550639027681929863383053577400004711347346804583456032723295885410496828900960815361587151772581174027019605414915354139490333230778452728382460877546888178773007935800333517376647821378086467362761127275927927629906042050232856748813012264615992536679091186926001876752081744689395966102934221292518769385561775693031315223069433807131319831313492048909540473428437321131632901309947819449658255984272161605538945200997388898828544718831949929483142481885544097434481056389326786173305255456933864195282841454449709562089610458893093568775876520204657213758229994754482803268366057627059521363511830184594033590810544238107766855785080874607657896468231219590951038243283491760943672015309853678450437485536825505462142852213235468252665521922030460917102812426088773334411736761920520559941970565148117098148206667426734051797773732594440228624065695714190233990066536290156644145720501583308528414354782406364618579579002304670545009636744248953529716914643616625241425704437244739550494560220569929026358351488819751961930997546250158677232099447250543611048401406744982107971724852442828251502752693138795927164830443439190472764983972003331586004860707203855474014993215633194014971537694324483013441000367092469398760916439810116584839131976177593696219399233037951284749650315116463061734686745138055108508489999857556068883561234392503616354153903664368216190340765685163911711515682381489737430739621468658034233871952876950973904276865818924547969418576214623292635307963618075568670040665531829947854958844834854014458977507970736845519810055934939065122240132623156800957166108732216012543233653466502765061702999544756489329853743969722101298781323271504628792443146650914791173398863438451803956206401745090934789950392637904205601709527263302129896995417011804864147442961497662062599494463821864445871418315542121946986417198932974952288764787449769782163186028909591419909273439301208005743437437400392087114435530495333916762137594521800943209139563152219801087830109203065014489036002687870529861602889577166763321462447615359266930852322237194858497591460584740015406247915217560433084936624614995869307485280168143170973635612670785795635356309132387868694832204365764842681223408029968254204582913152845062529169208414692145653264193673669515672670127818924236822823831251434376230149620973625255925822277208544271375698844678599620104065833358474706476421686002465970288171018158689813042642058736051812623239054546160340587667055145841395927881150896143161022146059742228018378732438637324609040352313223677550921857099391302317404532334953474479467317112048414608370766919120589179133009515810282657536065283351895833106372370929046815681863031363469838278129611672482347750599044378970158699320322711324770856233469908108233971440500794784236420247996510796877116510576159779455801192276651827816041294437811408706823757007074163527015408806419410833816546232184859181963265368087520224333619528936915902172480034442026357322996497866431922878982588139720089193928609104474443360590010769950335361995908940778569902955193237481628601195341618418811290472954499762177227629242462420169444371299966566782080938855853689108155244402032974126946925735535260460586767930265473935135691785055292259339873443723114470378632034799532712186516909769062790356120087633389470446660970717505327518405146312391935885828822582350126389663910968356242934995413712105776946121907446665806775117781079042999325662404464615568884017893262447109776711115179562774323324776957105239371172560433192971633635120799721432454888402708838619371703639768766910692128108340304094331356722543481559894894867902626340102053305036602291708310075452544107211064789199365126636901399213457391720418920567187375875495714159795543862150013534554232074934699016075175911376933739401180249635061194362710852576982506303684947579859460081701947656199270868578366609773142257300446451075933128391380717415177071759264898872580363483863243048575256329175415288218527785490591921463362400836023523355740710319926211451089221262164291178824879702298901399949323508081379570311005747674724158053065025358139825762180532258578736168431150938480384819916868576964889736786615354861145745494695802752199794602939082461760156011016567295158487760640722868185575225951461894419987733080206501593413303386189419370878345376482431758893874463506174006453902358306729848516835513182155723621304695710249520800934544330920102091717656435032418002914342859401790213130374532158312293643490922669215439109834474092853480761592736759951555566713514043113346182072303392150248514302946467801340941645519462778247745449690850925350464429798050197571080164325919281051096827500211367496066603340450657131381731739465904511203550468259370947914025288751073643595544356750988395528660668356728177436168348442061369734045237720569140625085884633754683191505056121871294047313025506482525832208562785449777797424805427501143847342799670858141281569676812205101173481168480648561156521436562650883017900634854132146423699282409306830233208484271143998084674732561426280572279195368905909821913788956452255530921072577553454645133136380859066342148953243158189868328641321490138351366877197327911238837958413635605485451418883438824723347639256051885764821237419752727195464440573336517460619776853596587109957083578424707545370689275604795398012811085504120173195296727258244421598622873497702988897623309407520380523632714125225183738134793759611529860810870227533677314226100123618160297990022900654800826889076951051606871315247116316057267632821268366852888957602446574133107251538072425531497683033176125149756706870124190768637437347269696746856553706694689111492582990146234940440901436797783302163750177556013077619564092660055040361753575553685679371774381709562135440778877856329416509990544839776014468518449812088486487260033801650661897434566575497765676327471258829347322777381828253100828833938877072194126450612132302312599738898157430140749269125007363328349792665029342362239407565937128913769404210801255513407390737203108227483710436843036620886532812107741101933592425125415934442763621378097308460402976557908057456981189737539434487023303749202520061110755704274306906192951664002370603074120716938763198802406184326582125663515223514791640348010859256915107602260863230126072656926544719891068516022971645929751637227162964514300249109380676457080291207361014444320086609496204880357107531965979752621129016685982797789200035811759691905633277872498157972692621398194129547870042100970815799568101957938476639995533261512240595489367127315870498207139335603300785992043582411182335702822536123405802178709180014039273391411296830893974723224206304118802730101901523255182175820607991068487845796483088320193490311830758572109935836924247741013459592961973054175686368188274752853662342728441782486172103512052600283238439391467220074373782397119449514051120730499012729790929435609687021192086253251533168580119664003030458802333701603136863041682646318836538497341872930415046429088681171852841129671748829363099314956736303727702114608596144710029352027249967676608874478615036405157492999711352260300297341304190844423917707707797104353681058914852419200240664679030734499249666760047077176200047383887171398150378231705113249396723643699503776255268630330765521800293474564559710636149902983110859188317413173283712784244536376872833139739798877277121815960764632114459095902034883756134356359290400137174570666954387789732765990628073405972918696430836586163871573751889504970557181882614386397904228880052352588451287233154718857810633401461760081444137503200551073211355639860097760451133663894378615595986616432912989775928567788277393733844885953002558825480111137777140042793804348492053011623941553895288715947360847282800107408381046291092686191676893212520213517569534224729425019780557915836151054287100131153639297503314720430916987717013282484630435890659203252981963582542825448348520993022841528397804205902950473849098768298205086744566579528989973195373892047818417611918968521498097842157521651658125268229557585808618969500214389533864847726070478592529744828725491743136498085205385274488952613507616213114308982775301407761050768892065045313603425881966292485303536295467182181582443993701329997809183145311910212706998411325743676471922756233201386703084581700714335671885070514813343327722676588235573044825284194334336661626367098088773890674082267012768299566360588696724513627275529489629032616902915772381729483172125371924768301980510872892495739694464274796317532076141347067808112132330542127137130723532327334280690453548776371653868232944985324203337599842746302182197040899227932139346136846859275783228201727890147942361627299071677791299223112140682991495410663688574710054998928148658119459661520279848943642065843002733694437937277512013410903684307880402994414868208486508174179927501162351650177533372196513250270848985114474588297275663235036602247847128134204693886740565519776424294761845058726150176342734980742235312807860388658704113508411157698168482199890773289021160121266890822650537087429699740412282524696462247279342562555991878321705819642430997599843368475585631218313198754808124800711447943257359069756547878654319352072195284974701178298247309270132460149369322049844076232262823616184206668889823869002963244322872422169172033794397571459108378726715229420062907820954167654047499085615921263563061992067469412041050915646250644246736790507247959469062357326387257827827781056688462630968692279096637701653811447477075910410253951990063423460626463009119171479128686478456282319735830462114056767315832146138181664162671333533909506786519367354432836364980882529431862188878791764197156821126777460712859199494004898122547563990455648147229343007810785662889064071483701816348870160862703339429895693918159274282945459504060226069101615908571780516626885919336571610515325259781914774732164732249797566078914951229784303927661519276845993139149187828771561372292531479946468695962950808113676502105116944424690927428219193440960852869225507939195476630854277911606831184818401057617376055595590709501159913903068377367929518660619879441761986904626557978325708712310197181780110900581480721865236381632059812140134821672167515192089095338144029624656629933793883255474604851731713421602166846620434192397405916413783993430403302578724967198743650854403327574345246948623667476356641445495077917773846660460367019376101275100194935501014587724342201373548862032639098947977506530576450272801980275579882391478870168425446348545995847295139471710894904492901021238943416504380000787798586231822511262419689877138298230934895695823809926956756641156958042930906403883276435487066660950444991374874481070740918984821234300782327550068816802779635414072986226029148452339760007608767957188582808052405540535985455944879243101186312536639023876934917919712234293627385567291209961019704062252035760978214060521027613591435489145889006109286830609349591570058402404738895853185099698992770073614879788624787740164434248038849382370283508011422340382901982078442721644082803941645280918891896412665303416709056262642135613265826377737136816793566579083606468683446490187232365604900313603636471553578774718564746825095050742068148376388708401804030900677591211722957920723298036979154454933824590791451174425730674594769594656923585864423387342618156258664545532988280663929229157067290975770336771421901886672344967323296045382386923031956364975395670502712111863936090651382599205108328552859355247696209356268783277586116211882935907402928916601832580564729378481866475846670455611088057663387335079086986882925190500564428177167285736640790184482873516768087604531836175488670349713439191395776246900923462458450854969623159819791990687682104320362511754635255484102723486723219335804827589405403712669285571919798713487560422606569507663157982042350851497514097800960557168961338739611650284114081993208994766392062077733882409740098338552572869533492714007179689150213173724110010209001665326903901909641864725977571031167307211075662092173783994897028627846711474123603166477443931467546182025107930464834460324758867587452406277292611331199203004085636116929009772162680048627437913537750845399612868451242777076434551755958052518507154629231060645074040989795380838838917834140982093639039153183179533274526361543911007453521062490740887254399955010299818162839003229908688772799572005113806866037655921792758262583905214735276586410056510959556018097402500863036253992623252269820065008368285009030772484037612034194215467521860966080754098472499922963339431706012908218189482826769673633931841164392486722948955386709175190428689774011795350505764752112641642709617432340831305450795183303497087867442044254298055931175855051782198303987085952340800236613699047200980241915211433644389150426748944301502527212596778431219171123321505054321626577222326406885564715708259903094101608755122397740515379379307593172590869891648491955705508440245211875668619639149678611293409438599728843449274537822312364746405585402236890417193907767540862243424615798574871035897293280519399090948205194284566376349108771593609849035549654356397673475046503053004529413925536960807064173724886513529750893916269131218313609506066620500527727002453392680833777241080589510330048943326866969539054746568327978038261259913071878133164302368002883913716149909731644003114346572212311965393618173641517516644136863994811030444860967673962184583404902687559540102360393756493617645212218882895264951054858883380273096601935588394949704482284298386377912267594972530667809027302825019441282034314383597504693922416833624853679059403110238802812926124820974941146939598127916544678159194919075609860432025008522039465319563624407809701841174971498142024790953881961312017910768664144176319649843566547436239734458849853235042499117820718492862166269809323906731159410667974561849490519964771126934509900470683286459103516550730013754921742045274347507805440112043158458818668763115782454935764335339901861790428266560595257295443589147890639593790260375136650705785248854744133741244755779372066276971354808530966027606423161741218442312525855496665731560416532700346301895980272648997661010980105081769405646220774045166489399175639552925087448693158493328943210471690630394861933755274477073760904191604852496237841384996856604289221328728595474168326912340480139299560753556651317368565377381027935367475256060929031568432152079139063869569485785569069785220796421840075484820811247836308701055005912104365907540545015347758686651741278898174051508890321680473935659091701006018508011235011479210823963328212317550970048760295137561149984198035527496017383855818002881069928931657694757913539155894377151602136253529633875914133291717300106983039390585575420103697768764656701649733869857895558179753248235754573671612324938795933884605949036815487529975325732876580282971173218510215863698612679551283089752608265455658870584019872648931506125565395960250189524920929081027819223101822537085563066336655636901113827248197235553637671311250737031877912732951422397032670195573914481959651844177900834662807917599907182515961092654036020021447623714391726445398773662823624831043954243852107688705889329643076769893550617857521823141088893584747645234271005693316971158729655139377084577195636307169304480432963298682053066916434291045725518259076442808888967909882195425870610302253606857726932537906077118876395918395151867688222702749903326095256821964457224133609806075537425579510232635872437345365493254832979859499311646399887771102667685438017837055335660700067814727652302254704300283089079173941589037712357236505836992982134763229123313271826501138465620870340879262362717766901602265022963997872270621236145287518499710229984537857266286417003443131272942917899104624341967773813820809178351733380312605031641370131394746910823666604737194796442827526359137276989502753990566395139213567387912305101723261488288409153400853219590460727724367063717566369604751645313701703770616752750942514948353083751848195871920730874914658787551342852218087924845626324746745430020245801811021964970910088832142843772297400477196948771085557964773256685180508686947631432063567543664372151612918925410333537752407501426876353914321861846028253553262452466685715423610611528280137224782678617501125439881281545823774093272783593323516681447915689106787977953396723497860606755573115927474406370869410858532371457718036799139628786246031517901041791852802262816856189828082080772794749570678055071415087145097725820793244767161395026035309568294795274233242786900599207840032908754112079869329496998498856287333016307934757165143902087462155324768367330225994664477476439887397578315492442779056193757763554919660172745149242082341339427012677390071041185526453216762184013519444895921631782146959438590598690566750130545316153954527112492442482790689119717327740937724491744985665225078750183483628838716122460905571924131890713710625773783394410161852189735772103545160869314021524346072405256369072677686390724838581111477667604476132128187385188221398000307036384306062285356199045443429095349856932610605297412070202897197944834683099398119084943165146262537328995483366720180079029412135014532940960496636120830221893066094234551034779908179825993017416995516966113756762191687800910692894310120070313532283439457035441970758082117500770425840371429948232283333628983994022102490563040354586958499187535091385867023431630735921216535298153124212761308979575025783385345220247300188702185469896021855548241351119456105329047528407925257151711989677496119442953259959647763824897980888874161071162951216850815637335339107994285565601738164154864408828914280405099755729572640867223952044832812146515833801967729109955087553355727650776639944287974962657748624119924857968962262351412939927174629743549382736395444476752530555002503549697646319976934341938475791271614661574263573111185471176117808600507881294859227441122910335942931294427912170963731846473449458713600426395748799361838542150788332428298515936152382622734478151558364809329448777143000720259964832704175321480956085099616589021233516733048133676554233046026122128399602710534257738790015889551949100479266856418358272521758835784018861340822759427733984319391424655891878144829861778794317657949543654055921350143234917838160545727841109568758862091269655750154935960022777088523969677356642486541219322700024317270345838426307563938786201748420303496270125822609681658036522739937070690472007098264918531799674729220490405708930327778050380993683775576637946616541439160285371840526233408771352315921214875061791324047175373575403592386066331580720067624614213346297534455075560419184593523899562083011834166413132903909300476995385879755677596222244176201225796442833622784602251258942734458426857414836705900316433056219913956764749990239275753045907946011944477712523864660197708027337841523572997185937693711952582133526767591881590669106759025520690126458273143729620131049754200850082856468985155194935770393423141219698323104012038911006931225622880115495128683333198737211945902710858027321141390524425075744483275680184952142919959049037329484314505323353640614462594773443535405063452228308536321088739984409883308588483332770470652466849329099675228028161136566805864168802193000323867713251119060959112749960771763378382386721643525150568640640987973500592896711502130331173299940142693053606836443400593819548194683484348545056324919003050639668102372578963494843333314859969332514140187057127918936577763257761112672636862104787546424816595814399910907000685745740530016711370341616773623417718050993611113886784659233866094884006776538195207886789485094691891296119160321709103924934983482643231679199993728564498977905905881952966709489172588931652884345619289359821667868264319075039962665341804119398735126597665238162771681927026415992546336009373493494018828610508222589389877068574630284250945849705865553753215357338364027663454104372797927889996512387001211242227851541811843137671215414243815699130280808112899931061372779819709609334870957867696333677452557321252114704121737334251025916904850243330944128794687396516438798608511402133279389816881707031001696216041635554263094146870338351396627890427248235930244415423475683181960632192404477122637318139397743501662756567145676685370596036667144676790373073806170217017381340803245071814711127148378778180902266197378068615816681599339605762010259130112400140067167773308357799437680222568775576842277151125586389300331455798169843177447854339566609361526285277707409144505861796261492575037852081130000110874184527850845853068712556497319207115285534491805123366185135086333994809397185202011658005340700691635452921821692716151248116448920524299848386935917398386316710217852564289305609016279387609474712372552578512557873906410168806617471374385412099443345333884517880139223291976938369014721940507307694817621150347923761460245950464240364507995961225015494099447312362616443464450075676274685779264881271241848434261203501808893562358574162641804259290823984925652260661174306166180255651224436361940019918454172190789026901655023065992708792765763443531604939308273374533097271289322597495072863783430238172749991485954959257837737020714325899613454991019388967176058681335590527202843141786787951947689198976924176984162004165145757026013931624927833485438577845010770482765357588088888989514315009344669084380937221516560702506599657682477365873802661860275806171353644432845069326190771001331046910711652602068408823675481389303039233817360450876498194413591061653355225374091871763560367331974218145553259990869415584566073209248459332522174662365857303848015636444692882269694021032000416257515387392300737986745805409346811475378045937107212248930299142953336357984293864002737850311381361449653452724958856388964287271260527918321562007835377335791496250469023604740542234623137751765665539818217002121313261085905691344716290229303534905111289144722834906680912321349783629525070334810800341818377162725327412856729944654653093413947246240899834945103009195036830535057050283243239546013553552152882291303527082611367926510883538031440556953802228387800918346172594786810539819145209407170959574743603091603176950982934046788509359836613704105151449544976105040868458246422440851937323378117380115602720819736792701275320140201411052566160518539802875293861253027457782952500849953422014668137708657339653821174026346183533686479820863321177681225314673899659618801258267962297796677458095832829636725893285708439143490394846762758866207892904778721699842790106075327770588449135217922706198652052399432258704685323674040825239789662050208736680426037277247904451067243092917752162989703423016425448321216310805775946419980213208324686487597035369061757753299393058661912114411447329782128028026216063599450340584004670271192319600469770716049200043249174894795954018517251592257461664159681489057916648393653232864258299818031384377300947910756266125811516375995565731151998573857038283832274329507941004804759110389647198817469723331868580560699490191969319686777036343807871150697100105583763622619476878266971440845876256795789899692415015909727401398980140332270412483718436939568288720930544357690504522806201730516510549959937015952448157944671517230236568635863149996378638670020850878872885037328107888101575854961478071998625081271205810467898249148948902463230599528637905812106923259059822821927230449852843286930390393181613031979111097083940653869554889957975130130234327954245566094839502665678512218807525423067818585213728390409005646859916394199155551460958325707109694863610791830211884000985413029856007157327563947293537605482816609860762708552252826911535972023564873188230589892131056911019464595586686591247476944544906012869923654168930561231565541352603280378748139714458636745270286482618219789796211742153795672927588001691303198625069990189313240166114163406087775318829732100305837646531030200320520596880612557532522382975136604188239503799507332396152734549553411285429111056472436999000934673197386022295903671271541244967113912924512406293480448003288118426549305441297950417786918604855645904548672901127512420284692948002502910396420821207396074146858076643808094572594429381762058401101692092002917912750964464248004190193239039882155850146698420999371316393425079739887948049170657869892336770069266952205895910324255038782248540687837435701833326556413764318355421186449887500821244020038357550900428000581306587609538460149560071865922763456819440840080851635307094795494334391278860069518444540336695805388852598066753331466109408393594546129293049565822290781551929309505011161872748069413117638988929856738624909113693689637404244935400749705938277323693926245623638017231017221578057754333225723252658254100341197447908109963581811606586096941268333040565842256921619733970546204052562536379530943457604969369755195122296757820484424377987166313072416558407010514037826923044931287246817123979558316857143692281433643514183583986556576290339392046928663401485764151929447988627921611693395277137492626902035987159372778254108643610127500653811771106146447195835247879833936218916746131394888122507009093442281268708501469601556408454559060368535008285218068772138923308013753276675052558128106350469245605301887808967366950517389047699630077085827546839676974911242614056279002218765785042447792273287846105690433182923482779673719704637914186516414074599506798696002097790590933709216750006400115758651676402852527146555878680887256600582504441951394890788258885503214765170764191596320058591972567459825830628030920465303129538979818038594675071103940814946681555720574351193879115113216291637229849305238025479931736137064230840539820904021452309982055647337786653090801774504793069644296470402999593634503795436535113130048207387023935054940129896863921102011242513624219326882699150118481022600994384692744394738454667664103141927951485720511344023755796209999349236224211938298011797073525417324825840553707196858795725538180765347419870636967874598365065991475202586572977673601932355486130238144651832097953245353410936812850867875786620473030257989655274550458864164112856070666678067120171614987523797719096197795589248620973165905548846567379503501984599981488337884264407478756888434138456405148180662884499953224908384091349283604873132798126855441091643863291064092662223749370994151935998572241897811620939410930503574310756277513380520433901264302828945606001174218662585680167249950931018045639986998119807575703471216797335067710071483455697986736008836434449806454727142915946318386730892191240202405049435238882525630639020477086997062099882670172240285435459962430218274451968910631088166995620597453643975827154319203939615661967653422125085510941168299198790023096233750688121119469931186551648389513154883133699351941593218940523194689816174395048084783376657052896424789180067078348436600216062544437608852694029156411715842227764624159493082443306135625354882667042945977102508447501568205060617880460294636397621552357761840790563826721342260983198181584085528743709366925662819486424895896049242586332967121401018948328690837365318195451182746775773531179564251787900206132179468535420205925101296904960233086148051050458581027132731689343126922116414922079303337443826268375264123941622724485968040195249406474784105192233325308374617801898884344448409427843872890752248584691493529339021658865842470833796522744784892253987118795359256288948889586350759542686465282123983397460706851987371477960345220461759004992282635427190182733857586302628251252948088589054306321336908873999474178115599880610716702438802976769005088058080349252974303351714113556435564073434124270339898410112301555901556982712735733782156946152578517439957086863519198098839646748498845466342881851900389589532588364698306831118816426850437002163148577735267097705327324169028734518335790342014744115923468619784907104476314387109073729259609083891006664125327820786275206276378224084432552922986750098737852086074797451421336475076845238340270260927570543729749311286183334954855752899882527543175472988035370002182275069644370950112748365125080716589404653218714953248672606837963868311997481284202660340222945748020073221014854742963625080742569446065400291609008226554690368053881837616152418166803279862180393668249042641071991175653379021592967102231237689011106836976115852047145749050841433835319075332276159192046235743544809723589551294274282369088686804467902521470798452699235554892731776352787249425924388377120671201098983843071912299090213610975940224112432016264891692258530062961605727536136494498319213081899257689136588388384455738353345249071061917493809375368912218695584322316695778091420329883980460717006434869804639352522024666909428892981337463906569857043158807455063087676851607829054273306097655119338093476014420116887072131660049714836533522289195824182642114967580762283781486322093079195811190845572749812181372081068788825569660596907397059308779935563647611497662220657018424236983480364320551670414607242470121713845730057526476464174149157896728875971053029042294792207189371305225359368489811545484709155755966209285493727081423882807082981212334049427948580324411285097937037051689056239215028994617349340312430320610345562669922892035144368814647274544006826217047710400952443922072395242202374363847002399791428371987431376376380311474961510793371767427031342012753790774794620450703461435483627431742107403674811217334232610006940505241257669156529228608232941592740820470006292791697845824854720291347029663785888789073789890537356649640724076950355089252970170357306036210285187991779299727176303738977335199089626362309485926881709978511654407278673953443587023118701610438366987351327844066513315706495138669700184801982408702615905704779968982606006593827960035698062067932394224088521082956293504386947292123669575228245201398354164677011310430513007402609105786380935576471339478667441575160963302638389540827278126673155351044535702185736597313894867201503700789849776224195398385191753129750007079856966163214448774186418187055963283542869036333241522078471113839081813374843694153827348751551223713598777624427785120589282734881463440288862583205069692429665247092643899143939378768697464451597602224692810867473606665072673064524666915458163639380401480888618532292917415714923747425671516421506067032803146331726217237629188870583932164923642363511396230826614923911509034663058848368331148150874948525604485352064777412021093771810720307140031285635627080460047634756319678984620671510450671042631631037811444381628620598382393290574967117184673200314518450807855192607926836003377266178532688773764476577742318225532236692832862408665567042433240951349234014513750583559320117164323065211569467535343685842094105675160637799352728958026228374567149884186694573512732234271018242507915937816041843707490559876955681203653114451193019879675759797983778039884760193386428183613031744404936682442750094649435758146560123931220148710908192146864968629301663219737941779248309520447624255306766684725390526581521770260622997405843475920735925641390399476306691482033201206377274400188156035621264795260462858120534137689669392320951594417934267797917898614762193440543383743120417167576572813699560434418695214055464132141903305981406433165854173484095970650286907805846742076660183645546082508829662641426294740890511908474072682428871907719781616968282536272656839852757936824712162474378341899098228680665723620732607098686383541149823307404258903143094973822037058941050986392072225165784130031600420637868919070134672170933678825583512403786069501831135068861564356310537089285239244415948603399362454626685528528756966137054715016547078204622292952097895437804290407263098921175995246078717614631078541170267256952543778169142682250299865216286542903006118421800584563300780984154751209397659108729519887922828261792327053644469336836055884352299743986454065442479374935476361513562720606443668249254319272468205176039539284612518198383790325996734899305190960756538443233373202622483108750608789856309841887620424048042670485047490108078145763617194802862763463730566821785455492781520106523767276001057481134887054562047956501040230165181126561476356960569798021826706385664773243607491845778643860411890247925809229483242366134281858570516844313315290226246492793785265930527333649088045625609234507800820658378994302563209286585133807723722012497546410781275004576796624782663750626538529019021520942070484343607774958580529139165298471723086601884646914045364590318221497076213129515964947022826397312330515704529706654125274938907103389809086480575722754874862126855313491628405768170117130547414204264999326916147839964637855910945996673026158175260609154394117142729186762614561819993040074387760630514998662459625161880700536212822876204428042812526727700678135937180815830365156283332224350477569065290659016292987345300597258638153363545210132794435829873765328753272446945863687624817755890900227970786646066375899500650044991516039511175010625320925098469562583722573866544093366147611136594845854596446596850059359536930315132419257311831644200803664121343406794330155782835423104362011265755614289907079100697438810189099444877511120797462726917836445294775168334888614358458229955359827220525270577704321288756548293227033662375683644136114864045381842813420009212301486216946017231915741974236371479338371260313188812873454503495081603004826472071812668374818122873989282776984212747646854876825401054160818641926344851939205553677437361533013245335003970582423126095769931598804304936825703934525691489343716068780351757710120912456987342528888902896452898088264257975586925286704503663944647577312449642658684454771086571785489669478713861481461844768157771585248517919296584330612195118776104438836998010723397703260712618824528036413147085506782168513270293455358013628284494725831392621943970033169591899978411609894346711900032028314284343734756404226723651927034169936427878290679149759324589904930818561218681041995913341252857985053945105456825120489291929770803447527296685188028377361474163457022142322106794051376409491003462981425995170428311427441722137038421191206070401758986841386827659215957452626094629471245548073260307104475970465886822475407719023616763123700079447695191122038116873825528988467837481976377903063809059819165675071630185700086060329564461046274382944243095453367858312933902878388910484920354196804810573708712282554598614600927102314148286153111017623246095593798889678855097509282773907166863853654779901454933238245979409322868254478369630540716106258966823760896142354473579372890623100446653301234002487697506778589006292674495695194150141747868511477216712100380532413955260017167497440471267714520040236850924460532879598786195599259026043274892100166665007288316957280764433977789598263502652522726940938341308184073732914158424056850659294104048709070520473091012642367694570152005348094933958499935288519989337819310712607845718865749569605019403083627258091270622756382770828331820250009726361541242644397894580870495859847671063196136667804854661180629070692057202247568883513032033162492995664178274891233741063063838177849834674379019985662262144710847509333839433704494069145223172036087346357099493232735702199226519530873188727653744349227042267043881351249711734658930186875914086657720216250614771324526117102014486248075692311369046292448568888973251856776733733169064141927670423672030325356825901845965214938624622758229559836054994260721481569974735207753378065509861188163312969837063136370007599754419621954759622208047573115770367870887047755944206742670163850212088448454586612075061461391297065180618048337790871901152774952328460442043421767047188329453619679256336202229519547401272277232714234104194028684670694098670359283689862370237437001172290201130096560032416469293880001206462750561106009552921535025132380382108269663579591237865124259386369451153885440616988374427524601290200542163858456925200603957733480644482829993004526608852562722008177129165115986727743181877552864757086035296123790648636288554775778262891311503508957044393936502666092864637900643855870516329670129776118358567248605308352263038692991845883857969327773725725966906628404278227639410895292315739018380672714375100805886628637599084753956207581248099401201763177193465610066320824401601518710702431553714911806497395847493888803114796008567754189993932887477552458029358840314194205579312404031837521080798280422838963418009414676333555789416369034969407968910467924384169115088741500994007674320077407117759030457984921548529190285799316489891818337022932288535233872253092970177413480887935095781101872474586815256841323225128324822469754338477924441484832925946445421890921482781987812993885639029133933060076630360164047184507761838852322467180271901645889465846120994865166612945449730888020688032639043494410415993245917580596562012890698564093496088981344004285627353146703625067101593634288224276760202788527836061311205835186345068284254562111536143005415475251761078348617588992259017729287171996271613003376593652426889574723574623299807272741389083345690528076669290824307887571223261461776922789912925731288046128655541385430431478406402895763458793277958352743187095068880728065878665737103659343663385894694285122938952021980191875413872053718268528487254896422452270334164244730120960833229923575608606293914308796464316372263370519677049126269901209596291477532365412471530472900510290171515058337500147513805394845185738289273344412971345495786063351674819641963118333354685724717205324172713354458717238428133526529624104916530339907948123442497154814973141518012511348611035976764048746263117518303756463094065027618894557306487834958439475003995451145288808270385315563946665465836853269381427199667820240796735913999214065847117535937203495203224293878103659086653884918880989468981784549441940264659635602834615701207337057487383229243421268796647301714914152208871894899280395156929665084877678701681737855466096284534542679170791930360533328339803023482857628437083743472514060648049033041145093962008412250394929878204628947019661100706148888907158882582896680264349291874059118608871377409188758679897005832616664724202928796866884678481371714012439949587798207250501011944899399440068064950494063286774411337667892271990932916589226304066513614774829956430654228256704509283141547176859782066224655324507502760706392513526070885821487013662520480344911462712734310660288465613241181235619512706696592890802111762261261545527182973518414193057375507457957737842060238895060381439494718544618200887614097381365084591478912146908726874140054292567534001298366498003426896401681371956326655608490689821197721282012831498096476847612256352647627992307443910918450093723137299640762897280884782091414721036884843621541363600818227962976248993402186625187175214609271965383089546273545609809021890663051203331250471571730606354555450607465654804587828233967814886163343434322318548783934773278405819040979507156476393507610691203984695321454143528311816829999056247480062834839228228344744993297575372799956043872321064226243707749524706286916091322332359244731864900001635693410639118610087693070593691123972882162349979000736008211024722242667641830617128992034496645161999900214320020999819750223420821856232785294640874565421251594421488495603121379845762202242010877518356293708661623681256604122892120655120108182656743294727360151910045961108007429901908103455399681467214395129445995220208372889159904596357801090513899832801656606153509561248011898351829830768155863091413394934277957909532242991477647817792880668006811940866257790399697820821608690419448751941846309359415944317524901752954003475316010434110566567892969247454386889013130548041511021848257009664510306249322739178766142606684769599360152962526982924427196004122513695408924444301651871403020526342601534464524776907282610369082455378571469465105508303142049390276430405536196723788668759585900259870714124161979967135010399875209669030499897899430434435293209694383993719322269134147320873829669411940996146325697375291325287152345733804171098365281119316605920799929770689917478125917455881061634507799317032705540847181815622667976272890027145007341086916859296844346281968945198181842663699455235068442357012644595262505467216784933816557303903943795107877060753390000816584528744658584654233594955310732923672662354672071391134726112641498032695075367161436307176994142338695606442908876634841911956669287360724286488293880068954380784092159033730868894760859468745117194719702791254320058326753784340370230795714388393099555706985087050879415528360692351963311581989930403208270845034504820584573788633949238463226440231224348674211801561199755008981823168230590507692339338690816013861171757122317745268775624834014224099130425966484539281633816571382469098673729795120932287514999027132442413315677700129242125113565942485263900592631401423281946387329820447550605404687048530270320653017521899874797881992592777717787949129094977714861040383862392107113216497265347091254786453874431056376557508739461194491968474157431748253679707678544419680676332698882381866206958555635482118680751888875203403187469975120412027792360636387191137796754420120006901000347855152901534673343246481827668029137312444801978329227153350547355985688748671799599673482481179453927165629354883398027738236614291897981967820459074947856455863327298721305736054942074334380163741551830540125424000680442311894288017319269701726083930834333412055394996313469840864943261565744936758098869502356579151865519660156181059980284893013785538368019265568232277911386179495285039148594566172183904333883759628657003686160098682787341863115840774065095664116366436878146922677859436900524919863546633665002854928381946920758804821194880725134094926696950091566494825490264814602988455379084199881716347062111313185750645613764275931760412723413935139515968196095922711189043115852779743918952256427628196905259766523405290612449338943632296481070120524782685249792369701845276889109527825247385162571757570041310895467729744359970352946921706310438508129722855909711943259625826629580972127449492880065192995083238229434378434083987088484977910206474897860615196409638414824391155638751960988770061992994536840944899087699757280208877424106837796841492426031224811500576881298825364895243287956410948085391787031914981301406829344035065558581077380284777727828976222836464326391056842591470339459889698581523461422213293510273990282262472670165557145857444459012494747996748659452179194444890257696325849309931586707307240655775115923787518837438337689309599732015881021007467494949738505305300141615350246635661149702839439791079037725975802144596770898882632956917216831393258073793574683285366054672029720527988432202576677153767293429128598359922187409425397099211451402503244339152529837587334538012254757446964622094673055165213239976589892648660574104267443266450078915492352416818673221582989651328432464777148597166005695723934328265941819204731950816093952109011459044653519334274245348268987779475690830042776970387989537498783765270910055091996863962093820964146182039713412490353843741981103832582677693118282042433777165007474481861164451610601409412646464973998909177938448642786066890436522352474204297149261842800329025158486320015442251003474641290292819977777553637235654093047119530020811621572646836783247049174909800130919242950746517161391924239273239525693675697734759374213495918554870922109646307186873173574289401242710468622227390141909425185312463546998522098552459185691561340761378119381274992709422105036203133178858193335522941872276086170505135915727857012180630489734621254752052219150851644223536250822946900062022960207590609822606223032844744111353493056784627529306221176044640678311159233628646880640915901385613496096052599766541326034648251457805330267520212830526624701533836789067238562560055381964970475735937372202195526398980399279212588241041213438026618203790106939810507089095589795940389899721444377257963131308542216810625888234236078316267725021358190654836776303434773033960877617076043846804865293117674240390422234026669365274208811564901785333598818676827885371435447354868056576095378430100622329384689394031142757114061977888132532298401703943713737372167777606024679203615252802326805735070728311194433313432749832115971391330427650643750014898181413005990497271378819740961809943279916001861545307183744022247571985229883109661647511877026271607365416212323798973527774037472290929603903709578045287572598251019150689090248242955129260400292036925620261431261404634709384126906843745744165018098057606863864736621841314171270527326671371781178689677168480621134084920506364397023181806086662066891676324862449753649228084257856513059538801792023158012937998420922052001954904935886147661647113687129666352040968567294922383347035295343123609303847928571677379305235384729227766313647040045688077909948532346975032701348329100873125835432767461478552594431155519663776960176274453263486338945905529860955052728768907648504601215674274568995228182964539225815813120422579923281680776123940611098346786774826113606820416184737903112452525431146723230719198886144550644351073792865652904696890905444084256284187414361468720720740176168745166510375003728336111340340578706332380196783605416104572027444765880739220613726830464401757802361309954911310958590833288199793247687434124474529269541164740512868668162750928269815905261728951135543774164643118699683772790618236144101928622861030763155666189272481523257712389348832436227858097742540184810243647631111829160826650119657297505082377482891099471246205791264528558888253473458050302670123329943152714490911568163148912935734953967997907814761567618732804060544978181837096595019780587949105288340416617442067702940621762230291435462115584400146429310394207924516128784285924463389173436659210141965526881498575170296111552508661033893146612280347606805676413841680874980168821534193221168043908889339608610189127585525455194178098140236735391588823508270435335709684704733085050587198440002633562745481682468576662450379172683800649834244162190924851253176710450745995521614028596759159945744160707570934724836838697129236478883016286148567757469191008502830799981187875529093598032770547032137530189927225430921925853835473003217581570597986940541036186836375093432652001027871355285055421641409352625333556249894070174209374619593480083548883934134148349348936554385726546939001558317933720230279581457242636381487393564502407439297730484479647330148851329825627185401867207656255389520746165726954374029298820695543053454039899307730525976007953837026990364192715076261359061716231129727203189843359959003713235863056968903474951746068577332201964824836408634603735924987271740505839500578806492787611699804836769830341918426280270665922656164131830890515235258587865230505616903714693636493245007283927139734458765812312521960191902457720155592864145394146168655658854164378863142244821565976976297269624953499416919190418203611256854829977715547991041581807714841471694160486913919936626134709244280202608957384144437895436489106277956204505414014133489260482256407853523861052450489847111321691330100979045044818593018855807590554441699102993957538545210153940519373567557071197370988826740289435311063929725919807908202721981336966710211937078008127997106999764879795113591349398158586360196537097527705633520554008806239968052538984953876600395250134494158721401592191178171500480512580426540048894072381219684355062408739911135349837465509655223991024066425965981323392650124198715550273169412079577218830944193508082876871561998042364876764536857314341064816600077492878124843808349498215240532660828198928618343663909051391219500815808985832069615533640457210036985434898075614160577402090903480263231507059073020789361965448555701209864374575694559515984595375056779548309881942586704334703928772268028774433353709388935676691398444198873125078996017554527709249645250021704042304508657915789040187788567411905856231748133023507880773290159970899216764750600782597006488444887153846161687545821738930021398966279732136398977485955275627742756758022865860037249920533833595909393727745008082049384944253192267834052622742198371263217089732962352492806726373254056214044454825618394073888697064488086594143727618468171842709258509468427455115504761039580033432925342853514172015926598898676146498460832580908784172856749075749602468662058066424269781588336392567860958724730570947326007218832682517383236670373459368320089986305396649821453789349468398613817939455201705810706010806301371032976755760988953331487980009660340772134028537517542214718142132864087597200991924381332818702497218874758506514924156668525317845298810921471174763021475473287922374593907581988988259301621606967874784338403609493875178723386491503585180718804362414331828728868969795592196444298382207580216284116476685981050236163566386121342780674696287518854274121540214029242241588493314418135872069101982932948769076328657753845249841139247644451802649413299781864744770932372659714230020323049624924452137474254047161349981824721972171057304694199168156694806201703324858080747630778844454057331387641553057212700658413468098058091640392036274201064977666441090295820702575051494062688928474801490823201545555903741057383566172509786240612673986091911259185346078741503458832866068247940578926010601031194436271943401553697081435379263852317765795241541397739001005929018961284967172125630412224310523932343579651058887859410642257862952163809586455779994487288099861700055437362341723894891960027883607373481042619070570512334250890077412031221860816274424811920440494830039337164054904549806112858502907300508827373880761496839303359786882254286643169067298743616383575640926557009533398701370961801610131385619202939729998860110505723121823337752095519117571802187762650085479028497736605532591446325665143212319357932590529517453168577796316561362280400552891493822943942549928492736893904768114372673369529820389716852629800242833795055156224294470826666963315398621035441380916786995770696068257491686118289896361842950916487721766838912714245693201559469828767538810575895583375490821183510624612426300382045112274482398711113612441329766808568111152444078606884081082673037256880997452001072106105430673494399526077626983902553385968899044628678981546841279013756604150420637174968717235268946329321246808848496551463530981961699647105555155717173371854716652229050362408922283846311664540122146029180009238720665267079430177119916094680393279603492209584702156970778459571507577211323398481219265267030467055461673669958386638813245213122588681567631833235087566671686232448602679174097115854973855470389677422285223608497169099133276474431681673837054845411216275114934671158632768308122543889551702136833027147053401318413134887464291003338938537156562302918006037379626724668760609676544097819318167264799787637457359614954055777289249851644243082339716678878257657306135650950334058921095115586339607377218852799624916485858289171507281874681278475565191699735525911755242889414284283800493643406021427485565606237080643602519671220579787217859406394682071407121354045685878134224705889768449992039329429966851474695911310371346976083123072028645741825089951656988815005353161522004723547818292808990432840993752015293212734238368241340824356125443098339917561017857451705909838559810513714532258522934053781095767782925947648351950116228619798096005885074189001508294868736646404060883269193352071637789968229895011137502850664390066558558019907830406292069355447674150094019290006246945586865405931059079663815479252029361222787792254008908132343355869598877486964013648068987020875556052663350486433590804112395799324666296557983711350778333176209448955173909826680048583669730472634322478763425249301758958794854019261887697342283549853604059714035366970424406600342047747030335432799194356237722165458359341206832928756401521875018231098105152908907006943994973313719770773516728163534510658739077372961498419367690556290466961380984807811760855273655565579804828291617239904955501266385484106886164748680179523152365845893747998886561298841282831121841189788352754801797169489021638374681077094604581479842842320892276645327047099082147665712126258633342169845625860537646628669828863642827618465603589898134324598809774339644704017698947841600928161671423429177175883346556365762013712824003971529264867305994098501960462426314240848990279769100455435453976487958326107213378308739131024023298824651322371778687350755765382996316764039541256436443110674190926239869287537834191170283982102182116176946967551934664174157441049168785704999533491097613859598890259392872096642729807067265356159468549114355763488333455865539558778785044440479226391723208241271058521651599517434498149097641905881076102165594050643379387152758387141016150987693405801588567536542969531027872933359335493980610911199592472644647061660185843798052492117840261438291174691565825032916482093619505985502581459076784391542881271978872200151736662441347613769488155256986257754545854104154972484009064980800468793402675488467478513459039847595647608284320933743732066049021301089229395401142071818364646011995205809419592901656223771609637047711066341053066481682257213660132419418242374986975247550437577405271519006767091229209617392183268223453732884477974066545541146436637304945736292668681256852726961668875017241703591054905227544971822271562193595384294283156456687558300063234917799695000164535745222971965758185831927565039286604745973618975928860442795391716547236750438756738573024478202858672664823384303011849836392867881771031818607210075475031317601260829864351045014916272299072305687560405271070325160943319524441614823132901099723991145682892124393278282774880256324847728598699451034485672607705971324333471375024141444599786793671331517310470327718360175057123446292633894519144779701511424074083894143477372945614470321139293534120906725056812395947875226403335650389498283914431018351001928896513532256742071056125464463673007895193386506344783901884708360737967088350738741379706862567416860486431788369427709108045704690035559519480622223027231254072905082400226419885486714114275330428722106705104941835590559479418739086262236734751139185773018040783713616474155226488281207554919098923653312791617242117519488698420952649159220340504833399648216226394405501224143603594175531610339598000278438338455797648119093650140014479223725400550287041438471878253929288974462221316838642828194755315756713496671180306529049928758549624400424705134861156561320605253188699753005934925986845074420191470860329458380798488346907561823761064025845638907833430808413069424884583650680937538866370737178074451240655836554236356896900980165560957592124357970330375021328305808148971034059635951587087638472227969178679341801947043403836765855944950733935565559206651607881322202873629860006757725400709450048671739884974816573895161195790831231162663673442604448400263364822525989756163329289859754461695467911202000399150826809830791111451369956553145699536198210307123529514949337892445410180615703624838044261960793100535431190631006145318727617452516842415784037184323815713900781594711341421284702842602335085353452863429521702257663687826021992259132775354389018667348709805631348915410440723400507831594229328616209532313145485390353383626155713535973437185776337892810164540492336689621156516990795414191093893793037809318679518938636515593961303728577394278476454044736926460498732907719586634739598268782551582745782077767565173281211691001175897561450270546601872294461382184364715980054145616782156220789101718370055893852880342449372265062804780210357122046610305657534837127004940302425881777071270054587602944409461845837531734164640621597316932271899324901977598106101398876219104071748001995103368094945361468734681484499507765503885634174379790761570596891343418518609190893552587193602416888528251290280926550152481416175013027774202641928687534713161720572673277791246209981686673057695486748878772263337274636130540705529357578530437811410116804722505950960966723386513951170628623634469538668585034515036312166838080681930593393652482382291378819921256356333815709387827771162301839357578055560175771900475117314549998426040488565448866836545081624744271072833731746436920470792819384989065360911152735154027593332914370324767777882823573678227699994981874034086385155918123018116050972220865354159534105405007485100709513104431884145310222387172953526109186642643157866126332796558269031703658963244763648095949866059167843520962963104089480353793279697098499385955035683579237374166506618329060022697889413909118072649053193399963531181732779927175171404921091381967914878782388414759657279597157736482428298218886178791642826974054364362647517179419659328714182103355235556959392076403696931809272647327336209156796638609569032663771309529509794290578211712286990398759595692907997387042798106105736591886148615719484748887740723808246935485426305703731586924555496852932652996341476147113588369177516665823262131265235964177313338362725482140462169751159123800540196486082189315890685447353917969342083127198547704491059317587694641954869201046729931258874602031871753193603517096643808164706155865684027869362105060823318510552871403195429134934597656398805255218080707559172836287235863360301131118840054112352573839531902577213169037723512894804986168566391283779156467965803488298705040157585922858661909456067433960572904393241397242549012227303324878617159069044792700071972919100273394280522076533455922073481855717950066438380458679143612422558782613898394162088949380684189696537824524908741547095317476685776443274072476699541695945219302093857387457180922902462166588640541801809368578129150057357585028582567382500741344628392917739623326183604203420130840371661508238443593155206364379919809550439115299614066622621480266406870785152991738617621570692874338883253518347876528889685820488633985430413678728147388701182038734974807856628573792103072309468968169041673801376539262964322586909234968750536378782796539371585088360335230382037417241444916076237266926121206445271601986075747502969753020548361383463533838735744163159740157879661108506746122856072857596284670670901192882911192135892906946472350067438472391861004246757602618871663436414641168719963697686422177447319368365332326201333895610844539053424541050893006199052063948644661868115033098627748469709850051573842350320161295498650437812650299504058080962605369364670489740705398553728743683616528543044771141311590841967559250806235316073009760785440120845253296423920050834950669577711116594251637145059781533319507235505698469708285759513947213915997316171041862355372012501309840313152268885472184969151109432580978508727230746733352215056056604842214981182831823298607045012310158898044821316397047007882576055121419778381665061187304139782386689532513779442474639948764337295036507247231929055300627679971094851583274040191341280898273381147083778935638393153284390803466016356425619326779956888597967437588479301986774652714510996057365345139082946961816324173457140202757550283476222964965164320473927146557997965757883556638245916235773412023969055156298900574060505896931476143889550758978270570337564184197671742137868685275490579749352253478893165427450483698581907918744653923075731967081996375296926355131187995330874555371454832963929049600377216178105107629373372799727366239557798935613339144463224450770660045877767740085406680276688283663102216227047486880847398106670295891898173232266617512387424256599005934740601564010910268394479075865788830941041149288073201421921729895329426479932799016351843568298792132805071231409670052884024490602349189635507535852486048811136238364982212773634715771309700125080271811281944189789763202542104672261740004015777338505263402879528987937888027815845681296599118622126023676663590642614369901817653391817804279469661737001355251937783859603410788061631476543526988364367591332625162654790946009099023378561563182017385961146066302472783917267764706354983348884049198690800269620226243740361954691328215714739337251351355737652196045558511380287916078773516170776559082732388110203305930592349566702503942939987671771098438689743557777681953610123769350727028818797496332074128418532225934417019854719860462025550480320633551846239073292555923223644256302520830438737366594109450975126268543276791295674368227471883172969424708434597760258881987944485319336267838979584919015869004950820243708274177628852766368679982173336934031832841460217454608172054866866323835980829461815516108991209985213726447425778657492550701659434117505884835255940665875215238354428310097964651591978055533553241139043869069456909524827596163545709235282480959280092568267428381832732013815703159623152554295445827952964937478227847203323517895499145312338357674268895145487932890291783269232216250339813287187685625098170685428816382814497247018222281372103156409866382660412243800551845029501113278796259175216448691719888200454731551693283028691105658053590949879194121467919384057325965160469135078405233738758786202443500407069199907742150114382509056555623943027197337825648222004601068237320180444654297297532271326193254105031758259767023194295054961233987826869937641010013145684802326628390482161478761205832721393975083603225779944398710908107458766640990705063792634411254224354652685704578831314841117088804835018459079519957732684556659097561380002769770161791011241450607682764446692287879510028436381066064229557505742983625644092469306411451951875367298103628143940520809243183270283625376778566208547921868964612310089177508333963405310935523593719543066471142539650085798738639429955449993862163676493380057825142129835807403963435919313333943032745636855979535673753463419700317818895256995434028748818329165012327297075083916420796112928768815677413892278354101504968194822538795284599054417714605546520856399784668631150768567179458037840074213158319474500087299516870445204039006829539475204594628473101819360941225000892746484457556999928853197538059211720487993325658901475786200523728400195757612580524458909285861354483395559887833024411761547257054901374290867688291204732965139417480923030970585816591021852468052844302509589072837127115696761356337059016243176002592131820990601047902709822046444263145594978710463983972830561104950852612709641876183456391328714659861730550019090237080112449052015785447231650351376349122650018055170841176116633172039643126308486671959268213191249407446977274306197924777125895562340036817368423702554337419950109396150274864784110806025132560620338181490234123185520091690229129679824498010928792818055880054953814511626828841985136963848451979704857704223886022636265539446602454604351862421439281058075685553814908110137882041042792523975908655059745357180570921535681545813970215064772739532022476646665535808857036426840400758937012719409973682832931366685140067365719827628007563953491627465713860447856330793754649267727532993386464416538089481914430213022947693714195816213152846251090989225714660578308649925887791332687389385308871155510556965323753592328080403028905925247259748523507929236408617308631341557798195181610314477342012024482339555505542975049476324721264249725723499825874524326951887406115687709891578303243311064683299997883817223982496964756601078808656327984423639825332206248138017737374359928572582564624598289684110706632494481093714152380140771372400062382089600202214433714553878894461416110692495468266066668378066210098779789362948825376716013254346990657566524867734695565194681147614129013950516477112175523186640861091458511468612819193700503720338302720778648679998789947977471684868360297445669923450999446090483609010968842981930612828172590262192979460662874979520655849456295809554913899897282740902162732805513320340764619174430816502077027622091547392928496997578778987344191022240167510394801152514504367668803605314446144985485335487009684222681476105558775761466427100624437883651593537045350430522990085405199970441512715042493649038065383791866757563908161537486253453430652630836847676023790281116415964782972082892064127450985922953727778035146843149282235646511910955806406235561812557994770229997971503969690984286168223597242639253217019931748270664225843317958052792710223852282691189243456252100617809207309621452705519599848136409963954869174335212409343501837803775715564353933700129710815331353814047964713303398699232875769987935350560141837121877362237567036245701907895684851728694708482664891876346933425633035060560469008552946613011569849879736377745890466209932242759558042108573563980263414492457438740064891302050312987497509117963975963907392210622741296046070948137299311079209625738927751335818623999764212285017019621713854361893552105887548209005811134343222200397037158808227868992277038593715561590248628860174505704693158590771550852286877977079924360695850922236023519639376058950665444844583332414285658602042112360927093789361964383453388539467369916723809082452222149742202447690023146742951484067926159966978540607488026562082523352176914343611492211014726850434752336993911193308521197023816164661145481985851636023639250771014858106019945734546771639169504698872257980390641322599926863479463248515529413073014871566286941249670231995695442472052019041105289544990221661113911488966755018066740768759358674109779051523795467015890457644211376475323714225191091263166256524925114059866389969511639993188489442900604463794923265659223822237846552712481498869034896311022626204962695145642879640826001974123548229689360136738645987854366111165128494686563760433508214752432519272753754635139681014172178454010475098832882716624058274036000289676220883061699107185453129289822823125369333755926251145425023172604853622552003321321046486852095893406880522143012594643806902108775398731267470327384229113189261342628219397779938145025591605679128287281773035087806225993453980625169039504061928266311927845026212869937328489739262421344135413692814570477985649544241761264340643212900262335566412581677879576510471667371999433599883971123753469798586184547365757003990910196213327916976788404473089748807174104880563333335494795038171186010779363101658527232758921011127056877253365377838927115513255501315695966567760944377013369227586097962377894684633095589159931853638117162181688013761359455961379952980175603918107119514556441006388033988310514863805917650387131900905583232014581912447496574810470074566005931070933777574397607941706565430135023078452581494992932441686698337365984953906441761364501628522739516464385027241046558504646368198109533854516685774201910685602776412836886254395155954183476884843780438233056157234689269764767870439567590928292587444698943784913983877531237407885738649420132254204911352493768960432841744999177859245367221614513741612094880742405381011026461060933006087194701568781423078196198255265649050228912804528343286999760959124735963505867549144199860691030293899781356214767109425421911689057696855412468642332546602095038801864324190430118446903184140982042507593387324208457076206672112527787526424029064291473677274312592141488581410086042152265935927435948797447715006997527436634292597173711026333549557532756912043962388770671009964291019918988801989284693582460509954347136103191090988792617444737349644124135091622512871512526873100378623177953106018255397141845217590648836665209374562082753466956470200142770631597784062768145042757994422646067095774393830909877013476821966775103626429373790162244500856683679563128448485738922377687748720140017094806086666274442997342631985672329200178194173060138311355094567437777723956906966590991014740465367700121168203689938986101222485859462721138827771948731806609216600721722496040291167038019050270286234869388347415642364451676129658458979715545657293817540599485415289782240887407055701398522029820475367169794095793756813484635882024808360533660427153559040672597555153523354563260767406520246109020731950067314086595112055444319952394997688784229531825125842331211041969366830529030773492239418963696613146902399812628542835265903652405614852576047234902567083208570030198684408767932996709221525938231289431500318856610183994891395768548189015567525766526907177557058686514527100206961716294744315405343404439047107034758779817185954204797444189651058777158204176358102475736870449430759551631295164334791885995149872729931377172871306241630568062553576043089668168948467034498673230187738239212601476502925237707990801118033808167164114598709431594068322548334202565960183220236575054334289817571378214203674699205960936631359116273796609214773078828591803152829493205959422397821931045575559964340368658169044930088757525284213815176955601685257106732080775715236118907833243334079908454629689719163884138379310896058188979063608791053912583715786194326882488622782151821053722774291331351591224440687569472002084626192598675969561260708456073920424872075700519364437115416382871621791977828383796462732518829082402945370323399212672832410845632694686063364804270209909576932470872700092025293396251358712582359028924469754540995325917631180439387386822187024777693985079749182897865180143877804342383706832028910215013617649666505604971255387875115337274363283903986208187219701592386570369922736206125526810317324519046023689492420782559132220311101748320837934454760256571024896764966040361418229798380287592642452117514360971207714378106455028000625954013196067638241933166055051557157166666831710537760873811408390450583874040640877695640100290923815909245927271169581227489274373762043840801952018698488048979892280505850860794848158706367309238475423761399605032587523926931980813953247179178357353421957871970784000249556061684950204260573779603980780317155428713462520733664674482275700698301344409916625741065877801164912251556513259140581828871153968307334145924935225375695687967609630294775936694961194812846650763743118602999717711374160410319270378893424100661362289924748397542648974449330571046873571294275155532347761458509611700930281780855856878681622646348780662801256230635630893656629211486962696298136797922370281249397190242761192267381401745745964010491333873301215035545626162862929248078351864134458028103247974812137677874442734706311470206715839630535436212371807979305106761505371456378823566903961069820625173327336616138211649478185028358489392225752912708797608999796725837450704811485999545061516981768264699850625665916163095113686204242943764519988961430700085519357567215207342147245361049652731738090188281998392066711731192901326183268010175558131342445681283103549115831585704422108561464256836623618668728505419022640001676282606620719987931997728306977331002538646319089068263554037894023137172717680605277322728683614124915509867671448524852381190369606345119674188400833553204495016792933977311375246792919974625634673566941250037681861695568739111256965538757334474882262893267291215935361880921309819130593447809456939342780451958357690438993934795150787109825928939546525404839726127085072988906556111959731120579258275989643528412020852937258706809865844187180768922229803856561749223479071573935244186598421945500728109855200165242716720898029411219490942083081092522860630684855400232120928475610447349840813924193108070899400172498752062415877987211529382308327925215061174167213015472009106047806899751605683933792186348819213246767893255822267918172124542204635962307566400309730676168791264805109714212278884346312906234072616832868415480357531678434288129691638890997018042193275263138251525979371225267853754011433748092814169092910052191335765488382471673178713116479513783010262728863639769276150223234917661144723102479432669971012699919391927884082732955539953146348948261723355354206750514409268445373874225636833692839056378195065962342408335889895945161549816284141911679684012066592605308842550569778624049011114422660247395935704947199708520489959915960147376014812676842815978218490981039527826297079846115515450533106350372607709427047324498822336242071118241211955663087903486332129798730103917687767664588095745712257423821641767144419789015943140370080113566708759294653712210652092708064355852475998098133746893432775889743062111937208968023941589417362593265783928805690733199109456800284223188858282828124012625841503530750599697511365754831960732858826196305419468600649621680166955505155107875635166609463409317707075646722343908264888462287312624739639433163077436038676182953639441727600450098628495186404523613860402085518782273741585300475992926368067735077777064344223575690392832137762003256215056062978520423358043928961416658141040557434277767366410327069174880190146050382207174081325575632709905641270773791008554608905587472657320549932117242391893656427941157123756178623235642563664263122336306117732453521944948903745474744712442702969808106112667798315636000087106629100835193153017426660129064856582270756833983801595821003351437979470355479257401598682636648443639220770032706026947358120225080095738671859277034059630322450629481094924346148359839885053432755802894862942295657339319052794469360809404108480993689866956646391022321669607653515577675002081796822939249528088853810094463891279439060672962698107657444535886107065342068043431646022863917558801033157071980074759373404195661903164748639634675543933981984313163724832937278357666500134102648714604785738024805714527043579464405631071547103492635104809110960335642626060699111336338129443291047701354878274076431776359646016226305554205023629319753969482417244971703366324633574372778841757947980110636255560609565695946204644201472654648217746400495910421118237690304629343547949121756781468387077083064866611064752650451003659932618069362922211394149430060763150673035593627973259589604286090580235360681985086868179674439727412573132116702197433346627260877748821525456754408254568120246608109728707976914787551142695583173013840224031517012526550456431925166945162901272738709766783257966651544141024078429214512380090847450673054260017228559388998271596428389965333437310052465534144793999900962600330070888300513607021051954131353859282408373340973283052950030357522178264121032582848683493294288306416406087463318855795593050751714139353782410520304807199766552771864933169581251524114776237014939978940117064658809135242424605797431803522697920257899058617873393137047916311294935577911706899502022466925735088344263173784200078463590770339781618488738269253444141787176219885843752026362808524460999225412726283310974016142660281499810325426817327341813902658324338784936893449355825058668091698875945628219891491094265399528243416191500772583837628748369204815825303689579315050585165407544697628791797927459924547746118134634643052333836577308960971826549169676470141686178401567001329743837464448041642632259916258978542263768967807026485404196194867560291947114280053958666213528918088835714720260039258423819752174921775780323452740367108174685878536131665955293997437617409678134450432481532534102683005105293914962125120722320537353283579178863991706514745776208031061940428205428455537267838032719462989761239055971205231471645056018690002657556208047644595267483024517136518097823568708845545642444409610899447100581094715827072462690720449449371902717445003922159687928689028516811824942971438238068153107674289150805225230135442994761918533694826228652912901845250546466279136962639806495602866602932842264423330997081571358032811931945531035292110110084555225939429948090918239217329134962986631423017221551440663263782161405977536115864993239851622731257922542988475416867373174182764428607363760541112374763958479421713098615575756092186476615925299327752869616142744836314989286608084315006234997165992075857301771442489601527259005931501891564919877592710854593949487220989498399247104135351017888849761168726954725112798757828959248819226553197133209468165877060262134342105995075756576261239527445305178923363087748062324949313131151502221449361516333646400805231574158250930392270007986288327140205699095028411143713322461128443400898547574276817921810638189932519887800787948564706345733974402221816835304998282750182302541066144381602217359917874639322298768558141086870949661277806909578745080695171220905803319875257659044864044621339014239394799879814304621717565784872236889985622846651786761356493734533241458732688732774528118696123484020981538358800029235425894287460162811928403152255240373456299356516296119363044491961634893517111841870402831174761463270855574217884827748697810065845642514916504362827590590493420250073249443882989264315641381909027226505732340598153503230502583079297624495898974136365624256605336038854523911766409701274913731784668572200180389199800904756392175625035814696990773876731327359962339598705292303981590967527780023315622109445884465668151382762171977050222730912934343540269573152949142838923668085100990636209327862035882975768699237520093353935090282982890814794923441140128020929696407748257347710548818691391619527958575952092539685804335334754889216993883364259660305605822261047386581022269082228987827044369959734618572709400979087780337644688550259447602601684054991492068485423480527767678864673060450061502981273018243794906169774570381978584707047160181484702624339578508036674523476156352195866808880145621987313193983090041726988329804195304518135151956447399471581628248768023034644698177043507811446610618803341325312004896191813085188794910156040402146521778094220781570364426706569090288570868424725750740015010425605922210512603289867015049188700815644107170889919139510102146129871318425245465342949578093715150830517441886654156271651497225576788912140904103304164311561196908280007042127405997264529540685680352407868068050045812681348443334824960090084742104854002763298779246658335022412079307382944539343949176200451700798657831506293226280734742770117298700087790694605093415639577387690391147751073802409346796305663767959272974786327061701470346363554391380981114997903395844920646205601858704270040389985591593036402844640366313159218217096843558942128719266310628975067648228102491641147787653834419496096605998546523302870244093373970241119852809062542587690267195541840684923463636327009471419043928234369196164891281176230621678851240021116474430951929126859382370687590187934805900289363656158498172968162950195953830452418541266333563928155240764119396170823982772616322411212178977000242134037101996697730265771319253371317090843361150332302048115922895720265324279516502904996162258458176722297738236163005340162473841495662077380226691389895712221973629296215587988276100847015747965246238710260385247113990888173234227845767275796004651279868351682405540174996836470269162305233980559083707901221317850371643890743455820954914496845464633646912396568209366304348433325509846039523257875896361158155811845670744049683184322648760855071050363586780914435983243011958087615574047043956557264657433260418486277188848636019032469331189675346562532154915576366929497502425855993461885250591393477931336340521080657984953334815164257735887677191284985418729513654850661752334563387501037085081689242741543487931554770625135020888791424235597548780867370190371615604659282187583822764851582292813585065223724765700744812537163223385543976660216705650411168156822462073636243396297700745334801552189768957282170179390994177410269652444582389835629882715281619710418196825852515991400349641366833666471870678985128995476335490351253542046800291916098160993496310660935410873886220191103618070939771019707927177439901990816778344388640406126708174084558843040826844689149527005340596792944618632642288610641607015705375056089557354139799522568457132518830519948177890641314330391867963812940636842142018778180845646410834045436256251197509906162700879060586964934803293329035742430974271296566586896849192969841356907314983282108920326107734195898505770717753353009435483884321987340203016393346926061766427516480704873649821012514427126829300717707855097950388334230282674430910431180681248886680796697021229776719946949676496244978596525894020352821781420828439872819222735121036629810223789239308335842902350869040619468430263180569485361531634110761377261066920873261913121212251495532715766007618626504749828509059821463785064288280122410829330708463081382837844371451447903018040435154337313270847591356692824519934732042657365747730503685045579381075371424123760173910531928831073492901159369802711589923951967726696198240988851059351307997311835005513210401608068932116327288077486279956938775594017294906138545426858356377293102975721374528985713219976691297686337707279769701541614954628266660001839293648949568874717573645952175428642846956181860884267597921650708968230637702178477953318346229150898421012298564634840798335513923327987327585913214917358124788182600789652247039340214412662645720796301210179897309876545988765674430264337518688153083309236881606567945050344093257162397315467101580112285889948592394265032125353243897585975255565718996523950601234918927841589055407574057095234760394688485771620157780614014434239846561397224994303871525672627171627635963612688939211693295931970728012758375208203482089437225144651589856937963899932967648533997202444026221812551774073820343757155110316186893596104824877530623964479837792341145292568897502070809864478971243036381436965379976239084361865088278664343442107015266412859249718759011827783170258476266799230875724763750973341722787765838134667724701392501764392800090595352758505889018665091404255376812138607770290371440453353806197785610583043245359048748062436713269348148870505174679217352295545800369828301116585019941923003648482833523952961962451395337399377279528747502812238528707734468441121654014551993188939837942440274963469196030344009052002090831187584937894196024024998783301376508933017105207733180216269816884062395485655000975367198365119139596038333008069000103045887047170947989640304362709646150487735777032204424590491520630115167397065698787595771632096740690371984221055642062243416902709673868900667385734961474731598354420375021457096115350948543928467901011864787129353005606225753367202954060684152355657722070372390970315675320840133144954313628229066670096663576112016837434919925369122830544919799700400840426871273503027930185654257239147409994032034049432750064658565047131718796048140465603838230230754213953674289705411482367037364910119720482300198177981841866128789355206992552501976504352736654963669124927294304624215319063412712655484122833870715213772132780676538345202982006440098184598786065803064460955484458530684682751337598837074810402709268684322246717171661332868039419808946991225983977317559897387984567250099819631277798020547476437092641351267207802243855940189662568962968942007999345948587665777178172893817983473366320743277343150589648768948526851277830212892881686258434614262422346426597851976975786282756039359410070253296881082384669382130792321085958581224699901473283562235196170868998942224116378402449673877428610457603932986133120072809185702739072796106476889406107898503406793657061800267308797402914799992062160531890114393781992459002605555471982987673890396461803703693813731662011912001049291810014186535698564512400152544333080568126585123842209889506519866231076521111354617225981605226521211590571606389219638641986819694698827281911928173083981197605894228378113345817422590172667900165268437722204868177489908257474696681034696634737949530769274681372799229532694498551814993870513067421768497341073008595395134094202727133373508040194294468501719779494102906585773856867392194717206671344686599618248676435858637901086113463012311379304169137044331575423976443618099417317794904751014504015199906955635575083849554145585480661568016818384392132633281747443931542135898795968542476667201215103201640122733746604607672454443998921856526679229134531997129694475397207574702297963242993279087582186854626246754324859760714653209513939549426143616653800921109041137022434650121135972987230198429697584804035636317754336550079417604941960507783116424180852885159504154048640246981553739616684473954339425346052930152040910344654961041971833875269310048209299110198946328301092401656139285131062938951036460846628693220212232335853443624234744725156504518406954400373369695028764774703398949795091374903774055108152706091992695369438398478581348660736993264889855004524493097186506689311586738599679011258577665061629013149790166780356613263816917326070116894027043389916345166495389261975788316260571589571427677334783406352117885811818331714188422142426452873985200809121055928115537522133610727941608204363308788841897244059943862142655644918605634797885241906961989311740316462112221197240779887030365133325448104846770646716131690013697336748520762740638844388223285491458504653546665337861633411185671051687306380169704119657418006966011682261800826018340285738949398372681807260334121652614920900800808152225848135507110606346458117477365995522780444856791039339515922348282186110101115759981304351990456744398530686055240966190934286645674626395255114786924256119067389773008112496746000551801943814586078537258579598528887839450343067083382552411479117829472485781489355110801247926829208939071655063557077673989999467681585014572596542582604576390699368588553675509402658946559065806205243110702339196794427034816956434221630423276316085633080644509389836221502303188388830455682675839125641020260017314041131920069889524625897275004580253615694269182376879347195089734040610185897401922682709184575879871248170843100936563786155818420762663420967075585948576809417582297932947355337266010784789380852372766989932945295557214655980795585235569483300669625559990223030609310087579383396233459578328306864254892805291443760726559476853081463954946284455312683258843563979080541421491811310247004252023549381159955748414483744036622383902019297170754882879212286380922058679810421412652130651030533414655082692175698455708678436745896566056318949447995373056211514575502124527080792210618572534540699925735771492403456845021013380335229344578756427620136832529685224033115553674296172695551196029462193669431793887896857732003191515188268287814860252739921757674070561651724542815521036071560110676183472048237436259356282460905618681268079707078930310267300413400679067515627463192299362982184735489175033251176004692712316750789535758530787750872283554078646142482350487787384840419184946113393492140359908703533032227114365885703304388194225710023576396512565454506592326062648547537661041882716010902464473923885432358400458233627240823980242331950752789117622355056423195206670784532092234006669080152485640721926146756673581265010274833174320557087327557622893833087305963960544862469241310669745343006447576172472776546570535990856201037688252076665978442802551106738756907027827697099044738146842256428660104535465935384362544159271812454039216128510625200206607706295822089298169640771313958324346600238223204797348803024026093094944292352222419515875595504948359457230806662111404646678427647855866404620600327913875636681632389774124916462160702731035447578011471924026034169249205634925534578850736079434771762847711719443121215064938605446358890154715133223192914650303035957084047713240786874923282122340105247771175282060410576807738064581914124429114616122498666004728363598295944607011828091762368387498635823051505982828899450951797088221086933883113233108283289203289614281460790486330090000223745054673512472603567677311930047886677561753864907010129713401608111847662353524738071937818775035664513917150447107321807697449335291251164666533149804512823338270214621463576960423392240606517759189658209151497267722170972354809997047118774632273695372398138377120635441498878499413803143302648943622923327349718373835113849791980766942625628900170984835460523619990575003298805747940047515465844144716445107922382398112216423361914839704481350049177467491914002907302282523338322911119843210075238517125082636116151082655138000478696213468340531645387551167197416303908285381446686124523242377886206058966630271562914259365811206167894262426999309612008721423061841021791327145008910743714107594927425455249992883892261364761621382368262310907137128399701502875861836580159197096896576728425494983809337869014065239270126019541275282090094707474749327253573038294477842003681115887865383629758143123425296797480554659173154126250820404012741217685304888592500067424549778167454478264807154442029399622399551334583474353071092317174901978037839156449819322140574489539699392005780624003032777283077796278470696436076494970215072588656317150206550359022843211307055187195990349073248194725292668757477685218783215445358904307042555020376695168282512959385244618730780173361620900331682786474466784323289964119350286280732791429502993536154395370329666863220437212014647432088876146779533972444818907213171949880751377800589669870431470010612677303188523697644344020156936862857370790679794041782491546249509979993851957398419899450967294754135711917111011013915258117941891421466642905676700050378650942426344398551072490790900595923947492021671641566960845359973677899383518260642805382767041767355871639959744964460704058160682926272597911723245107690018321320289523198727095327360789104680541380161220890152483078895206488652731659515728887098190478076642800204201127692795538863130705692816710815050620933603584756220814454417537835534103137738008373361962211617728380741741297132172764248609014627257437074472503553946127620738380904412004166896090285041265039274341516754808926281287801576736286068781792739398305921657526562210300865487088047341122521704632955886906663235884776238127362990871794320041486404691661912952730842002582051839268742710273987244591792238666691138383287543811420655306239274681317984437158670642619888145552519845033569431325813374509525972191409047452430080116318249655274321176033108072960962797505181004730940859668543714025081324372913677096816020828443978406710123285610688083129830358626555658302462583036863292243564402649430138721936624505397428934822544043833094744756362483284960346747703812771953914059050162073158532238248158994357607506937446702021714464938502719991767804711775580975051245843347226635088869071970756474076415756984043406511843419517310983220099701372374743421012018745837952094897303118383438414600388515923810549588903260065525499324841536495032997365696559822531905986275159330326026768055822873668568057484583653437931216984833882190688618248664094139210272989235502763908471526977972792235069334457540383838518877822601798052390670252955845310537982615306554753214060001088559357094089430075249560336809515143530228654913326583767769689979079701670049947768840647215247861891279505154053223840786295387740359203478983312572374080921076034656480924316586497969087173926035903448197254003483127790667167053766335382198037401361743797280598940421129070571411399452654991707296113363166883320139361551617480756520145710019129284367172516680802103482867303343089450417468336202770091272051982703887906629393703829448941052381191570745030053161249206079407375806627814772726812439956805257421236652858804886262393684872348451385896609135738455592933415886676201358909878726504070427079312843147506913496817520332098048849159379860272755032169138301486224261162997354840271670296699938141092499392282446718920917471165889248521742286633525087677272892815434519293982612006446463853421441318607251171831426512694043219930304743272618199242112034010998026537625882225654371395919030018857082129161801578414612288950206591280050470723920325549882070286631918206134537881089021608013719565845274450519706981467525308348361906676934586920749796149029831801386543990863934417927484517257684404539558413241926939849869645380911677189558066511497939367025161645715276353124455523727143842920134843890325260010486139367488708554658820807652498805404693753273103775585696881421521762452665228383804042304724066225908604510965114800583546719111521211858963775397443283677695294656930533912937583869066941008061641027039815364778289692803382546105723496689570263387396260987163892936544481411344802230410543158351924612067526166841430132249019038391797054888738188054501538308994960485345059104945275235089947473118974388380933993024061324181940952534644415236956410517704573246091833088093285577089794650504783468811102470274227636408358168739091358661274786142542816942466043386737525622769719307201879173730902911539091346087083261922089883056934239806978823586263460332449352148359408292249891571755040360018601691155775461178034365038524647544952120979502186103701549995879507359951957898767402709291758549255458684681436782936798546129007477440765573287371138945087441957588876774664482471858690880569416364600893079117380795275694013518547589868420124975681153982527738302310786673235381985256325729138212016767249856549210437180739089581901132782711466506305292992960815373093108742199418848848208130264704420769722037291877164699279359754048039560286532995347452421902917460492745758948492901702180539968803892243396437669335950062386963520936216509146598524660665798736237796055588377292955541483575794921244829662069158234504913904977877788688612931659277938401817127265605958618382148461735395896573639390516691603406357817982057559378015448144105736485417139819878560197565812178564274146089834217197236984029725086101962958094255724924663705897471260643641578027707243532972248674136152268372690187872502207227402089725677479500585080554952195037320229208446511285360678956726356847578926540515531367231926615254849704337444533930082811323886864318303502299368788530659298764948553329137964219033281064581621025618475440834938924036158538301884045405696866194885708845567463999656393291029211856292183006302294271591063937311453706808195640821920521702630130522866143747339565811108651053456170232901224380800104473903538665518727912201803292552067959637378064353220508969747889760360481584674862055460887044376464822528583729012056110361558844548496473033211713203563622702043493957342082186338939199545215033566505434187826832271465529827437090066787469643498289772749668514415044124639605538910108875828418524398578244591086763367900332704481439707626379232204382959538871636165597527373243879991734129382064247042114907738578039527805776354772825169679369649140232780233215306787605712653396516461299530983104547589419013397162360286244404438038205119388272373312144808188849251416690862629456807321940461905020299477588596174024192494195614235268527645546910182198846346417289590454194866997133710053183012773106448288343039917908325740133902674273403188102551624481858669176566984907895729742389627275300526529344221614642360833791939420682067972858697587034319309011695536322288703807639054960165420933030848095645960520981384972142312762926419446088137042074611948452363915029266600477941788176436149187429861385771259134776484992285360556393147491072795558950724786228866726422544001059221359822471483042786982677112789480171063935259806386361138226603341775081044956411687670192234352591762893646424457375622649225586422553604408977399866025436465088217001621574941199803351094437313207398203031663524869842555473449097400244151697258167993873168621398106109972695831819652146687295147423498694811304008843662249258214264304759608388166260206670688618973626156553903147250795526946103403757715848111380084944504711280041878809775807111306260708647155358781440963461257312397605571831000283633216968843629513015823716135875186525100337790273562327640100302288394096176687879708264297878385471330369738164603032377242133280272629670231791946066126847089822471897530085886050029226612854868135113370208086303753566676477063745188506749202881806399836853604874365589257963234861695642909378410245067665628368833573148891862660936395493489144310903268042539061016021358296516791747668204896598999890160639669372832695101467022321734387739422330275046707004189974595166835033675312995988209835353022782814801914964754188409932892301212960967105900310805729762042283039046423545938676942973413815975653150868304094709000763322559348388263434962908339981672756853012329359429728354489058264707244882696319453844360214663959416554841243159279902643040494053889577731693851893432277035157290806559246644341601553180394909753580600841115534507154334942741595511560560085531663014815283619450343002757560764805778921817795081649422039953503175046459644019616276650279649540769753703249433851575078125543726070411978400589106521256302486581102905716300403923774680005353296103155474566384824575928894874571747979552899225746573279358547407356278557632585832375950597246630145664395393506743300042424680130183712588857846722742109382144016307592267880416768564823771009539303599971394401628571805941783839993304423492075201511501039182945877250479700913139504040351355901733051065699206961621907552658154735494577752268452187273310561650969064978110190990807471529976706714375633502294547347097644240027885570539787205170628765364408393643688283307531473728522492519394087425570802032634956874482206876810989456461350460959270251729733454630330163169455625094002811097292412449631099522833885366057670014809022209541791823936629729111888779600036653868496300714405869939966414813054139967215212347985416157022388162560976658575074630746773051451723239633254608437528932773905222567440914384036882341077771296223411597454883057345820148296069516480165214595237237222671140192967326853925122314422670847860091977599816217522071057187741174077423634724474016243874124868440126327509501158276931077553789559785085146745059894385825402854020106392279152061772037126562308416776653990123083587699847696212122268778529115939845376566081784876906337847516937415168697061412160564784378506001899775147371022189718375892838233946340117039409743098615431748988677664358033681802221087498296286290792123847292533847031964092300644288677765928070632232424305204375484692029730699861443176939189430814163962255489250138161987087742879858592136716550339447212346187650297361687789052138826748834371840263558566882390192092081634481360209444458392935541229643371755594971398484974540432306604090354186912111255740067966991201936919320085591644782291315118158419796851910483891193181611841860136032844051838840576845400837043565299378409741483103801075178661759357284764258448644095684390251133191790394015972039679640105203741171490453827587577774553717084825546474898655565528551723467372670686877893741161724804565532320647176607622138974705172458526111790241510024376202335982837704991584891601082325513626696027366525389050644448175792312642922081594683585073342162257763362754753182271390238289261907397833284126994819698996867639679317749359229028147937059334397730884069584023676568914311079878732824164829788864056619119973631100182673978364286044482165702778261589720930929307209957320787793842605709513532107716831358668372095453711149297179401102652574978705354668894919693187315266111836034073916993390808125866578301911239970624472458691008805124440359659582282490295256309233661904994936154641549118866361182509813483335947412190100719236693350082345458926053995584989396809228951182759411186931322496416309607504621231732600386130614494699793322016211992747862378393499413955198488286234199502918781933073509435056259813559585898705261952725814293557429448068925898596155869448311006186142611126421262285161087835091096826323225125718362985335282010015102588854166386693270393668705396552162644877072408218413849094514326550350800381423429728091977346533169094969482038375066546394086674861577940795037280891556859865216418994850423719705338892554819039513898862965833194746080713799721130911741771288674453438301273409310861259252519237247998373069137104760779656544608052854497820548008845295276969013814927229384313097612178807128304188285721909035096462880529235708451032841540879348428502239087831590584665553371739695107188353807308890096611274050811796585942280989526152086683808261420277219546061315899276794669979179588143371371805381834171851246417432237342312343357024077664996119300806372257275043440858638221413924025588239623091410714714327556884037808817809932579919488157227896794301609013767380288270728269122442855844772820090459298559669487239220500737440399815814479204269522046883351135205382875010022776425056777079511862609692820298209619271884972210180766429681763250112456937860255213069208492148934383750338168152092699406726980417129455810077814745334819120738945110087306454650144004795191738290628448160217137194348523388853159658165605388646124943491799541307946557604945479502594097724055680339888275437958326800556658416883015756989919649151496815522626257296890892614503147254924462706488826065386868986788040338177443064149368490264109772794765414770939347190917134727317393772197952447664006363589283825123400928792397177898713114204736845823504178006654127516220046379613006654934730810608810246003958942337773491918603923599993436209758371331321139154167571923597831395755324326907955354093415915984726650880045076553087367631763601765288726998634933471077532513105961500039772136699653170422065197761949611413322567313742221618695906872985543496966090080816091885051709247142334657475853346945561658927580917810296780383651176171210265856423725860197419264806173258549678664436053923098734448365498579082414869564618763752455993439956700196745940369080077876870917347968219255962128602703059022982813675237994561533420674847690587656993764154768080505735172553930003081366582200547973905416698847281052499003568240005900819654498568247762980411552679348491311499028821531464957968356924617025679450013385437641490868780232233618220009785117001353564156481826446671132677460579311531412634666315432639831922938491418854258450178020017433838009438629167439091806221079630664541081975871778103739615651914088732008799402514886183235831557320571469135743454169208505777292381364994493559145722650774137490075719649092756056827850601118266803494655701093277542372273050751744161911673164234386159621710394139111942154762052638156961466840376207101457038374483865750897633362841795814888983222196461891435240499107206258013271865291204000687294251194772861482589283918514724134967263972537868660537996441003472777573870321786384012327093323911044891243748174597966198458233415627457967372890801614980236815280101215937079960161447390541486345850342909242134197245177155881106009001715466383849809207538408486858122825390816178217910525851150831083877085818999388773060230828277870818363874532307548015784037572539669224901015313775750235787918894110477016582949927930035408678605120275752885072448674569547878589074237562932601173111366503293629835297998716925183539414582810376628858269328931274577262371291507475384513794311634823809797701663534777163867098337834615552989305033802355643237196322762077287136307979508484866112564426887302311649668757068500975232053199436578028036983598556833221618314238963798059574112013758078058802492966437343274027389340255330970961255838331487334647119208024740355033397227733135202079795428016317288306032584620797769894541356351291976234052212920448359950851386160879371520848271186265678761220864908431391163376509337010073252192637416736084883083424047174825062545624414363593860894328513104095539984830316260913126274888080377284368465767439992718659421801518407498224581324771076516872787978401720428697311125860903765548300728178469332333120093563744399208329780298610837912888967001440742753836515268162441502132201826948332849003119098707748110209815335613830014618596200586745424229229532756090605329971455236907855538228486913316039961930938649835085341479382491986314577139803998316218839203005072755459429158840191251067661516369873399067935105861082956656795761535436642464840113858781102051259432190504297860665506803470610478360517872201279804654446972209080347393863114844317867606857289939529770234143355950024632868895592202855335655051218913378802445400421545548085122694060877601178541750402113490957296977032553738470322710990830247084776304397007669671420901859950039832439735313619800786537392587721641151225885199980090851000232009755965698478869168816836881187837088927007986576706017373555219485709956794274833997945169769193670408231038096582030050560726748812290627052893112543881339155900986854680631485321072232880262776704913572675563132278809770415168798934761996979837016430115957981344558800662038223964233212773837121029266749208376416891463668829390151270783426495608049371194644369492829031599939210855527864676046893086050368436802712699973407339809609843878141702736290710665824091499949610179854718902258184170164466742613812329293731369569584882680078471465449977836798906325007166669559592863193440634719127738977720054729965154397171313310869601524412869348715924966836717541821369048969674368495676854765184917941887874395978505034728544022991423151613738062166542052313884053279905716889894774736346319415560728763671049337050803212839079812997244131426025198001996902897563944720024792277435759058048051680643545016486561560278176413003707959352614397978872248236433664165713177014466259964221589119561962499783811637109567298577401506806513907187079363453336528949408960870078894987825352442745380630800662625082663198690192266479188915089588091662168114650542967740106817522363063702795095415615129336040641066511916849252578591947939077929139213017834583564496140501083428942657037389715763938162637437367221779101278030699829770899585625711614743152224535485333954741173309335722380420936695776613493003140956720578509237549357719579565870567291458205456818190831168679062834937672028651526130104745883241512812401330050697044570433869569135825142027520667107723837279326242774081502202549452775942194241995843361215942038317401096306926744254702294889402385902791166533987008504262009389342694757713690312369357151407148975562659170750545573337537459311356554029358428903192386377303294044831923294775731719439163615257081253857284986901915819405099146305666056112363710169576232910876459836225900549550967856890860286507251946091159985535013977280089754012577973346990825847209993980814366296757928210499711511505986499012168112482996714778121331204679326180318780181955044780704376920782444737052646401486895071336435993074587824876209917633443607391373638157149338861475833474760788257716805548311792620260248435781748501115159686516671456075200400923938632532276244351222695426416329543562207193747069433700198717806577925931600666252465985025732538496739736893189293437877773738123154953579271252606610401681193931375284431726372212299364132132760099446468566051895942942363107887247209999904183848469325479065564439786983847686998085964508439321185695432896717421024672581294856194304041764884383125602548684193397179245844806665696176615603176246979193251562297506313716081681945159513809318777672413986577562763137043164493230069109606694924720335346199524402412604055878818859030666092953899371896003561438165991143536126000329070439755322175162467120217800610628303745990228979447685828172526905947047921567404174447348356989634798719914877062828140361960513942996889543701632066132741093393336700654349902117398506452156957048107075822943416286016125114847013016957634683433382129700299484445619025197611178104039423692952763765955461192567468618668512859829664789412191564554512195566487832864750838912185597739451796425683862655500438822777228753658900125058536248037457022082256141600888885016426502818234737987706824253928905508328812014988847727969053939511401925920936233724549469305084083492631632532958626058338928979816733871304438442085238076106764199643623543373299879238500051918634725918903603597814604904718009358379076902801922565315145657997674965623750485205792680121270998373682227852840216561621178312174590389585917484665508397093236787670772500838353452383207722100767125229526646184204218101243354894912226762777188948189576657618341503015722920189306513322106267590391241934429742317270559733917040962785393758296916093788652726164223380014328393619029827976142314862300488189246148258136379442934039618268806116147394920861478847049229690854885075152037110117824737335420340118216278308056165571779487369997179842986495170068624090772527186549609070117262989628380217320383735111814080878471678143955327070956224658084794101650081390239689296952763071896067398359162524222027845219757624767735394885064630402298204824507275004146567760055289835994002089476557359799053659183752218175441742314456227138702449116589035187708502349626904585002894770055452211735037757727126335588979280048145090547477107617163679075483906780918997372175008749916536510259380579911285312454619600119933417374819281798685787040674067323245901311101311867501945107692606020343551355694235462481389619375915933041683536210005565686734137504630327915503972380537555763821741015112173862065843416222663584328502094172737705321768697377980568356034426275748645837262087108753767296816100584400621555202071529868698864022596085416006463182460097684567710696983080574019731172153808278245421148142222283897258547270603264703140134957224588163393794194502951448020769707605871740625219512124188364833423470989601052107766285591654540596308041334409101547057299755138580827526400016900958599617033058386147527957204297041457675360643639133220695158073061035199981915618653357268294189221732219114793754894205875061592087649831178549294605783065844416889833699143178551801267283717076846779617921647951657165909752266102134314750797704844677817182817463069620934378161593809482631718357231184844089340656615162164026370021221597838444764733167467595882184193064368863732218993533942725750864711183766155729459883632342080400679643414195526633750028170921142342428731982826182355057506617212801571460727323247509779105121621719551546971435008520987028515981164295584234404314629585321706576208264845684533456823240710055231855126942836315166368907737073340441024303246494305043466194825529762129795624654493984475303692168798787936740119094843948764503959269132866756426556369379147127747618310698425431301770334976695659794630584230840917507210481587074283470825807561570169834619882689581553637542380734434343498268809567898247217059029406144028608331127796835311126779571177881043434741255736742159705977512486689401149467332373528296948738359874427762083313243134991758830593369257620942123751904789598336214646411740059657664727996060620308712481984653472898136239450313977677324236189629938735415952142000696615277637863355816151990964410610251828264886682495716432855315572612497806098446373794219065235160901061693315260765409264779406101551836790745184934820249308819079751523173418770207053942866656387205410806079769238838598423514364214361981211070487857100584531166475714986986629560832022605337530258822082962222326979669579890451260724370359557818623590585922561676078693496852118907840462789364626322308623443562024501007934212346141531233186475427796717136947669775533488821336109783896654366633797367832821490594074051015107700794660034811801823829543286223703608479671106037504533655197802147574297236459110238431654530426429683932967162116884527873204559584306240480209551503098179335718653447710278929417665838628331982624277153859474310630657703327743340386049900653789696817675451786501393759870296529922437818681092460939895569499468491236029967751445748900328430839657462624311672708149630612267504914519134780594293165171563713451660508678154865355154464371693654306951414898066530630730028688674398387439223066272219813838592790980032393896502710854614399622742971009917106842865428878556606641720865212088178375758780812035718131709227152583439346333919674812125171354298250651729701833447491680972657926890456286009308745614893820380642039839856805821509770333258912284114036387497767777303940561392044505749261219549064574704618749820631865378646703814817448643354934979379464862764980324056993150091334995481365136350515327945654071698211234629280033194677003931932536701261594876084264218060621325685381227927753706765819167047569818151673176038693577913364967871457327648371240522764341445622543533400591914967192347132699533852118522093436052344380617468185724194612719858849714760824524585191352053007701342471062630468961561091346850573930333440408701548280236510687306956660528145070580947054160125777367127262017234807868081734036962554097457419971354258336846576397888529154477254645671570852792530687155785295247169677414890716165244113594576073364483628692816718996452658688539294718936755511277190497797498327044155113381338406841260435679726914734809427790976773538043115317243383068332275661150361361994109871695521217942110582210199382791013522966819872437251841188278926122353118552230845159698723872826380450021475001607991282889058648376955973266813029187515156987189146684678879430091539662344965554556704069570655648983191683830615336891154318143960336636373382184692028589340224140349225441339159938008361676839123074452364038899079243683001095990385878458888076619441728626934578317301096859601367530119074271436337774380452883334726931962850290044283309405943723559710457045896235967637156105175299488986448434497559222952981870665533881639499469623034893462419076667636902328057990638249235444027685809766395434178165718782877137801225229234840771584924787181954315860078223588935062901021169355350961753210757061741978435104500174707907380633246216988033533046626180303926439204613926197227889109402460936223520156418975695871089673741520326526309807057621163882061295344601663313431766661710298473495828911262356475023979347357774078116112398084644314805561821433813196455039770569734735643794984642044179291896303775145897314894484299858027786875263209904087369722911351144828048596125566509309885892875773338748129976503537131572357663082730190136792932309724675580488777761435202325615707190200949281890442515945170988266785706444132589132279258703117676661601313792286716611417831513312836260297809801291161649721572460287888210882029501052482663486234950498038170342600252665858193566303280437115002920991440324437385668789556960791605469538342751650663002219951865804487047861895533560721439535137686997385870790177505884646267501228509310609817646356115973979548433550991017687941518616637265918358135446370509531018288480717501711956790673791919428270452138904661250123321648327843757707328224944826051553639921240970603353739485043998069791985265655309466395567602334327264994419204288547487076196634877517920930464911994337084017467746576135708478589045951297955653802841666186785450887614575399184603283985193289251083617278964767335909408135691001624373954212415296397352342457595296198294801303432812918615200766820592652029407825474040899733158569288971721070126547778327059708231259884072184462062142381380297984534911982811372832870804300659991672647926707989584834402350752908125099100246276988149456851947306780786299470058407001578737263293287823222532941891578167686013805035749582345943451185494512514210997068322200243436375743795157912374734210931363112971279265223259256677336100369509254312596775090017256721942598854489247375397306876529776228135431285161049372705471626482606550280329285785647367945881393404664691790726174863918246047929058667764771142467869056129561114508062200411129960155373483346168626907578304905834670014984013558349556354300299019527160030578545420589014980239022888073056354511488871286419937713926703109097055025029554967317006235399084990594613023770600216029800329158656349899005000108981304232894804137183645348537057945401599287704487413003906733999756359873840042062910961268344638257392192872105682332958204751168736657671078422861495806169880947126347181395667795560789772274159457593364513075630062971509076747370769252950561696350107246331757194940445125232656050887497237159042209325696442386223695844399450993752795400935777226003812396147324556498959776746203726892167241371592766201060706405797529001914937820184644701103647061463891816035197870948913864207355956385284667040749414913540815422767918160423597244240728044027022637613846593268710322350526022067753559544993765264975432883715392214475955456149724338564206870496163970831012891843513413433188185252314964727255121019810027704075788763755025846449352940260046091001977797511180239409194607266505906602206124694706609266747093637669039941340678805646160738030624511237663133266453374771693432622377079621386064040950044568571388419850913795779565164864900295729546334127559167791371649747272292470399488805084409392144037664403610270413158383341807586349326734470599261303095818945060856194576090983677760932453179150665152312196087996317756984244715526117781501664203833017801827244333382016784407204628855764461406691277412201510269637266255319749343961985733063400838143223250531076488290830861248540223372887594969091778985201473987312507865864829390004238475699932126128981285561229459079222665055897204975840531926779491487386308707063557698643707408693757040141860402257269326114849475727618091700536721703860289141179495497850468298451355184590636726972505858597907080122569662412668560617044387980443954009063771080400268531535369315225922407014468016756142594149287552919851604974055490688229178630992836470345181049048401895417314466516393579434861057423594902543292244534504825501551762905668964757863397239320914823105015416709361843225934753328887289051422445440273792483251784241251124962256843068687479716383913273556378483311251760522381436417063215854097223587840458809222286107059725438862609292140430732374161852062499373922843116189783902779941581376814562724845371631023351658165951395911320907848370032679018432595683478187465577368993641608004757157780496735024835089870738425577047975521473940114627669357597923649738712699065015916692943492810332131649311477261959376428710708453490698740705850636484252770190786976038007541493275316631917085987859005019319636283775167286268436794911485971540892652358524670628387023706290676307958121675388332331530768053365453820261973628848433239185009560140996247772426313705572905855927773712041340588604350658626085025514873651106458091708997226810518831614252452018680102957340743770443741786412482114972487531435060802103861015636182097411722530092368768548732302962162358240490260192826658557871844498158088891417557007202663289506303380428397575025390998969156036548096948736012483309471251449328656322104038461476099775616570032069357075862196156286443451643678344589673723604887429385618794236345545080047437126417092648565063211297258365606866537480486746671490003901402300954035799714268498104428037853800065555262940617865619411816066822955058398874601304010010725281775173359353353959529801964021785079749327866740204793438055536306225863402816161169427618180358511929054433685896111934624859879607688409758152689349015760736641272601597077391136420594901782107848554845562836414951837993994011114680045056960516023298657934853456519220337520905368183670881205279671992680529669447212401768298345658740876026785038288766810200205767762150338874176793162452332977147604833705258565563631514142999094633738226280863168798237273329422230934623274714546537874589913767022635118918985558341725232547220469137988319696673358257855384344606096116355628372497461921320657365069931511630521513511211286851575451766858379243690847110333047899224201107210603846471821394492681534246407092143101062200734713521790212966701582745564555332586025445436334901052975911592824412230826125253645869190800471906304365086604443571706764519122632622871366534023920917457271383613107820720398539350078521776201210598547801271300082891214263951356397229291618925974366444789340455358590891026065752376953026568224337206967017712313246952953018605676874743716700009447420292718540384405345063373692449135066956453618767460731726538392462997491951684245936186989050939843286347720666474277817219357626011476693753657147699356973998745508665188742599784155628990452366091721756304064375167988398379204819921512616020434894896630021762028474879972622190449723890435466282706618039533384628544540388900825686002702522697426333750639351042827639522673652187233123181321961675376164154880546066671653575197650465425349427286857763230344624646489671060025014306051270797633813513570115659121264710610274624295003157314708403436139833099930324907654758883704877736538545975657560473730391720379174566739933836632049075215983266552653887325783333594193722728234318022605246799148960041162886397432124928642633409004905367143213412682446678631323799525198899608271013081917486895295049415481975725131721607662763453277930486187965669985927292117209326505890700567972351720424219989052787299775203097690875426438755424671723321589136865115491130825579576679511414909351205318715540719276424493882132042581454363394101929805317295921037828865618204295960631614109068200756861884460578346632202058619545429101642297450122317875491286936456736331189806851857498707617108062410720042677333280742059292461992739999179070464663819569500023514285873815050228576974647190181028643701792012895802008007942870765799577754303050389982467056900396728248170886554418253476756477476518337477733338414593173541434775239182270469698783769851793699886371024071480074583664277080724587222333927799545679140498060666009029104304325747624343196127971290871445834600220602554850554053262100980720919052222507791004441226165067257691480095633071847858447719137283826697939440470943645691436023000031669302442846615582112816461553888443579901994077203905912830520565659188290439682971033138264018861980400425257784038322520064580416085046917526435056637707213113574968817502255615864504919480663850782708731337603525242512104198797634717001093779306778558518684517066407350946312807801054480814079354816384691217424892419183346248574193577418740223113487353454285328227971121871629343175965834725785743944979867824097198007676096002167052980118275324659932138709499300664050378722453777715961940206962856153465131468458104773809450680495864260972158289341561241776926892839990358710191448677019594713975231587631841953601311693304538657423037851875743077021883250214534981141665356625387368812889123496763593681660424674466476778107402858449641943383513632643239383728075437318417666851582326297978988071473872643749524481972625448960830199214231863763613852403888349381323377003637981729370415255758871686792637627987471506298488992402099734583393918858462194145039498614012186896498335747484205974254287009162735712235166699347569860830110793688732819385283646337853710890659095412470778727698971725579364781998325788740418776339225691086068082481545189077290863238547405619457405442618275147150955160657226107648625495214991855918816550269911091413172768115096602377896091005763629642060947079571407971053230879389293261776125178421943898856193771349048155694163265060371699187282188567315935585608253302697937295337154392851327842795935190845059247088608211226262285559343073432876447092073038693286401224521081297621347157851890591338108715869591706472444783213270239873377762868416122245667605039814830359495692891383171557874064957893803926857349291758205716653662821682724525184025837862883067047254974435126953059809901428965184108548435187894214252144262412187443770929614474310189455186127667627810464701059198803398062893336869244312953522604488364951138638303014351998978426932316657439884995072224723621690635168611972582756586615904015545872434020952707362932741856447837019744583087988008203033246943931638112325230996130461423017720552925291223452482920989364157754774016519210738714926633601131792689730737082586111087153821617873992013130897123093733809538614725997013242129412100230050107449318429049791581391591139484668518018472785810400716501726591187699106290536064874082638343922359466141859393463958688948030864762309347043610450335480513578811754308208285926302613418416770462743789480883788551025251636101031553413792866566603482079219416132735320697326505749522586612608548184181043793221631790799746220116685945864887052472169790479953467622646683145259185144438674946124495215571906153336524601805564365180129065777936162100769457184379064320161193554183686142878909532246339026858741025017524879745619721606163809049452961924065086905551053445314851508732367638106192990928734706462170276753912408261487352525470430823936223427747898689864481149359224661656631410004288279637240815155239164225982172620962531201525827208333259677920142153458872545165205716510434104398784232194203699484906673516163723170558461133255843913462933746216294252495731977862001827442559246394074866878357412697828519115003459303734004658421285863547908910845400470859730228368846017751120325632484985258871001722344014098580960675503725143865143206395211284577365018902033194592879289880770948541809584261819538290041233810504640844467970112209881169505287835751259707735148470618500211310883723863274465462661944432507503806953276858904848530102924788902843056007134478547216409930173258630717900040388638462156410637901347517905937083079189343421630218256325036958060561939731148797182768333872532262775621317264584560636558481928183718052653368789756658777011802795977432025001329685500832359607714678143876809080465980032361126901509513282437755545896185048543993276647378561210347697830358168839846563362063101874919426494622588270073100786740249977785066479732528732975705393447974244131259654353803953666922062306894724617729324739726921612530892205503553788186694978534400008041314643823035166611712677144007020851247952558229497839890715750925355051196143421283128188481972053554568382580662830728904438359509881119062735229627439456514386731794783661700012015229529226346644561990512656865773650629160376835304952612084379253555165411097802851743611279994093394938356120424837956760777373213858968895068653162981078752496318350649925556939665845633499537601317186248870339727813417907290960827964140529142596918840655463118152170787546894994924610053089491704907243950099138873353155647862903315314647081789408715532059148198382409285690811201037622162636716548452630596424838580143434736538074032382769766565869858593934511857487469373091234665214987736425817865394253280668977627815734059273253713395859716586457743505526658095159438524028985038505736752050034942047174797647840504971985712902102889196562188323344896189221852690585275754203835298347182767990846965963637035131972676699925032384693045464675526961739842372940673168361117149136666314278851081937448723527798748743982724224294742172040402663821264441139068594683720313868741501456499944269672599776642051891752148272461839341961284384076296767873376376844751541983185152818333114567700943616274607751967204885477687087840190564413163733469648066643051238858692981297011821018102661292329542920746394696063063866733462030613083929795592283771938144615206383026571727138723207403056837047784217776068829947521286083163765801451080989236928023885232804754697959276085218300304309860657467005281809664629505363620515850664603450587659070959383013200887775091478036104928942032616069814859794778026173688444529294663756723570427748918847036485971606031244956774118886518596935016164072848077032706691599617517931145320466546513217590284741502710193806783617968001168681362982607425194591703422371126593390131083075409538821975428628060414645684324951862435769099018619933490212211478355162963917089217699112423837148313257439764438334755040560012174648248519047982284971966111765342923503607762875376092997866423805814727341664611736115897151498303687226754249991489242115850212506384626166993591002351402707428317666945379068944745806353822284401652207103387119259557785957469428718407585770188872195029836115292219344760276375093591420372620616628227728221465355759047287360114014958740411699936068245707825755000372509447899652402863987861621918330175171563851386179992242474794747022728550551023884654624636118178572056550103695695472718116256139652704289067085443086100544818281208300483095857188732566127831129429730310945603559791788071176589588727022698961494144570732518894602430703654405740871137748993074617529450676255881094332031637864061656247733295138844762351363056710010886426989478781910660096278646091693174469618493438935926701715799676971570764065565948943683983822140355883727918753667321054986771721537746231132053107375711055235830555248626841149725880600661766777816736620513282854783911368017425160757643423495090967420006884456921025226884805719047931026099477110682783395156884890024643072231467472197053852255469570530862399874186528631321158665652350113166873302823478639584013627218488937420079234553774585468950277935931321793049328568631329166305153367001211692273554017523875296320100982929884987524499667153387149722631488036653591617910852168818792018020578285103533736596986350280061615310305474523221037503582619223451299581026355587436080033751232894592512889416905120287952400203499331752658309179202451431468870922065122144340268655232493909107078032640878171920982514140652238623139669856810509324610482307208246866564849354351538625909758484323319433338637117122824495573019206711761279293550175932438079332802422207360601182921172740957227088464895442644077631971642189446092615182639173337115733441054702878093928845885069158738856486084164519264697702381065310994795959228866173785694294568589147576700496468625199000916370657569019734868717461758522834440322076853769507296790123705848523590103871091188768471667372219735160504650886594355198084325869223733419542128876827310523606012686720656861755212520299167322086828960573426162711302770628476827256507208187729398305139466193517150777684347288052537230306734112322249510240875696026849013145813867855106715543026285817490381035568960996831800477589724264779142692549740031902359160136510818796453315641259412011224595503385507432514046320818619939053478768160615806482936334413961504576756764069885380381104814717234316856737982643966086907956000894531864050356099245790217950132014252006934314123223640045182658900786781590713131166718696112128561041078384322417786607722739073349107086684229879289842938521667026294206146776595421957547774531235893953738308403292309803941348483638600501788041635861550432594700533858216413419939604773718804931688787907322645475995654301291383863862290409577229228048331197661451015272129877237948292456367169091629814253957444567255307728629296090272949997422509481436665309297977774576945479106120301228177643287119881352243726433667649713979314874775187971671263879051814818223149532212653024769250056333453563057536225163757037013354292257208848364653127552155314668323023748768616213388721415734381988789368349475840204612016513453210687751899091678406002247350681597734374869727460241848762034665353647654801506170259022867093328689944419304916636153495199910262034059398171408131018369696063593652554101372135678005859300655057071940083167606557845809691792582017319075592217833470952293019253843929786265857721039239484105222649565612959548897342473831668443015134933677599331117641722300510227700721156335936299824990993197270693555259998920213075752230384300235050280226140082201733739465096039577917070876643210939383538433148438837376825143544824858431666248699446961373251030651359157823639298871462225215527997750036914298812537986236340720538624490968524890543138571393058415537476789018332964652666401387773727102935518577958768778956445194771207964164792637339145678462808539382028727547555528140973115430572157769820583703758273871618390459132246390337480853388306407112297554672984826335810514110588231105977414698259369977925711625294856149556141174400631842735348088475278984690045819219383663876819588269919333110547014534368982746005353552121938305675408011101412005401376016640028974523636164032007507184913472902854388197197642020147156228025104122632176300843487392826317698033117726554305970890713994654566276265320009126247646758682378095118354241682397136438892213208504753870228307961086046447983287046042083112200787355379666740810975033165801627876149939612389569346393985370524231973005046002119363110955500624194494817565914143646002050403324405953978443158346637208205586518657358109434557519267410209253341528861940998666499824251367545850331832424066074748465484402746298640107071155370397614446255854370690913117736151123753297385810652704353172766643647111977899388304425315202530784570666921436280885064041141279823992888002485849203705686507793130446521505351939294645820553566364803062983616322369986051816524625551943509639737057659400505497181153720585553204335705291903948894925925043075220626308197363828104378187606033298842893234918494632511770199137260681575081367289667441083755036764907254139161012910604683282461765401593961745568454526031720792534063144435361688795699969075952338959100713005515584752380807159848342275171622232314922079303165781538135128232108072674178877563913510090474922307958742660095787501982664926055402762554317837404572555881754994729685563847376197746484093650662959151740682325555179936801117501691370272202031012948008562370761019303844964966585860558721075139879172962975012738987700798383134821565163706870219101585827531935284304082658065685599253184716980127551215813235074416076484126157026998397728517153777171376690062464341258031895454599032050192360462076986489667859993183054946423692586056818125397053815732522100023527736263966213266279561886593567198111879077137582440492825867789756486159280356468050357085429293009393468966873706312825657735635675746399847262783455253626303269512258289251591944882821864568741171954723216348564650341470693762211055560938969367575322289032640866554288655659331130816257919652919363636576540012816446168415435450583112723897985221704171703561228351341943169683496694968980557873915790693636244386961719690711009124927200585307628041615187765164766955722313957590007042935618216284540156754916076951416090096923043565459633079062541958898643083433345060513376689765768997794376508202535106715014866720991978767772076587035260050517417652302927292394531325149613524891103490243526197303827387479626101768506906731239731938914394218239236452436275212276578914290644200816280993345193521583906728260477713765076352991515233985901461314025217235554094028232336810443164050161777641538356929126227278896902228576850393986199074023662722371079648941830521435968006129996093477284227767498088427156727871308190516378273835707142783738646881780527715466418467883729232189851206480133919053437334586725170147149380826307378198817421409657028903394331526939407785197619213452905050970043579044336762148714472727470040359899010300813618101897535246064809141545547704509907791200271923224068692231387591763155435673431272300385857961477132721988768017562000940118219909365644382627134931019046147783485595830983754272662756911708154661196818492270573122093704319460675104213905975804365823468583563466072094092443310340565019898001007229831867798853046887369714197246573255645893845128011733554018434184826938168020388499446682493663139632730666820772389422729009934827337034326640774301706699210163173340461239449057175021081657769524556865327642284156748244855348013767032579977360839967770195184665221494141817430405289104682854154147011871392505981804372288663167661677702445947820013983824720662526434186957181132815235155703518466382390045043106741861994013017403469470534225338618699851585573705265427709434853127652926047443446559395428492166188123896894111145968004449367743801187146752837898764062003151094003475924745572515247468412932001467458574510079481210611030057550615961306035256768964475451920716530411538508493306800602273885267073300884531837421005035820382224033975416763587152566591592262269066070258304258040802541456711697630623690380558975364683076099582350308808846586913479613044713083126525551010058811379596208977144334075051928904182653892084813206565691269294702039833156308029532514591492515015714058764414771164476020139204849671890513041135930513966589793039199216869092921023791466329739252731120762729000750433758663590497171115711605069381302153969058091531740698868510179468580442474316585515512123091129173312428319903865052793362976389048052447838341804190756933784008390318634201021157042135492353062929778058285818841894043289037484756290296364961620963643260611379617162830172774155565165603212229529638229592228774733499665765675124543616495985495080791664251443097755259254493020176586624037050660871349904931935075692710467334362656738272723000562409069383441305514414032167311477717999355239866321128766361893389574634624861774575511545035308363166003076593637386709320739457420440346188882033471430181660959282114049477254456745090925818589374343247192390946304606352664632738662535635120778762109116939482002345274421622378627371422625841266629332214585103849889484085663712582413430372989194733465428734811240974169549273909952277660213005891977572536900542632120093137276017898462061651800238568767925729257677899439386011090374322374815975116238454064227221964903216010456673973193819510510671140685728034326401527498403154083478178255304470164596318641629543848324590867024712704237196660401974947745432027533175027625668871239759639097278922633402106867799810028507537575532930640777318551278065931447462477103927321516707595150295306821369692803689986022619812756074485231946855552512820355531722295411446767657830796120076905921189374317820106785813438895100485861483799381293304325193333923393563571549488790834424374451290428305481818287207711333875457945643703346595615981350451729293560789891520465346040893484702805524350368052493405736433686059762471849260255663150673554282348684445906316685626742638373973605603300833662720354419655546815516807720063257670803140654833120103575540815745432655337221177234164364223114190704699762127740957186245850911054101028921882571891990050059977566693211209375454542458626294619497464518398959052258027206801573376790202777386215961567972088192659280347341550378122216328498457578497070361608767515463303453844475322909567912754967347030208775155958639476683423976951071058561680679333980536982904201121996183879608928451497320405178874715985611364763144050828914084740840380378544623409789970881706297548956428298785803164405999711660883321158036112862665018312098889874250691565094950656299711500274123612140610748094678181491632986445766374615986862311261375536935870753177805297150909430228528615641513416171211274055452798432464413465137205836631212774248572539297925485534363872955585662732147506566491567662394867653481119993973156447402248286078346919270494917597586844055589773291043105156791662986821648090794855957361357193653126675082845855800362395809278400542579743947750081509164951916333607154565500114950745205350077222081956907926773980882399050530538946263264779945910823055043514200402087694010930598393174232026057492897292673151762651443934143093700343638809961391846570608540403818134812409005773773931844933679617451605620793559112751877834601256249474131660798792969961685054296292819507915085768922775158326675523179832912785863753504641797050849220062836433799168929471413098293021715058650505064788299099313316512507520675870777428018561515924487501599602283155182070219048988534035676340073561730454380693280539844330191592448407847558860479859869048822863939191446093137704487570944442140652463679475782595601608570350771112251049667610102977602316349655356181362483037162714375859571231961591271127402812976361208589388568241613163129602293411390586415456566112820022153386270908107117503448040946441359048832530976016145379363645902260978566529313162037781337471780750531906324068494366161182882918962488098986174186232151033741495271307527110173761464473808751562020206539307583001728491622366853593379624633232684428144141653825518390069726347567863427986096209377924083149610614839487926547604969222040223788409058944572379478516206513449191005326811866567076272873656747476782769757000024527901890940732144429802745805945767736623802597275938783713181203276401978932529995040671458217217855966639036941252925942958218493493992453887159729048918380651978153143897519683452876781840243522342487040292683659254198546375136412389207963679251431754325955358719712428815863377335245693059470614883256344012244203777668903847917287551306798550902320148158489498931996233340632353102190989875398074483171743961416756520985439438650075971683587150545437072917116255202257418105334032436241699087513846959612756702391511141318279693439731929222417459984350454448371228452063814688049176333250041729992145552686100501169564246401215175423768529750018918225674367398461493639991608621421544707500360067320515645683464877927359168423325844386777503836136354287541533703778389063643504205834200091495378455293185667705718758611353304713445001302741577603743904259582787207223068373715852116916408299726735878268209943361309918937582769753573843947379490740412527013596636079530524482760916971169387796536929802736974144049973214205757947335132171419665821142786295735213742165145053082351456548449653506600670026315309195617154368535228792138137719991284148097756595595918562778036397738017319558093057491359272878475929146432327029150667860538403293696968488049249327666045540391637543396244519848169976790830120627285727861567295818723120679949356485376472161048857106256429036640448568563555262299616019916096543469479521366936852063288232486389626029589239272063706643923511172115424092704186599264456973544781600828865914191765034170501781370320297635838835566013047832208894887082035834588892437236202204022715623650473288372051520819879834989667614671757868627104979486602478346823151263894343530117927321773541280041487350012952285201170901160276726493242672965710690765511351948063952219530877553207435672736307807945429931295169403845824018910188006509614916452506938616263597958929711795739531005116110074376172828321230992423214287495176975701674718744832166433895308216280102212685815269198184651176947058852151043286904922720335143138465183620568243560198565637404609514489797743818916812418490578059029830902365621707926281235256708122802354119953273778933273712086545976497930258559051930920345879608661911695187477592953025059663749375490971436679930010024482580960218407613575211576675217933831914976176827987297718605317604065861822222240300607602136038860106986596231726057164950572372552863569611830738569401224107112407549152005935221416970753892805430194501331139786055331674667667211128100847877111558565219924932761530091193913291596579431773799090143678161633209873177310308674304361443301820470231836060697206606017428405648509619823299643705171735869359034636355205714835803629604722564646170121671949825553988844324305434110394910286736215876447172454905475497246385991779788192246611548327192455077923316386537525790353177664946411014935033618566586466856252156352314033521119895680784159164568240234845061781254933763140531255293113602202634162270681334739381404594075217962481223689073886500393114999207085156018893821259803932345306462391513610153865555882761637850372290721011411106521233791876312147254667349281346624389348371188929518913299663221877812510171756618315130745707960504286579396337323798858198020438315926468910917021242024804954711612265733147132270308408831439576507034140621584062917190383434583067716049120029973471069741977719250076692312681262244820862515984331895783550496418396361460632671124079347147726590417576023317893821816463346204521092562759862002262327049671576913418688491788883917457407258108909669163546223898136003530710490265242396523918351105419748037974701488200472317624435556913767592924888415571028477635554988710921707116916457818337499046337642490498377059708116348967340924546743000129292353214253606809500849657548919551300087004530325561734449198968021136739991144229207500591398097189066209898538352414579910222430993484705666542886278980063472949487198491349980009177358405844765917661624266733134526972427548778701625254064027516957794290625940969361798056607351285816177548488383661094743376339849458383460044239547295062868059828735250981714196001759429066368121320786666771218671540894697790230620092903812969366587309690001083826369530695960335619760432488650881820959941219519651682919577713011220200755787321644368420600071444996242914683226054050930014299588958997994237935358750325387034800521824446815406183462329432579434624212111919260167808147769359082084695309355079505399238165767057026491547016638782605194291912660106122131806251059151685976093816389564254416636290191563963675483610441336918547673014793429042416213581364285441767803679988754291711530513947837386451417257410017827348265479850203021630220784478179773784646623742201509809171568242389917000795596058425754037913352756776658616621210640234080892411418354754292013074587119739834123464250692062430901806459585046412874096910522441656519172261440538106736031490924925784462884446526609173253378708477977172882857850578051192599438516505212531127849305418995965604802197884726558541881983386510545883088919479211463067010489291311407775280893267292804554785814844238092225690507120680890290388359515407239518535697470154499344651670189221780190515200980212163991254529282122725912252177748130255267435624724283883755649110209194126675896745200230999474333384422345370712297618633778948807130908579143843581667800603382775047055439914695794482279609196844180699781568160779024098153573599058587644048535262247452939423758836059416561669807528209928252690775329148057016636492855966076994148054361473837043067699193024580279146782818084116918134461881586671322418338265860631878993118943400899675024447263839672471954029004405187787792808380761025620529644935319994108957638683808126954308145320005115603702278119391632890732966212943815310506407250817677497637463470466606708898520591423281228387595482557056007399094660268423765414300398363078736564361090465586261723252903681382844735779513817811969402870988274200704282033658486704916805134864060644028752776064154058079583795786661255612953379349194021127345592931254137367000020128395439628209900866210210032205891472498877108377681184516695070453751011062472531192276699146532149763719460376852567521754688465215711984905637036125070819699475910298370423323774224201473314314061185452327487388921636192581784626027621449661667761837770584287464798146933647547196346451331418624013653279456659092037141615219776171527779687373732350974627951559127772927084645583535759743925442666494732718444013344363859913407824559907374051623812832917180449162733000085727202957099807023639136412478593369270107181143528434780542350448235844816880491718706857079049273902339782680624944659332314699327887497503419801642262862458653090674493949441977830791118799203431553341989851233119461029227995573625407153232690428113144903814602391049289306623985071376262691796685370050590448488806397306413511445614115276157334710413151184828753289874068306094726660465852885677427659162487066527599152351021859353881182302665605636753962382272990580771684360424841805265084155804248530811056970215762175947782355598483327860830593371259192264907519722961183473436929782575917921816483758121558400448069719475494266519068831736389325153211578740407011757739865285376090568514274893695236849204860749322976440376062743369947331966920402203712252878925272349952019354366989715337853727849300959802672368776642642929798800526748740203940953630059533283122057902253621779806551698969336105756115464543778045629336262434145344245482857067620618068289660238693179903126595359640785421971067683534039766868421067051351198041356775165629032587343110220388662261924978641354625315523869954710809213096060409164391386041190719646069979668861338121833947362180931179523364781090673445442953039867598848505518493713523669919582237860125472402947384550791431389307675631771259269675454974240638555186111065645427968120524711483053865487463785259997677281531221906546933964178533667773572094634811998304231105438609558433295967998342998809552360065126424669729082153704904524469182625139956376085240224069125542325401521042850845768924763420958198359085451197176254963314644953014128637924896717025856796820487531466553005685931932496704208596524666432753767566468283813210260606673927564797727025586372837839138581913704013108952840682850791209110813380167059928875579046597404965353287853803647325727477513599714202730595179958652550959605586647973831830326135342434614138482458299948659455234538523484223246481695641524969306694773365132739260385136717803879138731835255934416086724913554321183389661309784086823631056921827351624360303863613313369764942142694121358187105701246068493983953872966374846753190027595514296047763102627262171526809296226749749737071683227386145457486433234523195452067587094428567136105700707903888489080942182912385679456577175449466324264665309830453750278266353800164600452401893390909217072541675502769153479696591462892851603924506242804320223562645375370239660579944419067101905539249579055170480703649035767122568766969461073467385933504232862332825935648682772115381512803535837846612199768405812769116050463697149350088912437384004348273140015238985360354194278102513751717734913299965512106378086994775402692893265867070038654087522469487563161208587100681803304222949266254834927066743270197561062724010297522868583791660148307083049209551082438283875113429700705133042382326253770418218825808783324926422990048928290051014476678312194611497397436404444260951886181178989375505548694023483215910372727883931050470150118700689675523886224844015208720166844809112417846848276682402046961766032482092602943010866957484770235904021743318211216128400814687228458211489318650069593743694650525383943998014729265352232558884666260098488272951987917977672748758073106764665092536179904245560719520666516933594850414389158498385040658501896880966021799341637408599095512563989234978391168945972537841000743717275414361662146885006662860448466205256689731299874326352880241674158743657735003580509203732131297085293792457171282430222737836741223760908165815359387091137672075888038981657683402760761684862802956180254964253993944679235027793564331351879209657151116410949505385390327611449536988801528113448069168597779199668812594911300097222089378130559213538921263984255086236600782453045796455781255178027978515000496134156001171190307263035690020117787299223190469880155928382316614583958053176058771726226532891012721176001926525876137903334208473998607491430919082904691094434086173278789847284168678758570748755208565947871425199819704330276461568866576097255560319572255590446679778487431132065703164377156912340628099876212955583676367868046181441640931280124060486259432910311158754888553523848206514390969002296321996548867976718134132241924262857270636285223854341687605629918223849331890070992086400037781387186433111494614444981672924556382198682913268541939209879238219451406650139282410239666828507247803717456394932399973367814015114017656323883401319098480732332673256704768950116882367098557512812086590178029417554417285083831510894829576967138465831183981061619369055378990916258337835515551753346820267886296852285641217610276110896200345885058498208007299270247781784842491380416744060251192245104871231414082348286277591677537319825172504966120049995729239683425037691326656776452898117541496246887678534406239345238945005445104189583538744176526490908057580321388309155028382694787943595623791755039874106037522691098386027623949332301805816610884502675190324537778085775121683129893234391719739298742441178536944703545666303679247031467309453849927965558958851886369318267175224790721299411467763180593154529944852961057434208389661421923719510220316145283963980332364213303333592478615179297854573208740229635148651739269959988034254051500246491917896598387735581594711545520363356192162717552861349121925242626788631365317044203600268331887085643581486776778160192854812256808736689216057132386482527415836053844610200083594399078673934257426827090748782046427791916644715613641151171019256342556246270532391295308350094843999377149628828518807735674403976481744734517762437859932677938743526400946240298587022471250735508070620037224254799382823119301443764502216485375567842170187699748738625757896594198166874084383132828834147222272483330312001011839787050457095998259107237444910354199868422743259745174986620695169132425164625128834856516404455207621360828792341114464621383811357961924190856237658135468564359047404530204704227120421668976509620971736425862422561394676352027712280510774214671248574075429934316857573977201970457257880830361778939695109526767257975714703605683469736237577553725553902579473348963787214277091517818908895578388505337091428305684018754828646996675312844552114747089853147878201602009464195354685326206573577164832596275006347758968001784970105529145850856621361002092208452585327210250487160411074874237089706519428999281584664981523736349457379167785966180494038696033009675075771257427090459480636468782908181441559923317840871703024059666779287370505731593312841876645033930334802508858315693736251227439501097239910268307552484005914130342896483883760021828207130165923124247675532908493696871352642930352198621551333695544988213764776350107381685820391282821457891082000900094299136614637573572700257436697640653495036943342648405001680743672516295994478282266983788576651938877449715469159398824656436171076915562264413694145015873714330321429971875065062683405493764789061828210862114995277232741083637629162241967147752955285516292405061921311979109768158532435027467096638419228616655423754806771627374797981124939008925334173620607641227007154495498681960017767613742482779522269361657854743188292479645622455045050380865360238794577940232774949595140806750900026124395079213138234961644906538091304299864642675143722892011388552448020649620693885724591981138337966243204987878862723187258696849802041541346887396252646353527700795573370672129126631089433670204178223792877560346560869576468837988264518938487514931971270620819570103511155592014059949735112772015534414654485784893400331540931054498674614728561072590855783886179215556475143339999977182149025792222261934938289765797363573446709338274780675355614856453302744837536228790394891751469279428771307988630283987398542723724841532044098890614270145670974581669603752219448386736308384422487763672373862294219568072141201906573048368214885049911222111182608738416295030597322169928365893012195178810220099070910769154148840442197798559288285843836909087763078110041563158098800827847803698038207993153401723312447984418407065905545521559684845802569071719549163329631744860522747149093327773940653771479601290619504282295365731061748135317407312603831845178403542625037937777711476295235343841099486663033149676227388944966241381734410789909929738182416537986746615029431986200552296641299306464433785038262934595502847930512343938018966626248363567923978940626062165156455160389154607263838067448261408412548061120569477038283061559959123116561456177393835546920027723234047774740322490649047202354677691626721329157357247123097745826523789637465992666041520717835665400198714605032194046951698743438787379890326969044405056660823061892514158573645667903766925410814794980404144509852339357751121389412813788173653171984670892635019360195698645684999993799434966920738219320258293549450741101855087074472779582825565022122699566332152723911047500171225284837289190443797597232798291824566957358586625354137947298325156303950647295981060783809605889998435638562677069521645863861660523151945354192354092856640020015170515838895746816638023815746103694190458434105232416442983266830513227126491645923093471686214434433875427755981332707032823484178598693727639918924220223103239309731658365666402126459669545741881973929425558160277975417696169658364698207820311259155660453673279606087723048212096535504996907897012660810248274656070240493946435528501787093345269971612786056429215830039762997438748451684678028774272026569824008786890157711674743324228543884843484917461391047556957833598120352344372020276859992053477643184545632811101741206390259699831732609060126853640319109229031735931945989459915868249141222566247741272733707698210051975768093772766759860364979181447446965782108167454866776591807597897364766830823246789985921548813108054505420899154231698232526714877712232728439038134484450118379590264799483309361747236664749929168974869096969625267048308681911970134766745461705957056895521434937840580067314223914424798430646870171936282481600328648484914192627245060606100149964344507748794917418771650511202155718001227220944466440602223918503688097780223643522857955619504440341274028934792386085631387703259797941026445202643227442406056560684969281948436549148453889153386935640930812693745488430654628376589965311923163590011038057121866464974795138039698179367849404517083867943990896126680387008461542634469235256192968591733246588190755841780019499225964947578048660486474001625572396993067933632768531038850482512530554933863359959044560981304630769704886163886453098706547570781254662014723642632558632010564690631346650342133865738140531457125394644613100512132883363187026435838558141138917975427245476709225494616567023617388749872365312778222820829873998666398695214880455121127443663986973391134925188742948362584236412301433416973489432150864530949264347319883426003249947316487457362690412758127048102327134078327160745400111725667874315014413246782174879924301869691848702877433826906259053048358074274194124686466053635101365200387606714011050844352805031836244750370128449931456248488915339326345370819249764869126334759420696297605340624264283793181294673817080774084283456314394193366677921842039328240579665865089875648617938806874173566425653331676555300117018884316747460389020255830054848108043233840110145259621921813446673833328933148547297386473576213873061074177893232648078780859485323387028780918508789832344779859461941183605048954565713031561843018485116573478013354724124117551920554104743059052228177989827460903177510375844858677252618190882146689526120379516890755280949378023064588219355579789488166433839428084578620321256940219965806080345173303894891584540986680109518240942624266994416095453294174178386017530793754407859481115823509416806359777811835097149608567098708894801190976711540722183303356186402930495409813182464267067081434244676035202545318380927416358463175324410779988438187070279417924454768170599390156168899906575030850405109209794141418664287906699700964837958835857051896065844221329825748906951828034229761443421368081388482306271844269688086095023088186048506744983726510825524702827881663756404244249983086813808775280045710941536379754510430650722032283048825738497430679669408920006324418423122888583743814976325412363951597094446425237367310001118802962902066328352842689511882032011322460612948993805577628478659786775037483469143839894854737626628035057258227859665080240936554667151170424837495709010367237090959747575771689385089925838842141852707308360013612845887414968095567417238315812550439492404986266727349509741950814156321500559688336343565637992068088900403798376385327806728334682079490668332222464381973906967751361678055229769107757436254968337469648808369720561683795005413522909444379087907979380270141703657427177359515827398694264650326667720813745881393183246096060562029962188171960850014127647551694998138716970944928499751033930692269781374383151877920708921579830067520075377733934778306298272789103258889720711958595082353630238760015867820157250022179412846692626040756039623045047257089888536622226132372455747118076844323236468784257721797300531118932377153319760674165722491962617690812278089302122144429486913017072489280248241529130646083137506580931697780808968980729364754098074126866102849942715409797406267726287314651298767265658411731169096246488363801902100445144074312244418033921314719057147232117515849494204243905855210320462494431191492918784617037214123275145568635667758631516929419286081264126987867806578187351839450216462052363477104394466059746005246843859025214437362661783092235042405500054044099938539042917095911472124655351365752538729180829642546978588534929226784684117161005173514030514907998117229619298013986685253157958791831974963576582893788101969892613233755801497145180297662846172420353829641472369760402250275773810956328205107215775046107378647715410681689700599969644613381299119451906339204931098164546583535488633331985425876598130366494855295511335400377558665573452801850997539933511843308069761965921857323518892557125209020083807065289138396533077478811646159636191876554942833525658877536370323321339944067972635611658462878541497982423046561270753089523300210965945575823921710110883669861037365869465887445819301256225843656111482283383509774313053220000755998444516713230711076442202300870941861454109723855662075290021356764615722737037505857079086532140823055693759027568718160539204621734635080504412437149736255529944430229106619742898508812506371739043165727944326010212534569463162895048575868685783639928433370161847296508240220608455966945139258209380223309365824129723053448547538957746752111055479366983493883303475218123323862387365622033859982941481149759656956296888926251017908889312457068456400178445620051321100741708703192889528451036214874282520888456613564549300618556911094466125461407233746283157909111621883782131181464374620501943293914116958366541272736815922733863365336662635574386270581768348829130454724771257781760893739282697079585597325222315655982661165486119185599136042974747623153029588303234663008849164909623033571288580840497084470394491116917299293692104788740636080646541400775404385292430231397091386406593465750425548493028012747277364720851415396125218282217392542153056462771568084583691910703147062342525913169284521282009052276586267662856421161823142107793604723899643260837698433959400927439125344074500731284558941064198564071270024624565011386869278378119669784943530806013967267969235582359765894388711488949817102452326836991863975638629391358559151924142633941542228780906105073947612068229238630149501929202147386689756166968785296760318300619746036231186135605027061697155073062727542820741259412049869391445992084442154840824833211105523600879279970395323184613907535176209298857374705829522176756213021842693516698241080396024360867344265462230968215413385232582881889112245315088279331252249755635422842906463715430812875992050664051373911401905724032932031257928885438848724760146327000770910978269269684372460928334951340125117318216220755645713907590800087524621568222204579462237664717316438227155542970774416126039973506062940387344798187407639770511481391041601442321261937852145896488865057306829654329069912831807725196476407093412663435698125110311629634552252910156589503157991969369888970381943422618361717394049165266358272678034139194382752078390902415726529005234679942222590343407018898064906406582450669742058785480915292021336476269059400465587641224978832916745785255749145026828017025509125437577888384364785568634360707300606645062841469983007681277888332714962950196865854251735418288278785115189852314695452395204779616108025751354553728279568590549070427763980275608286420727056693362446386841803271088967576557103295604940360313602417970058967334799068776379664469175338504769758556573454735459471188529216640691745940319554005895432025083994212502230722201161125889549561817242464793690223342581511640629377313978606454058140884657190575675759814114087865401676256286058252862158646751927693682497606770411183474872473133611365389639345634635366513634745262763363812623308300678337470558055776282186480801758023566213690743876243868848503298798620302864364326655289820053909158931977883569345404024375555292272996934198764785660738062674457655572231158767210830770272418562720104267610004568858659853633162435721516116626562518076008050981168451219200070606290476235578732419840935610468807527325124467182309956422556928868038213993331976510590150670680212063648988979118258512213271530270279669016123645310899220127243657404605113752850667237516428532790085549320085531105299709672220752717697522207390922565429765584029700893570232118235630081423710941387752858335870803451173588425745674879381593468137575016500694286200228373165120639047367701580248698134685128757115807918952784527459151017952051754099266478919071695649860205773058019939674049302682986865678458035587126464496040813130040916316374889654232723877664667463860955023079207725500477774864825752744284820969775283075974791889370584181130408325130365672817659444110987675118686291025914450563772434626213587329582325392735284687810182954521372603735265816318244925016474241114153491910365127548198722670016026602826441137917336925195648971946026662272254705411555176193007017914061515949569751374879647515211837395548260244187744909701204384476852352760201359184181743392548036866944862812084653882433207388650160594630741397855182322625167034761768235702157510757635591187155175295245212200451765077097768532114748136528900164191924005442686081901230184702159924540710558932265619233132900765080761013626609948324891322912772439480572834333857982881448125548258705302012266815533400383667254297634598420811330172069921974041258788570630987998407982360218553044504156704841587543963272847458376658414323611879623812568970223466358419190668534272812395668716201998209572136701250052916951989920236955708080480917691451428871413604286806232507204558375236880570021944062095259961065182685767789709146353183459618012479350820835564394847007883257897416430706064715687380004574657920848629226402308140796701488273476366008623141643333485390760032260959873157704946243559122039556368273414342051298901078474393035076165612579393788428413370598459881543557047812391641199159969365374064060926946185276559772460931661415665339035195481874609050783528692133770379180506240663532665763899577441254852445305522637387378603597394763096349006861273047987990785708465196622125945588754447762592710371244463316267066466411118543706340745365908301451130817858540131378067891415175849679220748022122790232739163683754392733360834699572922726835067826040650272706926098342406733475123174303702257527289541761580007676790831982496542159205040760101543931427630260579864057227726608922532978503952691674010263907200248808922761637972071685262401362297155680990334431112061683163699928512517500577981121003862218003635802657640671361344208153364212079410323117906202445734254710965283670222531420289785915610196341878787638528101707402137831543307605709087821975333667734660984853266557784143551462542988511517923768905210109975504173584381676431100769918624614564484196242411623357394734444156867056653277825859234457207048602405928763585289712852012380460325320900720258367608644888997506442808218757400683245789229973216673457941034447985905902096656320873384141644950980324221056034881653535745474371166131909391347950115759613381994575298019343656695908475059245234208728906554208172495159256752381680572181393975644244444185634217014779418254197788728789005339201657351047618797644579687257998941669449457664144937860219467698720384980498524478064575188573702393469147999693185534800376577733043251237527999203947018425767210412473274244276401581975613624971510148034150785441493509937776368904166603531544990198221480300493509749409923352744441968326333632965955403144857739943229858927375173786930580359802370902284856123889584372494983991507331170798525435522489174910067306386402729494906529715161743626006819422683424301864444517158575899583864820359545943694305801497388206610152331806504216636461022933248575098234258152784163458259106451395142692420520847787881777216065802936239352138907647547252289014296439828294730339319683576459770329902573567443260266928507446613738030263556876811980266364347858344303595980089354143377636620680262517312442617756390409696772979948755830053268866750076830057753787928585758868143769762793714795105874915319849063699467024567003958613411537032501782740953150382918382860444096700078061011820289124322432554005557383620117870874508136978860622993334116540557776348946352510376300212693302376059727280994253237514521100580263395817779016113996043078423012971640198125704947895108322140844630865063518693665533835053848471591062597001362994252651039972161894345701666609262254963664006173119840446354559687798258568343661106333425059015203248538596893893877748531325087067809512685417866325817978569758909091664709715016587759567448800553602673212297298525731855949024936799045177896855598210523822872479702372604184973806341125659452248122968046576362306625857197038474671899681987402112697957205319031212756308359138064827796273255442309547170640594103839919280649860858199708360816981112398833477689507971031203581903208622595187363907904647432270040096062664423692362673133810440689550171049348015504632753064096018791834271862121812166229246927077876132788460370203212799781585148114516367187341880750588648201637691133332102735251859772941695068305327109595244461512549772302173372732713770757258933447011129992399628413944996402693171289160388616613832242207182559625896405853433001633073163967134107580712343330374912730453893699492210554251063849901189005341895549666425730171385902522656052999403099098008119204495496959309584143254618417935323988319435790066115261760600874864339157902825146220687737756690148761051468164884808679367895676150587897880486191575979664653299333836629408876507635982960516227964395812499679100321670634509176214338133665257204152894980673295161829149109942972337387269442235621221795246677385167849704853284999104101532811768208271370562690411050795199263617515365947477386821095604340593316700579254720173434062094506679588154886508326244746543768052727104833097191605431366285223718333685822894843974797150128577637421941379535396636377011265224993618799659743153037545925967234899741787636906298232108974149148114369288434176826888419975864206594779673516000731565775641087077292377507605960529132431440243248665626230697619872466347202315712804084150009439859816876474099518181931002364441471268073579378795469057654890795031714466104647169213423899830467721958250074918386707354404092106267462603923931499339762278957716906934566239852267989063345679182761469208668109928794017934967284297144428533011962153750104261109126914495913345884283911479289817266912149067905670440546846827234428697026439178765873675102546388026297232784297255499157422490732948595413240911050445537963399179616375048992953159819312534528407521510221341280431240782414544843182379962535765858771994584346803436308888076052134890184578765672498411727261796289421956339751517488758017588222072571903571829224748479746072490248675433632479654895879856767387500288364227018972779389149253739851756972661176563909790558118928136733370450125540026678804613667753263151545439021231318337745135789076436672821243579252495541630388603823347689880930753241987533816431427358933257566661260544250515663323156636417911724230308670842478499940913290223702199536134406493591350796670896861108192650450499530462808871267781894614633628721680816407150421998700408267475265711657103022373145467034739162496629122013817730354104043525222028139511343387175981568765666680520478545434478589174096863440543964195697703364174889720388189128837042789026435073659224535559814045239088530977423377930406225095651323174385767613560407871086765757856309980142380183485040734406077084989900443118994042337564735828156360787307759482967812040032304553204426256401682712654340070544905347456334997994005356866708358294533799796419821658044250001439260084060892921567399465503814242776723697647669059102270637780817140124465886933501107645879767343446842113395425560402238649862589114166485278358776783653350183159864232199068579534460762389098568138243076275820322042817528447703522280057276621764795843321261330104170715694853807258352771479219620560358731027614527225913622415450480904595992844118896664020965651451468693265464303759763789168199841920222703928818641281781455915986467182027751943243170559106262410039151452533773922637184021158285123071807148659558484149852061348618360309220043722662894244403182556809915034407726432270134156386775803664069422726456100389207008263046449359461403144280347559735487397899137150043347421812823249348692199616100740731229656449824010665389520961462273520274943786835003876049834943684118979111785175563897578182580277661963463408058622362064044682921982811145910271519148420294446996764287707188102746763049329471554395182932707815540343263091002320298642799991947424284947636700954720233199069574662976841210733948901784569745643354383028451076225419658270299756991857299951522690885253293310699055836383985256853929467606524051522362185783002418283433276574930443624779275445506992085991471083797808606179520856123428686876765982325778357686908705074972868464023891508108564869942578699489086668252276962160694194761261196671018483096923471060595718746285615606240953945462135830733856679720817641443760522577918811479293585739333615492499740981284268698595385107325991221758218172691182826732738755840767673992096634723985030727362976838166463980423262814014357144360838830893930760577436143363663766769087889907240486446334231434751966701428483818300863833760459881496509513507608487452526792028619078694056415603103890807280306632783809891539617947803160243291841556603159339019134604085648080530015155392551194315410064315801028343055942310422367124970588172983920501860346824344978326456920459956993548940516452566535766309044098000590873826879358417711440929747409220795271861279156143185428883984574115992282205613281759616178636288118470246057771009903139743540072707637917780578128382009860052787427003692570063637897151774305876775887385129739772893457445773244852554089331406317670086332730768960154195855227221324576303578169626011950401526303953383890809067574308302092902355562427815817555371299131736659284312914640510729988710187466337239659910637272547528445064348296220108494879298161243170421362960375434574038664026853048061910777338938882806907662084410098525395198394756209536955396850262004317119686697188717037908994880161235955914127030323742619916347474813923442433301393381022592685026627404006533005907416413519201333840691598435858181317581978500697469197131042522227684956880001026153828922878929822298415904022978818648570252907704804851909461595464320647478946007566937896684575226774552029824070818769599292526911272824011747370985480059080209352512258278248121741530258939252924910550600313869262229376761737284783859951619159351288843396677316179982445933760455498948599636451342716296391427829747608649497724087139038100283793375849029210176599381357133549587446737477030397132264597082298498414399152055718039496155339298776267918803808691942418019524111371030953468527401758499807803480786473454916037212455337138798078032508511710988941387699645127141545192357587485679372175257541384035086496783400920017645665710386364591687181598115504499306921707334462746974143916427729559203326882853455946973268908894109908316627596781362825207475412669640949120822572175026531235686064056203431750669918538372188890215163279648544619514109937829547453352182237155187833043269231245604816397053180818306661940397443328157954875200666913257799452188078293588199338839517202312749149840205806534086935030988780323323739476952035032511632228035585774619220700206627857284883637159229091668298285216806591521202087303753906378941002300171234969782075163790101679796148922220059500894470342761910461820156221006044591024189164077620206754666487358549025130324447669421308543639752499158176168452191031414638644873680279874955682192106754276265454463428276941555128393703709839377823090465365625403551029884744223384600528255235634038480701139197356982591091826451389231110893485180317346977936690138637296245836850383430777878101054835170936041336783917642469400930583522406868473676382204690156773324159355378810017308600187011593511971265249145736440743970181114605394897961671408521457035734972215450843033030346488443279349437929740424057184579412019048322021042965285011064612957018892264090393676087735969520530646761052449401331800683319522304387656433353869687002381457200980512086872886717530876119010776777337550511257998258462697354182430993689849807810876138909330064680531883058777868891189965105005388259957695682652402803376881852886495414447321842070571081394903992275945854552325350686787296621690804111006323001544561547823441613201874978473163687198433445630428978020194972702718205101059269169206768352194135691138337800881114773273732995834477112446286656087126986868226266789612891402174962845676066956166795538112971445978438415876757566763463806848925935652227939362391143715486487618588968203290094661345668430202405394359393911895011545776493421740630551722983563683276402656585958592398375884185139736031901574151148778802849348216789237557781425430288058657170265544839756039297555826582408282905152657215623476883787764255761605728690980363952304061528237183497659762420413689637154544162565299789752515803559785034675718845976448751147464658052185781875877962534297726124112233130338407610580304571916951213862319172191913064742029566926752538276864745921461319294268622921471424973744779506470728198060635328487258836577589268720185501598435461579638842897451425771421725018755738962852230456590342407734918780921535527119565082846787538693110961431833993353138417962856222853306317240231564318116560532972874282429184602197954293683590084581220349388014653520678396508151078222518929592607736283641521984937026698716787610339556577050782597910823095245196763456137595412150030381312890420450229242307467737326132388283667055278681781165994795292877536998322930689748448786446385591249305254347871471298786689344800555283785039483513685838437347200298707958908961538233920943120351515594734086804106513258328692061145001407856742194418566838930232833270461431100673598823953383134373417321103897045094813611804015204746034674492762269658337786475206033865508828905664289963441951438577477832158982087519099178197466322863793049925442936340182586923829364163857715280542078984495596530822762241582578373739600813060345302365395744072739416515111466073266843929737919742978474150993793633259230348687929562762256427208038729933694720884709087798349171290349156384971491337906491107658882979604411393550196788971057866810893557873209027356785184899597350330680931322408478713968947173392249684594692042671568195328826187321610196075743622474619364084916319041470566410006169684840017762722415606268988098183684920156896244737568895116637952385310113963492087669174256042901159491222862454455772164571901156667580348407681661499047895657840778087515783116706192980258337682565819949467155458316397052252996605376202464044519868803641128359605781629169796786027462415900899192024275942977884748863800856547252010792239437416843189890402178164546668735498117086354975072556212008845405068250087792230355906732932826064053652890109770229789811965040975658363992152291783495905572776505649060475746854606122459327210429239656002429693111089200349517652769203714239664199594927859021815957325866847448146262441509383147624471420925725648957692156378394843162240680822188403287986864460942799719429206534332217163633504894698668553485154329655146728389436818430024547205302979680302043950771097888601824437870281780938626810222293777334043750165470782194537536007747612631495796085765508627042877222318817716092817583734124958634670123587828323983327446158756376588183425753202917041765190798577086061009311894651736870908287325403539438881118491352469198120737310578707474585916809191894479541512337197035314184327010197658145792921656377812037148332305432044113142636294988468849374963498712113689654472650338686786551136167532106830513654530962082218165979454173661690935339211746657860903663858514554053843109888624565956318034064379418884321986972100755205292546386797222445106744969906842543766243953611851457249443494981536407835052297226046626072533740816472594626374008746319718533114513493743045944895083354087309839811101408610170994399905235631968880837543142546265416139298977403470766037151116582196059760135479971154563322009497021875989541126867341728208675553349698047854184787429630983771435359987286592815233774549051091368632112481131943664175349637623588973589852047469431154973080729652211704716450698475108270359525267345296437983184669132888750932193191260034026893828863779727323815052290817657157665989988634442774962320825644350990826980089806597181536294268320639830514873084580022036337414335718331597040691353305504978798354831889615177689969608066492649819445597301201768790803600095840887705714902900130205304629203620874970473591974091991737255022312218160936259196469859327392513281559742852253818370670961337357999374667040284068959002606010820371942133275685386287424116507316365977828772657474702565891123965796438471486534610400178883837456719282402379223180010038527193372062261278276857354019966230962320826673808854125489660702364197334527753339341888501250930975457512582713961736456220526848090217980447941278530099212532417327959664584404032494156655225386656595508512220711246575947333406626349754731452053751484594830913500492476546451738320283069117424741822779299267412169028575160783080225819312222711969263212448321032638157087695928926380698800820611681606397722523631970560802597817646925188455100659821596632255530942449559880705008869702336685015297148128078289709128844668973592074906353770237560451859771017335167328855614316928499346523669645909033460383819783831992346080496343720930620920987629784797760499668029140790822705041976200180513296638333125043267538616077057160768521314036431101589869644825774655084362170456130098183786713195754906741757478326734299394486794917687388024019708895946899593709125183258889096177893035124330175489973497696224256721860316734684921486754370459535460327065004221588258411792582407319302305632194904726826998584832259480283293206856804429089044358641388236980865063400958697625340859230661831737176817557274257858811150938243930155171338705133692573681582904864346424267992395447514801284382989535895229159319194498683091132252197213962586204956090379185586224048576051594237398196183337493229164724089301661293467169894228417976083804682777786058877408079721318141530335192135633063331385773491098169973996249713466371406881646572866472931531723394816200774587711460498301032541341794826729184020206693195300993611386777402964080289671763765189635907872816637558531325914132786310893520095430647449969835954554181913328080099247661856179052147296695185527564823351667815728133645373474666830269065813892589934127211685566176787867703779255775980922375509527706656935232511748198165107041572163054576383694403842783248641871970794927968326085789019885556778601231213042856444007741733154896059280963214792057477957991807355710349460404019370919411444949505823256271381919907704135405744754150648782014158698388105179146833860017841281242263742652195867458491348784981916649289299378210233092170808781068977684786266256649075251237353506171938445920665856041740232865825482028354243344540416783999831140567247953729215807677855217860593109867052194192667638130947739359381938399075849706108120817909372204760779910985837105446307874880467588343316735285213409332112001626231415152759005863472541112412911213803672948264966052126881789360863371850824426104361323351036894121301770801581210936266876202724060713476358483305542841304060759397530428107222801224683728231994617841827353964006977649262672534181624485213800025138055032475242431766228102521355491253731246327208836417011403183190659963421107116069120630818647557464057597576680724489312665384641513381753450674251469285670641076780197067184317083436936281037649385248029264279863927449447766379778254501565493615453846258355716068406281397389643027690426303284060843149671659456326671499311717401324142815677782904843351690722917966965737665895216902877223596110648620282243000399071232119696165002031365450982244091385171364429421103055256406963576232673853893944325283527251827981227694951358454950672402866743978251426700862807735526247784568901493337703135425304844299143623601913245416913137612714719339560840543927732325261167213868529571044313418000609001183192862994676955760876486099363806301445254016111644906719522497019422192033783065686356315830004320641495310946502969490348214223284478479433270561787086718961857480087142679828359076754365381089223325004370221561750454666844882083273011161964832918356368788477748158596569221492362295762465642735957369924091545417525975783901353240062072137889161562664514264177694410476432015481172830756970950722934157444029850927700037386220384750628793412979790313285109580113404965965174990762804054112767467237336258825121183024396078026745818531342761199165102935843730022035623311914193360987780555380544419473880838749958853995417668309757476988082631269228307828748069460735762461307722131933067755276468953444069796899851625061677087826664308133112021408313859901481651807837882884962623396561655756780276021372723691525789897358893704676721539851608990627367795425359305172428809720526818381766306962689017242147669911471387033687104173687058746436696974906487396362697493430636050410778291313177167271592310894200227333425549728712900063787957023592499277794680322224969683174026447602992471050180326888664593612636237837578391059259787608795671621885448316760298892934639230559144842619960103937628590446602104982109501981010535379253491751230435186451245727513100798299306891319400632844173902308810462485001454397051667477892017276748131167174366974732204949034107590769677326617134504161795874167298000504451626116149323074587155471576292178883593066161871854390374187939359914044233121900693045995981888985242607956951653864120306615793483565731373051399763829907391889546636948686668678280832435574346511249188657578150952959521071983125180160355122451096773301426282118295512177975866730349455627423985492057385130587244675426759569733777078248988885739340408583868922923339191659380849500034505451144133104420794861829853111058357672233406693458758965911947773962587746994876859518861618498356194436643368889866052287611988585951087043775855714967355333250781743088540384697783146782536237082268430051353111173382216434364191884334544906837236566111738273450663259849743375337254216707162714102316042572716534698953196884541172811847470388051399002485966244978847620117094139909955934632152764663009385500895525710686101104716907406389332439307111832447371610728554381988924768725333627259939699740656585576658442228463735523533641959477636332575373940511625277535330004672361072723566295290402247338501091820745424316026530427419236833816434251861670305068381493147096798877685672285249015282213647010842501763766845996868795310808076839652448033947537487358285308985001645708488675241301367591242267634030090296510944422984099549941048560606235356993768643494144426070559338034417471857047885687476696823533615635653438697834491457396273368367755766801630693669811000836306025779003201000940815535822880985126393103501037726008987597635495784580774387767995554060582646081841920540297266451027862391676470174462490803242855892480772344998981261875257947225841833485880026131370982707450957762470478925654044633436860782743928474628922182190259337795820997216394304846089935691795520378968680969598199481135542043791522143212298439823733789604000841976027618063061796258216868091864563096755978090180003802640191037873806459941120669486815325392989141483883407635282024335348980173332162679304804454186165960107514880408596622682308606331116005675619536968393966383459467803007668821538938367779623790263165313882750270120980111973617987041341000990797959626907314251911635500395318713651655710011045475326976312948892603946237006124078236905441578818528152969690423994567812512379397717411641218965339011908528169936940248054296021066847447263988170336657942578883793850914428980372886956712046375036863215758419816515533329623338896781124230491685650029440406208528505426248948248376715684462214942477609720970019801383851796889824267036644846851285757023060567573515158092345978182715220544982755459843117062871510325246010230502705227050431993069586156252758917948287624006242806041034530268956023167410186739368139239339800585750797590709393722724787596355391001058030508505034994455114498713570683221074041355839535605481887811572243512230536242062909970683052244641987348039473825081655558317959131686875670905630092011822368450131947878874605493572864564599680525414978010776136237800636499171450719062358815295174713672664512700233803638712505767484429622708204763899777160467541510391708695463758241844836478619783571633161429102282269645211408528929638383249668680467226580835557850497258529068071905464854550070843706079404557373583597159899076810369373726501676039580636236223216740032516113061985302569993244286271372125705931770194906371480457256909046434862870520465901647624303955225459207340153311779590937547289978922528670461308441186691817509910561700152742815951511691524817813560454824183414832467875607509796295464050799639884432251712229540887432340096005332432153946122578357953702273020699272938708844024082445503905517144186231846704433688835283353044948563357523502367824358071631613175480444988693127975450830420508145105126218876472739019632485117885754970925851417693783507581290909021999203821062522509492162272713732142658617177115307042252352876548883906944785036571209904506004313892847479093872748579460542912437084598056779867952474014869289008920780864249929099037210775465362222723391524825195633066566590638360893445146404577540712395785016668145751235499723880560607299423676720350035604586614885351664601364471558752530884483514357984084455491013453563864003536729210474833224716029275026349732733566692249066465824981907481576999657586307885227989030378529620033151891112599263664319135502443207513858652535371022095179426849254871445950266598406485592454731363828674388317730952760868810398695249159906119996248298804494466344888236933685716971688742824409837698550899053347906849308389869574180731074071324849428567731548956598656622977490015271543587060800864684046191830597604815815766017230812002206647086595337246448216801912785964374496277767939411617025394475279768683651169993855615404557606967963476127921210200118086324017055003389733945055272683744820846160967437466201117163091766197320678434375061468995860605467046777033718495956448324309000346836616136388175427672922819476336926043406068982554989463761172098311815566124908790276365123650127734868678665711511639925490832554447859086948963639855273714028336148168775421120270661398440601664320642288897849733761073726158378569174853106616087289552027325287150855100262254035860050566907381251577011989573077468820441345505259176607603418445503450193789600012228899377824800197112528854391427540813783626282081291028929998918868435054892026692723786413332481859999574014505082049398897831381223646153057325606122274216785387046456671285282833123201037986855173109952427564472606990695878404260190171309161624159934560869326883369634595566851876231039677284868958769742594843778993038188237892490303922008640032570738518147383793585565615538850237207787231350893339839342424828456010037939674902526885167852983993299922704007659614427486548856487675257134634828739945353226826131647451141471398314611226287445169676529295473894316933187723840219645665577620375244706626442745356125789989750810012351112172608862007778058405722252776013878311732926800319687234798805101518379250292277192017182009253405641491369485953843639473429124137973307576552831038327633603886140260735293954681523330437030314968808026088792409779564987823754557628501106528954819300645070697219117363727030912978120024478752118435713655968861028121081075664881792823550395666765415213738931572095093848537727142853459834861277254226324221983411075680136317606696119305204167048865487355817016616754744274306977506428259931378594748511239843843056507075678150236442393658139218986434856781406654441287554666356451333398202623660603187053041300987867469299880431595750791393363252699499510928386862495839788172308998142609479037925221384499691493240739207136219046755294130481768076415040887945941619972031784135899434342228332401311381357701667343776875551450493547879971281794555637860644098696399003778579918325605627704722345769912417572023547943712239676184820294851450283265875946452776324237407603436316105679828925503124446951459447346989094103527922516614903930675323391752406724284278608399321283327717295849173729286237929560669671845499555053671000036407269625847033888447337366549997988559644336517064804906634613610350118847860335479711262493789465402938609574892236267153857118564283282002403724690863017696627558802337044395261831204939588091635992552655530851045577639039968029015250013461704795638984902664840084437650551975817225594328094723240165603239272897869415567556244837208789793070530930026222088164443147942145136519684490154393698312552052511967594782364842870364106600853912458969149503155680592228003864481523367156329675015535506210028206149361825034132301346842858498448292895024852822945133487939992403777480687057670458230851759967238462385099395118849665545839139426243193801727163822910010705642441819509501431529872814053159576622187772859415632974223006932481069523905510587293597070188846317218481992318945956821170729143399643451502030703387517292896428092496048437210619152582325546525937292346866107057871811849843351028952813730626658035885678833994527263670118654682301347058564299884739241892311683137408225572861170922114146200198453939947870739044285769948749491813822259037931039394012656760773804770122715995816877608691146819133206673171209014999314028878245486667327390947352486530654660939248929916050472261324973671838283848857313389325299470506017321565254853847458109464226991935817185732544361473158291905611698639006581541380755288801710938113156272101103212613173756735441512689854034038758065096643275947775635804131407774751335962741496281156717818204814410000281887695963330564176131821217482521122025076641893628019858366693721817241301411586203011888971154414764268546227741255899668743194461931184834879536855379366177693331738433795068472994155456352092278169271190480651919197545721065727070121402749382281670733527254024244103662411997813868359808592275073894234834044954598570365610790789679305543274144772125402021319322650018008958619815809353296177985970867797599271127717513926368281677865481879285571632036709242185847612231142752992589003634686166489177309522300383887580068629454058424348588091806578299121857780846399704192256034014489617009904177008243744780876492306075419422727497129520571189246888511134015587621275610173549135215798936866528770793615498468855972753480627968431019029138355109783906985195320277972948260022738749229818890522758493146806176662827492655195132630608921018409946089883410589434230386092745342410159795532628211649657615441888981274856968443246925861712633548763672506344894179377992108259955830945946245640891042402391438525700492612267222221366941733497559980218829789118179268010466488878337071623164589064613899128221220809358357739016140585520266675787959760911695482767443055493751285407695276949177274665525712622614234262876068389437465799985542990402630924986067447078840522776598764237821292895202832503779106295104423620201148824994733940953359827170234326099999697457970271796328821873112667042864370263402212400472124137554642076127556993969245215362904781521655359422913172623938886779004555819651275858971834768811292309974000049262008396963031081978261747608374091372569231310522404648485422410843587361895947656956225863980288978460448893700464670931375773785307935172205530904870500719310421423556763100211028172029277512485743050024616547116535504912466687792392458962533108531492770187263518452376020311562130262392442481718708447940563020183727297896198230519925673503486488077680629698420074443320774626955211205842581890963302192452015484803355683970343020414208085553132164402404794235773041382172050320202352778563016162230926745317027483687787699770773884784387529257539248751423898558369873674083046376805216940391539172808974486296601142609904032290710776850516742211590008870323756851173506829801384781749183283922376556943915064415239172671647352652922582827060420799952067385813146875953586367143325328577209058245302534153446182214677324639323861828338440671500949367278763372731718616450622251253981284403298792690116916627905690665538304326367718559740921396625027525991282228854972403994251899484931135830702999842855665383332726908657903243823130179122251158423208993447322743581366284859439768284280812866686672545885715934238822803871349187587507715399641765003423753967434245925836490553618384300637879406299357399067459434950921065513286429238495065867061116210009636580354029583350169603430644865811325547236963047311254997507083827820192886639034051552204529079729268457144659694985558351151087649407801235876278977747717801597284666282226165409781562332977852414814160082998417088083208623978516279803560573717009585807522195124920424665685157762293411254812198560431428174784739807627182093998857257927078357009037894893952591448929398640750404203021149602652154810747643873170430618351669963267762444702305573379223661598325960423886826055199870032987946205943340851239656269759856930276659059474170282720937814596482981234586044838060832640099237441125374957720132020035223738595498190159625727923156785107226680469299217361303608137767593451719834137433701850987752606256554583197273182612590420765957525159309556156841719001880217743821238738201757316243591014636776765896589156315142332454930801609258858888206370270911358564045375461883754320636685213929731608287524141181953495985177037167761568528412945251595035898466338439020427748649997372977952891885561081377631706944983365494598130842295634574583449932032875206466385474523924617719248468620701963998897550414710112364432465447004439559835247503598345440486363422617893142985409196769612026680245713265859976757555708373658338414257713420008113199753937916472796010021885166064625020008966991262920795654599421351798618693401736475140050183022680314658141757521162254243430900798801967886843578618639645429354315650443669384102235576217464106418187067846135796343592890797030176455929843029749968649954100820228910344582457620453908285307721144872037776955386157859434584276498363171682735244462161590743601357006249589551404002685327016978134631882039458233357172202155689287093171864953928858321652561955548795116151052604026531559554028492648858295035661426380193935428116792426272124512163648735555174403861498353486767935202327312189396750130896064747046344721642001368613901783172801284240834595372053352700163586475568235025437802772474534581662703966856416525193033593675709093990511310787457387687195558166229649444333436041442102609152408186031141242908029376868477501094358514704846795840862667407186048339202229424154511001314306208222533746273271518690087233076727341072452501819045317390782282899588282602391751680297461098921318434648053487286136466830437177042303383372412258255710436329303924311401652958639878794672730275347333081075281265115582140840698543138532576317994040352343362915967199862444543062708453116882826480973789925602339194045380369337807951007055905243657155540934216185848863872081215599885011900011093297146691348347715022211352440838145706672083292185876077158167521334268711295247217534026787068014834371668207368750949861544054830292294650877465274579411608474040171824951126735795197377676823392165029409540407528740551301448464625577750594497813531272639699855466872290007736467921979013294304869172415268232388924979300369610336318207617342788612939468580274825519339978110650777542116880789399113271575262181558788121024679346430056199080179804928339342389500275466550776111931601492628752178758745169363382483659133463431280471787582429369904502321384536316663624558508439489698496972156412863569239262362196988310691109272623702932653729367325132959801768089461422460355689995961221295525378225803949731325026590751550871425153127636367556748457265519955797988517976781651943514376888807545677355942986951860340588668677716792917498209385152928779858941540771867055415980211473496133529367695899132529028225872953174094051720837924010623283677473211128651929543787168552378726255991742599244463105020169659106088521931712284289384728537937835203791282594848266582144186057834812478421602437248515847450902075052151702712054106399765111950463695049391907478355682610116998453597019898536515528130259784972446972711048241937141565486291553733560640733766169814365689274506523286681316849605668832158351071883274561070553136627791830599278899885273805885101556194702092325407988209627413048606213100081455002206776487100697828861064305775444129618316703493219850719235557954164841836655707861031879668556732086312500036656851033462099343645821299105769188195680336879688801011519574095379110886748370602459054506643212748067065745485852577234907710489669421990400212575147047426128136725042861814996346417104961594174739337953252386328301306296477473474058293939309594735373810725017055885423053736318565319090580466381675249688980609782516877427604305202583623203722478890443119291052922253978784968210400378466706025837700817823797552274724773200668345526780657528075915227203895308643298945462340138655604332032891973717588778409791894356447097977653613793910474892210650440962080655849351601538631903657390149619533441294524173221225561254612402818644715520589714035530838134259332713965470043712499079445753254643227316368855337482797561088434109668998504546697695670417868614252027725370977648110845722269207434249783406847244822817727264930888321842204169805185055318749539428895524801703638483243851617279058784744682063449986939891389106810965621664244661739813943373290086037158303725827289232004376121320594971145783084558115658837132385075646506665323786237245950036587933255213880815006327630064220062884480916045736563973921320182219272685755783380103717472091992783363507072819854497950549404395375971094251675539733731690852207432406493124658647274173602958276097919992289299613244147443389475791603831050494663768622619039354222919137325977409178122792010184130173100835075471807698570327481254808753896339556908513810946090608413867368015967571532105531498193761411710166445569378315466897079897614471048594207113263969024696129683119000483418708894738830025817565169432173461539059672836174525885550230294864653136030988736417008138507505116737632662182408999434743787201688741978057056859624432620222086809951664325964784930915779827283120392585635803989145611679375333990974629253623865548632599668892719382375087357083507632630656851120095889342732020980281800394530059464463463810074861250425421445842864397428640469130365365342054691287583189208844717487741836389831284101053096848337255317781122147422670039327823452799353501230158722771304210178820399483759395567202106398974260322271895852662711353278205722096789607712887914307518689893292814330824077759514024323673189020132904062421966572889728142454807184465072446218297185448512884419538769770226258503337848188974178802029344237376772541612351115388237902990880054328854483589836864076200941305093043356041563396542228666341181955806230883635758947124767431043184065955516542348061271915332674244147419174376077591677472712881481745990784061016762748847400924959493695390688601565426412526143928914423181475517383971193382631376198843976765544037299182408128643446730530367695312265655459921604632493560783797857151850172541039163327135078080662808800204086851878259418522992427629983286856974252994658303293580299711418974204011041170575647376951563054496610449568207894480941705517237539833544707594662866815463056307210945764593930467539015352190801810246889392442311505029300916974261494788147631251921238429977093850628078685098021636016509717511487800626784202268358644106951748728101115029998228906941463016714535329545338599252999502333249525101155914782498390093998459938030168001900585706043293377405597671002525248552474683298701794993374382049458709922561233170163580186500443597119147808277239565598619263703091855380909030052921402357622770327350498925949574654381911158848012460614862608683609973247662771156278601498234696824090330698610533082394606659393383274177158508700400667330977205581665387744056860907801295672082360383507389870281839515170882245956848860716231235768952069432925486866386051653285325579655694402658515546778833694546207330286636577213040075649738664867334542492670808589003152498746133178751133900327564434167673121396975043134888208302248141206985946816287163663268502866186341219421369322969422049615120087190959003946297833524490249380667383033839820934112307860401521994700338090218133802103549823985067814018205765755658570274977115173955620652193128591936113345753518118259192479480758246607854712032522829945330266573668259389582902315441801657861690449715750770086023120234588322075163650868793667827095906881463899787116000207221486078736984369108098087030751776515600935341203847068308523883187817406178904302746209525537185110050637571774403604875703544980752143559726782198455527475891591672952239378957155501924401861496508378893993776353229927724216778034603077067243798737137374241002406620017611801442715174550761865132525907235518993096439895356220334117452229081729965298048886645907362178941878191573012393965636054193092339554349127963529511658802390787370049059830676401914935371602822660705521677500960809245135726163983177504390320002857921878107644047160898857995754542427048102009433520989369561937746478238324383453991492235475612508287919871528145543161720620961163383127772368599669507298169725179107591169657455552731447009907519795022210667051438671917449331905252270044885959596044651072696925778815636368745289938256471395038084843448992940382071608367560486978319126154045843166461223781408765092447784439082110683794238620986813111975376911475904937086766737960489665749255569374987983933763909551630554940074081831062011084833645444242806963164628242060242650589075687747929972502507250684743363381978237312101879039277782190278529347325414228569657822114844574933165515485307845064723266745936639598883313985238113826743303969764179240459252076630575571897041371033008763834975756436870716345528334277917485864235993174503281732008955361180986949864351636228356079194527807383526421565113258877576220225291938580492842689921686748434309770143505685897657974208725479389910046922643585742305505390695618128535727623651321362872623122709269771186574012851485470375403644171729437411214180415067428183184031077440596409547171759679210780142886936643787730303242763908489752381654227224763849599411627790974522708159012401312398597603199658196495458694638180543209664069968912027616068728617428342797368417736721331405776259243038111622853395560619324896607934750274330652235555010334128454909023839408494198374750696799169228303497112476406122847307523484468076981336538764966945118459301276571252136886042455894759234866790025390619683908628448526780872939348193186050936736072886156994631834432929166133727755295233203778516169130375601010899003795647062966034391017519548511408774416520289174870001142376599498291769077912596645940861155561478982173543492532250590298608126088011465223567175535693927443693538113115931115587440381841917034256578907965363548560001157050175176290405158635622554358776689166719842427356041082963959681366305228154208039987326160599887572332752049265970732440284961680192031271692532436309278904163392224387973108116401377544459945911967489318557013471066665192085149613400152793732417294314219673187889110449453196296746099630443044274469966951811383057980897365208522382281305461359729023901862516443911197042690388032404853143934343075533788170720379842768069299699659397322048967138030348305770990292390826465089673875520555931164118064565733798480982893382303294263363960616153929689009132836253873454590711686807619409778042623325113236751456084952781983941970521819057372818329233241280702698726271702376295194231296690065201450051066314032557856869761455554743912416261203412912538687757780710132285627624247513101924866352660542940710100910721652517485627480833703861751622353239090903553428862051314549287713871133914120632091879915294222225398537174086319844813399416200408148920881028124269849219315467025714947052450654223324331105428956866998337587171604853840583851918966006569922494586236553832901646208370317858622958952035485734514866998760215527831175308405291103998770883421750185567411759203316394818233044149404961952230246964101261768734395498636917131584628470585068349313603626236672461632901568656782485649493448348448835438211287099184825357297878336129955163225990082894539650031534711293304678099503828139778400911280877346382742884061495103070233853605406905864917876379253673799222934551134269648947177734784117584980911455975571602879562312300661668378906498582343043965325931520033145938605884557062925051252026336468614565494126435663340603372145779401839998652847635754969424759705628685262803439480257717964790303415381009789135061283162608326966501887525370898825199636158359357162746663329301919294528060129508191338463905996759617711078797446036528226966436667587318472446892434926043552612190150630577894864310645757593958818969556863842847771619017185276232815095235463115153770789481936695881273492134838403690100194688243988811149780858843246458985979912765872000716525652491505109618374966078033470004960536121825095622970789393030276715957539096594171277694814946920943878664258087325202179556812847508963498441752547004628445845232392263513943143274981332078677924306263688181076864978856099219159655557160401000856457989646778287365938508945143945895352518366069667161275116932130733321737123168027328869816586741192099354412095965710928028420703221195361792204871681245135869989457325771263658075541051383643547359745743590016359384010860147729409212076168486990919200951870916919061560398911275199260375418040667657443079794114488009412957662635632417042425031948861094413559236541189257311570560549689333421791411538348666240276181125093418498476861119112158464801227617601560052177641634657544748812709476898838205978724879204980705558580206551441891174022768028742472591667637254314596266847478510970521834340151510558751071547592947125131670316889778963366623078728784657214875491242546715767796007081524305323655243404481938314047526504614163942690689209509724219689199295329136213355422347595361552917978349323577748327594326586616982915246816657777730608172367329204082665895742712524333821640583020501034964843796733104332798344052930208149386920860378487208381724448340608039770447397292245008847004174485801942762571544576565550773980391672728525788197444770309530925659251865958739948913962876885909736016376054981640350011127586211378987305358753818989757542681426037532392696753215828750554717350156357826233986788552508674938341473667820004406444275267635426337806497802148804069250352494224070492284742711670331926592140908852945414133503700491043349616849470838899757588732365919167405203679329415067851267719527719567870483433861450760512385350529766039951533407805033130418398693883586237023748858341026377639326788929635702286100107060942371268377985860581866875289792396771358462550583392792933820767116250570290076600709458278224247467936709005578305928081821822001589206887760589816326408619636773523688620015275357367310667217001099493164847230722082133255931095585304873052272457907858242042678210254565965972969914230633833270242236025597918692586068025726649898607817815266658604579458362246587128359079742553108070899735961456507911087675662533861836327744741550803793142820705033880102507629301462015902623128835084261725898689978925432939842322153349866866485659126021439700363620579663419316202722983523308877884661621988538127680598624421544944183262241323846377296206715097822000981390304483900791596851072658184582556282820722868637298542676473080199105541675139047208748851451946565780162452208279897829087782982477752795399565753226328318386624823445164405621388873400433790084719957677029095357821440440956233451523655276487792858851865787267425714139465307295854717478349323410613735964389480656207293239325392750551500763532112355945601114166336292988474488530336363099698500471475474358569323892003286013242057474608641275174078109640480903427084189042839771196538155697552811019306276173912377429811402617443614332261865359764088856523397185490131030269217447146181180186621253645449073901096939713700291719750273134287187306581359044701502151012568542076423835117170339486641619901272939747655736201980629853611035781395883559619921318923950134263199724440356525121949615605627952387038682525927162865934808988671274998016190287821437578113151603247106279376934751224325512452840257100348731234759443449407802150618909397982900875724358588350986180486484602532408407287460333011685915850660525919502608270140469512139870486984885683443828753165378406864203600200774959744016310595516218491447664408796605323852518226479583664153231164552774708437780952445987541031694106126359867701250091574451917677685308047735914727655320030846914092477069595087573739457935307395061149941341553124719951612500917202951975133858592132226328213922256244993035689801096334889621632824213464561328930562686354082447824020744955616717302353616731702591429112531547277888938769075182527913392071853434544133701019518798087786937675461348560659719213693453947089396682098775649604732436964775784831304899936698488995010441108530722319045492172310876812853756210056991997388341119948802766855996682741371112969167630366913168596694301156278502110363882827561171847430047163732481678296374731382967605968933405000814205361457687289184746226941181114176683762316005654241752903225792047004533854787671417199382862759180299865052914104912754251331192460541827097271877707194275949213668592961172364992975067288270100129582788339513687812994917023266465973069462286775071733097917109408145607750399987670289417253369305436987684495439371354157235072183230527789157961226867969227573387834260575899644162148009910462506839117396933640970003923950008385162194376587274351720025447862172306681295302631979113913691242352076263021544482624760522927325493436706172617123211626269944680532621962061691556270910723034012851301947187836986031298703947153352396014101792201879172789869369662890917125706307047278047953653312209340954014399386918665386912821196691267449171535220341527993988733288066553197482481662494008933217567913406193126220960180852591964033196414491726177499967201891659942142478206040961817907806705055840256924361098836376312253729729857056536717088406382125309876429681302328564797676996798396880284648434655694554102408443097554516125191576059041058429578157419361002438820080800287063389204946718332023052755818914718683087894168146416802080331584801532041344690902661659255288839729406148073402581886251093159903036029752033131596789916453022684991963437746727404000282045616113068451909420644903197744977080716402507379465662629506518355840522003269002340311321828774695328977313182993885726425945868257819385363843829288950301280578723131682501223879918384076245119273982894685748560611266730067228392413023227195756199588497636994280620371038693895270210210498842588160491999670837939567818072950996943546737528198559299800445237539662975490779007893007755361089150019213280311191223467601190368159631112416327731231560301319532412389485518458536180071535795399527210735251492888113500960197439638416255257054527765884766302762109016656428451261249603516444854187069748040289908879238146073745186133367473271570818297531758138582799692983957773091432910473023029610927303907738627024585082015168130626647984006347905541431134254073924946657456274808073898448136410648201039302708440621215067222952038351834169286197150670518357296335705591212650074422650464936418999856479304768431771990315960626922767151627413232727361720284317698928271731720143185493274563997357292927201822684613998763509507223571836897593501094176751759980191931134982458849633710502187827488333643649791813515982044823776338934610379094174043546361715688745760121432001013684575655065084245326070792463298691722949018873960507634812311992743516653949073406817862011623916102836463334417960730168241777072464654185300627139596351993005334865459518640112341129394080724129211404521141617072456992409547231071964492026920671762877417223822024314425527003362438546973598068593571576962735057763234496550174872770169720720745985114709583952355518319019652083671567438931737936247063171688421923489636089436150183244544092540091322381316787948154668504267723438139219006664001669045426252301952628169245992406539526235946010912992249250794459254537018670579383171860678567404484794194906594914463358640483937095394844396238337106228825611302599125374197046620987556596932062559932588874408780791387345492051377728875391366100134841740846537509997723749004486623774905254932614796061226559711145607557573026503867362903783792340531535907386272863211176767215989280820857255716525236182226765440181544827495526522462952860034009764024852851583839966546213130506539509451352218184858020853490996149499599199162795018589973428041238446952611248105555200457789464607136839901571124729324536698700607200068752303326119345805401498141187790453930950502657047228721560634903856563334449144445499566198631961687504701410986388436016498141857786650413624292204357717890704107800133789866158890534850371605537411683300637959632835578428176984907941788475120709952917622989340409764829996384944990187962818327667018580449953370978627775298617714979908948177646153875524516464349272300092554327793027866166310134325782788754230958676893506718512029463208682745302516372377433412494586596668312822083888077841090611667362490284050706555031783308489295290672027625229399417079098168334969688884228287221239859607332464245694022866800038415271779595049575746667833863346089127001348617506783383405236979135833271712309657363968992220372980699507962529865903780981286555173109877226271979444521823039831834890702913579895120828325500713762592753385569236167444112735886823255887788158510119717862695192242831505177134550113156134180186470106832717812883481543076530381318909600477437037688431612119060830794641934914932163139989449461906525692378745838999522331575500567090229320100026303993753918591514145620393301812075067834488350699002520638200618792015240519308102951845583597629447135081128555514966814400661367498115695390311049804098299337530617528556650689907920142645870034167583219309220381579145885952617709640315855750673907710141037697313430450569953162835843073637715927008962926084347520892884855055855497037834882605317346444720147009939961115386281781669563331572199957249969939961501967189662875876959766590553981957389263542970303974828096108990270431400922116977087044825082703549272122697846559255210361131833141396318020117171076986026124651899233915858043519239618355400615385563331359266154236911406618612181113392402465018550670340039383692572625051070633050209264313492287980640182278750149785289181528864693208008482788241080128909243394493057854637180207645935539307302945570449979217291681278728553175263158380350767202287059363759953039093071445559975975084254302575610077680224093714594329904051918285238169326085891039560263182589274120936410548022319798062764698979216488840715708650919986965625980829973701668991117364058619419106959801076139167393974892111444477020724226052667114223874204002144341786215165868516237263442014342537767890580473164454914476835255705587228580533203174433638030546139491117767730022724107192211930252724235036374903809800610478242946704862217857170028667285118585869228956495997778895978463618608769101668697590934745411741216026794376805480594338215959363954102613881737391222773417718060447781111875223155333010641940071273386737820883618022692880382800137928041721090229559953638855360164948203764855233088924356003744592303246512080739184408116897014406806607875802078786046889056083605769386935378375599803665593692536262936779308263071302026174012413205983055508831725516413440584975604371056824412192654753755010049384931932118430088506767946013004763187192378163427029063022251017935510455975514345006854920172397674174844881592515348550147894833388249449595197819710168209633715926491112764241656859970574125540486306838303681490180860556724174158363312746075365023759773724579464288345566603356887484145553093396383028086665645730241836890017649042417147183225609597856599156335730925809642671895523822751826602542699453249305077849293670890350107153706458116202176316599361972806523898271013273994736476972532368957536834116616104473956476221971959532261351438549367499381624980999146075928735710979845495361209646014426744344778830408312631958693472137942058890363284669302064523327438466232267306193401950263157222049757454800479170647446778394584837279454832016095065826650113358550355103579110644972490632747418498188106903715857895299174425949092332218788197092888498060338848414773281984201733721392138080326418688489496666146818611667748811025753417508233159354970860181104403223527886976975331496203600525815377483894786667312310919171312506784725216445091103869013238482511908574393017521855278321654503896974288539582613919695211303335177226670193750342824802578963788957538011565967765726914994279509277237071016471970844618083457478924742279630684160756231926713424985232076888567372378999301330043125846221274465864052064027444478123694325678641046513543167844513318788224295626265048655151415767348804851620982654680363093135556971303896421920352930030695059371481000867684456967725568278468232952313572279758779588138551158319812665691345089655181273218454162623604927367070710451021597004037395607360228269856951689500514138432697663777209092045928872745421653342032368775713204423497618400314118922718707793347311894124223911425664400366234382636747105466295376497009538854405183374450213105350950339903801975989108258672798252725674698000922389731531285631988354413267671123810970021526440265993448141345633687359365762158307479864659675706828222986984346091556745628979075613566150463612535846391824383760277314114056602103417186592873360595314664832100471016187476106115798539295173538580666021952456370702425462718195528664690194101080527273013989163162032643255376207247788033318631864424079275938321574297717896873433109330369708688557021693271254075713780415483927969326613972927719932787649617225978152376860489760841403269866106112651224906473178712216160556542989677854136629524920976085996352034510694672017620585775934344122048812507120992962315347109435308515854510054804761384820128325254627632428228157513360954421190355617193435885048131539434717659824257905827220159096563080795914406358034727333618040907036848836549058538545367798479194394715972185267656350280816378257952450147143992966479368779594848508412550966868716590716135871678961725978572670339420263846545027483576701683282504407460870785595826826430918740382583578285954012250209925404977253817359483013906211655360001855011604677865665906993141209984727871308308121740514086253921335758377648602382465073482530177966786596230342070573049100135927541729872256351604108114794480132050268975015292256747489447535959332315304268053194827051747850179999788017658291726647146941871539828138874233862676057763340986738640795011557899299262177119204893962226462098969041163645918756508195585243785183838204949304514125712911040885230340516398627787151321434720279537211347034171870869844266637324835130348853162891334187030662781023951842846151593368433635843210274387588750254970988872645227501824941850697769616450081010816986242600093170727862180896463993880089460966988176961483876769342316259805072360853380869864432747171886827089403244203870268268197159471727154622744659333528055714639848862960251348688228023026608665024273715285883245982755976283239872873293250822241525163332453336015701034064107292206570920296532605488749731056332903636659856247230558330408576955320428398191426937502843709378615342166877403499988466538318804355457713881408003009552043608502221915663426249173627314691644738572933131209442433404754229712427909109190715641723895819228956658359269110852509877754192838253486709178036714772098809177639737972317814824504954880094694608739851013562758367784756775922335256143619801553551839352807694812282320252063781092391017764750380866750204274985991633449479082056168798755741774968933282588512842735588055756225599237252395171471300284777378995523383455315496323692467931298920695850800208097011193230279934651431121257176586404708863465374036870597986638201472527573616578590462113864647463061667275693979804209482564438297894367578275997887811922080507405712462472559369459314844695402709014614572106573012865622984207382204787399266856156706962548286521535781836775318847407208316143819345472869366561390822588700682904770635403785003834349438175924232326527656488030581760297978984666872973354766160547251336509880204690336394968108451848789003738798542945602756417993191634192833677109145649794015477076671072789133586174124651224404389360718849150262964028137058295619475029954632788589042378049976926976263101049376767637482465504278011504721562654636015580307092124914345064953941003999274794203875406860132327838769093141421706900780116250246553329150932594069348121725923678307422336933479230414534098707725037273588483191756899491754886943544322906434412227333686903989089564803053165812683352064349188009317948025160539879664190907802722419926436738334277852036528783818094158511580987740357307372028581146686404265671784185675219925212051887709748850888165642562837742501963877284656213218013118026815728542068948719670566850955614762556756670923532684433647046655811050655936004484910264235609319559264696003224112697590599163787822686417036270387925587085104617311236793282824131158910304453873500663512894253265542900235237783277568405547488742765146894608890307891872347132909533989423748270202630678534326340009441059015598992669747986120810508395284531462857840085670532106813048144168361591347175347717184199469288196466827677387633973901834730588869828237277239578185163339220187148775325507378649342501963670563188536967570591852751986331914161984791942478326564539079072494716063298391857470150847587587743015208580914779460028522110197281650227791245786979447414147028338067691510533967327924095516627764580021397155820582531212948124536413225418262439141949482405612822216113230014998467163408451398257015361392053905432327698071532378050435377923142471514936839591928904516702717003593658283358361462035740112225546841906020510644966280115453838203092735936671898702983538186279990398404946575029394416532664734498986370204052509180327936569704067415452770801599541509953185988679432938055914251472078786863335184907001928772645150633567690422165364586882284085951326653133265307363273528140314487779085554573650741454651799230067751579356071579050172573962019256690377708135924327082582820285810196581024096344330605298833263531356050398533375712007417572167743076829298153377922590585751619830742283493306151765934313974198015021681545391201229910834229006977029881850813412777995255111846170248497241193145510311601996947278023185036545753429601953523151914459013526697946563997213108543619986328894188774145432426452015789728203413066093319276005174734137491929798919946833873611856154606350015549208719121735452417186145639342402560087835613571850018539816510965155943851657708189529078680465624989410198795186428885975022701950439217800678302650848847498651433036389501157432821027873090615941313568060375213484759673499594021999309747971962530840035758453908785469511382555077264426644372342112782947505583528313322176504214056513000208349113254628236421232985122575253660619326816475638292451086679255712467235388441182822700693996797958403243801536668875686773598967695408756687748483513034450445515698364955714721189267554147868945141221582329201170039342714023234282855850266389455649872902121706350244789364237420266112357674719353624229543990302777271265935134947457054012413604796773762002828957296737673578638568066009679188656984604798293604851391561809985852164280949189427350947987368398285599619776951986007032579464902956764022676996114429243038570637776968167546189473660488181812814633059948744012960861319689728999896181805261743744370416794751788169147471712013166340308716142075106908886727508472106487719585783537545478889877799536143912328140855041701574105348589305041171732770026109947151655115544458271227645282118970065881663363552749833468260207310420933734091557679029886686290583256137223283149881919845569661354628761547160390401397048604564797220353321785533993086792646029150643286680490054388284185040703235250620899082784418345909808398590560166057636475233247823724513484801731903218145889471641952048217643814883734246430811095230268970225493565500021951582583150127824814822980290206731813939855213495486545699007572434510444912695827200358975743527696340509597091591894103847896486812393014496049322089674547470943809723444380932975449149798314171431615191688215389064358872180839737203979678557546818173185676331380582562673824365025879481967950906904432815164075687892770331082879195195543638843732948136095576164674884010526256898599244805279138369065659666319307734945070077698434832894435379310680350415011673066685068593987275035440809225221634017339279449217695407697313721469837304889043199902696908309915484762005214956640110860936725204622326352317601856288426671210052025286744214856707068454015549798744121420144186948066478646214748224672689872003107124907882648763893542404926646032642904184997548180856750745593648455386828848609316671790846432181273431040180740637724879993682733076742140927094639303137827873664326198817300350270820267638067214856559472012159390960234683208930026139115265702364619558883817162118818958737795710033640086352429119453849430316336006007756318268062006608584164781150719057027347765702175735070554007960851499334231216222273399586696699468946645404512016433779739125692237354810385314871880935176876260787684683664443943541421628568921045505653949544829773459008245115165762680371031641169123919969145711884149595058454651433018361048048997523038334835830110026481890552577647008104087079410883797867827050673381300866443109230246615588171189138143022941072972746205023277489728578230992557983541376916635965335269221321590085428363599907963145544519795812636090963180603208397011209274233359665312639638833051817218809129396015793071807816124365943302128696270530236028624030572645125033763449495373396564015143230149758600975873402791164632976209705437564176933085951250794294921166362624916491969457386511421059422845142548375490228412519734817821884242246822195368713591242168760321437691821930789350215295494340909361717517911369424746082626809916003320860224674040357371739915283044545752212901398770322350938450334598669772946443487698094820342655645758039558429598164775780949941065357038209625749536197240329505805492420198215821156414743482273001798673245284730995143822938029916862755639475278624027337002797107144573919069866879909471851230737572311162034813783761363212785236598258532071144803005460987533922527588947506003587880061563144592696258367787984968620764874146483650107610190875078083954232694495320854776282908859424410173788326274523700911866443249159589659006325696375993764926510753446531654684913387279009460206656616372682970265752463652668016448496274648010516420986092387646069586885440143057510210695608659434884580494735146958009666852884680230260692862777120788223328708511065023584967482973645283370159879143317050494594591098200457738139746409256589230256968491021277556161919773314213866557710763340025246818310042441452724874656155458325774473531217297355590965313144820713545482539087167894818592362178732685643084093532028668396154753607335322753865360626228919514409917288079050988160623871569317468969991531346227269081653346456000596899295857046077091039440579393406264961380821460435528185125230206916735972140987209876186713765821559792994132615638108644079338803649575887736647775267500721702608270134037045089536655238161486592452828633159394909707209499778997959195991009960395352385059531916574697043116552976628323291764723840970338118841728589675046303637436155579056512774229652141326233095482393823216251712796298708340985694002116210780360560763347821270581274314871613551439469875908389950492657637745339037229836782051574659499231698671141606271937746213248460390180289665963787157674937650991586017757868336813216015770725440206186834110231285033126119978857125456465556881520332029117981610756465725001293287330526596254772081447045399577184064947069235500562461284382936872624124586008531721872735293004967693664499704035129182610515250054338274506113497690664357343654717870354846022056491168871628421980067901909774673178855214320165676006686932658418919641836022254691998372795377268549557284087272937969341091158690190313583717233905970380004957244763063454232235673872817489700577722970812562586460481078803018490659793311537634516221225423675514332509296560943830908357611553256641865953290717688116034044925932042333408918920104819898894556934440819976781761932682141146623557732924674211939899674745041603005841740286019666524296044873329013027034105283409735488075003528016601927260041244379562295544573953553738637488231399472484671181467711544280972857047487307975396952644423743013133744738028408501012718246771880949921261968205488943244520229922285320305151231748261187780667409344294844508012437492186327474168268461182466088245937153202100451281006143917035918021459004882366902657060775626413293459204795115271399289170236334536074888783991916518840593444002464270191829693929043314683530788118863984108097278726794806202922251303832277143576683762150413409387805388823352878456936462150910428875266539512391907038941834881530490309815143484471903690187715096977903928273439701224303200444684853376814240358768876353341453964915084816589260677072862267946404013710719408065958204996288697477110047639998909757562981403637015333596492561488807468313686397622370197030398500476237402984044024354595350196687375498481440021294236367663434857956783277116538237248046901085404600928299465539388950364363265725426896855851477207985523184114953400251295398588118815953269201705760753974714825824831261949696836817172276706524507382686743337417451134089716719979452188211772546369295197760563196171547496354047188705158322728219822358491745254827788281594196317177447877497946377145508340014479557498142613200579395846631470852049986994462895290848123608451791333056687140619479245909336273445818881830929472487942071128795755816035652007396434076602055790524515087504892042427123910653335706327601642516921296022359774544224750535203201143176613987081236950227239185310418290174712933738694457760055752755338203548223181454566105240341558699064020989594243921516878468091945373066545384656716272459530704827154860820610187006967894958638450781128580629724906975113333702219190267535507543463527811962156856384110437929275700814313263988405192360723434368710876326681337970262311807591175312786561280185784268474547589217380004253344001490647574431766747942166928362471079193819740449394784645193601495055047841762194456239743382028369394827553381981930300279377641755807399832605469256630323633426251275609483502964753471233417945328359793102585299232555196429637503364527950044310707353068628541463959625724400404749119192100841159807450123403378162332544918573146596187299869967816214416054507150420827195106325488423639745771242186203164197599853915764953426875597277653378882686850741100296549607810077412183794137527104235012328214630847072865626623353827994542522298758117047001599896405004074567425076584737012460812053107936620296635574190428588689099142118815898962981965163678649390058715695379544955831588886649758301918003650182280288874861845384285265683489517166850790851952195024835611934361671570481263519676779610633318294675515796373799335811973044093528499071560117716812856529385228800005375263298787387925513464621229717016543876756372363785976775882707465133941950064949436349686952528114055019642170140333412343593799143406198549032005719333914647574654995466543831384326466850022412828615642847153734408126381198691887044623511517576726144638773747697485829159294027593743015440156121076042803432885218228249803538074465009368600700448432752506877669624141773639560507197064519887249670219032188904728023027138498615586491080213847968199787702102391017514282922583218705103811913587716290612399777583087601113420738653481254202708805472622791667498214996050352279578396695090923060703957154306431852710907215927149627776316214535603729574626773126820669072791682647404485364641545109948804273146913237084306526381587957308069811941190509068194754175833977562539721011568491663240613059477934175622511835403050683076123754009011631178656797244819399299567890486259567198707729941910450355453672840623021757694079517812089982666000925658709802282858134405427719457338838207300418594466177662482533889660669175713016154524455187707486377224110497019891766451091500821001670563769734805966361037895391718622938528139870777134955556849210765438945119067127444868833311044719265462269415715992706126887502103323985184095095248930328259320446374638332773129485358732563232414060417763181113996928159275780457240561921343531480389045929209569089333150608030679373883081456033051245594641869132729621628837913745087638035864829197998075538987186919308853125413831166210506837006381939482810452314546248367382047863103118425365610109430219341189567912346840611184812328125231761112462423148447755229675321753955486792466189031974106829536176411181342972074033012861257262164368229689949719054437180773558466629305917349689911454457894735410362010860580596172156840671336273358449016302717632680839652284377712932937278247928868075002045950445387379866140730633241678782517477199930391978825261414977963083885489204272685656211971790422782026951295880435909028948621068576763938174650357827534802568769259227865228002927234676052856558207799153116682571701705947726757095834944306509595945543235670807490379025577199385326119800387490992396917435512988701279082771111177620711237922722815990265465857264745659977339465473956311684141935131648946573582005639538510363529136136098878249679979173633185537256322150452678510733381685025955123879007935509368527763452624199201440520119940077736516344080072538534886843834815763212382483843678981194727869039901017762504580221830965956281581048541885353052321703061638086703751296985774741155720402719126945759924336628699207786895072921264542058038678258408474297681890588305904390427362415937886930378975241770292999830795083660250449149922496818628094297692240391858041944037643785089042895746207297458369999466659817383180410414386053949370826526282180618543485299636050627297715714200014959955048843910949979002053239864517507315973509798954334188069028875385278206246951220591064319427445992474694742218000024574929448524078202068206401240347606716599949816988696674071079313233258310108034894100207471464715262000175537452231708384541549886084285254347944081439938141421558718314597616289681005736378651900330823408687964417775046969453187232246415379707175674527762511349203817414226431660748299541130096499106514674272914844158241554693712012240136654528211189489866571426162925029796200941004642351853033162117809624503894107530042288406399397409959100286109155196687131076170305143636124508174948346458513674747125477355584994677172020198455906434264830694363355388469792813634433460268455825369670570533889187956612526817242017738937053314585337489450090395775915983047770232432423715245261102091747962509838298274406358740856361887507808221366226941815780972798634203983703916639121213698806560402525055147290898569990942720370478064705646079555920745017120936757285024488095425891181979567935137970312174105230155142238502305930919007055258812787375530938447046889031682858705778256242062043296080350597489891868214026103754551749596667737099758763906278125603831391505958715975268802191110440165011948896892385847454884304391960896828956496443218781558547405593302386919609065091603283502147712836093476737184522528007995608489974993378906905273585188193203808045075712901641937800879547098170052686797500250763894850725452264593001176182845745640422575934332570866426834436138425680800148615326072280029810899679772275704905076199060560624223336329540776204149498890163772454368111645485556739725033865395129726567627770796373816152294795799145256435747645554877232593011424673947023202273904347359154459517601227980669392842078779076966280967604388317093806138617558799063286155841851482953926463847016339756521064677485140939792505030473267573143214786277779850629047241848903302459207232180624957116761459800398200755400805658827002132148881703822842073680898710758307309905456771718160765328593691177248257912370605668844493435928775751402869392716877305793663259710271406411697429051026073914531390776583096084739780385108092310584802878559276360465319238055396094785082442248293061102544514263591323466737277041300996452583215749902162902998014536022291337733517118827243417949500131472837891235218715675988506450422406362193451322942137089572266219700162423798962712950365931734801710386404446521330809051952574890548112524417906597618936127610969642456415024319462450846377661629523630955364291584727583461834800274243937053355185610719721712166866443736013660527221804419691625135476654859054494864029467823944429893029764480736908684553253967780874092840173217241146730892180721129626596941843861491885122295041085920854106095906012416370321155817433127442422368653430957145907729139851591075271031646510531409907932376109587347472342053879826526483814692499466617343335401892256404751698650914296921946165163501683424474054708425521777485950244363748557655697446570210221083301085744207814994322008351932987334063473828391008008762677153704185004899536793006610113882798888255390282686743191937144777898999850042678730067837455666915225845521476359874693863445377053696265806307974571946238256367102445292187868429314346431388047460289785765966225822690699777298300393983523539084349792000413195362172559074333220021358933954415583535612582290071094209259664372879009465458008649787947173753173114431431713714788517708226474153141497453145635708881809599503091990161784018447209447547262706019053437192468022163372508696665327065787302659732340861997531157113282212177225314655703406455046010010578913729857469946869709335687255902491421856786246583444599853336289719655706332067992057917316077054252623145617276646029275062787779298477415687404700561927215401476081798838593247480100008864413240432418939501224894404512152072601341456007059376310638685946703896491085780075625162262300908839294955912421532824187098781184497692024420800123003141129919610347548317135685062802955670462390878363524250582768996702373710614057139187079666649278291159000129300928535697938453746695361835406979320413280534476072607466456519592097068849118523077989688491179784228524542276219976263970280637257025774249597474451319407686670688191183430406760174049418162266584808185483705629082737387838781078671015430656948289037160892401768377673659490376303572411040975247600183639413232977708223562230814870276257119266015300602240128645294642816207912860302507906891709926348112076755167560309848070149746229612536571286260022355657258810711395891833996498890727516647381725792274895829226282397415035037339612774953636097023282807215185447627230122157987459351852026441314820970203607232488766137940711464587604360975111599640275920813037725276516986718679098105695346930138318214947804074748783871401215565770149858954524006929300009185153376631208204147583447016564925173160763530014951642919996490221535311374955130891310793743414103948959884354712746666880673968942790206891232999436485592154845436816658096808277488269675305330974133999525655906962999001929173536697504486610258579913114114320997263244537792757899519568001304724921009765359908212730929707924283352078077956398381092003080619338460142832603461776973358138536994425245416817412702147140137403272911072416123570141737548365702991929424780821646254115744782335993851820175932025395354183308412086066391535350962303845686407369677643802915990115547289152608418051640648291347172768890857043304663138402987517593164109694090088522723096111255632526087889258174813081670038496590995042056267825899464513002215358803844800823955035327249284998212045006887871105626090214031836647792123289758455107957822436125844156559892611442909138786680680386804653641972442984530470817167883205663550121289142606460161270738462030245421228514400209484173129454005347683862761584227768200682560589595893435688553365566049670640094060712044697331358189074492222343036928485945387449068385859878627564425213984349072585316281481000795287355263325016038841296800947368933907761996069884943405307935208428577981066680067055268150661259259959044935839432140348001464028360220918808555440968979469881571786528977996411698717245369302205745862758972418669400967671846871120017698189773386381946443644890490944031921141267848003999822830393952431628754926993191688668823035786133646604544137784949667781808546409479348738983728935786079672534630245658267263600667637574909341698301411096583099663099332412430877503790254493232011006909967281164200952995170655029736728675394561002469603071697322724084659508704980227471244029292080796260443710803934729995917279496896888508103869662638064972484839386420673726663166310088904528094524362980646228951608544715278200448068921949651506623544495236871363272410568594098521912936206309499960602118898457867412834851055917559865980430010385462997189401109490680736119960587813224100487823372157279416910453252709007690266593563146375343474581597161059284989264393719619039209569918107730736695069740694528471972869032312935806654389008101591071150233606537384003671319506107295152300668496815997511550349720527703293796984050582236103816114018468877847066544474219693049245129003311192535918402543562469391437551650621862596836998221034502004707568868700199865810291337260402335318635371145949394746223563996883195419198987052810768703902842276628874194094929222130152633890806238043359953245193655629415732078760554125822645259206395865657945779671400410015349419078644628036870740570740395939729384400036021970805734641768400517695619562376573975828636096794050387190346918932679691329423102519095772358479787384195187861563479346153734938166842404657623182303550652646034940897528968280499441832422034160374670482257176189170389302137261475762145376444737876908813100809656811046490744033727939376325779224663903790599119904280857156621789155584917932082330744431195496537624926614790535253914258541277340769008009089838014100121301895155271218514782564424556427022798677536539162712427190905451355968372081219308749808926851436259343724294781730341155890796012908684877982774197763723538946955671121918740999153251769429652493407191974388137380975922343123405406740683354400058915487446247570666246993344740180243003973317623280472356311293559292351387692127704606570601532830000248652545082915124654605345239703672372666553143518005075829876641456378182307883895701432248706009504313919322512310267788489700324161078436221237378107128583222409812415210630448375488717683299829534665682612321449887394150657171816186012665128071186212629326244732712445505941843582606642277247898720161029619075986513075219580864444039866820596620470205825248320291684102683156831828014353749360483653300425777360918264413994289425635060400386771752121993261783071001147048297943345322856525344046843295856354136851612843492269389714642292606440618136110979774662576592951027950702372246321005458236988506501602570552117674431076834138157346051320841633515535232333188525074957250611022333977753912052799677264861459670398053766344623678619236720880438539099414921082552137263171615443124858325989282653268623198587193146269394698043956056610623522097707996951852119995484990123230783233791777550783710604844213837292772816027220258230817757621183237749700649544356525949682243162301955857907706082317499460729562116874288402609350219672527538736115589126491895756991502645868653291939796141899036011098543707228266827345242207939172237264823384073813461322171105507800542217064573678278193120661744052778535303024955420105614253598267325901450522955622497556285705510875102939886620047574703933662212832661252287773637728232351876612431177732278172635524336339158832802747404381722835976457071499755618983215026115233072526284532386691443733014373739204708112793778085016841235368727834832530496172862656624781432509226896807557301787645321005492853199050472918417093560163546689734358856950768204761922350446024698076328838244664652484223237009614618592228932824454377730758972910501233389585422467032521161216427691572184133320797893945792044627679701813043206834416942656622663497533614670716267791405562693644670509763199632765577672996434378742800878852155434432780468182582808579592708278647206762057584862247474991682462369747954761837846725204325728342069091947220511609108564079727487966977249704143087219259641343736646391094395660250811177952523821158966657119190919187418521476129370949883788462653539989557952365368531865844026674717444381141141160597843633228908931492012851141987723994246869082607600816421176000095447006442452966715890089066925924724851503571329042096846423933607297210059520492504262215402816956109739082503150688568739424399498543638768959609419066466806576753173586610499048888234938533347326022701553383759956654079031051446134168084792042844898355852208327159312021595138369939986277720221142661463942525019545275597274441840361134714811288891870814173801901286437421204171994684589729072584202279117786857044012997388211532327770162948332954644137761233918838190197580351456837951240978957979078170353596919371746728479159561097032460511267557243742718101797207746169883403539821297729305516248990002080303648460075207038769174833935799287989595963739057009907546710361973690805203182153122859026390970767689718504812446672069921875706971032631385357767411495091248620317499496525414437884539329283688839115425417128016204293697454889536881003156251845947213829707265617646136326664742854985363384168282603579279711052618325660729111989080431977997348089020617522752174116558498258157482380833810196797267062818598493233892868695841080101507683584455326306859207302198166664976488397788829595674882805586260280784504035228452266311751317614697364635471062724460051727367959883746562260851609610173417665247079811205362842730273028865870579517535710160751989936565048047397299256677130498548964212188945806591491652330848120806359950460169891166062357061644622704761570379418665607586514410917909244576984131203870664406306147995563486263166407675423208264845175234249532521699072461123034650954056085890752881735017695676148218609729925499903022211825472429441118467087532745309150050128767361647669063086775051305587520249212430452365612586801449613576278229374043682449747489312288790997747054514565811845310994830932704843055756991977659204981081140854600229078211265872496174008902872963954833528612282977076174132986067904420393082677698078300387480255512282651039512458814087242474532807937098172812438857438997835134242796499403126551427462501268486616023319137457185376377075130185317810919619242954273794776619517419546427489221764898985777085092347696373074653135467214763746316373220435710812957645283432373783188278406231812747152274025455438243495680427198050277057628157086678615503695855552303240018039089829369890129986225756324162187139273536769245597303597947355538933242303598211625789671514800197796442998282534809295090157200704595579380655491431345160375284927744057154735966801953544483720462378518445632466249325896444600647561908926700796450775687931511361823148116353278919125469754029764772251837014623808948731393979876892732917221673165408146729815149560391899189204864041486047499257562306504025786342932816948772463856721809446854392484844672369309592451463021481515436123694289665216841732117561508697681505746133911008033637492424053967442944918210060973952267755970514229804117190028160042317193868289931783371965678874573987246446711852398582150422765093477505033366874213634877732616411312561937488321850437518836220243886566357033725539218280501191797393733681684572534420682665117168798763976169212599000275221190031807740852035847474184119711564095059769160281260597323014246010495254137384999200258663851317417564536044960832180006784441732669311218655090160893025588958250489330909548098523505091254342972698759161234139163250514704089471846108676497585435359776317972428062459484637062188761916698066902980325666474736200195527374340752479501852272178532652013192775163010247854659333288443092043521707200315238714649634087066255137153423457322344192606632686572238062012217004334129163459977183717382441901133870276614489875193928020842028994232179608309210629728396848465444073692030264838010235184206845806508234855092257306901538148105505270175837471959525734762257223129300991495966290112968300994330192746616599756852451078279403905614143143035201678915241254259722970681096563777934065913791979238108857256309169801564801976002008649313095367802330839635451818215589050567502788271400062758501412101919617211701151701437430201492318358694146356428145007721819601978888953620951944926050159442853571774369278072142773532904728875750884751695265443459239698109641977109235140985911477309927617781860088307107892815683302341723773804216074312048679603943607157883081058979850337311240875347754054273358001687499342782364707817366341597940472946152247938712861210433170095205237649610808036687407137432785949480234633109779961808322396818116937339738527953931778261188402787304304255782255106893007538276910523448875815718299493662938577006408244401382339297883117654118984220890876040343581776385340844759698872566055921839441423356122234379721187086357783274425043904496454445065556477405497942442877297923420131800341307518057572890874780574500108368725089954133483765252401202560643838302676705846734626265394252167535562308179428624181602651913907038392648382737560895151019950095372494781468345491691210483357296773338930345832887792924370498850737463638325341384162989372642267286918655334213020724345221945902863573220225375596562340262213377717047738514521179548301181764404436375066509772921786326747079495484401696213470927914813941554649244878673405869787061866484507127539501267959809056703725542591911624237874896869080022010119585082616213155456246712155455787258688659771419630864676056907598346866879411466187760615363585854824920281322269369163840131330787787600429461636812450296926679907862834457987039605349411553163844235207301933855817099095972600121546589698163582092036465182120315983948094608395687783983510279021818351798688904392789103464579105722262790805242454595103136964037482024551424012787317262392137262502443825348721823795063523221012787500775057965772323678291110492222002927892495428805896327324306418517613955310808107471307069502252662536521832555880044212743594140327713162571081302422034040514303322732281470202334828365312065440215487285447903974108920359972606631896524777239349082652807984491078551715091850861187398447024555595112254020461616011349740339786745699170312291846923008573539397169892782269251423840972332862167945598787577106355962758808823495095622430013074063648417742706376883303933517158290595351925131816133369232702137439619123924192890628130816641437449242542583866196341770653478691662562252465363028475401262494873024185362696808287918125110571273040933033827570005265012924437430594678351033305019057843662058506366919960658852762238354182361808911802028001662086116355007979080523230542723734792356651114939892332452244992433542809996135998790171721187604164941882867010344700249088640717677473431230754614383720193214253873201402334542150512568848605082013689433735191557721941493180837800469988006755483210526339733316676831401183273783432397879552358815728245807096651938909443368127225304819818892113997027483833534056826315321683023826725844054775042677164104746968538970407887033879945806367670194344098160151682603042244771165984841217381518213114921330102643089250732822166373371612546821513431208133492761955392439559752212657748864386926728621023415212182601677657309076125621224476268402991478559381985397313633673199404969674783253813887360233093895615545674750565313703349396511916747717437286140271152350008887679363548411375925253244444912875817483154530282578245566918873807761333805157488442919622937900412939781228301877982310953428061565580263399479436696451986636407415564538566216196250161940545201387145492101876342364094945302875530476429437720205451061818171723090504528379743575959824106574923239712507090505412375447258059860595449702455360919380226564871756995757966517798000825371728117552509220846331483733227526857313513818741507703361246415495476602396100824954633587323977232823192128316802237469322764825741541628456225357471334378370999285227094684135076805236796124236414258441327098735794304751608811922348705754268274312771831843959331632633398870093020966951619850926672805462689254776947571091233648655790871800586663513467781106338772463529004370424385116476075943917570276457713952174869331951210752927900210849138436360705252511011952076921408961767778913369058857515966573003272004143053703584011136879269301230844889534177072421067568512497859620836191762148235734415912875085107139610262979821283190580940518138915507772437958451578796405664101740659010716437027167676107396001334490929737313025752224445233519937131180766270853379517512773369610877914364552702798277479392979063260895026364877416043710024610028540572194151239503535723517543176518641069774097165144091429879788077388535944020604598988995587951153504685503525346897442653847277576772991258628462607575500915759973262252675411187363540103554123258578287879674229920390488816010893726254670638329597954213195036473333932477362901383443118785788159295573051278281202565363373295526257023571766641494629650532895236156544498504030478023738766307446025345426475755767081227178117343622749182807901576959991599358776987693847593731264723933477911436376269758138814327958461892390601906920490836298953137853888382613846091265314993652554487909871417768064226749531449271825944318501672237901708975190719955428567570741873205046048678393258052195899684469469110867171174988199912768036158865401252946075326155022831960209960672406033493860591241813123240011449709320737798131103593156373020229129904776230100219420104522270944659827780558886355312172778883687756342622038033321536820004788672099378358787443100629856726399211358196348317960417477253496935391962138858826690362425260315826793126458340712291669971818622716843214606790600164596871240714105634621809053438754326352248964117663518699891876644096915037270048099134381130212732329593185640885789376869817486720510687584766413381799941924248433616592149806178057215214496767925584581711978491803677415062620170073823227257987379765310096780377228261296619668260408250641013593931561152029112814258412241087508047507307233095728486112183418729661074298247707955792218256962989398598267940151799398522547144887582124695809911891753591705333347368345633554499752020472522761233312550996861520166951142980685462253682965644821998607714919142760397672657410599115576864416122267070536149483594942876461616512030506242364205329868194925261958674400313974809094340462021726715668779783766200202185476073251631186124259214561080461054136271935710039433515076132022183553568393692202141596327680039836880220672304122775294519700698646805800866073355132318541354430222820426238054536811896057767684389708324310810867285898339396337234746405722228021585223279060482179837208917515591171906196819164130608396806693850647516246745703487919600592610219019277853544408492678932836067329930852038748738954407831543564770603663810550057651703831919432979347011161646295927031082711377859203043338923635033522244721293812338170537663219677770651793404806997567192778647301913305463930410966981422579824246491530563293108839202580140770279300304962069898019162596413365809955789324565882985676045695729076278354774503418473289431855588798089295745948481193278523890957485345764394889889559787740893359580271092055254667206039697163215659329084330873325117058403713239071115966013066282544094009474909952786039637855955878437242375725878402148039163228291294053258007004952553702235392765023778448349511617657893841821651923708535855113610255885446678361538433069182816374616873263056600523919952865440167475972392783494047228236138290805291788600486538067902316128900879428858989908327466154496192475507859213666009604122790460572656127527847927113868713471300543831384225327658289381050107978373114608457118414313437008991970585806896353764211154576563269475938768677486932842833952592335115093455868458522270894172380082371463651095590249422727133313758314277666007028667037213329024744623880788433640164362737341673788311519450229289274202597602914626022601465986099345488803242748498797189411571293277634845903324156773939480721595216557619960332217014663497838826133723717970268939959175194317087843262405829201422971306769356867041880329918122238969794302957231415985399043973169918376367699650863666443306914292364639244001907845346866321124324610218651336228191189245741168346236187713435244127480304062838059623072417274467803691478722814393759798654602394751808762009687990140555102741818658894262983737774357056725346371303442312565929487862588508750282378229777648108457062976532632364101334280918515419435014385138232198566643283825226511543740641229907089861677989520320173845077227940804610237368686579603699559940164062468912007859900447258151227238690869037042206618072596789124101530157776957887111127144206829753863185973763726241067761487079397385738799917577626858589733784983404235347227220208378979873896569442854242974794584110604371155430230277368741945766146047861712322236863289333195546949519831543599953652518759708000963857511167454372218289183920319135912884424497078712475428635707485026514821794653749883498191698494565812607170494287550140175630256584100152608931005687587848441505847988171518282156193081886021758894310225550910502396433066376084239575110709194179124052084182225285385870768098451821029158381643657216028603095311973112663836748124839168015120215640699712494882562335437295648394257988154788272556061213513551782641631291900934918680954240004008791248881568428804649730900757410487245089610102080884628662329722357640831527793107319019889351484113337721984270431935928945694380187136658719694896209401658494513313829772671957323973730673438002227330430932302472279776586365308978435273454710806151043314690116607255267808217212912375623390632503590871580653598304975867240078287124661218783146157813520854800481497632038597365401562480820025516192239092540142019584401060631374832820877489280063003484782612735595557664085039581017329237326362141609856688642778110245371829550060999328623012607826180067373625522756004978731995598413930524200222827367096870659278430192833633074658606829890832941640326756550218606096613534765675995123855608233006493018068900893337591048237503120883473838544584490329844576519775848436356427433388364843281076830739203463479183770473060369661242333464561568110361798298403782810276159402492865807574811828993654172815520559742428041970088425279461932746238015010982893713767842074453744818535160926046291269035937431248219084860598497442394853759506401831931550501462684610453420006101183675007305954490265787200219165959653258717998974299290536265113323833147375249083482625424334658074974255155241537394764045929485939392752301898685044918996447675577152510288574369114749108212749225228522341736994809127336349659028443753423364451700986244568237787530103014373427230246210535298549081507689602448197791172741280489898591075603343857653365069855648636629140783672478417690239873809778470157614497071782750660540540340718664340183615552043267590412545928779394051628758193846663652366428516536860041652031258558758155627990440652026397777702981815263172469430669525345666338768099079615960788071523830075654258658632044512727613374051117797268256612782703903518362643387062050309667856113786163388313757763437789289266637753317098431184527150925585510239541449273084916958604054292299332448401011904277930919858393694071656795595403576734855997100873593957183673799399410312757698597127176191341920383061715840181788370832566238058966157396542179181139261664444453490065626754247548949088862137394718629275881015343894628067565408206446289391617584643547389283436768204965403951793065891043371386259071404528539903167306272926030681634903896787590465745800535580467884716590928426490486186928610166415014141985542297685902686324604680591902796496128219413525309535851036859753883586564241297283458286799697284239159363546558396660537826098742027613390342120770030923171402700199528460444810032223328728108283480867522439716617414464719872078217563009114600721959422708406316573892576188260635798202723082266328071943216189809345695982769260666255896365939602472750364291488989301815499182370373519616325403995001095372617991611058031965260100211170539490907154529605622885840900221277753561803251888353925156676421048488542412746181462106907872047765319038409948010069521015086282360596233086800435225137898521414939277267611894948303009894007549848873486051774064313950075266156010792443517204051190215849176725195132469707496111452259190385489727293173450129165973856862413095832524782502297527879389021619298763588811730258439828455084037204077576130551053133879089347212332918536516371445006342939248653825336187371804137170171667059040768562658636947016258144359653256781861921604380464297315345822655955295507056181218584892811835053109198580321900000679554710943626436552557002715068222827525560449024030362205153706733022614009164093495492216458726160423781871401387699371503283716481206362484075984598953935170559533238475222690563711413110464973150344878967603256183429623014680211022241471997262165063941745948686285042167539845986406655190807647651390608832259881666983003018170576223256806594444244053431499532748570376572015741728940753412163182681592442067458876237865304041568181824265637229925811563417663315297936734788529812680832786725880296594570840899198751898636906950386398020322231442655562374709098078659911345878974912233692357901174361823779129622173722002673612182424913090652546941399824149189630749354336287862233646291912299790234325342394283788497790700248754004914570545738719132521379802350991753654871701157565625703869712467287749171613809212066812354115598312614408790999749836804699556601965118724445053739581020270269471731074048946512335238062052327490808306117772216279966539930903744313019356841067444225151053937844940250552347564116699438655715131316402692376611759377578494984224090358592627534911798489235127254802865148792948089131757407621933353381971806419704915542517600397827732835936922889089836708013133211195701462880470409543410580728009785844167797790541726896815615454760959898502352168019294594594810842928323846198501700201237522282404167695697887357398922253221878505711716554609864300211737150022462386240808307113641317769752373264834399628312336204694402002387745004670155745280703029835348964037272595699235748016727018527583379948724109055635625197422184836478991275488059505866563100271232546837863990537113635422315500980262641211695070500917398650366379621094545266265409237961021682895992880961943573974733977346829278033685017210445507419573311571786908824225469577535999797681575708964019496581823139082740327844412167024540547932030467196263885940604913285559948750866907891563627602508687760368859216288847382845794631634814555626884194695375211189014297595935615892160649056412227090828089096774050581353527497661287132368417321624448803486827063329539927930135498140537942634810438410696471430389131462303927081837896031050882995697162029434767147533109841744716794296805259890734607709280676696116481477896832861939145770831839571369782213281934404689506502497812515897756186511138924062018828751285618619722203025593884423279743019717073497758961348957853591760380403991207509171169256070611601628700038104847663912226647878876736533033098328186211099060408023785200727697917665330277356331225767344907334865657603144108069724331398799949602876162482714967107851036376046853222938219582298026037648867678814919301049796957979406753213515901813805725695591028229024699362325975255759407694780385593260546787388005256701732888129698831142296615899065763466897361817144060042407356458736352232947684123786394459592925862854724891952530224703005894193043049019836661633783112475335796163154566319956957066663961934072334474551168371356961751279507128027136971511027347521463996674384891986032334227302305583902791090128125043514999037637143736949746825675220723823235328844205328677127024251949845750930686835827391787004005455697868510117242376655768245870445063532281624346888823243084945677513016260314541129475575534860295301780107085599733534660171696954673513374847646756061370803591859108938264572155863403769328106218069185310208407737653118246013352701209195084337660061661676316931886395592228634362399626820566131577393635933345752380249199784599708547534346765100276659480619203820507186033705829520353686394609046820814156475242422410367926290628529835387187904066205392063712514183141127391705170507756403768126188137618061826694334048064688708877349880832310195709043735688427721781852007875096045196854176223410086087934995851414352056040064954475632416591456562438717016788085866862634362370464298151721826292535186656818880764876698940087463343008264795209443814722894187112031838112230707592438559168990879124793424988076778704114001902484296042944054256728854290799989552882670763022308881714218106182386038959046778972202303130657116934438732339760502241991394869246280637017745126709497913263170854046803434355636736490804242143989850102860733967464192728046974171570333441006932939463540989193728336099472042134811855633687106205290050711836690419932283766475520443339460142930024849825081143461659679837439793082887407843319479502091462480874579402179179899716923208803539351603581123390124005665456310736645763667708031553148241218308768616396787429288606909758877451141057488669372635889687848090425324545782947779327910866285530577996176905493255375586719375303186338310314876153291809302102070011695948084066685588395295048283616176012102132043714943176665117059082073133093431991113657615038793930107355606302095992913750194789143398266742241652642316393715324830946850855406138836751023896828814108080158689838923960262552415528316221587206337302145614472499242609053548711642911041930444209287968050267593318359991042380693525488777499045244239720969378513752284783787267073529797951657706333416289732144558023110331788997444883732888985830306654244821077137165820926400694903285984507557462786278037321209521834370739555135690180340744722260803976511567486668709813044997186046486548554290783556486034922159752689558227904726252722061141411805358436881545676790702944064602691471348394995362856367786946290154801134422775878830731616874978683754883033891450762895124463407699718164228641389284957785263289857665861884718843471112294322672149045190738677407306607020866749062961261590554007317637417497589485737239271177685378483323791453659321148286989913990906117217027680908101815685060452959910609400805285048190936506677677397780442502901254082169969977478705316504462146155640074031228972101330187446465071613749111533981773200897658116588209608931912414757018664698300392698031132228364739899126758541659000050860149945892680147709474561429819572031374207898266369247276951259356392357392084942641771787225059149314510190145410902319511103699189782072570168434869514578431752570512433445536421261291820417414595589227768238769868430038058250810314121048094420729729817272026019180541657451849228896196788835414717485877007682534070067651677108334240838802859446083013843263496426196338606406617712294679529149946487672106653363161034990326305677042160487334918821608292207483248767767829856528987758065928912790095508275653320713909272331343638623056366794816789519803755425720224802994883922450337597300402153009970006819708645317451682770424661644550760439315014345871782977742666169731623065874769896864966649905084696819998092988396498994940185649306711489172014772068403596534406035185353018425467437883859201181075133493812132584136153938337688084287392232578231242020169773964982133946112562690649671365034118876007179466727164434924685360294803033216067582626918860739070707835067103118529388645014254520447006192931541934286675015065069740210434562554244196049449445626167487938769780605382300618656059640052939473294092545736930090833360485012984312027345403881471106338689369171247575954705230794119517684559628915891684560347663327187635294860174309092959938848724909132616412261505196989907753101455608566665880980940428895948070020963204813751611151550379784178632987512256249067264821624600949563006346191165668773554001628546973562376279685173635893194958909411250454551339511721967030590712645403608650782958107466370314272606245847406123627305257173289858557371534118781453446922040609583767461328014363534204314403955835496454977909857355883661712219201098323666597763846684941220143341847778252858642865842256018390893751555760709254539468554768668785883244402224561784981890026185332429802377071224526025401913092745339856750147067918114061684789404549050990309754980145265940085968170524484735517166054169778161297168810840793485931699461115347413441135338674726883669084497552392765542701594689931948449518064103803793442453122745604467568143739569354605579377040821562972216968097419407342597212462559271758960693683330016330798841815182698568901532882470804262105702337048641995958108146681952627484571664706372485416303534662928699748701351189518024002521903224095619721036279437025549658858936545327387301910486311073945448763230102874070966310218964909349501548668925104869631529426551929292301268358271537784292899912689322555137654209610304987834291168784738148204532746834429896002122842211404039764607768707682563294611692646242213305197128993344974872140846084512323203850097815141783466026554050921793206813562193417517969100322220405197770115934139364308249795941464598569110115688630169642393171611181796103286099414378783599281871161442150919160731788231774004893741635648680185118637151479495349047082031751161733158859651697344458533550588696308950225119694769039120973879247757346912037711410168688117299404667712069575094142748098713854401409147805393063876308170170408311393441986023356074445274042807923095352753689683147104765380140019683563968677673063614711941497110979352555470237347927225245951252224116115847985923115786269006340661781873932002193055840925284986953776401249567284274293725013457473108290158739863888561675860592304990600713340044939776492057769834775759364757398058522964430105211279002762309830092940422733160166794945179765487572345959017071026533104248698698227531966092944050411452415480661675648494132106305084412778474107305477574000203136036111988984183513682636464704904082691438425941619142012674927810083596574620157786723977710161458795413693394270296634872121603265139058632964441074655026806755213687072170325728911462114608155677762958095659836059101529546461279061824864247846266232188326150561688212735509070848680110208882025669020844620455347687214240052190801782706220322682376898127517427739467188183416222758766212519410105013958217762555048046003266428942900827137438643130920872355111304139197219769071636344191378509897118859445927527578748992839575804384013248941235390733483214015579482835605269356552899304114072258599174977292947771278572380911210858973510806474991971494562428555814812674546361194453883190603990346639717210541206732062602757312448884521679407809451865414456489240944305060078707755416887300388856731145192391677802449336482680441534343295473961378515337356097084135091507642761564693582820876080611923993090983468289160267663821772859144018812781080710504888948573340437935415204843292436170996631739899002590872321345178305215687715368316965289962372400311710511256415679271899443449824998633132730704819486010969880356077512081629717268108018308305599873043012436347241538957400524031529177521034397487805002458734724810031276553528091709231013734059502277747449029524574493604705122288891579019955303044431625252041456569003441974748289024696362162702490670599165385697487363976612324920537718940333508844730962999787498130474377598665016417071957609360080128257105819580876279430240459391389331633199292257341836398208949549438536320859879995944305777030442996665764231309678433995990526211872650543450145019969499173532203774419801739760543380239865384889988739339598108176808208031706137067349904070422569996027574714580757105761740503402333577850539916786227225037805032343722075781034465920848998387422482800676195967659422775698204455247976011605608778123975659485897147172583016269108029965770596667338342903315206806232439811405727769616867631951118109238880100658869218471150565837920472132156418472025324956697648024456921358627129537840862615607379731487029640875094451621630474674828605213036478012970713658303426881167621175156963228952487665384199703239729880486930943013502112730487641189488539388927129357474203960769947950631489326337171342367994199650985687929649005580967089300380267032054704221700536056509370370598116378805376031451173511427380974473109085608666449539133314896765109017497538384040017447390752373181664820247123598365414941920850992955283557301632381710514304949104104669930349053910774870401249968546445849404661248256785881551917367552606133141567687195366022352410179293381729233650286714099084060081361166402420778400682649116149736663802655271433140922149194577554819372228616615332804392199555861492408475277409000504101540887791652144750102421655034564849606243208908073558768921555646009715799829953792406259964496726067291530414050482861572345000794163936215691384446789810997466337967414187359269469152976770375974129978895464231049170549572213423387542395643257153108001924965518420454793334204437701533509518932148241737107365850925377896836487346222516071382691684254135391583112622524210621519391597932531742122466447111646509626963380739153224817389593391671595466493886348966478047810024779633263239302420413541987291181114417178662897068717002882333389266772576162795936191661108076685492391045476993651034805043282630561385497740835364805379895264037551895150576038816142133252141546285755483294536470571243124566943530400597797041547928941262047416023346347668101744882211778847792047202234923709928500100015410312669269024629653294045888317387180562820538297277029690588396816716039003018476579472960721310378256133852348489469596279316529975640180117737642279988584781377654135962573024350267471290824802888273979356849699576986464911045071408399015412120312850735616630862794345489237897512102849536991545983226115004394736966791292611176801962742454631589707571875281662157764470278157419805735827766322503504309670551618105537907976105176417208505327814244134496117967078172824999647954168569449538691135910847295472453043325450395898341331935774731789340433716747547216594349866444487412504023287160891985040655191251578915607578127953767990864343896013405059773282202930615890531928697237725407474131307948211477977201482724208796272266286881554017565692882361319724318342455806446153385082609992308623917040040695743889097674145510284970848864893204831783297809469454379199861623522982497867950003175188373450404442513567944050273539977106709512157474030274156676249447453346222111256325675389878700921856028232005087036350927225371074338699478317549745423395397621130832295181448676072662195058708070298079108350030558562104376829152545830766955645206839977988328637410562761724371906821638682562263409180583475470084351051101338572286130933200682148059656972792455128516966609071966486768214486417763689992183566698864226626654290603917203454560014386298247005569752185718395175878717725925988739578662307446671884964857587913563723008460934054126551380938742253691717020473300432323236650050740926324904373483239921739807126512531082290240255750686031859559828342637979563595017076021068704100428056502189309661458519120519673736856128064466635096700241903417624233329067770907288922351996786418209026958560700089793652034337381952410123174512003779212143392652790528569532500797729849888722452081595760868919680024379806904501849336962685878526336284185054373997326765357588299335231575526894811655891873609336079305914342195033085892027147745400319351366873253921061742570751747542763630015190356569936771580993438610417553165946939170310958283142234312613254320435921219657345893749264604747133859432107918334787746929783194444014503071446643227280696557404680696946708512020865219418984077641794170453578458285671087337821538871468822470347498639867362009522135922333191777412763001885688656470600300944906102372127489074201531793363809426170049117994090534821863504590242292691110463602828987794509208209163747922108781343729147714675314230514281132726658647288007309627620834999290005582048467997879768810426249424531896111087286518925739556292574112613011494073313626515200708430498396461885684811697322033337805610301198254085728137021102840267720383981192931739753779262560528840829472449053321798297206064885219098923311114612996525392870311876089005531111264448684719443181554156802033382333203807481997728106045620446799398134199908488900817149097718896291736959878297771264557052910185772289357322409409371624985917595226342291982005424448154615712316533448236081843137191017200537176866364162012501066475264575306877225429130793999632845699835750642338425720588093728432114937679118589998805752279860407284828260537430817891834658582513598461614761861502574082590535220338061390722020610356420314379580827677366089375330856943124657516725728909866089279754610662674726557394927027313641608602570765107129920985003079531735592117914620018610834709217884058004780629121386788085549819288590095421420043800477851581904552502640393789448612891844503935258714210890267352167889138475566558558036532640647866166010317242632380483835680877027079873529118041706243992976327175054656764621198370685317324168500165787057357281644880629444071521202050928754678697837336759455864864465707732078620045680982555626000617011225887111029360214014643515397230400417226116289460078242369112207021601734090453342980222182921298989829505261452829935955094391954089683042799760570833428960448241789933019075576980009281164351283565271996279066000499054138648949220649837704845070323061152228741716769812654601847508821631821799877406564143272096858479836282924502853631855388851691789319525585673662559703538434167010486636756038337294008937849457987028309881567375184873782450488140693633067149395520732763456369988891892325433746331805437375361115229729154601240131035970183382130611082269536030035500039891990451021314527627490501220625302603953639776992858354798023925059217037865142883646386875196297022111551355445229110954821781195238051947588451774476866042810631460302279124064270025410997333640931847883536554744989857179311241575759703276984480258060940019472180431102257248998476397264569073536599299669385390701436717145615707910417311666672613190585377518078834818494082859934994963478942326184232417790199474820941184049283413924104037736725644425829545856926935990965067435647129737600096792477989990093254645430052077556124800554287526268868367522343785124638065486041062683973314935196603525463307451242994351142205109160303925046404145637751894277163441626739901206144346392229200289283836917199593125282896648141302538979204040260398856700638099495215133932021883022200542532012926697585108986796322443165647401641126431671605376364409421198646057138061488406013013789095289439826625841961775902589571013555218246341771400341727469797882030493136596746836843292124509819428125702440365857758315578373780144253892716022387907235809058832840253092552768231843726413878664069816715113623608914354569456662144746359681443502407515284738120167245841345747825434023360470403643784081974151896139212394444897821298619875997506346596338657990449625592044181774243721625830801988736456178891216687988870521461954396282905937070597662621764691801471647036936045591816606196654568391892256755893242398255950781617738579457496420011903389470842852516160827601271948344055444151766153164942385587786833678122418956914415272107216450249076082174561442838303753738242873091974299203642469736646210648576176250225806903992802802167902380799654318620128475608423006846002870514738779892839864756085066898606199205789095863591170077991041352958813802609797234302080094139889891158077398441996270268055883537391952532489375009896562718435157524994944706307131758898873401366762362043616234805036286817743229757592138341535094964617843716020848454751281691323707505542565168968542049733349815436013331568139451839997971258523939453227614636667948261316938618004945344217744173383579783758684858889198078265077425629063435615911855235600258746380279729763301332332511312787891140937885029096433365095716220037667312160149198110489253407370855144406672015770233147793890180115191797378861301394263075807779657490428669302851439608518810043503953170464916377514721475460785838664505729194877328175668906479387351647540653764991035719705035149105530194379256205770261937731589623621317069900582227794176853309034644740015889474919846148714217491862725565874021125838466152518603122360152641555269424681448581698768054842583676594878780634284564014742755037604607553792047701390858723899595922070923430640054297420690234046615118057020311160999323947134245781421924338859828407910623925311084882235589253554643270270614502204288825167071827458872544959342097122681465109166433852067233441094977537734967676101173432837917955193344597438399884382164047159295181375059634657800650751542706616240252766881712626131871534558097859739659653503954163263249197899239777266650879673184256064665987449140508002973873303857525190049766146297024345150957026066423688799172554177260013331459086573269157101261876235402938632771466330912206080231654824726240177787739032313291514926001037240088904960362023225496683191696178237375024239774648378651568217715027645165822889280098746741504574586507344635140610476104185062836100321136157978070542591710298962056986990386850881555441666363343313172418687002233111450342059164244067324351069438945788498176487219260872469823879453735226157257672984231906142218708175887550260507220159150567041173090599472386069904244037709141026943989891610862843777611032846097175808155699885602088439963496394627841590589507609715271221914451136667862599365881601653246539944266951653581861003350891951445496860849725390827092560411866291223967105609983636951880090920218016022217507205079562241224555126649313075593136120767129277396890220951428136788764748608728737487381308613334503968344729615681445201403240229459389667670646940670285667833160262933195660501994438667303328523231630412377411049296318593115986248491911433013941700589029235190703504596125476074505396561897216723126362771320047299713904481312052314518484790190525232591665155348750700073397324834277976388796374904767852608995574120784774906116438164515804756493496830737676119091351638192858052393879945590265685224557801499836632580963297860706732876289547839434987430729165817712301208142427814810600045936571656562728505230965838772923924129815965055400556134671817767333991374796336594794459591136355301774734826161896125660780577452178978596924817336702078285971935017440759978842001893220217867401145619247052644847198437343181652073641221417727904145457322258031489280338112460072164279651468005738050226061464378673421270845355454516531224608230397457503095717604197848929695313524668365460159400891930573598111772705480502459469608881351055168811097453436056225476687736992078832304180898880382286058700752429836541638353869238600947460127282130026432441461484575846082270597861805647458029775817540997732569796998438381713719510566143008766829250523856358157618172242441124440307367479379437349940928829499941393701687357825011797027805902236373358268910040860826520940589177935471115002745685233487100365875263067011913928354714048556081978345238648769441569227980475104250059375564966940981463333422394814498897720486743813909279604558355319692947347513641208407245097903660558127542698081880349121661436754217915298155548605995106696727595202461231426971217583257741932858794095588141307967941710475154223571970938794414154474789743773760395897814895882217147113574027842235978760837532012614918661687947582486234191426229898073199617118593491906717360181316978433961785038445913211929948846137582933159136429570706067136094870652056405358244957132255166815882230823878571720724347497315965904612700895060453849303394542640322611669355151523019572236299177092981294840783905037914856729549618706408521282053920554613175607913338776295419329194689266846196507488717771758171600322841948447830131007571447837454172206022838476236927891477025233069104244317663181682939179212845519762100493205196580836211866778778963816191326053015725737881287288888275366366780444453951988634929875977449856798650193337116285766166562702767661977083963363945435082460006371264917235145907946980697771656776914814041476597467247590626814931232639272865824587007541527406946294958486865077128176972871844591419636006621163716397897624936790161523032373866595189033984160999339635817549083486747696858836949642553581134677463277479284542984256164795178143341480539885558446934174638275576871588264467627832671157015175683386595993309738007712793083014877341774913552000774736652764384988279465354765234920690943907862209158603723749779484972447425118769382407607995620538965518464484866598071883290359693889147379813114313244859090741959990444622327534923903762729187864372292303500208265575470112941042948086001902883100365778615562012857292799251756424912838118188531240992870063784124090491734236949902945175368904438600796204341770200541429739082207555054829351536092712575490756587044811080749732064853992397611471191515822216236459441581829495343786530378145681059545732707529688299880232322867708587089767811741661453688471267615720516359552589175935265458546844813817285517699648145928967291352238269062981861374938580924019893513592278184164040426766513547318566509973248408894065582984424175480392637080558902702149494542237008825479840584040072110804425379113452494832526585892899141519380835375918981398501705598060617848217139161402708354795072187649561591934359799939838050807855073945892599979397747171011460513085641411574135868941321112026075901704284080351147631260675999436373714871574055400640431885997845316553657672759264962389269560386543051739517255129605948095082824720349577651269579569649584657317586572843896860397433792822050439488627604555911158687699041494654735422041370493256689907292201980581022582865246685165747415270959288332977870451850384561542682540417087997880850811720741830951714156393746718701955487711688766066494140694677401429678942011482842427330584279944676391291379704241920953771746886456775604444659037481228938230435649586610715284199062190744458887609128074831626180754145035146101299538024967447594298052793462425145468245957482563218018514150025599641502806908234207479360960726400728278566343915578651919597236838114886566462078484402088738659524064038933531707147244876373119012319756069567576862704324306185768616377054289558663181381182939318255149475055069146957812433531371762008268441602595002104474800827852383525213937107714058292692299320021064120506744212639218091564853129554379165789438017383521928175887517687001021703708539009917026050193626644193705934147213418227200391015812488677137766951642062475818224855672443799914011950942043465945666978282889079285183254159078747734269656279119285261493110924095484703397168508091442728267540180494489073713823917484550868530396920163824190513145198407153808637431856276490767755892495809868401000925991868239063653020802692574695166064833787095378603340330317835316482750805439898117288770511735774814451401817673818954431482921638378351418075025247257959439538482601903804484819391508333560649549021062125326339695743599863678083337105127300972557076609820638411197712637228292857707841016625486581408366166701080360748506277015715024741119986733747988252723535654873378913802790176783497039652643577191712489006877077543360935859570324443962404148650445871520619461560933407794808996701375511959449738413274186391908337674100986627492710620040931598402347342723944956348164860469779282360896181232608952562691977271217184192808563926910054059148493766798707574243864208384311242365687782919072878255267279157830408818209786627485940931940072180080829734478181643900173304497272599868665982284092594894387368509320351901580388870273790809652310335228016527894089569335617089635341239994811936556381892040781648955663445675009777418904187750277585333496701345796159999136319914451534197699538046101990649559862437599970156060468704889068402066104633225201443004342857075145675585854541292683947226118114957573400950288469704021612377093665092171384571852800612626640562321788611787704991831448079661262954052215445984656285194561423657927887399688021998292687343136245070739939056227983854612218972458310139994482457102360634075046945960706662847257313415073870610897846086768894677489811748668473503667653636945840232090887688205506141856772552729414823472293552069685815530936406800508298437761990488965967173997106551979951723236528953460670130564915120183769774615884821201363993477134910560905693755665790760651907638096423731085776947402904051679266904315765076372143320651548778441811520640534076756356076730099532580177708135421471886381345637691677137042365892018014068456227955759067837772538444942360228934197100357006850807518533308927540061446387808340500511305817735903924208672316793959122032404145803982520527831753229365550297908302673725545878210309860776454288781848191131090492539397700936962311369852544305702158397810517289356773337085594099395379957536981401560983796185402159941109837160108574666489369766850582269546712044521248826490344968307749733478185619873149545785766716349700224007441985197744567113248169702144470473062590336278719730647130636517058920562470551211963847247641950728551890497501702706878983755098544698025770968665154302660259996960000594190499150545786467751643002090459199581436660573049422960006069109991769173604654107043130124957326876952279873984110002440609763225117603471226207586347566837268499348152660919183192807471410979823540384584383124378198459827587255242082322931481700195200759749583752849295244732172717734717667593706732312059549398372824481747744291757236644708091499530019558153784256880671635909496854215037177620639404967659992239986675754493710233022570412013430438667155961091451919551969439643123281992996080346617950637699086980150935222013441493596295705270151018781129485713391283140522912207995034011035006293357444554264169408804704569521702462303834267912874287560723353366104641020915664283535349318329545205202742318423102882443591768283931710053797600495639901544384513151317906067002645250711102207033505634889312329588420691726895899421722141757301553409964960058873958591439435890482532270328022646591512929792523623557587185774231552140742951536399670374478644870658640999034670280025845431050722467230307973086119123756321562933148512386359786872231733149520582080958879974738188022501436268721681515781667324608023792639139678422396037508540757429308518309995811907837905806193378445171783138713770531856913613346932876658218801089688262531696322892698078180913069584694402543572067283708860893161345092866174500336214033093271986128728351411432077338256083541432163376969341555674419402868610400388976297751204367476028786663399537030332795730523254452323189704523117328687934889724260383194730061782886169819549371908689241080075083416430052293499377898591927616095935322805398635077484454317785682781783262300257044259490415589897964375313640718486622483970336807692604417303858748665744041689322556811883874423347128951619707298836706746052686293450163749507883082036536293944490771849706747720395338483542327386346140609920927176385570224806633366841924252427480694076473697215196235599052163091394215217938727711542508968357103152867483217717586092664808258848094032174354212885596743041058219648722068416817538374945576533532121812206504159582139750647468265629359030337766022681970065061578033092117165845365059445210466623312233480317885374941896783262618697537707272610902245084424804705270956745035735503655495904394719405570156772278955637023842974153344457465376125846785523891379853307660573830524236295924980898624519008692733322555033553909957682588508076109339109773912566682773586708031781805274050110580561737726042501449328345840786306275680280965353420939244289925927381939975361980055439297494600584284198273647797921880839414470012117112165118175719103466501441421941504113772840780851952289851744457184320255582538050769448447688215215196053634833838140314100595348133281582504547337194951203000805559176210310206035525545070700071069273472619980640448595774145783172347145395326957662011401919412424617379599241490624723913393061033367819563331619343361073814611314272585542711158137542696832574407997244683622848533196287881128011945945661189890952125311033684435236353293264612478009430968645255428602080825005322328028002473086809639550514189124884776194002310812913117706671330803118612587561369950449041538429068614919888331634369655998471104227754534069771880292306320408283649944484847225276052373635146980905987625705524782278551631619472647136145313787792657100660475258224490772811276578364867664853936244541776084610505049258472861328907541488432131415399115682199567106378681508358685339737547947072489740967755236812230796657133636259531021967567039663785985722460639345718099263417684850272827423423912972514517143915570423430678090105421346364769693234692301559513910826751593995035243651697538537751104941195446476138446277046288696173952303617682328437501472540480089574548506692693988431379103621164637148354676678086287497842859796312763949103784333074975434618205039203577838489022491451816699847214476805097152745793844272125143908813960965017790530796874069988997079857253414074938895973520607608431718260448096033415848988711518958526731794075811505265873345211024320012574165432681745897307572080683095417343961736870637292674538106673057884822381607552175813362510831367758184513094617520368279015309637420640790971843156823970963379472311425961598446353097250863651265599241822160833238040727681687305942359861954509336922655676865206970966413121335837091517759609206679247706640023809119260994322484932381901430491647817627198090037112164262480672659113000699370489047010229574452358331642864104510444872719690480514524688707218090933912081072701908508722476150110953882166797734553340017180431921575075876342575262417653165091231808407221633799458190967319962844924882490033119975985734602104673059970512860383528683094071955794650190802224367131140207071665874391365887344946181841727639299138818905488177618784968385385048032870501423450708739784251838404197033804530394814740188899749044613076573123509519358186569293582177843047472768575113080005166374022250155314518005318818252546949912238603074074563989554620726830618957306471282299066368836677538826350892584613345113891994045674114936764052119241007735905603298736990940635997543439401423012807453519252145345407480975578549335044381237208545151533755164535140335058567618991615583922374395126171051499349407144448844102987390144359331668541433291266641463838781723222971197408593821814282185805384529688070506563528244544092901649052992184803826717081012949396982509258949846343856536358396006998188444244085637537855176244252898698997000536118153060318277612524382696266283366382441966467662391458999530802838716391700453613608655845714809245807386128776457641159871957604870249942111979173938159776194391373157227076064950861579979704748339769808547772161298711165123491488225896883546559478671877788479017836982201868796282959253881239591632786755985417435430241359551259700293399418994343958071641534679074554660255167225015148772067099821054803220269926492652732847145990266494445729073906269561663256284108786088529005292951338808154981045479974141922144478273984714361396790849406621079153371277694718805359074850251215118763505384713327967577884736618625466857333563891936530343739282649026214991372699023292628019262117933109795047414430646987979591733823054702359346124270061899975847833957747332132689446244481391645081727768865423510190561001029535503995884975880082405386802482216551290646321762104145362331233562805188012918075836762420678915518421600271605523238061317199530460953082188622245791369977311194240557577270332827376849103868150357085170456056721776992852107223793515708130272022184478369444947743801368242972257289181356411936478029936390038177451474417247244794859966671147920933098183725246352802989965141757484125738522885755712462988423880633477419002075656859262454107695524822031711766189760167810177414350527072516947322240253246541956229532684302291429744936588657616401432753274610908509092793227900025120138346243880122468698159868593960549004285178329038356612223739641420363212502002532397212523215206115017798942541697908423845064505863559772589262819392048305927551287444741205791580654214354168817547934450338020627285375217595359004647535436619002949340213767180166990667758259294974529456058813561180604617833242894552295126205900486363424178878507681024695655773643904081625536459887564614410057851446077297677114862267751785436045696718176558403015082522369443161981299154490005453083962305133019541100874947938188386657201601367698315205609105354645205532885092944581309539124776687716760360066867500383304459833053459738417288430170947848543208111202442308263938905498032804307970541682620592021072942201941623447069603459547689076156762377600638444706962821600096095377711015296245410854896544833855456745187062528190738603117252560238917672646302348252744514387520733498861979477762657916290028732313532069431632514568871377940912523226020497723915487301816681527844216621062088109828353062324737953903383368633075603426091523063646875904255443573752571292783007531457258673354080862757952319941034181145873092730735957236898871502411548357141282102868350730349567198115655993152692497567208343660669135820255513202151248943937101852618387818210803710237119025941660015016595476301972343518739601560490257914560008034339293393981609925067635429570539747495851414727142406764643726218338204234614565470751320650127246162342407776834653137546958404618715714812449316919923276419856329131531197478321470419123746296578261377467704323387312000916407312786996827060266339902525788402648195863599021598784157390078391054421432886273781567262012758895869030782928272412020913733748411633881498058940955189163548227068674319940742650622794390574304039354299651405296220580361988652372691545555872138480448184356161729685723072882812919152752758047996506885440020249297123792803121289167736183403838314241907580120612553618255237862339936340607485930461579470588864731127567977186723969579739509950879244383004312359072128084081581251621461254723651146456918393249335902861629427141301167087388300714118590891441088776512616778546779088338636224963565345522448425000587010030338228448757451752227119072581972197877095236238957094191688533245705136320184585283604194564914711866214502638928547308217861489728175485684124534756885170575471494178965267513485263009614394108144396399599343446925429680827405233708967607801040295786700842381000326668975741740686379424054050157017148559426744858363191215679713482857822777996584286107641158808434383188444203718778182387763554649695580849378700169567908991751234460029093161102023844405408887243333068552272970940986134479645464330845402573600651730416222315564304294496197297095071679861695554628070013749470530710535584811615152186596856850340083684327746314486644494283333164179614780721126232301627065459510315934715537006646295880161806490828575137446548861013686331068630914713870314945496470137112409620666556515120452020414598083589678078989809146769045936735987591263087102688208106606743568250410210271250931800332178235713726021050147188201729125900218749234342284634322496326837268223566863241633099834842575643804773398851843352700405674869988949197562991322619199267339352643678935117359184714767717735043845900621094747442012999024082101132679390450856401136233540213302470893410836761100087025580413528510116575822982647938469320806839754832009570643104338219418655864633667231070019311989556803891074588256997912397660954782666845458537153748929051229320984676252695581952274492590631880768643593340012276070491306010826684457833069587149222400899468307403243139423506046356709370306538344328056378005440900198990628148946409946125102472257021037000961749597738312017137543602606052690147588275023751842478221829270476980710696433210697022515248847459041017229927219499158885732498467146110785018818238091972168743471840927742688871229132623198815749227834215933717999273547607408200441936070745340784261815782407365302779971149326415940386713084556068365015529617275396390950303536092253776800899656840008785378047839774808902443611135004812463364292932199244978902890758643213078160460472745933197789782934834439750915160305881532437551112927322171186878279307164775139239187208904557394613018541318156055628036025206979826003745549969760000251060003970882022704548308127342123293898428499363873146017936943959864869911065966080290283223968836568760046091483772207745836678149311860033754352185114152747869183807753055628008119536631555331128273242063938755426854495271258085494361854489056705779594422251882218049327525854564398514178472463012260434869748422686048185246364049172782701069036202661707007841423194434670197337698288416925499039093452513879047911910720208960027519489494447552913931627275137963925517561136059916129748024353872132605962610678412050759818760322510864722909223520798575101431443533505832294757209644224416460538444174994587157348101079080884386738021229648902767127190904420740917669047592326876071254084508211385342890533633031117190309020224015213192339503289588024001460507847327226045061749109976615837548903612107605586314478049161532626594620128745609135724757097310813400470860246017314547228561123511706905053362143357038410628457697031442494029797612306308611141936050902068980657440174296611392420391150639125787697687210212354757844369358510015527288462577871462612763769916710931048883645856441798587520712251161734092795127395088452876075397189724091566884297721514707996975925917859649732419408696956567011119070393420609533653223211353286365048862014054286150898868557291842665913888619790678137441471746729775680589813547015720912026327297368420183476065521637514460817539456257251037998500527629912086290668010202204979259208715934203641295271774819706811941715764546485185669673727937948922011448554858258984662968189897632489942005343662089421699276042449945643949561491370409497635997970675219121193420092205873519981919314959367464414969648082629974219386813435511157064148004082161977142561230210505065319056931069519267255204042926041025660577486774526171064724364568211227076479776471765854034902527729672882174348355453482002096826559098683780792769960103027433785790687055089427561559989380706572747676858147627462658614945284040558834140187100622227481695798133065739360657517126353668905644910858145651975189427256616407120441789409794422869462859585013525568873866158418067708545304582356395033778345514005093401309121715112658621587283955451691850637198515509972354394518889274904554677022086036766396972675891624646608794192995279570106231121789174749564628104065756717398583785381073976082405132458922326381783505075376462456563714638437978761100913135102123775186661473373952133145974399704793084517707480921621232059938903762922217778436917340268492934974399434270397271454228185188535810100423861080701441043359682782704684734023050968749221590434226476981028029157562867008407875687880430053632246214980487449928399479434727451167662267827559542866754428117659543110017280492698706191953354988934055183564082261045695121110835666744131539139042683807343550240763943511378517600404490104432245943708997119666474336027233942433303197495891537926906536462917860190529553656837526419765778268883911500763955189798530143583260616167251280089484210747669560103362423584048232007757771173275332816145144658707482333698625777121892249409476665632923610677196299985599712600338798116910928831293288588259291922516521019245349441498314532063619935914111372348838550958064174019563892099818120339265484456434033080255185165470134502576517537143462378930383159649174514182312005432285923297680679944798466960153401016533038433754854350265987446421316571689837405332046254825919153645052425843569701608214016326218949102308557013243152129556071204509387079905169834333698376674851993733868941726679075930704638085997482103155806886234412280524729107320436953447821249331700879340178189300482934424171171826893493253263023931587165391570373436067070144319670397961688029508705072206674015626172925696206255020032421293241063692521404863387489767564219903938632153497281158671903793401158213682093143759301554981210066964623145042124122560619189561095198970030342958532687395585157102681231157053760394781894262926121749098432695213974566043753504153324575411700878596625283662171294470213938145153905615350729271961931838932764598392343316181781395282154352861094952385125808243184933777242407566812059835222023913638154097288165702367153235770882026618597402029043083684743683944236713055119885640978859292576774997366437458033902602544606352123881690122733321045041438430873099860631823080589001774147853615428412328309696764788385679446972044141490548884015525527817672426991793617060242538861262393395255540183961612656424431782607788783064135644315355840078758026645872709901619329045303801222724491937177561010271081867217406220765980398584132806451052472888195398093804464128102300849873977400983033274231111412638659073717403227257854651621245462379079079910171269999262139413463717999965548759172931042776060266435799662973079727427562378935998039382901637191596253281679316783782187639302096532366987932427190829843564877218641480892326032165930514791751837139417472021303393462848653461080179280554071790322297453997615300222213820617588311848050796704904885452327504294552479236520551603953736412676608104181381386180233616093495420985924048398280296370899119375994476499082325091873898239795766551586469164134282649884980939128606469401770241027399994218501487872121461605563249259045995685666350708960176532933594477092487451943454979845938787521678389290631609286725313751011207472516306911144917793974183400782015689376469415086014805323714049909490769026648653568664495470886170600358822352142965923617047729285735797910270607003410136241234492084458156746723362478569284114132744127553059934428159172560922186391025962783289371248905249140173691903981715701487762240205204218749004423399192532638534103964838348711140132611630521227991938754055614014223063896941266180940167015151677308067413499050063549144152068521935123508814849252134590295484211926930799950230064852669212516017378172569111073984864862101910240536043982150617609390705602050715881892907056987903485099565800970355952989198879450352355667926848498881087718816135736339017064647196369741278109606109390177579317702009393524733934923938790480481602902653926120343305284371160464007211392099316103859522670439217442491051564365196958416570569064112198986543668284317222507237481434069097912197089448451230549145113104383806798911362038145450272314055029061193030264748371193294170594626013357097027551586955508804893699430335474026319534068845252437462826094560729699009894864968450731267067609252569294216168525269956904528183299494059444180922057017312768056774905828227783947707036472307349349584012035945479237258984041574942284162675731209233804693063730427997040522190243883002324832625283593066444233533443100252674529312083066525200841384389208898539742715685558382016082189296959016850124984267545742568544003752413935093184556640822042523980801679731995893028883057091250003411385057950666741477559877496968375958168553397252134846591300558580061685907013100095931792602458685379484733762152800577873218698702291537449912614087367579058509337808448550791616451771651888641797131285539788408178829461605059226197623945061072325200434657723630166623160742750955356828821065004718069688372947288688286792365917933236241377055407397408490484505247615261839984383994084048740402296653327398631344952616356338427874638955528379834516507085777803805429916161041110439147278930454925001721522102376380300948388696049988481694652502090257433489321538327798970286338221858199198373778064931143559426000098779983003720346469840599174495713787277447682488222111104570082995987886459381504884769643566743454611389485896801056847278718728751237218867059107978760008258978590974854937210582447112576405203231590753164816521580114981822332044770869271874082825793592598750153751821356263998678366749355788771814990879189110496869343202303031278943211690656722588964194940375986272547689124503128888231971833077630416065168996585727980175807941632915623935516850194656658783316036799137812676693872641694830426120647305012606377034946491391563864009743510946089933875764736519829575024111240268483633241527207061569666805160385018773058171745188753280524379483816174786131117082227623934202183098481188319954398383417931363339778585269722365259339285362737382294572940744405360347250883461645252411853008183791792657517807517957845704616937045787363554648691627931857332456929613807511716472710969980755992156106836604518952510796451131053338750388101359509101219985861490969325000289222085391144333771880349478358327192893321136039517522049697297263791759406084927774974217356969259532291664784785342142503010847916284559805226646658505105178481787249426938534545848130152679237855192695299467616957478975270331164065683644107407526691408166660027546196041004924845594448305942399790070153281646724813238060209345287708245020825482083922955672568483377633495157822895704186208389620973742572840047951458140294954620230293025901771136299039921078167664992168194050639499421854109599678255274660125909916450456792243423703795098751383504800480721986048391546022033155033180576325186317936904512756689094088223402778713056621975317442951644570917107154204021763095793839509801904894420697092442328097248767724775939849389887818780686631863859395828287161493451697965296603006371276840043711692372112877380920331784874597484001609881374899619435035641204547075119440124730355503707576326140402913425978916055729050479650304054688427154583765492314771023017477310409793509729837951831045164609708022655816108652120895418989413661766994174410075804346515807983057975460544045789755150066401538773530585695037603776923041700527213473369663340162739977577436549661574560184122285085284897660492830396736347163831688654348647797040136679693266414035296226444787261484008228928932852894541372310372745989721743547654249650993480242658156240560587750729084176158270423637411293989444675228452140014318066846683982781690357392890250375829665586987442691976532880644800662829669377505421437702539943165784491602953697002734467324425207985634988487029270050024851868591160760117635138080689880069630567987491468498169254531828541776604150438037504275214487434537791170946890937096556856921434878018520051721944022873619157318850543515993791721793905837862308333681980815914437025626596482304774318971701123672213805417110788886039892230471563346340317488123060322535148571455818962516358110212156404142555071606404306607401471363998874264516514303961802492573554264439763277526388416653298180900167936494994667789047972535153346279226439703381115516876218321621893848453589806662666642230861970887931357890049559250604786231021774833778327441854526280975443257317693419460026250990900760236618513336784342215728327684032728050452501703605124018253879745018702983169356324955272604294913544114945768935491610529125172920662726043082477056320874898683947642760491709880950849305646446180688149168085474699371186266095934766058705962482552083945458257490480691278490668796226122692411222983476249257127809755684496961472290508487124282267657663696613578410970551599030702492361417168552078394145949079376013345122247929043084289933739506063954918161486140342195287542723013952243069584056242422496379468209999332981616071702243850876782449192135858557066397666283868875808919935206000918337398750014502477728431899206211240343356667773527181084839054637455372739814420172492028662288474934094331841626073130428193396119431822050302399545511587641673986689370647928112718934898505366153965434616333212191757431701775732346707682295186450706256539065976959197683497047357483485613365463026892102035451362528465583769483694388375369641194043983790322700854742861030051788694412142181705063982174176872572176096584357940339264870994782665587199483958195149799466955661448142890299506808012263976377705976376927873396108315900854748440464672492935594653958559810801587205931047191892330856712190558846465699310069946945612937532141774177977115012362715927401904531299227736756619802783490086480640662350647633753173598410805527716022725762376655124379830528756778778997780536113641242113138443882023486465551860344287599474134305504945430664938689326870105331039813661189313295142560983405086330747578063069048987485095439451939495039921416439848288314725478754771091245532279441072553134347977711785436479274212446944810941200711570154560653463392807248295027647943740861774035130028246805736106868916141168719101811937997868212233141623900838384423477505429970035124360931282503540017438793117788202277722979334459152531536492900999730258304031514891542452629325475073907744106076801802606850087849774940719058386181224837840639687583636952982774236042617709896361080899180583163360799761288109556455627975534769463453613428850073680197580150747685049754808516456251956718879625620775158484612755748853847139060153617508634595250614103363543591320802477496162782724256329698839226749237030566353044629744207050986450169966904577879476449114837438662566517715120313178885015424028366619422296579367804263171708323982375740042698547172696888924513668664821059882010311450475402519151548592191412694042557540489020262806833134755978647868166901680989590964723553988493616548820789117793525944357047679666340405076255494914565558804181954345273706648518624611771499715906317225862680385105539878521159868287042211704100024757008923704253628521651341420503085821464236599723174902725106138425487264473654065875015649500345314835262428178583090943802047140338182970117197885110607512336099991247151511329137389575697504733090880294148616695861879757537859703463465735341170478783811577444489741409339675785529768716818554524693200253383208906711694226942525822812017176576775139777836489839323038218470882777318084231581588234697800505163487405852852687010303496568809873410428507573646026551573699264625867104048602543958421462461129666758194399965698544612277915257586159023601296938343015215064824397208664427658284200553746717280170342670702539214326907023684744482574933162141938029475661749623041697849649629877546335492245744566666712230787056372215598258583726490603542419993843248448516505062585953829145712862324654008749958025255708846132873567120635943828125878329981614310468200848627755417107743965024890211568323058923309938257036509507814851132020301517625373107986576562360771320562578862260733546604393373884665928739052169655251374971008748963429430014261354564058063225712664213803277404754053721220408857525512680099356411736355213157636904802323339690417574636821383126201922379672119650413928445478288483800866317733701790570326252978250425753653825891539269055287290658547443500802815183551835853198422535032038270264134104248230199402587161190612095966761639045363977557918237503776456895029631616739548221886251875589837538442231599718441994630206784340453169923714014106936236410203709638907423686969436754742456040276792193830122758261126573163903615933958606230607785174596448216138441668456583428632131296946717462434976282262802929210267082535483911752442972112954274268591795306231185276455350732644501614221693114363650086289279996945235134437832640402786169788170036903324649503853731413189153210822028141944270088700895603142750278990589191723146534460056374976009515990722613686780793180876982859288554094006310122649547904709462046830387303502857040454429936058805261737501940124032747032381988395916273928739003235036197313685532622529870862965837023603782867700977223663000553877778641367475547113177712671522325924445669645702003916996777452828055729844116050366376581038002837417084043120900622613287874121453198544849676642292029872616150080498436255729546131077097886934637220788985486559441613557812021448295257529781647053340711777268742239924167727084055706559482378884579722383480269331695555595747831014233056844208738275559535014815896635316436492774369638477366165961897301371443482023576236651926579432331970039449891870593382877053324298602869008904983959694254352408737190233953465582876159610967194055946001165418307726266750398290939006334253217610013431893494909390993701594294765607277010254205386889053802353889085694429839764039299487341110936213909016007118108354757635008450074132143110011222451580364198485818913169867125404476302226017027138568326810795424939391768743062980616538840594191942901872966438119443657553584109138766170750065827241611803116757338995128994299249489004901050641639603435096346862844334726506034002343834213973764916346497158129854641059695373901924012740760536592396068798092420198059762203109262216002017663451160569100137353746314394946155015000760072165348381682189494108277546034740743615975196033782475720248735230070488742751568969931620776935051829580928686476571097728910668865209235843953392646493496626800088711191299907499499072581975823720286933744163953794419425483304750819034192605219803162419372818667601586584845769565936492948784464051367450897258227285736678648101407485406172793224513447508986954287786894765713643994747088512180146898059105131466836152500036322543982278750055008753090946569949568228974567957093354996543891818550330546171849669960994543271577261180716720952011623104111927654619624189145591266246219151039998968860228889950187752132071897191018935093430787609176330619081033694989616683154545218498029631031715912786633182026302107726283296560492474273263076849766219870027251504370464191624259475125549455637025385589738038916180734215641631877112855976171592832881020694506411574392600799843587252906345919114780124941622164717547484114071459264379139380796708508007023830749890229529470086118255365468050477210135390149485581566531537045416704743684008037765988171582710190313604636095890126366841261897023315926333991325850422086948260166490893828999389489363901419165462028509505927031329454187536819538684196945543905608918332251197233097173177454801990824318902414492414987726686521267710274081629026264361859333971923957700115524751002494940553854768673777955872869421140708708388425747813037507816429847954030735736185242275331759165681872906118304490451223839590472850864903153368902803256931157403186521492477849280920019360850719194935830404658692426471784280338155060469320773625384752078282264301313313061002494100191278516692913401306660683299446294276927357705922319581084234677583795105164903639811638474660240279388015179801468280351782075972926783912095916185163217934830043063913329045692421505498140293030371423316861344517288038965358594012613127524223805101761681754917303943315658933390101322688019726911216632389428160698265427792386088980192410516277342279040702155949274922626469531205899114066526045967838452545838917104181511283163356662334518241505375743095686750609382385763115510691199446633159373615025108246834832723015959409788035546973692383912964839500016667321064723040343094582887238365240466454963687174027208627160251600214807716191759189140404482086684100175904711920719699480011902608698055233623148082574658331862941970016936184861828955375859842135912470767181940143634298843024128165163674891617809892603029460927758040720460613817523593997222714279768725047405883886669464652720658260560453023680880769327826459046176254156550969696095548246437933963503565504463237356138138263709074869010361810400110787367460140337696732713812555559524661926673724827076536529243248099172105500538104108913991738846464576493554563350673351315932841185961696209047771994908173711215250420128755152670134539919148162649708759595166010156455271019214433386085947645543809320107637541978520115436732195688632385938215542321734863145995185753770037120643216058417448739394015022379849481111227762861999435281566676669695205029443910131535150978018525004184933379754507108491230830259029873419240673452454266558618378482509565787555105370867554437523367441858412601977733300351682131305260877157706234411655690722593382356298426844706049167733845039052354178606647088640880387101066534647480116932602229457273619419401752836913807484193293047464582632413011636105361918091716396521715360400800157368884169184797808940962554466679558562964175192571187299426874160235382435793143840821866003730674153955584809436379090703708752181543927766400183944097199093835811992234156204233368291005384664425698713111817705447338228630550792899919461171464280439165206774861874741102314124937921201702476896578284834201649945990375127176269050450227882571191031358600928205695681516055633556882425912094124992382930394190434266671720190361575195700276010104307261123522650667901534844050729140680404148319182229828178129229236574027989793431826819849407479843947049751873377094987065194042920798551072910013475436452048784905305030166224914105990499363215731419588465427003144381477730732220194255508308719591206014247445576932077499846007359084061405957838930980241422779740975763279392607863920187647365492657789569261873449238050142682264008521397033144249527605521901148072119647317031782295196390566952959780765005873273076159133884355443808528308208043978215306341296182906617731417010622397604065987096522907072574291690267346236566481886462077275688998582590167522139162988136565735588838466109888323658071033771005782586966098656339686731109013270876499687196797081314799641324347564776632941730288564140848771673233320160824801141969355777790186603210650804457894485069148328927665617413883011208414281721250141839451955142819585617566933622241109886516039767757354745626740936265420853648935375307849470285841702230483083797663419909638432285154693741327116466513369298184247314672868220256432866847597487394654753225981172669728196101769606384425623615351083052484183171531678127107132015811463178822508048736725558700871967279942540225277541035231140485237698266116484880543486797684140401863549550223424065620926797033196854154713703466446258447101393979653122890600061393941258644115774455278166865268776428714947184067719937069082944715558178363521005453210268821074696595569643744560623777004016430394663048384491182179161982918998202427973777716722878204800893974133421491167296034368834831679897582883011639392944330787443700527194627841111077418471144314977797282928962263905075957186848744396351700241290206165368764867929581801545220030883812220369372853079736566526316750495560892467152760750600493583818662218305934796400172152822161558434478814693540638547754204804639450270326700875001265609607835676608384200867905888953041796765965606366877866835511185635333716706782395685918858100719765156095036064371394167130653972318652052033657190807631399562936582839911697831898599687101886542169834823561613949174568292608791372725813504887903956666020819737043424821099213081555136456949244041887211796563666283494705152097462949569663518090283631143412057826967489772573730964051572952068081818836425957946497021684119352064209283658766532133279921515421499411527636857148520092140970178911782667478235132173325411094561853350169348147014161298205541264011630492464861606062893652979301210992995209042198014251507255277969602565061802260711770892958585618207480250041093395437736630139741302851825960020798050313512124104662120676865675269157542313427188678828284522591754463460957687822966733754503329027900682323422785659353572712772234772560645749177851585378619651957279324190021137729770661629371914771803817494844005183214659455221323258409945081646935730471452639195461884785142121419547084745580077622018410145686689794230861334862893246338723600553529252527854734222385799128434839480419996406444078901523630144640792237925341449274855863126652242603251321802403358903418050041258170821776878631550614863041080236995241049168227895490837739202654623046647234215645122890075885710562295479772054857706059203371968268265415707086868809972682554057408815864116616462523172923522296395256652343759097557447917369283845469654473919512188754767431134934524580742016297884714606803442274283709395766324174346321000536023272296375555652023173307919178049722215607661849179688266236756565526480066427486810856583794027697181081973984897050880655463086213458062036869323752258676208197407939968445785105985879602753534997204005997336678194074631442532144813003486910041658053599027067746126022069010703477125837263583696995307955505689981516177827363303254924720314045177052623956478881296400638116871018818945347070988673491436227128298555130279646012300167521671099083509625613394646733041596942021191456157234410222673336806589921079191181351856984963578997595571737495365206111382609248112213292584751548801963579502746945090581665326253762865054879610757356768486787189904577424864430464745239147587506820546061997066136620748293024361155865199866466143517028014934123470943577538655434240157423498155279370904505398897314832593585953847282912014875101291838312941860590868953652795979580781471932578322373695549551715994822929697966507813528851103989668819131998426964122157727334154087330449459931841229719917124894437611146027199473809896662521712318062254775181728008066305286407827482716552066485528927016486959234786115849516765914622141037179048695173008468665515724329879609477591272828564280097977483002855888707990350711668253226494633914855398201976881248586341285328107124573202969336249408653257620685232166462644196330599840708025368290098685575695091047697204308857152545254532876052818371559066492838841072873083763895913013030350093054468534881282463523268440905643483890901402891869124362205094956876091578885965239131632745560176016794831138685873921199395627243132273901373312159542112432191201985601613919422835321491882608183992284984784575857874839156778998912238786460012248717733746542839017121434926606171566021162703827609555767411718165834025367904932398192710903030093890056061066746005746247486470910582110302044014943796268962689258261573636660806925421533444998489836784006694481147457414341582658157595694302951393065827628404948301986120935043897512654262874527512329297345809706931218257233136124172457239940273371108176064827624914848122048703240172925056070228424912794222549628516597083784182208610925470926639119791330684666337290769642423220006774478918890050029163752124203960087321671751677015028322588106952416494056155528396045313879767158325453927518163672171451030189732695452004277304741496463026959000352337119748719247667800782398297554411250258260603741949209635661579220406472169012849314985459415298046401711584085223119079267453683693916933135111383185620926224583989666016707039727758575923184568510798895352093357545970180281634704483140933900378561643627471411660723497796010010369134058636227016219618928863819560057754238333635563570258918323559249023888817554168201717494422954369128357525779131589389169487112512051274807350009762382710450954584433069369826129313644167807113267201212090454028999633046074761405397595169141580320244117359431304088468239810732767616918132086321152220912803783897551189791652910894757522415013349886215163861912006302545270913237479851561297880341440990356571517330679862240271848775310063676095068906442954826658838739499285926873665662576119316389908534806390013613626104615014816908810038943676502085436851110033729092113726238944128790775228816122560353178318374990874376283581965228207447119323459651706413990449337394691338608870986491149587884264852620177223778490323059832352915719913148440875485512882061061938272397354092243869488616465219934678090347634587757808301256227966993623164226192425281553009094866472658947975723549356132515113454416881558661177824002362949593509263258145314595105158180660827127915558353913240925107293206384806130617622462175317524146224550646185518918874846756014737010826595248542345286474788160572981517471539581848499676206574260372322545228591450005598723109838269162895177807639037414364425967492700147405164327138069650288875529399877780235009366057792145165028358984200522728077500306507680241146955791156236451018009649965156346908599403412621114454289148173586767212282729563889755493980638401654055610553039745016427629882132780363340550794410960661750998321552982200131359402370841654754209082477940729729141205639594651182330157218330994528407111239418523761856477258555841831334505306250243996271546948493229329069366901194579674543893106480541264591330017149788853955036368660800046679657375364831058293366987484723954022989631594991118799910541447197086053615633944408875214693946015199405555521592926723069014430117910129715475283368035341783603561882069976706061433242877826302575167949352275024977605857070647427075189752813067032738048015045134404454636289763228927553867500303349536488433923388185950752118325813522363464317797362035255895005864757773843034816649852872330629157682415659293095148505073457667026761186579387948611268018093837733196100064994974275103793721622503678704992788149049207417348232952700322181055149182226011033793251588024243553211331577676151218804561260135412697031925035850196187033286163833271667157713362758496652725703875593300457814368356184773021740009652286259246897588888744070050542467423431300230410872169905604985183198575026965186825126968987623016038810482623318429029515472895855482201044489889742663816319200750554186506653797155665686373538258801940655841539299194456464657954085483976998250001567685132752301030992745354927335158657733472891171616212193009660123081678319937927622375823088805428482511948173075940543793891686477761144859551310157542677067265064779835851490425494447117824473182869049374665148860371066213529109361460966143560167202495149412122775965739322161007156891353344140771578183568931332400479482113832128879990389311723435048013966583308822653307292000566485234895424145469261611102053653843775211224721185165971964448669832563063789972060519295882991542896183852985800532649071112645255327140043879123551263261218848689144292204932771716971640830812954661863734086027499182364833157657885373324496583748722159068502261845148928584816375210851314200935293861220547531633981473184919265550212558340420185423635401712582829871540451093522981531594992272334342232422551936215979124200125079827155779432395459387508676021467561239158113823402802297976894694236760365541262488218101035851712605958720437676426645058078747255540558109315615960646612406335492640220058921571906041227393465475196772845525049162025547121985653112339219888251308958667990092918448683140448831975815169946444420804788988187713048333267421274091766714044653930342094273005456329936602992097365191686024610512578331993445298976362484925284920837491730263649739788153536969073541398962877511340864930731862601458740202387773343870015243344282525339787147475235036683849506701131799355199987945320422884308781288748704945590789964036680484105913675257843129488915166355642946312053466915092172635473031831807068566777428870571759376068417107831426682822485581608827106962799525915103934880825968140718970572047229895012705026875747737291435466765785649698481564529761165637263283022392234836605631284178504543519053738289913092637936932577116325530331840942440108355226858065766718353568547426717400286338177292230184590868301130576227359905613798727289125799738822738905534682544067297782292204794672166912957601788679349896038014690875051900981248587747040593126728990962947560703798809721871102433908383565149968242037758463677990911166761642920444795507534927404948322747321205791412730036698966742090795035671358814565395513045834463395112854582064126005680477839116074192021106462869053940471874959663976547393266506013021220774770012333362804909822554027403190720457493608077775729405062826371776580849210221831363763173032996117472116085046939951563305262494147680090997798174965703991531885390773168587813257463851677410926628055502555265298308964731686791633471101940854631915071169933819991749188252611619328408067381159017226195041737789424071922080211744038944732899439751026133871636818181903716263761643003232834987681655357934573154114533698007121888747802683486095664345858302207842776306491976685629996199056387262561621359598550680209752116110508180982363846417864088075351541985166470084460980811826524900333072787645818357269441939270280047290887917457881104493349078984851952017608686417124621745668502734413852972306854121553836482738013428186086119871382297285957865893303441963609308155532776921515432874868120344524175989297212089658359885537489823389513658215221462499212251413887003473532579157691270277828826162756594724068717585943745318051020958220206467392557819582554418267861524794087341863722263438184495448689976761699168447086526599675090060849066172447312932183910915031415238927096196698961508667124734079548053541972301115329871160219780119327991760545251751351015957594176824225110593909584789706839720704266814951182224695178930752575376570286925310234206613040575438574097792651876128502341565360423415441716324662837921766418744975151696793123729289329726386156233800452995701372434816636991844760778016017883643583219172734048258677668819410941146634887329903341589817679265518892056922085817329684997733497796587206611155782120682377825687558749860104186359539459370328318444373987178151377056651744012188976712778915138843562997521210246136056002377539531327980368550462279326579816934087003014575915951164712611899460623594294097568712581591245558533090757424808389287219883451456362118120693772117986063428165288624592629848899329642767970100847259255694524853409256348281711495038528569838140975285763682995383874333812980843669526888662434068783585177582015190189140304531154458903568035589502658047369412187703775877121866389637825131047782855660464820453781294978731290611903827853613713594461465049486453892454267486995072050745550952616200897065873813371341413454105965387774801534716668908336968310435597431341482879040654538901009823579570172768174723036304243367764412024638484380076873584911262910542584785105161673456797216745139582720224957676731638896512893352723817330443487742056976596202215692824145958027647190651752526223361722456679800269798235465937093487133304612769239425711623231519559608731058920278838420147961117925257490475349133844131972074131570330690744436011524882949322181559842843193052041097348417881880649462509964128581327272827878777675882100305776449324247777136455204052938823740628881641389384583706586655509081401568763256805017057608028834839793974100699458069351188180122793563040941148246154567754286648361156954246179417869969266182426171603110324443748069987055100221227590087047008118122983573391122037585079585798345926414033894329870264164170592278726542551328228806204556062566809667558259616409411004062703586184345633514550866169648610494260666962190506705705333690532426799898025605226989687000412258428092119010936917944364527856911745950194434627328613846050101486807841071647681213679179599834227420778548149423063249103715355153146054830664896225613512393659020610981464094221594038636526932307741840034842502166051836533256903566980109233895770356040155479472742376804732863882698518485089694136249363072653810729555323436769884798290429809181983993727932479426355860828144192520215340239117295104793560369609040009029887860561293461428076665949799297817882560897815240787498574921194801737540748050796741431641480510879112001963993228034558821189263239041142725374255460335060232312951768241197793330117069839506714554016805693651269356028143763046477136358495127130693983189715433887764105400966485076907670735264663544357927487826994663022519321270746845359846159672431289915080213113993698347140273423148567496860502347019948137487684057176653666512139869122838309129262874496373363261972447300894340505926422931263281820486064977759560009359696787771104232812542851059591933697062071146257703268264644836820726230071187211784652144282154436707672916391935785149431645825885330915132764750271586843563698887801407186458112652075437098080809990221943621064334532283215517890672161757797046540963294730538422638313263310162188466231344846113142315482523993729845093350698830958231072704538589749701198420815926490127449049029599702975210789702580823487981419672714284107658945808138851385811038909907068966976849514205363283043120572640506112944973801302929136438601741066335956630222341088705207760073711000605642074589480280874868565580885092347332683266653367901071005671830608610727934600007714949985269903511243372591774463319519218544842625700358523188273597453559008824490855579656568287253061404412165154170777108070167896733269937327084165506223724597173408607569565303661724673843245205939554952369869857998201720386130696308390895047330997348731696633284585823618292994333635020106773527630315393738789554328368437481657575991555039370183003925012494476146243947012752019979799210048274167034396675506483136264059898683069705444273286562132097524199507757991247007544402854219752524564980905846842174136025813923582894664681733843201901060047415403212493426842574802453793166106290689526813933070752658616495511442504817025325269689343384979064642089808098778838740399548859861210899561629863933025205352699320706721128490859143937660814140152663825833683596213213090168185551562330978255703088945145859520132733217704623631107453271754739979635965849473159814477854538194030570497803442210406262031649021511949547186273918524685644026982945071868225837177225406791673267685913341792209939705887317173428849732094394308649265473458493454078126924825393456919790866008971457920579937584320459557775603296761315692425752937396700235077262461266683778377810142744838258691108219244302858289720276850431829979457075081610194735964881778049146816432017769460366048404080139245365040408742337321818962941145102878367518772713653620100773640052088324218847643671590061882994208276707013037079554137974066105124125776121978288538157972327120588641958427580591475719089671974669646567950650002257805214519722750540557792912705212205182571608038362185656891052168251800773335548242961630319004496159615426314259285048444619761617836836304285247716224158118943369954536317182911173792630046832802527090656512507787399406895810096354761751762527457341242360293360786174561622670486822385519824549316132759190011135182061202950320395071595686143708209642562018186550508002219588798575560046187103284311089427516199873069681457342690209039635202448926156196329148992963455727619696433279227165098803591700097386375594812761486200194294694866145703459128813768916054363082128659261109617931694868817338318975268332706739565533508207919834477380614892264533887234320338204880557176436233045010847885105965485194104886738863602479689295529760427007245131679986674113996397375449824538657844255074805357104812844213759357422374739263128421578367862874304901244743707108118025968563714146014695294964128618225246495549181786319612176002360282770317021364561694917027222860145844647850481607463223164420947744380132222134489753109009554712064093361699306754959178472638916381127302092480491232628189680660464184102555303537727221581685595137027408457055948614503566346849493457210752484587082616939290561197217546682997630984269236691779181643088990738346956992279183294188527993404430912735866099387548097945594418150036830429449862534577944061156369098955134596310864765670540539669646121028039358030837874766939559256526314689285800904161804304985330919754932773237053988891746382605132285327360775510140760516327774268151089505279207247089850877951066745178936295083743377428538411949768914762958699036333393394164343218607477222581794797309174382402114317598445085783890173970216543126228915187090472567151131989512715667367392579866119043699377739294856808189093278305058841018356302494825440404253904784088259906736108494863831913878102596935530922794478810102871077360273191328427779064179181825670626557624121952631025103900267733334480943686383532037444875381157036127081042837886430733307176519777643782489514030380159978830843499878083837713035946654309202197229802050264392996856587053218562890482914296436163235314148004188330166317980423272750427277456397060025958575754645660742900243912267792964306559851636351785599757009986248739943982995472235479720695074815032409301519021954322106661575911105859064915252293536539047113314261979716360475213472319753142781211326839125781967196695391698002219066110979261499594678085414618720292756246126007427265975671990786046067116859575866841718519537421339317816579823534983025210210371538924408378882254192281883748715797277592565211671658402523528464231475461541718215968906512449941383520679677963593750391954915321554928064783072550824525274585246099082683173402703696296317115333236673922394986494417975424169185525191536384785622416991904338336277764399120945791211217349890875238441424815757289284645483587447445476062828901302543955683859741239613889901754043862533879792064963865721394955815920426899804693271855122359172987250900369629405428157231379935289651781199704596557109528038941413819458557886476667347510007082758725284287933011477602140154225245725740735030069526613768613750206249275035283271859145550188767352170315727103653564024195947125759841888050657076769302676559499517692025775255469613264878310425801094403303736312162816047729858800430925089580998812311048152079868751205502567047625964007429183518559829634927130534649047394225816176990679825888723853467409635175342381079813691293081521988286205416608867038181932792874832129678349467435233615685047632594282810221200453257104856635407774857454544599391031102630482448752169708807908772169327291783642677890884415023415724241792519862568537049856858912000514884487729897499731208576788782675441107646019772476123377108722212163997147591357832786029098732931605299328523307795261169036100071140378857772047443479959368393900495421948832592334703141407221405116785575157681245728526512296490703265143389903634838164857771276653813531153356360327846155447164745524828414610042946590447610902201912893825749726260486105111783668032409114064430251047870213098128844861521795275797366231073317386346986981106518510576155226703402718047262487744672194999419405732490456029546581214056284454235770110494167505852273260563955796044852222775021647989213595911609714116162269106815838901345115377183365355294212049486421130626084325891179580426679340825333522759486095277024071941809894165068165828521649126223630010642907041488532349723483744770848434656357874534872737835185734420635779924167959917039430252618282830396528911767519502168574994127220719571495815109899760782578366522890444165685117429197874710540857129724040298542973650881994041761399116831726725483014968685903750034946258732157086571572840629721687807225521022714520946278774542141110200577080961409355212517812827199640839123937584725261425483895110977313954693815166530430330098223439896516858210111721526181448834430378153023235581981653018761762523157254168745107652699752756181751165815862345334946294223587374304752150377887475061856993698549767489287022952161926077008647021635387305683116072198866462218781911813781208816231287154462410237596703419490513646410262271355068833677498477653501190182415767889333998500248413301429143445072243768376523967314691625755627143995074375128935658642187801456623978284105836502051679952808215926693876571853072165701007990676833474932012119317040681957124535569813049602780750889558943433998624125497949910992429772781798224519296122173444161180649183271047775771206035287827690485597344521684669255652124638477645694100608783498269711914752141730387032670474403889447078977613862110821853148319133993382753273586997534910465411194186185401372531058867967150576345521265754181310031040815233334521905815664127112091208553280793438899869318064922094836725349135254397335157715551123061708479771634987618406708486738373828300403751719146243081775739998794045317647184420436928381037414926309504094064222305498831778161094205422153051632446098854166316151671917967130316897589758486104847457489663572194037938426809817012141129249931576760723452909087891845131529141790659616874485816724965537730088233079698244671888413854729343489206958791991099207096686052783948391379609265039016084240728714874612160962002532838812046692478539474258660117412311197778359200228170961630338016637889352518223204030694730890021728866712438990053792280952502806792568240499778385577487529131315519990442816287016027578973674269278038603223942079613849080431807546517625381047277355096815301699987785178486956447841073952483020175771447675882508052220600948067094747849580553170380039990685347668637456570726143749707795464546834244026821290805908552710664619694648359109863054755183272008786672348908193124237941154155444737773523035055945960760052900633541526281257558589570745654589124205560197983240354406419890600531160717286921387790367373855592297150411919820318190806788889510684542434635247349920840715509155926173934081276784384927048678272199515337831002457955342155379025893555017184773311561057457638402448392815948001984210580361808938895406839741242619276910066507992095302030192136697014883433036398475552119551943421261749763435245203642923459758682031281435106438295363238673785262655325185221706342085021045496034618395524597619002181422555638352884131308344345663874963830531749395251951128403972757831645482051291498679056782541615320672959266898640592714989404356278333513582867389569842296046675899770326567429652255464247903297602872495228712601099177832602399180272748240939014865274859529428912577091309452261315693920766611010919680719939190357877791785568666452738562096023401217067593751976823849412137181683703599338097146109928551637492433861172274521316524130085949566427412971034057892559782733658076223783166400744944591686467026841188898279321235967361165940485116696279240020119115383293684771351610990651053113214514080915416769926229210094736765996299891551865572366105975501436643282360014858072020897527524074297143185520035623663634389294490601034653558257406033808765798789917758480832612174762479179717315555182405523055561126609347090016635799668198090539271208678380931695461710535814170695181441567247556045814431450736976271072004647883170633077524076302701530377918001220267770033408117166618582759971585849737282544981534799953682876400216474372638335589423514840684291609798866469014905348321665978228448126797810127713159916454355777029639750709051000410806178913622345922441093259616978526067190760645831066099196168171912745352939040538065081368305417286735575200040546800295480875386006732946564293358771846542855449487279030549280475723107873206152500500710149623162693153332462787830357546563228320450198208486193605927868068197247600563443656936349732708432807715920314052239208123907806037394335786870424400099882964560155108298493992575340559595897678746731034736459614909843796323938522184212577450848898486416548434658795220259662111500218427800827944971222652070466610734469054759269793155277682216008201266372992228989642480808370669656202844145769868316096342014226997247137462278975001068050744764410282992932245414787842228033713683666735484494536705866257283607744629852572854358061521861776024096165148793116172526978008702418066041982079487366404022557484865033486802002821756337986380024741515073784998184433806277219347099932505985750757662089627852616439585601033097132844161514559521550690438463947092020141912629674772948751101243148925869434752406832670099463827194102339743061111145297980962240175035469826998671372398182221575395005818514922861367072112300434934033654480306166265123719296191858818602368151152880002784370385122950873204850007935545617287183910119930955435646798278347428234553936110138985768481899133281120286911765157437383271441013591029251530263314504675402961110574664029843786005130822477594310364446461121218793716671725659952915943678128119267390119790140922619446144825353583188454599663275787453225395222370208651276400390747888440625495832595971223460906863058990065337011007904525451550764456629620136480647415643933576081473729760393975135300958590565765429831295173386519106919229952361485848613269149123930733259691850598013520901502479372005175259780324762067187332202031578255478852593414226361000865892633448491052612762267410657004253979771457391516197299433379712352924263412082892932275745252753617704223764030516321794825371064434025430184173617366451803663212857110704296592750139545750882337104328773774958301743260975562874629511381520137188563339265527383010236252879917505422753082773096752165809919381194394365372956567643324369970776103687659781382632310305313187934710024616767435484408195806513569438819843976511043715588428831479656033640481830462250974084110957097851924960669199685665887933882049008881820879914463711023077604239185047555606792419776272409688641635462350585902905537231274405823208323678992192243870387135735742746500955510985361157586302241667072547195807106825469100212683579988501356573942610567269706389492233559962287146182529131159216069689097930888684950029722447962232721950935316954112421362178245726490712221205554761118520689410696995859274520977188793243146263511205972939522942006902416889037432588859412001323509893352283808171375889683751548425965768897273992835971359602221079767672050688040891374051198756510818339788547961472479592273992220422384190623416149108533958670041036901600875284205143860450427426812057895009368970660358392822136429113356656778094179997855062943965283206762341018681506298361770716887388283472117625654729341166113585004407669152395670357387737011557162179981346491141058211583950452933473285502435711917654537570945436807922965708553677489830528368085254111484643173435932331784547157204366051032595212100466848464727922323084755602359345712167471253222066662933874350704441086101538489355449630889765497262914742587950445024656431008240912283971283356810173940901596223518104791549663183307731273865972008164480953791459280585259742613441494055140735590555639391085474164925153974185918961288346542181744124337400559261981905399558650121957844756880945874908359782286811948433758956008464960297989208999160595470474228127796355551996670228473685848369496531051864279410456659816097439184403984671483669158653566321959706155619011527415079369241794338246032747627606919084356960720625323146984819567585791820622413375571776745841979264134075841354280438005806110853893899063973159694859704892782358734813154772633871222485848189684295045781944591060333734159011620354774754008403460292695635463100750630552603484216728379707023184264938348366701983671943790551076989998648801581724812510836761296451476869603266457805539015883201782546301740435045393192293591469771634549511203200273506750773770015108568306508893633675033319389627945547740454783235289611217878598944198181583200334943363705787979330488148012465022837943981171316120100129364873980521767915917056359005321211836351154056180674342572670100530977585307028069017658304070223984381715841935885637187185020189415892594458611833614761012440403469447870539525974652828116815185217733821583699688625460329696244727934266274409250037276193804238119343441120395880165612908240803705551233323597345965295706161037190730881966156371217166592685827220715643834830291330622504616203471852806381581158422282567463932143261163807820951673138199742041935153412049284215424789499011091950472024065363990259962857469159308998969841312498757803645346164582565228355132598938237510123518267420676820000923659241881511040097445327181625552536522431650561360652517270141881791397554178273305940556604045647326319463457186603221586412855660621249692857805509477588197395538444423822645329776310008123705840128035082675436188968405192373029968749149621554795844776646117254049820891039854327265545538727731909271166733867237446132813958130652383887417062595387184142310837838129487178399759647821166482975357065910229468765386761972166541917961787519056322765833697192118052574765873703047004533920726836992777602835666119766703847668502204483314362979622337703725768137228217065049646705320071628198273366861139671048508970619196606164004988586947637477277039807883262496007977364763613705835556921933361807655053907243362782897015247778104117159805389073934074904573490734860659213648602829632892824490845536684260024989602314228970861526203980373811488143844514344143342508290359761090530449384140464217012508848975586808732292091304712007029291539742028552475400671907579221797325518761237397574827320339037096777244136964406425613166664576080080619506947482937240451064796846342606823767393174105761473494094735590673062541268750052555218489046445652260604287990756215657577047690393592997503174098782583409530958873970264122445240970086402651730872244212494648155145641686997346290702158095765097138701077599017435416986753026121004650890987386922298416034281936395407361303334025626284206261361877252061952304189503594146366383260369201830162736188022701157165510881855488869952424431575941351629906059491155464505075248824184177828351624504279756465686184722158574066224611250870025773681724374011266393653922773186830767218359314322541751549192880180467218694312347282830365658322343308738693472984956572266183833000320986182256194784887174108456282039772646914301536252433326219269238596782084070956240932123275751274220955813359730404508823110516722606055217727333256687695877145998268310129349178979374974352363691727234725663505935577347069629998954910294897367699242148759081621695200577180371350341727793294917710776181960599331376794578314205086516067437551513642464216141006243121738750899715212130555327521254025168525726517712005810995400185494218482203511918241012276233010120106394793085733542063122546554227173370141174987076487621239384804430607127652373007644112728341717944927059790532367849698344839349602609609966090177147105907732100503291656946081724930589460449932787715898013329473456968267743871197829150800147842436924102972101497520693261804077330542646394055161548371265251755219531789322638938090506432327301928559219351888605616366644624476125573953728527369744510797202188013847965100239496407106899529418730742945968372723277720265308846091137646771717921884082941025053893698890869902201693457118759366574095023956324411236462839654118482351846313443331055867197425580063087887513134677181626673450083584358010344127213623382381063177491953213278028493655737489830358960990829480122116388589182919730349911210542510328049203689116998568997837632019524547929432265736928548047871474804073864924944360432746891536469240402642441585700107365168641454246864074355802017337011290810165758097783615326578089215515863480492240775738288831286278428822535065920333224317515333619855165324261072048397649004528722134540350636391618291252541188096668393150175651122655362743425805625707134474048109690164333440522899624291841967948075865378754164999631007583766175293141944194300221637069323245800658223482643817272101789100720258053516945358848577028372158383956946868025744600033940598427826199268868282395906914409228508076590628275225422934181285571552302180266113070073916836997320475729992457956448361578657804960629999822652214752965685173043473565192342876856796677227214305528010006589571802291617870953367795453508341017277547891022783092456242456665513920741660981523921550688835204086700375790806366155472123042061045337563516093886978937406503684151207221681546309951294131519367978433102460511929500290314047765352925955208234812940443304892047179145194544566466648836233442619505848688413245676229576109196533017389353484658205902152345907627318008062587830007857291519614691382462773669759395830102748057116781057965012096950607008520943369503622544998707333862474311773721344459088497611829556614389680639301921018916176955892339412590299302215861082484421072374043068895593222363405649203972108297066173694800275121625937156454888819337507383318670346314940947162955819031986380856395789181027798180747475389853371307023016847826553334142077253718907050158946955872913232444209336516168342225306610092485208389593028402967101825804472283806662586059893915696106942170321562093897336138328029938696192188475383211055963990395367936743657819412287441479647587205160356276282290633725911668484173026858179820441786626450287540126843808410744238035412806245077646857650781604626890922996047500862120314173830796077293152613264549336329104769544034708096116491481596160548529758522322670024044625815305805732308005599538681459049432739492765341681397357052802935450049321181889881321459991904651411682362295969721911286781444729020625807678634344514814951471107738211840468275614509967194786400784967401344842395502192337156522317992592183749486383427630689182900797488910090332879135664548324364888781593342068668773270974924574574539357757108294508587664815243306242328228043305473279252930256900315398411514106248870325668929289747715803100488916207710972413824925748095674581912275945148396143895342634436526583060768005521993098650205641985861729990272278577729443238674096033762819426025072711779904763144372790989117323872760305292828758354453500272501213190724086231843031391196585312778572547199223448844789656796475248749471393899080857850501847596568701208069695943793108896197365110650351035577556693120119721665280640529675094625227056988856183856385389538626418195141652957593141108638517995959908665100984394744303247720387593654822877610530573131689460726331209424480950883023239272425881111562528297486966428506734477066463239814446348214610041572431620344850292926225631213773261200950683486666302294043753778984520415701110017308738384687661279438059411202518032945235010852807038174794822828779958962129348670252863794557668233657159106485686542380427493713434121317087741914712887386872224153662336432930141353156810376584393054120423737868356662758584189636073269475077570118665606849461340653084187231349177831235475133944975483802581854177164199343600139127209102338117481118913481253309075691604298337759861902811026866680589634317276252293482844515158212731427824352052474299955925613966938103121130123844042397235311691863119638466248799707665984576087906503362855618730715305515962740679479017632704128518057821056861129303430522747519284959785171769460712998416636977703947425930071112577443027436470254571331520814201293337665910835346798730934573639594883438625895834567836378816005085462107415068949640366333711984694347848883433147524652812469990870643037355780378155339540617132305977026187770558384687117983399618575612795190651281553416309034390701389021071265597526529061933683634398261136006191642518329994207272840252797291652250400316797275867974741368193735599341658343590284119981905579480157154678674457411533882555188107177944824136718291682156838617047197680663600623643103448284844073053205536119791946607009209286738394593746541062355483626434978169429682587053637915867945282017413220110027992867674979059794615170760852407210886804995019141730149382094715208408593946614158813005012786730769113013043793103033919860160482209532420610220504477711617302201995824297931655643475716834351396410178243899649405647423109298329488825186905133492589993487440806093337970893720691399502624884595294202562370666980087168257801251988100638288866793827958474782896049892566579703370373236313235794230535205160922609041830088798266855250288590271702352960219273890142956548067980055678485868754954968036390321221461119464356037927149251554901542893104292583415260915485343041197776320128462394901905334242077214529404826380294271018880677180663553874509646404152219254572727915053768054255372781167335404817717070086807311201924475786571578851053668110106058009957565493218308037333778522326068258626223730399154362526884500964333235805919760214043222260585007649653736394162915523042738889313428209496230888089126575835712525071624237287941259943224523640690367067342114569205641133937795325245622944924566058041658829639094654240016159670129855145942189512114983160848736157341722664048005654166872571210855558614227868130816501204034287170687559966956828003739262068841599487104635422632285651890185605198963309081272586807216696921920619112501812090179412011096992506219332827743961673320857670230596324108265711997924297093796897453752596224126701420987720365902625834120564259128787704463466566136408512139881737553327477230708650996679255715126251075915538322787137150531773588551137328751675812327472062787601378975984405729282421255219709172254536590574553183821552434163939662380868225619173523647480274852149812385294237990388813942880613226225243931524563002462019996745467293023095063567052359406772585994545704082246208333471931174985171722694703878032221696189460187291285670030752852542913035675835977466873645825058348929089298617427426083227781634413534622702503088513221460882424755766566577302655533789263798330492568750736207520456156728420256902395037657656409347287236334068639431910724141570872458838403952038811886912192512275062453395847542362687797090855748162837166195608768555943895917373576839011939079886850455275175845555129677505460351521273993697161696059818567804103753422141241254627423590268387786534668907555033491773754701506522139787360160566442622976591149695988749618560383389619917962129374935456310131806529131313612058458763551390892125475310705858766548975523388272317528283058405046296979978636595325559506807566842999545847571133926402077205572160396066224639587896084315628238564578606865830450308447967607489267298944853424525169352701212329588623923410156213948414025327623949373595609661545303282634653569573740645128348208688597733715170007683381474845263851515457109045993931866899656647793600110230513305310559350523177865457197855270129973402360377858097025995658585397377148286024802788647281692434333575381201375700398328762916285496312378095237518462410687602611878705885098405514405259705147160973703446644779325899139580350806636778913866752368501391237755878520950085065804927011787217288015314753654567977206668625698421554800618914132014671495667974101989666125078950589831337510756582677865721053022318896736321486286474271762801908151284765335816397591742572794620753854340941341982976827651996101311673622957486762792809908533354938386643806607471449559816131545685555909447491952916286538389521284889668254678384384042477188358227752590216374772331375189901215124392559486394435244534463839159747368548013987820626559142931631397016159120159019245663328787544666626243485164340074254348779017190214657718966117961550205258658571093031812170288310578342475096571560932401198685233672175291819340610716100712795749395477357075887031394694915660996181441459601572692345824029568423365024429427749868425369412269043385242315618806221630330950718429187376313522478624504880469811637326885186012011583217422693752080025074888405734313627113585978810375245598027511954798870231197474791306436115103792483782660018029404008580729686148188993006520904651524220082956514952362294208125930498633617385518256081807230501905243457728901911357159208332315659711073032522332728387044095402198148156994946552033638251567848563766979760020909510156031912670930072884229468733722378125541949143213285544498968961912246048006554993387408693533191412412843685521788309180368203529213486350476375103839937432678958650993774573145630613749300712844086143391214781370281562290270583438201670719764518343963913151132657027865876886066258278839950438303510223562663523060573363125205710044148054642762992487544616563970675535342859397028674398143900744793528829455000267966877249084250416240324655007902724224172414403276432184353494852673018779044352948288020501870757362126866263951090749020175124412278812238470782988581786582592679313701850897160288856560488866335858639392959489021694720202577140144750396085839476676847973154542608485632027009872126422036971113557994073623620863672666388172733242715403116489488044763100121252520158173066817584870859989457420685737368660925264712376175009005314390012190884929801240935244355830159703396276243093218602096584657478081218234727955327071427775753677964834468852920308171341833393860526739044909567683556079192982541546048993125143729930514157144530312689194570699426195397527062658710769610466319024874694160956927000240104076416963678571310758818700731728933818185950017089899501301299033379118558704535686594710966360042385993336731810138162059946679556186186759945794050782823587386608087295321476671714306305877384113051675506391439862122313317536858525525004478279988212645291562186441780450914192443209979124729387927950212540703796988743376918293633687611187510346841021007776589449106498996356825993439959372635040852305629188018620796051519693761288351003493045705392076191412756749304106756064117857772885898639708149140100044605770470639308525565744047489568259980994278249346173277002672706437883355020560638660395352864254332083695268729544535457984606033438443873937826014000922641896957875009865120679656179250392241891472552474482823971506544952202577776807251699318917599537656128005561902013677729761268892181015418170605519394292996908268708348068999180346381589030468728833841365309826974664085050245329717270027152979716136204424797185542492000738845741890907769862294829201238761542893126053455821645933985285966455099837661586203202904988463283042833258701652428307080048187188476758415024782664515832958072073235056421596318047625431872706388499172218895094094970609033166354648888942661705255492865684066611816842707844716327100205552994142859371938351779019625171540717464193245823900346028007677115892807319548191508958920360168249943727547885775225176521306760890107795204430417243110804666946858148715233590576931179897200738158638638111859670157801989772227188343107884652719933746364837295438989127242317214946669064985238610617774226947591024412486162795771288621116010999534576518494380582120334570273089606909928875019894677283560887183029409495557697359712267220192110064344065147816174335901035342547368477364142173203806918872861380023062317533547294292410812709275238143354432154597852506967518069455131594042031016702901798390900469776151726006505532575399346140211253981065569842637231410323953283125128777577361685413252037353345590162454470305739973929713238660043558987949585934900691334273964220698077468612001068865582625603257838999526582560523823830319210321006816681905629458522525273918958688697546192122395484927532172488514949412772766892695546301414339902724651119462668662039123540076194417717651913650619171431755833530940527811877998425724379014327616604088963273664024239263021220266655893796464190018954317412084892015914430065955816944557776793335439761527587781188694221160607491637785931508887359517310120450305682573658940505163306138839433930915188464911193028491578093239542806602855611811220876315552663472526083624959007686082370730811129468729974052274665106446369507276001863146487868306615845724037834432873025077936120404208604202454963841890771119084924113863699093493513314775582869879047003125112121977850665151053662739863595812325302413453143245464824539411664867332883314722303550699652407765939505984777938183935114179313681847006950143202840236800394942972821989168219249491720313302446775999094825387767885191055048210457265614249114633566156494315579640227850683597875078396342627510911488133822096366661984987751995760583168055753941491144559567045443345123238189451299231743038879302059060446580123463207362401462396472601468916757199505842394164869798270161930571750776524273177931911890337917135899439357617087855803193561942040312489471647216206885707583526241562686577854023702351351298432348123823223885145183071414866424435270149183754731714757410687787525040851034788859676363300690042295533357171518299326221766271612903531664482772025287656444021790768875290367218087402028271047800462931074618825274077285693462500776003019576848860119742514567208501732270774178577182197878990348554678395749937140660957518964610540108376528857494275271852422062490604896749364552349381514481576856392758891947963927773902019409476900400173179963196190675700822344337207665085567579991821863354728002192766043058007473395575598398409168236121241251072464509135751185469838542465488604798053400047507768801915330408644702847484674468254470251195678392491855186656313971716718519247759413642700319506735810801707635619673810767661389316640771705769643351128055540757385813726083317603685450356852383006435559981468865388438633500231720579807235847077159728810959354946148958605030888375636691686500793787089746782808910118331361050192706290318226095841181237656799010560099313211688750144019346987127697636817146843822215761106000413181563606641096657611887152804473166324442580720862796903916425740314901617863414179072476870983332351620522004913368639208865820252319896849565630113180633469321973790200191955906916790409736450884850890395021088226642901746627421921605971362491857006922954079603266591940192681364202215061520870639393110452757650052257354543268341042712809715021585105702932968639655064476155459845967719701836237405041509035075819974648988320604329515885515704283309441905075973628584390970206899573095702464008952723678145503148807897241217644214650195275831779739292864632373241522093369354074643528918428442810675839962931240264360750352039486924667511190503854772918409464545387881334844361382624236219307367374658961569761234956229866182083937556640986724002669107668226215586154369021999403340056662918469620338879420957981395375356755332243509954596914446334371229720920687662678938761346709984835640213985684171990673813760903852701683064668116755252932541003268351936633894171901170990055144151180066091810267151973611575304986369701522042242070211764061842121323794992990902952352055103563413721903043677941377262086947025392264050551338241136842532559765607552725235847692826065304891183934362676228673434586918321141943071022498054648798553204715448735870676806610337086375009003528457751343907202594941848238385140739947447366579992156135864634422754578984152710993607289675999380058933199736610360783154585320684555968823162092552177411955550686179031047576624739969073617051692604047312582674481186392642747559136600342013348891169733756229379624834440230204265981750498835319945597808475679229174459640763846709033571322624288944132300113339943338274736113205291163601166260598932895444620706067679695324438235238881744413057828359079838229705668805511661616203513253613152590032965759177313356628242871251767350135597387625901107763709665899482929314954567979739845122649243020432144285830987626603402478378019533146436688744478826658002038929387491709560750320385888501585757148365126007449961574372775557987638819386283839328831032720671840020698157845016921170599536953980140939259666397186229239972667673638444821632976495352721325208631385940017695609782084529458327751481926034666606474728490703016459646988298596612228531506693505715203752575197972897917959179498339144772354599662713142398032518814500638755686539659920238112885084391931945235962208387952106977822067797749387831595549655130558500464290999838759561358590138578618980453842230352839042185823023904656452969578897519713170163228844849226055462383715384399618780433852532758332735503614523718008980089119075573369321610746153363106490361247460080542221391472534428505308972150638424465944451236641239893220686451455152467896801501170832508758722367273928218878847706091211638636413823731358142299163005431795516075027800021249781845492076306742299056422046669042982038481257270296168270912542409631742321545798236072412071639900292248576059278096859465007702883823995239188156959567573918007784519425295179623804881927686595673260654381311695364579785828358245129915072929978543108951574859877224934406878291121624587985236909927342524895714319729088166704841369748300481764320678461473855382106552466718045596391380272027194280272713181807340790156279556870738105472573294878574988112547386557251704071878053478803490422290682445663798104091655435926677682166254793538908874757398547189867692870266295561846099772912221258510153764259362558312510161464449662248054854176553823193014954395264224994519375048505605794514859440516372006734203309631220472133844082321384576903864837472267870113364212564809421657280844608321900697535516979824640672841862798354932129054741888901808552583495901151781950051604485994543660246718434188505990503393448163707253268297136671771688644439785191331273841647217195012892802888014339292120034519123902593939591929251653940425501635568106192494002953081717190597987403373578085555024577464531616379208364654735471619489674509096403229807582487543612715746307264385476539013190589372675228905947170232212548000044299438844177257501070823923922433399917759214825060469247171371251282505859868542534375837727917371705661607128334291672717553915810432656911038862580271139547282050024426638385764906459528104481772589956479282840059892703547268556677500832836828807538690505429833351456647808791556484998481853941385372600341265673563205004475503809441442017034269510699655762372930779463746261579504258488754158993444895705076147022164750358598874234986139321958973574043421961445152023246834257453088542306755847638157855983360876561949663641848887173179352119361447228549269343167237512484210880835050021584500407502085990346748541205482417664171388420727803202104872094792494231380782867679558464067401222722116707553200430879049635360046543157087708301961064465965166832079140234920345443469358942986002676263316672503118831159110123274801996851504230854162445295324250513772591542653729034472042745088217393151283904472453109452103684083732883800615799415473160170855989116215291694905775973285773125973258267628998458006856340389967337438990600157608862141505852690842633366469171055579684236124293562773667020348691224412939544918509369226714953110734498333471432677892311690254169002063175092055111319513038463868872103279852948186204202608120348788229243916072134288122607183976921077531967133865862668267269307291613045444132571140720134925949159287785626283943483502589336094360367066998508715525212069957059075243787995296965024756594303084794824564467356585691582663143228952214041968652348822947184821377123643056464597388456532760545664619540419333502855524488217127907369405405814880716907939795241800107968082992630593179924517277113664024044990118697887912806807475119302059685506348936233548248528880249985168528647245215093462612725628580149743792062713591489584429384166445267330654315232384015595119003680328001029072584509010595934605644089606257826835605758014177684807222254999563033381683582586191934654326020719712016643651612658792566236837414527080307020935976142930758540231507903847478918383222607309437904589595351834817963616681392314253094757050810036646699087641295252663859189432391033463954720670773939309358454401776606625726432999725700178562811761644820472064653782304342950769379398514521007903871028839981144740763825159254071021804584745924645886189029533411112972894868666911992018632309115206887019187277336818632341481930852250128859337385287120026408899612364862761443633897001048349973947170119533019076946698573662833287694959418354442411624744505209193455834680737314789229324586705168694840738684408738932391551789565818684111065239964045274129042008763602233982632799544812476835604254857365790451885855037397541364761311461269405052726033137265721791266894589324947510526198173499257848453397002386289385495302581578710833446830794217486768352765395865400155398786165295808024098613999429989457121221516941263656138260567121762979897435157571509472005606161282790731943032369073961562727300157685136013588638083044858952337866252369958451450635730470104195122941371450619901561781067406281875023878533334442935268820891770115403844278517212276276701172403107891848596299551169844647057163142962970143333150767895380883053577219101019156993976107461898373209533070103754174941932736449451991166791691094230318840324940722023183913668781075325601087794160202979109831010095567085206232065002774637113886043497408170109270965467213408004173597623112202398996011609947825925684119884759060617625498772504088190537208189986702607379778149295635484292089944556490272654604055865119818119356665980288076070400292952504689747539602104018147265645916098194595367879060424069531552440365926256566806273316294913650722278826502580907893618640113073145917952094082338563114656604038292505251160347329716167497631645018397632685127639198490203664593419020988727569303354213128334944796636254778701212824344035649558802287390184135563574562627936166530877187807199994253599609132098776911934589868873204533994433737527274350477765293706976229321630976915253760682594940255470507894315351989108953479981721175258143193345275538890005118882917829479589441565340022790129981125605700615195611688896939549450735661051341246333574411582901942503471221972338747024682607052333693253203989761449853478670300340555011379617872639927622751657980288752698561023968104078739494543043981315928830531797389293906019825118120362253794967837060274214105437526795043727829623250224650667253377907095823292464410109156664004566854755452779013132867338926478608247741589226847873683844719890734706361977119635412652943181343957140974112961023245726503536250028928572556419824712896614359044355737636703303364769232142809471540875428258548155257885535222811324834322173405349230038703917413823695349586299857452872554474211934795598059634898918095856120775495576178332858429026676879177870994800459577153107458429080499851801885234686386431365133389972634501055630263035132799354419443203528635078336423160674736946771141151126769042277013553324254332038921143421027992006584065807955934211696314599488730531494226530287260200280573962690076599018867763979292064848600162182996142125289478030869924945493818073858083051700697245894129698270974282868638273632131945644808262793574482989691691254500644253034966240724168047320188129662334354209629790237392434184523445097719141730986607496369926875713008397666688731790985590161898909542713155353010088844336986739992326584119202655783062601088884151710516151957467479882022959872245304518269787516760354434706328432661040787782957943346570223313683841668505251853177851825219084313654604173793071352109573009880143837285238943883277575154610847790773356260658173049556715748403496558015779724725678951717549825046006973073294385916230837977720360089782785227025091809148915755433694598850528999797258350611024691642143400403410982956783230899566524408121318508243808818877222490094503779137959965276629465034037179839367260031790506387609776487991165500248620555891328912403908530629525714206911506973731863360567310769306048004380902706733566527894583767823499820808035425856147242005526707981538389028440191410375453672722449357820574730524986958608421001988549721627943084713726428862669602574332038205156079842310736110254226692681200608026976605963326511733712973050180171007315961276442575236847263032899568018136868769609252568924291487783092579973146325723674192688530977657503410850006152065700606195534074683988231130614632874282136813066313068334670090753501088119653941334371890907019796762144963814830468694659729224569642200925320507117194046893699434575995215132777577502406183817961802261786022253368815702144735627411961874148209843713526732054496859171565464434930679461676727539679094231787237166393687101346877144626050734197496889677784273667558335650196470456547971800465535325091023551289857100675044288899728842190352728990456816955062420117885251294190782527604983293643118678671043735012710750507259614639254005450321453178678838478363461331389792042508522262780775233103528862221760243287399619224005303758399475588725328232794450571940092647287048967178934862091692491706633499814912146611521652247694178843994936675194837467331166129263934006964412312337416997901154344878917242673163333672058940232042394110030569558773444251208497509036592773876805832446888709742831894794673273748809282754799474810499568362114869399303719793588335550000246904336998201341630574254171152831148581189291509887258132378093039583513258744166206034121998254321431325324816354033000871062592240551086088036035741165216108851526280142349782354737261456882343128073364426286442278696863308319131422453400500682178234765914106709392956688706758453582555198550232100506427735910026074221756394747635066139564460795371952125795628079374564960866584926675318648968470489750424652458149509292289972211110172754797254616583291156950922236628067634407630789374195603807357677641156129458234608005443107219146744556059054017673975088287792244008882837785535483810369305341445547229723973071665626090202717508120740566071528187858681601839276881227644914798230177832965555394590805323046415376638280292574976496350500965932050874699004333180300093529035228437942764296396211170990119191913427640433941256582484137426903123412706782749930962830860721329140853270706830185435542637573340382508132005017601854746865046413881328681141416828928292754840612798221222807291950109443188015626692698870262825170776564279265680332754143780427481882493439179337436782399535026837114614522176474287619266287178168661594477988123612150854653692139272028788761107989497642715563910883466070177412633902880912485692953713540466236748104951640690760354209857567297749158883565334594054955147352420154335933556583111747598361986922987610216838366643476185399160629270456262664924358426963212175310361553545205970824381713078904774699793681618967039127044012585535821133893718268540070159423706367918981482736557344251650492905931439526148129491274277044736669273934642521633224725114706053083814515936286919048250707634842871815766546386858201218719947967576369246401526566953972018192911946625672696530343243690849053590380191061006990814403650350642244370727574643010864681516197832391532386081872952878433569722172599884847195188534669218004089094291591415935672285833055827510923394990384743742752988211271456082980731828332675993026021894023686676238315679530542783614588065338370312854850336186943509872116892955811250776646847828383395485225434164150782191158486991532982501543493034994690314398678558970199808716941498472620329763236322251926094307421468299716443912998449392780736928327824116916514018405979327305938395033907023907582918565875403650850110107931668995888642785716674357992675548624379681442109425346610051180310922314545571666828378791400126465721326516255274035700358114945661595988043884650056567266673396474449578555491198954943305897323708211720556198608707491575750312017105505640911359218833362288566302299634217930662727724611194857203491234049486545247850809289827297902846604993655307251858890477678324586404954098623090551820742609083371351833683325043433897347002447349640370540090538107683669819088323194276772954365852783972935569057784435350788142869741621150474576213505370039497533145035685483253104542167561089045667787925384388920332752743777797357498080704225686476045935332716266270824770789515648451899536450111421123516934348669020954135713893702854690579142541649360827524183015046720569387351063137171847402895556349856903304728870538671893477974598076933962927386065018579220037195850432880015708051796646183859085595855348863607254872576511874181314145155549649020824981901357150225828899900471676524853073035763301917130163992541737386073424808932359241124774201983308602496374420103667748599702448837220413455421873835479270704204332991479087605691785091210244913339272850497359335937690692725180947731282909676269128958265982157929175431418706785991539916298945811683682125429733726099229147711611841627564203732780596055158551488017381460177825593328976495416942510489226625738433776168304950450985390682072312598907106457279608257519555084016749994677504713195488146040912452641031815117260227140457962178702670178350913000604276766704557228633564224160480247710561598137620701016348725167962159149156413365924142555807805276134285106412716649273062514737415698463470583836806165832054163851086472039798018259835765357269061689232024415136186621058511816220446228735988378755607627246208758496819837116862358647679771768611047828342094681056911971065871699308603670511976303218673376448762324030461213691145887570467550257409220737741444564383380762127880101104491241752578203140124261981468023083218311554310324647278083207063238836073634070711250311593637982854080812776457025103376318755213503930440379486563728597938246559640320856347226693068488416712982768432847702444543077527850106535216416941108996304388966376961422276069881882412704250332134003458360260774617138809316034759869449992998995120610827088678210525657402375161146471528697643302532364915110270557125059999850756479543676797517314090654620153223197751968224346813435714170604611272580500041477997469748320053613232257283754996099484077013940310006436786568134710735118712652797087505508448849856961077522568169783911660108449525757461222633346731266342015511888592101313899479786414998660188635707860278754464876492831856380797631221292702156427429745204767335763862900976405305925835131206887399448043761966375707905148401302021813658037269735261869532147861291725559540099977358561018248593322304065648545656805914221989786853582042855146555492776388182100995243679794926433539263550621207982742402444611103637844754776309086866374541508804563352142105344669897133261853747332545517918986248916691225719045910986010179569050108698889610093308855611808424415876861530871594748329566360318089333146615033928013502310727567490607710029862511088162924361093728107427803541473609647909846865410450472300623021879396180021706474067911191554645892505094346231872078495004566783671382872365971165863000270899219770580845134167287896759397803405608597754683178299204398999664983513319978497179106757422123320249609232877814345114058646505692713313858367415360844264464417943634387538527227731434628363380894384693976618569250290687795670928433000167894748480642024796149913464528104496787801275290178762753462300373724669342462745665780704057682009525598193994835854307125153726079467968547201321112692113957774722944892196300735311688972894326274775153112481090048891890569498527488844612605279950827212256444170888739885576645353620420953839493840185613882894880457841038249228016653940421881263665949374540793530042723873726882723738109354227291376347482870102350778430164959053502067269581448983618147539491381197989649120695452298477715702465795118721129060972360821600476599299870349112760522091052055588624613666653088045214342165394635743827255450490224621239762129092207613526935106879567343289922284911562299738470624555527844019183934057061167591650612842228801612941274258159609806129890788144138943641713948574144616103893659566465222935452513100702635638847076769246534710795669776647804083085925307678686911396956294996824918988289856398539181228529940402327752887359101080344241549217715577611905737571638157939058800903154580817150456981505732385796431987811180921699049926066896215652421325924108037336315807269249608220887943445642244492001546898216193457494938533909468079035285038481062843811505793454566589904527382614631560778155455728630076087406554005151457246564257537201734961786843110240854891166742680135530182689593415387039287088561444320392247839649782672389579983229091676272261854650935525852704910481719000609642164986565950526201033195655696139360273627280787654458605442400010336520777915472318392758958998305279486633371148416594243086297266562417088850465095760369017459701167280658261160161684568234770901738214634557489054402731982834879042845372731783178042119173234313991456437879081495399837378749189930898284639485095658529935207005844662414514797817298078024848839100195237580638444216222084479842834905974337813358243347469367437407413236738662868365652079516694785661696808618424543113766826663083992912935151027585254893979692234526310278217184464457060470118927864151635417368092229261143993988091001186170297716287592532442072238574035401320598004116934723549648543194569401663841738112668476259181307759450839063173151079621249171957351244825110849690018693590230923866663979866243517532150098470548211124912094408044079580101686583475059505433279026266382145692617683254086593299634580903017389348821678737757647913646725470797600437349171277177487465366437666852198341558470831819296114292727086076847246834189827208484122299159552893119661718964685063162416243393232848261671562339528279846153727311732924353482154028635447079396102221833731754710856827689242207036103648998738586503088002444360934132214901847129890976929049244469194406325314394038148941197412785896313446669223386871928562155937279594473240842530040046904840253960151135029890266645044533179323297308298052130747831612911721457943472471749516369980300080462524175997917117252111485829605537590257010882981731177895914018724185022478112728100841577816751421131828488113499778820475541252543044356772709228018717011804114150308715737580704735380664545057691233255480768547511922551294276973320913829433298935831039009636520357341504888459250023102063184777142656294282419720069231017462985890430277532461161863509096784182990453371487711069114736150244202346427510774126753220566013967421830434226936632866836668995717058736020837930134595781171228240337960784372178082838325811798464660686641317016511336661360993531855280843532769759967438795035419632817188809429004739804432721379671275636316193973883467940031188871788432070176848205205337568697773832945975010571118216072412136508459529358718877584248399744129867079674770386023124948385900967820043399483786215880705204844280319673309973885094927549794197249007001872290405008268560206015045455058401161449806095758604467136909777237596267010893421718830215505018627704857677202211385495568288519587838764212843350872911881178405222968881084853217536804171383577612952016139539131175476989193653307497618571426263351463312510504741000498835435504794918656255972754085767685067609583507537053979693195659702781475868690654232681784182437849062596117201612145847385685502843483903932996008499766818009071549953341526435881856934987533515403430862262481011394832148603987146251801379547061802685425456376759253791737330769879611126417028997400364831525604882620710825266050653102426739410482811752555138301715049650548453061086476035212511685721381367471550910086602949658239937226735458880867492393726460152940309872635887418698925920024721534111026038718173841458703202152308177565031944844904995571988719888383812575784442233714619647243552750831279701188667543414156013361279631149893144407150902845956018992102803698105152878045768739120804655188237253685015940067767751289667518676941492205073639007822424564621465950046505085077850467034856805202500354228494649789549678520791764578492218926282426712353118057409684815440379594521672989299473205259645382117866240601767806038189390936687491387769369318792524873841507938104957019669795171840000693533801572239283597612696645902315901149155901624007917095755964825698751671246483125560612936600554740039320756486939831213304882774731403286055806291971019343186709666629002328911275914295304636367301872582422575023055115696100172863338122725523650373070780339385989611424789173128066060035679583542464308665531564575402299534036989830451998799990875125108732849118529068115069878537755763453549686480950621519899276028301008661651047675144444956664157543955365778941671883836640857888369119889457243754898049764396083597211310008672320241292662699585210528978872228375872698225157277418534307598638567250865453274846407381802374182501833643645513851187954223463824572260443317829706521521438334576998997154387697898129691307044252528984135475601907328832844830728827436705930071640368520421458453667005568770009305772119624297587833804185837656821589556990295627693640910160921526746737932768171310168454005201577435783747978595364975725752842487580536248865697709454505493461182729413971102242636254086166415686787126887033299183669292896440396594477813259144766451437967372818427802760067113982271925223335035188792589247967227838444550638615394480906968931375657781496162647696251059685767921827016721886795840592622345331390918443114819293299959871815830699328958010030433634533018800146515704818158716290038435392162453659660037456302753008528238675620439403561662388577550724518901556259626899823436948278881076010952855844577619432131909364762838101750793326956194992682095022285979218932349870367819499814853705878623624594811069023163073347286056898371328664896007015658244602711108247134881659892459382548781052494317729415985029443480938918668833065526130162380950971618138280033431179808616696096181371055422225927825962679819990540531288269160643225645800855902599693005779483254842247723414194689521916251084862706585634626002417134542186080161814394348942953043134545745891691016554809077952352992128239978494467983562353604714260528536136968763366465613502283410286978917946702053403046468594788173534848810575174185144269772678173816913727307335749443188747553230731791392411693570554065165827084677214375807935653688048118451965188282450689033184954002892268622887319052807636795339632074726243467209837546185468731435527204052446979079017634357211268098445690781539517337879895033969670368024545179781822463900056113458162475702598103833842142190586734420403053405884837681747692330106115078544479152506653476745182727591981124224638977157358148321906971068650073769850181239353831850716026289041141487704373054912873144497810411300201409819755476688710693883680020479298387352131732476787136191364643503949588962836722022569627192639196107881548005900088422526899823074029424426811281265785798879767164517592893746847440413897701386626848761513023592148263398721602359055494726026339536724304094137042763739474817530145652937304696071710324926748940094512573655933965166391950486395539668004408255209921501116678949294763608570374771074512155127267931495701216460244284369580485955699989752853187687492811634439014779962963646087908043164370028197190427338784829978664139553111291857145938031245800519917255910281358324659612644003503208911266006297089161244883431589526623947871528368154083348926789264725343588933755036634689964140486067606229218687778548356981487456154096243973870864793545479890645005847687428772292641161467258711946651214188521627977652697934924232759488004015899982999754570250839472908788983051545687146993249100471769106438920588184723725521252563401531540031658931614585609821720025423231860091961618374650831878469412940486717957010473308217222983228461429011656597666350986844260520460800029928302114757549182666304348782201519398878630015397872859014228386252813720051942762387103469896018817442122540872495938375439862218843301202433947263377678723715876438296642905460992141570031858802188199882823273027933123435045167345576522480078870513477579211303846451092689392304471876990141873014629921206440421065900036144204746526830914894257234674865354350180601522123215960605551857917659290046019943240910450368734403940354491104707168757618106243105661763270186105961142627165140579472324186991300430122378845205127380964656707633468666622662797593740134919190998537413177220604165371363550138708480078243796911524637471695299038678474650936652779259767024138434904319176172572886607913116002630986701678813323084429624003342157857873116214902876772832850024237107324293984515939657675265627431096694102580630641801749500346675727493460629106448589405090002577930406382714140638874138126600806884209948819266447670059793467241430422382043967825654328672711625738019236717521532065726079582678029677605197322408580216835861133575050953363290245938897261979233047628932129938807254215105527007105619119212240468328150818054397559947217408779565069001823173060117561141313751756256307977896153659893362403202068122394349307771718711854229257325451966073890197939062334528647992260013038518529805908569937603406757940966197066258524316281760656340165451929970265806600534546556483379984785066187741187417649880457023051470951729030662160357068429859923697436068510597222816531329567951496576994252327224769013763391328085874695982272054555267509276938757371475416991544444208537335429225734986175058633342149708258330351023830649975843257627762050906440355121476960483217564101315583440818777882809439469281451212996032619390760917789487274014499847838347398491761011018848304517061840344681595552226386406425482706824429461359995609516568774097332979352407976964955883770626715579002288299688400697441782981544997866921464291827150322557444825933250783450500884249486453030520707345764042398062449182047353226483019278923133135444671383707988597031743486286934756168233652789906742782911362257692371470940609192368785409378954773674699609046571831354775825974649583024194896684164824720592723404216372621065619586644189761088096585332088342887993123329646471038368674451817979711707708099627182289722203896529205031883625039152000375088475289748904872638797626639788957789085681506603603401955484631721024625098855386959614268348236628086291175130016371050816528687776793195101272512495287213826249855334924425557537969149216004383490713021196691513689477247778184526003323922481279345599171739301512417419648753671620574373422925483190791911747365478136143944438930439956583169312417222223247859763795639517102365028891084706320287410039298972365294376933154948435388678272922840761714083414053573088866868894963336388315520482112980488896374788219060602266440906982659546621226119231696179739345685882379147810132870166162037475554626567225769216881244601877627244013379568939926885002776764980555751391747372562537442034945622604056525054718432529586627773175319855753094531024858884770031526020416315784836388270125491228992244449945830094023031612556233544724944099267642919951826129631049991789504474175132544877490689095365921262355661100665375632636092516705737700366883524949081130920055810144432772614038584182441054596546738477702406103155536985995850274423086955536672375804017753990704918579901745229205166239957098087546651253751973385975791441533286730174342168317011145279407589464607227166972971908444915801339544602765484642013286798264736654359335656434365813567219122018467551460186457020746040277713420910632635528958280873885123531836751003940884571103538500026101621008024297375222790950946127212755502604567666986119625132404777898468288459539362111842273126202829999393885590018786411679016072608555126644787728654037034531588466823343063461078678889123030454467509066679815753857580766440279849879003797114221162201666079422766867391294391176831102594348616797414433561974659993976033080170800922382025133892306463007199607348349573828758130317076465015897713627344836442670495360776720496848138916334830467628630152651990983891587409550445495660202570639814119954311485494682654986937235979942585253230253026435199839160669803461203829561631001539241505426448917444049689167466061286660368305110567156912181151412249788142859546981887434839916292938813758680565087276131406286888464826794281164783613508748617458346022687465537992303639436985889013427790024438509231965495463809908269746286877241879421746999303138582255213274746697884200374944645161512577775968929918003015617244215480270494218356431066283722381735590834440588563338841277383984258834446976139617608743105705346804984416432689776349263191997720642072165761553727088888774416096129533141024851594702108045808959968808257088166399224326114071101734298420514316575583620578584502065811481205300196273753952437684557502919324634705898837371341402303961927559876802767458559429594264100569871242125392204748169117927351043828020116158012522149943603594231461418518930251842425202691428514712203663175291910647484187364233636531571424247683327647558340234948335685690309263497124325188029155111287356474024667902762109550689276520916102815590560014960908157622239084713498706326675403743279175054396102073342212718124052567780620646603966015137877282858908927480994580004942941051250348185649948745311755697460205660970988129329935105970778620527938970012864550682109070633786928824859203598544039525837157959154204148930643310543462829016481931873343000470463647144201180511810495180333534764031947324712108468234013243765463522925278819895730747502290134029042569450839018333417339448117731183441904790487120882796639422189616750066737622437504932420888126002385927929945400169137786777202049512752595454468353338530196971801917238984607151809219250653273560649415381988192654908249534931117651957843007012409399302084426401727308745436633274280039668286889464505273884247461571748735205490174591555593873160639858355233631362591750557394093364234778544712265947499814637820114826546303919000754925103517872620394310761509336420999831216876601273775066755558412998227231530446325127090140154078297613633412515249636214311557292235078078634378748465183678597715876563677993031842650534807859052657835057392647370453142330430107404882424347769634205411007462837537592808420809876147726745230200741474532496601720306962056581140499755403632928438924400426320301532190852145920880335810778810816149786121189589665407394707379019060029361473588208795156916000444674482193106192427128289395616949505874067619477454209165684360563770381710521338906936496655738345471640196430247736982101089950532433291471788206689217633858038960245625989749833731697158902435247932219444424073147164836440650720130404928666100640148107001654691622464365494973713938002333836221165770011251224837890387702671768843979229139433855602911995229351264588593137160978319428819990484016682270275980908948906503731898554893043092601722654826961881403694513102516729789604030768330124254682640332287827375975211807632316653933787956987403032723484402481058871761984035515380382266103947075626142010730670791884151444322826211993294630794128527236955864492024493205008476679524566785888086915669701371356519638461329452652102308188773780569505199376885200278104756203050759244638880835604860525158538325639879197877207482016507932759972641019402110981635926209875410691303261741378641493379568631300474835313658626580516472778593093666276102276247795679850009470977671091499979375385104738927611157947379237636600567776668635767432921217310425188599789499623427780980238067106622046969783872050196050713889766214092524715925746360231360753021229449393008014339614882129608969874966513527909458622490313730467753578062411782608952253671578179396168669889305787894706912502644253101702285662923932156733239465117365432618427715981705241045692231454018285561451280152198301250382189040696544167894044313989164647722856666959649051512545960494775639874599284749102725900704771124821238101261550369352172161196615669722238584125174461901313087571624114216739793203168063581505373076641823782119458759718347057227846024061602846033262267969964273298711914261025209016291754987498868218833402296757681629476748977051092619305128271944150356178754617322446724297789197148517533593600318085386155517065383227177173600932466459513603934125217346679740335718997354023396688453992156359055292850953468935901368350887375000222918768606278114293777536248564747401109013170155213453143014371116262545023498999231134539967262751581570852184492701503898084168473190340679901939644746290264535901973077895173503959583298367927565142545298792277114621385598112431442654543626866345995120570086990896345497127557495361493310692865243926124486370638719945896891771170725899952537624655737620265033024125334130852387974799079647939396411043419324720933427741753818031060256223436772812471096626014211640619919154528209788229565682534087268650776128372240583462457157998677208482472430961556235131077296527531417342649842810674941564378128160449490184132193448019638993280360522859145600787119698295592790376310586924673565215730940618077901530481121756705326067653544089231117002530184042368753491426380670770675066539127792164393345665890935994679813062243350649445690369442058768743627631192450077605322201118337365041930446528122837131267737372785624160719849283258064585643063078654280718452642455029457093799235095674871373952325802712559463332610827014620984403293706266002444438844426448238195223633684723879448719408204228279793076992981889755925632454538602882363631669165688836236861547017103949237360514629521533087658932563118453189918393055844192055170487043337505362799687649790560280191859371260438456795177355336853556409348447795621336705590734133400790700767520669804701280261740576281297247426350739065396562918289795484485438396600704115444259955122043567704080767825864719920374116678275698543177248201485202143980309162736769737050047007881989661821447504188978191908411815799996996099555096758596171987076936471836365690733162077632571721757703801395329450175090301189751733660034739457130169549787424654750264152901790767911825537111334909713841872267504152001964553933099889501008097313153095041879658682831027434140795570901320938484314283393690210861979132631033116323415188653358225039139889173749198874898671900880027106653868488714501528337295495406016988930125577718910270747746195367685110679907054653467026612350818437258677141546543320431363022835672086367622868579045674506291743982152853843380070300429249064281477755665868440230137636603967949450580392165993713405737150294590897283362044632587789526986940083067475387039239838060501518083706221465805493802794102020779404841279795057479407685954059898330935189296368101960927527701483505601289784619745452681005958387227441507557138165474231904381822982414739221892832523955677929975547452184304361982193043339716078353784007678793402330056693613261927725343949225827347820677050765060578377581076948958705038892915464865203306395916201628001123782211551355777731323686020445071846059916634375649532263731987027903615488918398135796904349236164743841849780174250575208500478770099322951968787944700143610832918972905930337996838918487291251415494985625097144375766071887616084757944523607393159913018789511004232786930180026637518937361996217575169443732479672157533798830572911752048168677995558703242692645608937588303753768192733949913793834514355020823517519300824946528714484653427479087614363620536223380684081703406885907778970720348495743117678454799813771608076293580388100611068795322735841296189130779831290996018708317814597063520014626771711033435696140160256684430601193986159665325883096249934679863686206006469294790846570272522926419291184058574462473588576262856395195632300528871312016301038144215382523847391362189098767073725682283842721303357858070232912044224879593909651653741940016599257543666679433511987249834663442942784738158730727871698345371236997620962829379211581606624877933127437207891494422714721582651752010271724274698646794054029213650159302217108435489514583311093884471024292383242817503310628340076046196577695416126019204487288937841013623493774893001765008749258834760489358606800962410479655834575240823840723570431643643842566312306217225372408786377779250988190997388523016031017937683957078631399833787910073147558469434986045009032113769710119541768947589199805348110462343474361223813990884087739141352569919960763575772762184034258355144143829374451136792226198524841026589527278809394673102321481698967789934811208338934744984350395732110444287462355362988623410620551343809877234696618349208524064755872417192648688652652328575818258437498161319085613170261629032739704979798489404560992429896001592750417809537654330917963887522362204107479700937321491022488481816076445659361017951717451908231451950319118974808672137384823546672443440311475194242175868878192645362412022019422219215348544710243447812486502680540032341553548418153353639705481672107320693292206864479505930752042253698882513593816379460120824373232154849282913568733808576296770633825691879881805181170365225714375744895066124924801130936710464983244842808509117614026752655009843830561740950470365408551441892218068390378472775415139470544661602412617121620856738260201425825884280164607294455113475046683842394806097626549528220395396910759154658817012655158731734507803601820520570399941866059026304357424346174932928442680728343790868413761281245310830213386922933204680650617089398508240045447020244298670072084168894207702929608007130792837350539971339344690621032394912991853918254573797490830434112564060188865644267617239503138171542627214093463623116915206620848560016664037314728528779300510496622599912175685900501762864563697491415807606482465795500392666476469038540964990821842146273406707460105964841015547507140199025798663399619985800461089312075271404031157312908781767593796337441847968468135115535780147095712925858886836315297436720761207169375056928989106309955866022372575598335881282671497024719161247391547216997328070311094458873197416455867538074083368540122065659800302876485658319844647663215716913779075221006849875327001327773992995825782940358810454460279195283467296019905611252669532663282582762524010943071727698150842153910203363433771644194275595863191071764783242870636252889588466368430128748923291134749996118211079759327246369030166719380008126223814304676506328116752549077821503239419810964292844144904614568200355783376340096017667773576861890312729372493365560424586428720018460626565861906416010311205969092676933308133555535906022756042477554227015020780823086049488028178230045991071877064491308003808669922755822887822458633009419533803227345236385411587985941921283320028719163464161335535745426150866642900505626321384285265069211322919733932245934972439459162536102598012082208630554559355952326439402680152487763903006655776493838538109122745433066292624128030255603845147999766163396608756786196998752347178057175780945865926356312342410995670576366154738450667014036012476096129250117189962426701865572399121048655313743876344751395066937631803637303270092937566325921476978786925826654143999451102317926457293805017474443984757065959437089294733596717951864089376004732675149935550189586279104222168563835328085031778159678875342641050991831266761862085795203694088906138920211211115544637175592323593714004222230400808232772083238848694913387178774545400563853119104784685319474936997935160833947090715975478380618939990575079876951875229196367396049860012466100787082413691867372434477165713048600672887077258742085563562223765782484042140576146363765863152818469828165864990653838643335521225030147912160854212241521666316103368922252736444827287728795549603284790499365417047262016326567277963718055501901091707673974355758329287813562628549249849150127948827101817632996938903070563030618791669775687700756004812204556951899743932987295895905946886801016163995909230864004354464410667873710203676779110589040974773515451006620489703961599948449597476252039334883015066948446416041756557425006276076215062612681163046902054310884047517251811699594915246195829566558519060337377906724527217829654817374335999949906510082152672014106315840761851860429346690052515534209930168288278149245398782083868016117397315522003554458069516666808750806544182360851929528838174405198498732068060057250821124415102086221152934287078214654307773134700837109834985093787911135012828768948731177574034883734634344361292225296923375767192238449013095999965475179945340386247490551127952167873912081699984790326520078319887659913318833442472317185445879969555102154792776261477626149758155585347970506775881757372501639181155331504912303117337662346078056245014072495492761610209437362389643519541228563686877987204289146355466365916447905146555552666061136100208910970864361782683799524612040395224914906195485640008193302925346643351727867396531793095943998844736019484141238636984588848349761255624841474136678300155445744544482743311953844395075411032453951619101887881876923836575641712134840934939893457283700728569767696379223106031381048580695715913038531364651366670346823878577269283235548976127358281663902277676761323638233189176730796893220782927171183175173816220901943084603692345037123105963824976263961437276221258072082610072909087783999981259881764029634043329710580115966265467687960143156613148426667804460244158386754824742992757051861352467459876791047929971124062266937476160624006162668927803849530463065614605724322467239520074370763355216641387054964076683993757595362086317900576728515802274844155902370021301241338649536739477124147649837957077880583962711224701390893145725007139444178945492827746331754736061064906362431417885803959058986919814111761818502083831816693960789319283931754823351425830263548722714174296666541243788782282355663106862701538977497862551299139171236967006376174230373363957264863588795528895176407815708111838316429194836305732282283432772905314087625070354375761603364016786840694152939683382636313269440424459855582716356964532546130303286546337157034744858394399115093135628462818237582039200933539035588858612374594651999636096738726554815446451989872325957623341965001120988023183101144989771245309115864018341555870199845054617455804272862220182865545272416164543621835719587249245184278486033861050277625609824075296719116883162056813562552986147378049309705444628281641407635497321743494318289154030275313177422123876127729688883071396792512558755734776734453812102946403163329800447419815281890543241944952798814848707049694255021714727983049133538110868835776950475906230121890985214661792719306461059146461746993284541159171852864149422452436612623674351440090195171114365224002528773894625750742969715278317373916103466795512105907213785195538940569067026065445916602701162051967660287590116206625557766232666224202637499814174009286190518850757168972203307427051260243284054899164971148813935256804049303292148203877693130577413347766229368312359212929114516467026158394877595925934990736731510052119318021161230439085272213177132592301214855205586016602315475502857861906612021279864907112249272902901519865593000151356816063692811129152844001953427821900222129675666882508399238790591383552895918993028593972602079503413623113581235102027259174341716238393115801436787828949589722125327916561058929538283887096270454998264952193115589602839100375735169536183104971964124245960183873939485816018624654341051892045236657262370148125734680164342089005777850999434758009466608360772503625607274786792183710939787916951467247683588924573241063760486260588000587388594471374702553682128660747466357002480484936462604147636195602058463735979396071110851952579798064625372692386649439041446183960633385273890052777730119966998351319992806512976937040239682868680818554720802594977257562096778051694940148782706129778850735702279063364770514471924889392818422011806165285633221372060607957026801791460042856351314694461524925485274678592383298685732685888622611424046471430682945052697108514670463692524035700658115823024909967811915269484985007466732755430274784861640571432447705242012441866727703020159350421413188475657047889413097079748093708851584646141805610057572865538028964816363202855892390795649127860156128057978464742037941791104406327169683575143669778562481453815806513165166429758151838554275632704308645537013392992023846419675638602622971843571306589472886967741908710363337857078764317582808305310727394038744583336650249218567922071741130804160887649172243458293413727522121781276324413517628393618993548617316993348942254950013038415382295417213321670179197786635841591568228630410566877886602995952447910607599979420889052289259779417673973254631632409247830455668837767026012266314814609162552131733700066497965917567818247312805958341676856421130036410593739835566379845330056356998871261337812108273723755561857838413485527810173119550602309423441607136093513839108757396938914017173541227691912816267601628476737664437469950673193851647380421938868642187565161253620744224050538612161028637401662140090947127212712552677330714168036949778261200333895754764795989369000720333675420925158990536807863282599480510351044818910065880801662742596585932460398223423237815011507710890439459725469363826381178097342361908520896341253161155140697094376401403823590425886562105491647240473461458696066044733595073649745487339916365280563872478725419067789971536793703196933319734399855884632601810885707018957169316978085405088484220517307878182154097126168681893861358808691822990236909559767664672235490855702561688986536809518990320081956354475543065711139638430033586251496813604184390307505162129591440911842670217320735581942632607715414861188312588228837471062365735058290050387515553438509263721428452176606104518180213440417062148367477084032509696470929325369450216222883316199593619379898038032601669587166770817484632848648397933105521151075598097664678636865791495340800124214936438357914943645299919548135442171571267016675614865076235993286637748102882593893904888441211327562377539654382409439235185196726769812999156562438905471525486070027908249018970610288150789770027363121555956693124992497963806148332648946126390717936105700394810318995815924554428840283804632115056076930230185093347261775418934585238726739602385278298745005918016461648922816180460382929709840677259690710397127665043067629724645451754123199048618304444248746901531697135693312001824118803458839861348842771703400377137347543852093392215138152361560696178005662896188960304273738461235064793291548918592836909395314845203204647805433908662065598018694421647550805322750928758197210997335614112644981769304398152741380784608707060253075519046667591829502403157180151873666724909611650542778636025090271030684886727385456298211672286205649736450639703301451277764960620868910194873804834456007027362409232658560548659608450143309719693927505157730425008219998261832573822511519870657285532394976950889124942849990296166884184602002494369831922960673963165761828452519017921861749246627541145587198442782958959279862972998434849976705502023505382064753104516576523038405105761823845534710611774952787917234154509325715616924356253829502180996834392171637456128070044057586746837624740266281621441853612838585282126513879529123144216939743264921230550033095877721782120053561979306217621845324676589528141580741661619246416846959413589016385237807290418059459750285484323135035135537076642515390619849970692538605201474403618699098818213047878120884668623039482034357570645803730731578692504673252942258990041054479294515610002856416744989090032453268305740916984021246897268112732320303132041502636719062995774448109398993217346931669942928332242705956604197776900632337555250211703597591799753496542522942708433948902971838180117573087129283810373526709749660682682500867000163271465427149239588475656297638327729567972448082382099463573167266594365847765522969166064833899907075935405757870664396911913698175433604599092507119082497723763862316462200785021984529850621935790010421168457373558706077439174598873675895319712016983353043406302907344545995716975976069729368049944770093207996890974186545471673124085837468960803726485198801503680655567240602401821693650407757912915254496233631327351595201330757206642257923743738266283443190417451622680323813045872771084392895290543218848574962345562795107078006834171511448641345129794772232668798147190959326477136114504383562900872357800273479223715842712722627219289912764859041472188849956688211204321555367142174740567304799146651906315493802095606757468519523427564729306097604632687731140013124039087218035945794704828780890007382156551563627313987453247122809074662600657289568022960828067952260374260516934111577245535453761853271274270467766277548902909978030069249244600099288280876361995634586764122131248969805128410787125892261100168695573704157237276999027007465707450065457506558103441603548939675526309695467378557926247384522933488371936906895207142897219357675031160756001569769595583601260465682152110181557228698124730102414845658795524896033061995067542502620247632374976832759731909039680521285421501885998945252232402016061078659127785982587837413022320446656891864004343944954303419108309889358539536802928880320702713401938920652783254479222584713550602953330797332306542305296614316557792189356965506012078341911379206421864019773363618056840214611528837597664809704757330401022909599879463891844420603268936474216469877229468754543363795927389364809228526114246132449997471105244607624121837523251232243982297615772018391510456572106813945983526132351725660235871998133085097226188319390998582907058911714263426301951478332068111016578213978402158403751904443891917088395913910522295265435659268817639538102846277113710414337641980393191002625230661766199298548167454169366695039730021576070050521448356843587035296866572740058819015508272686690060128994604572766595429071766970038488822339578995659703022051046609955625840409611322358894995925696281947409977870490660429238237521634133495786324881671170470839464787363583611886648770700928368780257176711095275878828241323111554526972314147607697992474187584979897947205275313457250534086329890943840405511802397158630581230759079626561687354615703018771162499852744353589684219833034697438494442056236712491873889574906821304140089926416582376124738214603834209172908699066855864469470316807312325935164334937127351507857524410689959828165266034783014105723399645472348234071262715198266034362841944419762614927136074596037005453564389122403084101663568873971950481210116680970067588918683694294077436057489177667140108730598659692940799148076087280975238981932256756819045361435333797145287757413669221747391427488338309817501975367905683121853399102756278771747507118916501458407628955953659371276384866405661105082824663819687208921214529530272961127617162390855414793073830932454580481078329765706021708227668486063804971538285964753713982962933051645585069437359548921895557241119056545567871054502461571612694689190181654052447684042585519737983497987817889369874008595128464133175423899348542768195536140615384173526482429374112599205149477536352449768294506606353749603621934223292727313170442380935240046029464338160812421142125708050543506493822951734484840017832406276719919146518880395650850149743161867846230442902258458851439658440410103853042066637019625877442822143824653106057927865367143217900969833435370870464673267634465386632882939455248448752414070563958128484083277976852589250958980476890889130570588638820478227475990108950875866285566006103652394675685001905197489258720291518808689830568585352544259890162645845871979271345224061225991643190059826860394032801487094780448004902471027139542763506191450810457384468507778775868659457367397436953029695919214659983074431725839216357983659157047507084543104395376903514461010504567217595836740976393585340513897649018201270344081841931368222547072571831191543727826971678689577127251540083235015617976318389918867593318699906493043913979031545077891754699375680535175287394310139564752739696098082472422959596118142667530725548148228649115342313742949249641118631651503763507773905710606074886578226054643967165285685055333103140757915124798596023895139625765220574701530465620456231095518613030124216298488007226921351741274312511645330774292571682696111748631809197732795344648130928425641541531348344837760276815597928660480347969753717930503966252286013445339477554448111830490552115149396346071611783641810955631093723073380168649519656676606554674379512965299769383518322237794711576853570326968149508701213550602540238916586416907874531910946319670974116302006418182196449677990662655224941403420700601253051329121397195026461093067734783751303504155844391399779076830592929071559449141554748632540142992484403686577984456133342524853446097258207280566364739903659678549808283769812669154865511320690060665864249254766867457374682725002505765155431584998535073346636325439983401765379300237484775889276605625249487503336163888841922907034628765302278454549134502353874356416886803767937860432707429010012766983731093019107957268397213795200672116649463341827899872845163949262686826182777601216793646591360126824149121327980364419868977794004923973837261857327567258000215540209938523767412563352483023133997370991659449739295376325428806646717089926012494397832786525373559592906130014349835492575391596112283539358568803546716818239770649824187015680599827300641313406414732343222287445414098804658340511597238131148280718230126814167650992786910258584039448406137729574884014949540811857247594393812350161566473187841904182666316619769724141912654914897637078877091929425929390701128953496534748650599412811928898805931227078172513702411915779677813399346938159796194350944903392180259534428799643255980625916957200078749615959373770467203387512228612193462987913604436546268263142802576948373932829266497198151128889886967606062376872140978145706415233810550823645484570165014232385591543473686073623264833388153956763119687643541012877543136095921798173120161964366846795848177519604404896615152945905335044303657666577586772253779057319199204542453298544448327227642412729618960063935276104336846668035684809157302538880578904555076215222313775430212983030203874990286801248998472645412861193504999582174162783313936857281830144904004512240061690637001566781925889423881351650873477130188730177043628327684210935154549483983386057966666629608674970020346042722810121760455605858519699100408169804600663315937078410052255617874659442514645469809425984683737409738077445021205173182009152320004396793781986291608651430957143837092810061242736949801963592085862849870274715067711749759073232170795692362865545326345247148294701025678916782450654499663410334514899740536533245495669141126203310795828212617213574879410650736695722037535485065375430794816815861189206993817717879993105761432752300144691394231103366282427852023757522616932439073752475862705039023245035414587342145197019032059344095328500583791888235226059991919093573631629766037289680350694977421217664089153188006448636172239318327199825037396705543051597419187629865051988836244555259524339839975557451965536055912589557237809873777213880414581225148544850068165385321801557076606915727867506338993097897774072319021707455703685383877225427411836402894149064452956473567018360388820128269207129275473160188795920830910624707658289268809303765339559534690800004013323910168580082104265911327286697849461491643382528853392477392230981777677763174864364221329080348153124301776342585747116108778200178575160681727051870712845393740513214908984873837996127224593015744031963287659576866663394041080705742727719271101731326724353981245887802786198874893116541677898894822253615684824398832543356400234352667166237014690990764362349001497742840934708333391686467134029207924771372758822938543834882277854373520183967559037490433076702962102134681978101017955962096895380400299759826886115820748076654938705355029719040941055861851641955771813710258831463099695819972118544976892640055616967927045268240378219062634226772794408842639443177764442357030337668784849916163433548081457093282902106897172245206367122660448878451086569561184766818948999135237603402356087052728825797475422148577921553938033060279346228328454036769221386075095136963565760441430156925889919143241345341204489158419164302645276061347260938322471547441676153658821948285455707203804442735475236972543673472093493988033436327293796903726542398608318712291903770306633444509720951550871010799537814454385287642547657877172490719120933792683027783444875422507806834718696746095500922976213079256432433214517311910550572733855109973166235128028397278626125118205788361800612043151130022559941924495199643054827734261655665465891287347471711519819866815517081896167052916904752826170743519990374267015579381292399464314452667173732983258036612867418473848408197565457632785585324427374873142777533292795346860040991094673309637495808334997531436812596309966395588312665341087774714521963003579778080097719414914408696230541346228400366585979220315094957097503543903068800141222185316853316437254388942011873406005453342321036150170365818318475619290780932471521152494210524484847306182691915845288261896231321821481077869321720410602238052626365332724451823019325400428205693471544202797912358632216343607770584991148014000319407030734448091253976387111301565431125119802162423323044790330705508050689085902026517170676551382665330066410695200799955274491009882085131615369100076102147169553260716905781292372584913642206276671691191761054330832112804073478554058234205461277218271363437507098750052880561073193810337224458597032999212438840229155459165336703825768904248884491031373895602297039265582979949040993724039967630828095803284243485902269728702639781303933061587661610378089012480428163910301935061251301710110339467602423303951584817874726084404461715928502928759592610389533275508513213168572813361837297638372605219378626120935751327890209833760250057093539589996701623049719141163734297430719631940035165739066767388801046189485251168619999281621968864641980448493419202509648125996286942050386462419622692761336297776282459255330814729982921119265388814579895547709069647170093099191515239277682097210284481716662033444195722305313814421186278055940080624414057346363434377921895534481002960905350135994817359811521943961607417071364708889741527890081631441268531997972092667420476018890316529335202289465097997405253284629203067962950888131554266205849270288819930780978049604374218345517443303011486077022553326873698116547353252300738458667909321255928013862960440651271641856466154499574657110045762526564908069679002551776039116203318767934454277146202280746945918053708402750510360024120228475101210474265968248346577159803926112099654396709929092463488161338207273548173756360396039216616329200068503211925872110465838177969294411859161155655736996972426820377222422555239902116261856358213868210696719731680944416446806998136279476124931632978655648699332285115914948705477154275330669985848822022660546670713549718611766721046384633457485352824412261850328898040366964827003300814389334021944686402275671189745996631559443937773422134903202727772164691611278261691224042747557040000424504943235166306029758750061732576354612456822505336205143786071648808856957292468777754895466898037125630012423623552121044144055534305450993683553946037970554879083739759667625173606655252474917831883515718611832941245960908858708085251289458771221737464653608595451566427550453487462433840133175438069373884351387594137732709138925948988527881435775418771612963352968168405045315576759943142923025922586090324507041590541721617290064866637281320931496429549991128554928886523085522817920960049429982825804542820230431122941133318510586402184624600042743216466953532472571161346597123282322971703485264236308621856361031947393254157628881522341649635299961013025382986745102242104900374551332363172264606222131106634752891556117506123883830498712656295618621054144087561605693778841975581772654208911251669245677400706949806520918533546244441437003484736770817945256814895792735393678033395443832299540883995471781427809349664105268807832232759931559902148664924658946777871500353132066728010373639779145156652698754051776375969329875486147810911781136753845929052116058983235895239193641441217637900133973809467036150209245098743287377304590662062201692979354575496141325960638819779456254298833422422855341552930890939026984192043059594974883596926296779711152171676991954513278491730831950009966192443515823562361824813792741502849118936981398291629069117716265894326588091945837018777571091911511683916439990444958618090298610281887588546232537574006752072471405294867231917412347939234509684392210466474053163702733498280948395432895988721073702036979420473446705872865115499932656221597570354494061750903022635712881091947054639823124125121389601931515773857576128285007102865579312910111872722877096797149547066142088248039126375558599837700222887884816603838768790327255826967397232760816579850445272450622100691831914300165003958583624747765122290465248136973248945639872334258788304327537047967564978761762772545891987546885149072612137940194926731120234969281811859457740770613782552063871356654338102860560379426222351171181276268475150151440619127069703493046247149187446341927599306156412156249918370795855044983426724272975463199849805515779313556247897014630540685362364153353183194950805458111623271847089607531826901314772260645342516610383962534841844471955951919490423705323125132215273130049967619359338839686186384881233901416778825824564851904576703168375570496468549779721437366302593283672088550499334475720359804956153188445629334644705204451010325577660373496493082015282047002606051243211521285163934657058139695741233763056800726674140160355217722157048745683514266025980123208952226964904284329047535760963996078506165891377857799241421559184901077083536768628908295176643162532256634258099032981822525955760433777003321797655508273723719356652951586020621563445255610708565526922786269323177548990008995507717469749186521770583587246255187777457635247466368191998992314464641167840504388867976134657682509965414785682946712505231341867662557658297691566416691597723902189510157385958841098903546253266514545110792260146961049496430966133208913701690286239011093344987638015171348710801483454982640200497162953422393914411044307577196484188036748534485687199334527422351279968048217352256537444858324650550821572547073659723301063311056268085905633413201778974535651488812519436835126298988950339251623723503372026712451352871121732870752741717996712805186506963911956580863689593515804092915632868362588069295981050193764284698629828147758763895690416563769143253186598842806146930417808937954051346651438493375428674896876246063967102323209412025918809401086636801393820119541608270156350358484209509657958490421670651736129969696527566606715978650300563440102960079062478583967536108394394417020915872078268517073975488736159270544654694442299774524801088050883133173615283307070038938617541898005062228181253718736558607323998639192319219933928286010383002711393513833071331176059290893743707153940481670716526368291199817307686048519597567312329824638578477161720627739633667953203617707402354094326572958568288141920377866873900403264714359360853360376398386934992134536847744004664305708853726642282765049282753195254486279415614937447493954173303472202312418225422440988160706845534629391529886320838946625690356622691837248288461027811700522772098683242741832102239282981103038029849950534285752903160429657752653460636858132249642752029361166371999822991148851587301892589665974951434314913362491211336242003321672445656021747107338966445670657277408335518999476349222989266940791394672286093035173199257285884319080816109564349475145521105600356810906974199248468919348432519966613975663640735380485729428093069699681424925546758781053413484048491020263596367561572332662177637377274645013049028103591469947117611451361657493591994526725821451283177851685864412009643946338706062882219863680370926342619514084462553881978083654836162127787872578935482247709956155744582654067140983392599844632291603497582222669099077993519605490598667454844342526890276764845688545067469711129087672325116415335350217407257291542143383270094281946176505874327847941734484030362578347216479793306872396125925866078936804817872372621047464223303091417598893364339744675664589712929842257921427604532666890213568680381139148643281941041807328568674260815853540930116341894528083591071111172618767885724092060461026768931506164258867753128904378152927073907171021418577202068985522426576834742659605975409918575729111472683522590783593478947715492593041787405790911381225308050204372075880120665254458084937543638305438366756188725978823803449871336424122311352239185538637345704044862154081136996231302334420611617235183586555568068185347056689347128866827661383312555722760458001069035395183707857318071200491787142475908124896156940777684157131741406766063526894303986027624979024727552406656431828059099582326686335786741035585345879125933815721299277193389564418419677005543774911817830043153738183550041454839742405358013798549989574994872464002484862436079759281126519835291306622048623377908374154891424392253495196787500304897010380881461192314285115040957161044522255544917996190067958000467831597625560700446940509950279847137289577131433720319012181847930753951820965921923966124484811622991288984867128345680788652019550375170443310473786769393192853197301308075793848432793453981597625056011563991799842828291313075818204519507860359033168339949962582287956251187041326868285308005164043997716204166195543958716711977466647872235925423581326232712132944373717993521608784261992159711519085158061938242193563041459899297564379465441061139709780475519079421727163552328450274889963203958028035306800776291442073138344423673405650094829307144036909846756882377554792639763136507842303923367642377277631821123015349546543775378231462658131446812739427677944131287832835579861150252179209936395930552036588486544620326159316049778105009160933144978558541643858145575728342130903092962020074596765435048069699647601914310184302427414137288703052252126377549144821221366250347185850323858414306712778744963218326470915142064836679123166459217237771074228427284873413236973591171522371996746753417031311359230528256609068490986534791401701527100327297093303893532438899604815700395517414356431215107327241284831840720921926818811642714355220031779882012611516632407047192384328512315139635707763091452997063133658279050706044794034572179845308875445813375598907047033327416317091206363706767550028792716321954655983629460921576517042248999742601608397731830973760541351055214987241710017610755456849758329646341829463147602017094369201613193141666364712563980950882879460875478475595099644275933691548384771906361537123551355111898471873570015852020320746693033175106828421691488821241958819090871139430531589394430393106172697166291647747441092519918040005241802966462152489711495445256177791019179057168361145780504099013705977832995690198757825501166374827852075988070813074270732665876494674654801593507066952038559954048583116216926396775682508706371458830631841078435156101998309129297752716281191007960224653394241991294162091087550035727988699302235870155784500706611126251215744821850384923237254813573671181844227880204650687278429486748627888604785630597013936688647737695794935362272016468840740378819729236298789431614223228556488000168233242928714856033045422379315372381573303614960219332190470267476394257947580215517048541511611931608154808567377430947547995614793826498130919234656626759653626112274306707387365972501215660910800747949531507876350763356232854174353405383124581168899403164487546875495360703031818653856080998094026693574790046477643971428284126278467765220270764002991803844959523670997367600602682195947430276671306012571522271793329896495668137907388109461318551271851334267983537390163586063196279705802309297980764264353342152430002815843074680132808283755300457233296512267797126255613396691226373847961797825439230223234453970024708420453090404586016894866702010339189281873149064512004010975352097313358190538055558610169154039171348693556339083311398565494397330452925461110349036391533763397866702389598534480220305221288285014629528302062184392560916515420034315459391547466289053908451825790755002120796420545007923776899627406165922697712921907020777297607482269261774976509864589498056448958642566708313821736371616535000506799268179124765016473490469688286137112628436203311393584562764648029903951490676349827484179741554947360432751627375668996125579623562459613382324121684588620059936676808655776872685161664085993463276299007272990505079575857480033492549808132147553652769052689744600049091590350843871768487066173026102902353556431680114606326845054796228702177814755376266933596503699900181826244866960067883958349245885163186947442348532016752079090085731727686506561097184722544422247868140325737914778706011191584103630745017041079221587518138407979246717067379433949925918822674561702700396556903548064105091185917902861435145537981604456636810944199482948466711090362802861751439910067634913574437007545395604988547466341651951157155288169586646156096562349691823322150172496861439032843456901173289092361254385802356927257827563902124131108084644383501041954034637493467045928641644429155155055196036610766622715211255295845333445001885257059645392872661708582171136888717411048875841830297981967962991395547475050667787800031503081209536452769742658206479733333484623257262312373808030850645670788054122572689526417593175289271299129757854170339411180686262400834674121433199410114965153198373720193850083465267059880659247245796861115177774655014536186962564187543798184493093206046214811209803566044210539280308921311171433955071154231610531462849226129541370787942111014213479848870057901117241900927469148979654203212839946938627886114962075455557654505082714274454266425272724482753386750303049050037684802457019217161753157123856803580419778847734434912327187025933363564527469569289009831659970773715404781660733936725028505321512688374897814318802312298305888697323921422024610020081542569291819252829616952678194076270277934435353759726025447197752535242388516076829329705671699521016776844970134052482503511708606606601454299898116370663844219284604615562699813966452064802657281686530609873356711323920841657344787422549521426872845662238176086864727251223378957551798460566915031351238777665356278836553902680508454575664065681663966536205127956408340110708823352830048194182357725139163333649599572662345086847126203148575804413874869189509508467950398365326788332814692324163367508743918815857668378594295562791374286508917206956249599556816490596943479584840359634083157897041138423950852062165768332113037002765476674866900825414128297389606213449891994296319962394057104357555171786801538484967885656173390749422806757074879598618282461596432149425938830753283149713941107098177896368243962725798678871094410565924671886585906005991090725934768372413459834184922605834045052881800740614798452310724976832533284505492801695057700473835336423871738525188873007441239607799338875179875377493148374311190766167071162279306479987950088850993861403293172730341986915240962069721725556662500936936417246206725875254545773583742497519582255413601097585400462167206653221701782042170463606412754857781382543365869667183083588718513205383852964186977353901459454999379330077919093186514368327714319966298518664856088695390425481846516132324443867954234256141929183730711435527536972619692187528869548267332557359759738782909477759574964283491213513839658108265526786839986551104873923890986720350605997748076077986834464034834329628627895934948046569109502620731790847285692139953450795006282060019856336770496761775585226086545140059262609085263799679404529751090643201637080610767844878381117408734434259880454442760280337828658160755119868768744972353806424633308395350305874122976800867184522664416855428747099909228361862194896737381517168370964728153144586589437733773506406747315131135508726421789561768589111457715429441488473122200229135639298840954673862601030114378135300812095186451247369763006392121646439448187212451723336634552740859396909119349276948184307631002749375420615211931858508350909066574763614417916945769935423737913972305762481457168279333547171211513432515034148556890287524686224853655119672769470116582152340465294561611432344870536641023796378798423267745727161557357063704744810037784421163566067428374392252439498657363568941257649017354658160540067669756526750784992750833798773369167314274655689655501287825639961572248250430609693036022299415911124364158422695524610418526693479536517034605992839664955510936373108025075564915385277645173044106729561148507699650454354261654929974905359177365740229516816659793176262673625500288335668818254502387505987104316652973621430550490203771400373759662126786635436698945833748274917681401659084794922492623812305206333448956558602837710470037961472930030646115984161655351473942259433085734269309549743010558648270636608481493317392480454566254010576919135665816094677307811840795448733549461074711158932394920958135982147055646803339165751838204384946360028785388955454852998905771273709918802755864361735807389040198006272645892917854756937517140929371808832940376986128008519503316575932262666141683366070295651718153055498976138837530213928816681078823445667375848067432668335144352473964847975465724919881318564980011589580802155865025179277182569801443064944701203839615291405883919524820795389696122126393895513464763657074561317159762783965355641163852714567882004257530474793161724580581877475771779345030571965964023770461823014101691554687629950841855879416126898106118047871818098416182665721926859768992876635325336557577497383335156500626466593228661532918999252933498284352570958885240000080002231090890790221143006128845459762957470460742826429157603400775845880781476161102563269479283285421403591506412988140386859069003479690535969366032089281227363802562140117427147691921297466552172016512905892759704450275652040800922267201086141539319511683117192116023788740325928728592403504346214687643672537914740925441395586117479987319096485353825316989060506980169356009839620615411553423645171930203336979381979965381695259164182687560403692614056678603688326822331549603972348106804105953194955045138701129640069311417602621801758857171081186582062786018829779474497177768424168739447467474961136303810315351265482144670936239301361070968440825579105702667995491162123980354991547608916756886763210009224427136932146154835070182941980871739723672483000296060889006323573322796366594241085357738026707063117508043839000754894952857522944144407831569498728528893323987046765635216175515342101920577115463053253131813329234197729171355612154569897673492791268547952331421370653807461751432216216314607414148455909508416607610001272812809527178201948143293182176108463572773612225439585900622970915031265490062791762820603790527043646578158174005856549441383913759085046438152280441137233596069162626510709346594209211002010420596347397208749510041101168997119474858664458822461396656627144348626436356903219052202245779082667767298839344409415681278721693977917737899147303299559854216003690896303902597027377952779762336065628283224399865966525779938945741653830437297206572043391423992616792467159393895368432405665671392570137304478076294466601237197215227841362918054183230159149326853042035909256261519010208797120680877225715194784460711438589721321793177741276571412431982464340030611553686989690523452219410527200516822544943672803851725551240136362833193678827742244725904061567811984025484755676580745493206641039901714045586217779724483765435951150673931347579487252712718614454650608488587865734874771922340216850805438115800780903887083522363917344268596357613561397779579128188282336178982298940815651643394617259894035830583799708518210479487989193984486098819548956949374081299517604852161276784378548872919279629621129412239538648792208846158979128589479310551577829623118372654233515649141005427334765046673017177836784000148093014171707964836298350640888150194355013643301498244108668047259588566924225729352134609744783210050174558847084607583852130437571578969931430128419284826569415491632922968950350965379145132759954510078617745217124338175937164320636513211362021663542175599524770001473339214128055089427791180253189050947740700298343811124811233685756887131628890065944237670342964851796699071433160064584473543659106198351020228058201902087475314535920842835217968869688357609741047126004004569263069525332437753411210239998236760916364045847645149377941804975598364050288946704804777656775379698216337385953432675039930809291928818742016891874392873561437818411805333227195228864131463801501516640940958723225229311357635273964451233917328715311543912794059486105566063607114396028351417980971682982648067643390661228147689001837001324189266112653760203415995060572664776979165070421873689995414124287649820106788214797571401745815108958105549798848352220382226384267059419412223664137070295540068714830621564557771940513567584654016624433676571868952492316572145849156856014753693804625956696061743585051071755394243792922749020902051333234585260470377094208707386467955190536630681544563129826366443633896175863004457186217279215727484656587741344105272330063583844158031807713833479686266138796070598480573169596750344424844998044928244994826925001504081375794709627791074837887194595514442794839711709969996254157896097647555357694737649937214246686621783670332639831495148342120356960116334707678088704939217769129618137271535588388034314320918167991057616843770682722952573071601820363728331336306176451367825721328232460084923487444947155850465391303244328212480892190383726163870230466409905546363538638558281195035625449816707372227469772749992950805707597403019384466360268883969593123525348947397023410011282654312194082214431020681574812780568162698157142515728269134953587836164293884841477453669031256475537865875070748772805961507214284173301742825913621957120347729374842780399119932191911903836848490177777225903252664467956708535980581017279505209573926299372244547522283655255802554335807791755511873060590599745858811450919529110585000328727322679386151198295231890396321271167372800120089200904063767385614070951745725979794093143093541781371250658155962182181706180512630403500664515230446503097021933722461403769947014048589586537028920292776364674137235216849460283085451299230078709941278286756570050797225375442319032479564998399598023441419926911175282800550854359813744118269146451746267952554762560325774498538577542826553400801831227225042560821464790386935173391636168085625261779500457356812710504676958321511326659520761754955158841030721709499364713664637188463119377553968780873593307466922445182500113415934637989984733887664154612951199538755613972273422371645996572013496800341075156888802687598562877821686019402488852226136065556419825702204491866205318051312890245974475786777206951305130137456968513690156808915301668400310254250163598312623086300071918103924981090041278673562375229353231188246935452431715959137077550013063175826880695394038908362405436007982047153966052274515507798013190257827315294889205636311820567307892975981714048887597836374149580711568167098945076008901544397761004892194279249879287833619602503353588257668286574050139151471173608464121829281029326569455822626865807526678091240407891830941192997016533762544315129455557238328261364247726550906376616559331124353629892401223334978541445722530380781020556251107856422102432982314253009210728378383463104956041781302682487047386825733031461662333805207008087963438935565675902155971805973214768265782121090890876150074756435256095591047144956784514933045295284215354389823553045938749735961896272850617071957251921294698364079420704857182111461753094704181715617736199856895043773739760550710539423669202753238279341779960111109912522714923686359306482477035541022033534018224777502754382713513686865602747846375549833879043142422975144055806362079171976180149867721960456680743406064841987343868999198842135862863743240005283852063759266865592802016825898321159697822069090760979076874862556668882531583657767656932302429263856364077629424614384773698450125998679135145244654394838403229098487943840085946101477943014820633457378684088962107340491748232313818974860997528819196483782545234553667234589627713602841764669405559508789393007327079782695099312824213054726566703398977847991184598423073776284166072608983517263354099369769311748037071758968290264919004017183404744939724117166041287450682657971562164527047410179231212490098339020941585384017075250601419291591206496314385397067895981967329120829916820880234962806062670188356615634866157279076107545128237166237096055929532545266692807189149424277601737198516541495758218946499271653512771991363485211345216792307216813219904678442273663074872071201938767928370599500915566285434827782588115534309367298613945698994097503656197994685247419269118442217223172249415049284279127330605121149740927989367055133192180560808509192974508091835061137460914355617856956941490288476274490601896743482012879799437727622499457293552479802173525548010699046252254493054472563569460241150036131678497094492695624480458334907502397246389185668603627908134167022359036215806746656934580708945742165587325744503001942746686868573709060408069495336075918662722445524870623250758115646519262607506090038566124920435438568324415524773226782066607696773548687685859125652356675133882143607503779556975217876483354916335924230096500308251700246240738800132835868223805790073966059293593624854162356217561375801004635051442079114786404316706974754768748490403670254386472152615634583189488238911370001079962840014522764429327216037655514057277590875193440651334268285970436689563657077128169471921681370846698378540826799686518179006886271431351955771779858391956077686014728075781231944057983735931311233334563340254805247379277047021776999173975009952308934373207818818633018295358130563724144908386216417482576626346164965061741551949321301665687185710106003282890148077156804139909192918047706522273925423290681263326609538098904352658824675018838827785594000304115984186807828735222944670310994240460831548854996365014244457122777430215453680575223835166363382663891134814835527302372066784261377052106085110330840053690041845188642833879744852066926476882441915276734431659131562992272975227465469401609626642189814847483087656561020026250484407280862148422139254459069627329668087595914742422051518749980569206836432251021531022076089625410969928161447164305978458630979144687036900772094383231591643423570692300967514985926686242275165874112022415389543958533251375637903121698731794557910893829382797554062511120523344809315466819122031711839143876173216774540776716405890003685866234983779957817872744505221300674113250352444219532126401911889846403807008402487615386820252801891877084579784610497274105011470784609504397419597885074550572845622592992343956668559463756687021636815980033064379368258396613116330109919697495398520538082177462592336338084214770323938556100702112072184269754303185029666754535955763225699248336266668176404545462966787778971191988065767553128158725762906559391133227874193327715683423331625669209849703855667009906027618403099005964942976804441767219161567680443983346943012524789883200472320533170345080017693155566118056440767126335217307401480156610552238721801206980609778106072000102924763755790599316176392078692598131741362483452671064589878192247835629890833319413115316496588569580867093716459613486882768164914735677607065273474654374891290931619697971221229282102250565212678736484092175139857395840456184306598059418794817130477303552349590966013668018693404732268982839829498954028060326500877696833682847116395746286227702611683187213105204106813908105388844581952964324915286663159463441419285248323758347732183937688234849667422835564303510488659650606330898945927309622975784714419241903235755282133915184212466711425703907952744464609707112804724739167752834688627642903123525858472662305770419739079061979065466698357764954984467326952545019160302246804545766349042180263939585717568962851291208258685446295181700319972406532571819490101671984021225860658638921510859617624454960195973497357282328735683721117420418696783361229633524303913693325795927913891656897303397659546496081272901953877280989687247426492529212927523173293704483728296806368288345053520083244674255428052290478874665384229580286783770481276970561329478354392985797625974216354172252032017710367685513923030466354469723821751037239173628337850453112512228395722214066005896797061243832651451452158350645666129474885400562613373354271238450098818599384634926136607881013631752027226876951551381040367278869334305310820940230206418260997059680419341500922293303998325441101342552188196251789514688300408121748493565808212118776975706093881521905143792804194040621441357623444511824237745196372939965481168073275929465699763473634750211267399053412744684173475808457526791254265924445903108803722670841110047066230455226613792602261780372169191112966508716316944672402491842588672479995016213028433887667833781268208279954048515136688030069454244246963602454901069970127291837319637165143794991457233948461253200633887202019421428200875932431335399859296794755805621873758876416859356684334374290901514934493995786239570262226121522807090054513725819764652119603116399382922991335140692711981090317784343880930350005624370317032784873884308048197942000681524075592988210715582132682393088693832407855964278840588490873165517597238064499426795994749024794661072722691254349380750930884156396784478088020271716722471741098870344654692796093474507649697224923429207516437910777419081150077936056711681895793033154453220243349632320332533225620568765232713004734192753938532073324294840361005500241271948538200940865988781261761243120605376144759127562622174440553789555221410064390501704617824549426395579096228163668761618640307379267743196972861467613429633037404377115166996775792436765816639407034812237185873593809321687549657897713591263587688858110574391989855737595683966412451378718369436947408688441646164065205277581930955899676060237350578625726510970854670940209406032830919323826108768616239096497190117312633654632400528726036947683321142599239022444775906233479654035595097284144434825371994937887802432156011213050575446517297335019188516907811000491454116574243254938135849736129273866976217079725435096469664627340713988389714078892007423553483584725454032564738341554450426854224961948099920824314675249519445654704127547755164028340105599861177901902816316569856849079252344281188189057119058516765690344798881127106688287773774898828253799331106820784660805933461621764717560470388765794444221358250491201802719711498807652198142818523429158950982529601394393380128400614503443984418017634467265295405144701140897960995510166861406232520735606672446683970074718041578986565508472304329771130784024462207087322379136250660214254380630362431737911660766032848516207912155838546022614250979817434340940437641390944853006167806184023242615440479491568249825051951419168697139348280056139023798939148618195980472226073920132636772224309804551243314661134975819617794898973092067932584792480140149453221472407549987108369659052524569235033698755558101041934816275923096731846099912381718381867682248252033247906443443795448455511171800989665345916795383082142682870543150167590501091692814245364519501417281642318506774668385751118201808607455802451031235842243461827859232732465099855300690381997688059339343120413455736441644912693286713673086812813703088653438865627106638699507879983296183077228924147015938700930347816962980971018651532548018866492834122113543675509442180310534256299356161413281366722408744240583049484097016977934017330447780352870262998653595949857940986665942185563057044922392715700734016753319161681900649908515678818516615727779241945504783328105846400496290394229212259789217026933330721706777397486656603714137380258131531187449579735795051905408825474397655175907032776953436085352586406973203798922506501735305975338061075637595726083053089847462845335843853234435923570178962481323788327199628201833464457749056799451072192183974121403110625450727036878498131445133886084484854773663699607165541069796983704028210792666855304964590329865572433428919995306213082781669840195956621673839437018582131632651920246727040151567153746266795102435152843755653292784765845474642229876475836712691091848831003963860571560940968275284748697233697520632734321471453909836068204124423382009675641987994554527934558481497546163365056196693813967820600075934262392720330398212367658180383236542144803390965657269353412690448690299210408675891095851137809778639215774227031685819588901228944683408149193235402382986103971955943203694397178135004940247417000597829222084515308668626991863144896760828247860710440034831665776071739759703638024469640618399462939664415615776435952798997006918536952112736711496242433693810610224068440310613457279294365695998435254643386814956319845319965135291912561724688983099728852367471322851701344496860942010443906566507638331885655467405367948802687058330125319909036162543677660370905273186030139869587875560842378026236178696544611644070489043320234529326273628486841641001942967577110165083738951226625415844603797932573142062534348287203472889719347021242366126225685248350007066452184538549050650633272199452478807028408167790169786021594335515078315938558959562121588659678308332607976481215330267795504773050485557797516694479527787906875603472921463604569127633738660480289355897895370891725848017876079604571577705837464008692377192843929439318907087798073400800404589927286812200546408235732472245184197828365322916056679601785013348708335471129310631109753066506707378267789955319908594167122724836085869561848137741952054044359125262180983869719632740294931446842932371110808811096440442019545450984865862881763178016356085332838534236777913223875470298810029351715637769177206388907486022927024148979535362912981181068505962489481436610510468795531409533451256640427429929395081817957673983746670739287762001018606740506653014619618081855964744556453198045480584522769920073821461476595144445502532002738251772837714545264311450743173770647902287987085101909679199928882167322605437420087373777789272172862449702530761108555693398494834767025936001765992425427879913440904780499485613025935547811741051094968905815758596844548455425009577645543805088291130523734450255687901365582963152302277571810288394245252997654904295923763472875284274953984373122330943276539953233803796463361515930404262237512523213442583678785333426076025903438524302436381272397969240805280232224083365859386156286886651291001262294665135558465941988808774748113840837294040835948787871069010702951170749808215524404687923048573475185354962385147987963289303971201924950011614838535178036802049300057129747186186637330053183172849077604178444407407896453987484784892906823574433707167761789877539029656232206133366653256870570247768302764321104532529073217335381401985484219430553123247133463178999545073080696455244111723778653988410918607926696367264029751897926459122576431099326603580003912752917007246708427203899559643642952307925900762804811693908966142880109047746474492935335100471304864168881756449860983065237855672284353226836064676508271874477940634686634309722639530558656661488503349819474969602542806241381312944865531961506839905676084715378785150369764846860233891310908155479029241695667469427064455243734789043369960757116482920955357887470156751993416525431096537848052978542793817940230934232967029055769080523746065986620011526071052057876348902145587623785781760272480318138822673814949756824591102117044013618853772183871616614006517717405655980648533136680702681585675369361847892352790213227847992888377860717397097988423847516095092169745367810573861430907397355349041198102876950300060096239971941867885107135927084577897259989448637983664208248028770061536340911498542837202748441364399079783057909059740219312334083648518083778213341472210339458609236412219970005912523596201472668877674202564645473694567774882589542052403276337812459724564111690411371492676438484661305415296291221229700931481868048680139045262603640159713891073997287574545663255833935406130030976894532458446214826615370446389743262251321304775542936035682891522801580046858483196498035920715615199690659449781307742967428434034823660355567488122372739796713671715044564181760675502735403138519419277000605123896055418541649076421215345115455222840817922087309318348774670794012506014148091159309525544392899603654728920588410821801254394937960684066175891781301254952345155760819316127323452420509395174143867974245873664653723406162380289107207079568303627184592414164876481379134958031166345078166069079111559836708105696565533501297432912963216099154315194647067904505495546674374880099278413906367321984830572956138074454991518202465082840300124570007534777094441862043876135987899924052726494442028446789964331741081923596867509887187417646316311017260303406711019581729539923094213424852563730439981675435281199770558431729798666266223068821492355586557323148317043362389598934241670661142049223771991198434761067133464040709144104903514901611563994417773977792100669814729234351913122154838721436390928650246244203125708879241725813544254095196296351676160591423192133479266063989864598354521354197178000621952523909186584716794589562051005914192431164900825855490378500765745675618806041596079924406320410053039950708376884238769298788646826129002595426953291740054928732224309731761578134186875268583955774774641123230134183076887465985354272588845604251663264127853814190080857506292029691060637388850120702107459648521130726260646956205854546778822306804573558703228239646140796043999192452195114512870869455355085083349905085378682902749884132745911742275796820127027169882274333724867593818847475863037384260582194148268298832095484208342452930782002926987047914299274058337016801018925558726874174535426429967401740668383124005863615414646373420150036431046466388142883957566883439286856021888968420360274827874142590538842608356880922509691362176753134441163368656742704635096853386060016254725059523822601983852937781563124580714848889386555489079446223011663084106098461846682702731882880838053100983024155236034800517296330836225934982113485702279092746373884429317112789799199278147176178714662957233981025751364151944861525948943759920182185370917474617890530328803911221561715008788094335283034597377647723350763416340515953190799553092310234242499114351707187933470526575767518485622926764678466362611899502041642200100563310942012428919794560801709117833229585589350577936992228408228570180462216740642938660563661012232699224353476632140178081693751457660860878526991701509182245623610191651896490081520595865510402077453313804394479739925068983955119100238228629326777447382068293347969731263273709299251139437109296390012040565802342284327372237439344462613216022658780603777560941478389593591286678865209127836686270524880169298912196805677540768977279650655857844891594470592754904037318711166327498131175271971585071927215296052617403208999229111220714021622068092679619475524286331602057690240442807436179457225095785118656097252991531443243257400469123711274979631733167194642836922721147973148938758753885144427874596418761380927770523278669028238819850087739469293492724711650199038535215933971292541899424142606689057576269910598731804506142334974074680686435195010259919742191057445970857389499966784552626615459581578124562512515725283816604593103569061327794199697432200255901643440739618327489419294358625037216238664818641339236836146074835605056769224957246520242645062376484858093158815505442718461516543210563468659597169288620260824689096142860262203659347282699654166022336203415403493531769407630607210581334034512094962676802032903352574089729882980668557551293949188559099372672410979537797683873770566210415100470893193073443411515747573513447288332077520181482490818708475779558134146504349771267805159637560554865457745297308036564614520963352601551399202192352164177661834025325206480968625185788846415490720960966618907689859628320981469398504474616868379288619172555885384204235899235289224277003373860536222565313968625307277167725154225148566711863739877067404550298632030443122054232976209183485047696620085083786887415057352729497563571979990683682614330588112115267469506022111788010175178819880142839020022747914740768385375069960228454341259885988071716640557121659035697214840407900731569103760963903519791891692291718794207220507486418419712348635289024860670754259444345387997682756376514549002368759073043820952276691961687031242606231335132795219385678593771970813968686165048910268823096301903851095538431383785124777083998928918868491149339146602559517049533977758383940601993211029434092667299464335759541020835635835099244874405007587363632971603418040198537178505988404712176643102083449701979386608340450804902945742319902936646773577465084873826092437496516624378067161812366686764091853728877262240007898504635741061680845764807398466855099784956841731106525835467896615702170782150860808744329052233158279573353823953930037582600162041959042806158746904524954679264283731587900371497421256539463268398353048283626246611123857662291200782393534235937209158854499237808799423188342601414985872317494687978550944357081771090743666466527873978926315648140251245512200387252473094839977056109141529590099139865548878845931592988177402023572902772826390359529442512106710291547045938126156439775807159002312037312442108529372732787959205717284234099967110290326052752693357476001398513966260995905118160058271393364333273321752677743150824087691469626404403050364963229401932293072284183815010686605498420569733744703808739123628856194569237280899515590107363412542204555967258266744367454974763257934494792499916920789489616971576254226510169394761943911352690386540836432687349696740719248575528716342455914270941600180985254373712460782813666098137119678717439464555461363587119123844849884659458746063353724343505310458445283985403219951324130687744979452781685868580345981890528942920607945584361218169762175004211214511627141264325912365578845833950816394181097470589192284969618205801147080954519692492195302997159913730781039368430726018246134418031749179218132769443206082684378680327891690390403195565492316470006110783867457950869929855537206132740192169643783482921400290119945432687972628935158591354329555211410240932439859474960229457778269521586262815079374533758830796104096982733255393666781694622203042097150650904862228915443816531031806442130756355687543760888234254568769655462944350460843599245541086738591570097688890760390345888455639940701206339889627581919180368049776267671919898671259310352653453868792803256040288982002290465016131833481878882726438405127959872657771524407152668870196084788092502811530265935057843182684762407305161367125616650310685833881123044412203766327076936896829449985852788981777004299097655346659644798835437766081997320238329032657145840553062221155804195237950738628282983993680391308211731681807907626283804022357267716259281887374207562145010710035847773773257578113596553791685206760742556240181600014418807739434803438962124209807257137152766800032515714056143745227422555133963800986580970472832227311526738302331316284380854799496646404508087234809669105035220635573465960649985721734268339077849259492858777775546879539585382534410273554068780162322248918305669189756599078418565035699590643534581804737148622344869592963364967228176388989828109625557249009996886344975256277833680403543877281322991680912585042957508993695776572798280321701822719819538401296198713424188430207923379501562982792026748701592860966559520337718091553275148559997804060869981665863006282573920701892959858790866170563955860325760857098935397485273169187048842448507122753728037335644973181164419941932867282775940755454878325278812662284682030194942490572366750377423750288317598441417268221507072850935806632814203237947987264891502335807023739506480680012582610378877128973301612418614458308019875887235850204808355761792620100277851999893141296905341782306166064065411283070678467674468510029294400497860798478277174950526847655646518935581021909668485733678299280490494990419442064753989713963694353948078201225319541721184667291737426097847271246650883754545137377367250443546191103960703852298582117061167102932056548583424924526880411925179638735646799712938770912456044344761534626922215735365421078496723171881829718463488589294346521786644623661442429272505430915141188162821294514938891322756226164684524358815025678856396536711778868226417885695350108567756962165290767853982672474218154130897691184309948604716744944974508712784797676469446344277549562905941849380328740768671711002444966247048076473271694751275601546238523663370535761005563494350979513410272502947159797190689851655995220700183763766568563220771260849733365627441388490017382667493035247396297468583206963128575577459516695687756440192983517080776916325059832621210044876827742752630720569641217198508439319776553443012332064824654091235606503694983250631990535937210784360579183408547242824959405018702090697844205579807653636177660219300208584120353592750356807976317338431980596210673130197973226854729840107255793785159074373624813749955981699481794579387305804124516996753411852279064484652243478976710602290308439505894774982215747121333921652997679595936743159106956924991872340500657050043856170602218006931828568756638048112043741763755634037556626406862901290421710646644236761737484238001192660997242943403343207817686388569201232378534617206816569351948704284532401046571914817946469620651292484691855591888004455097636890520408559871351769371842386769092063108852037358174931880055559972714406086714205178194404196796267812184874543614586187116984347980321306177462117980364943797873605806784054837604378660410317534418558020979935661602510042966419069071369644467231624042753260005081378357501580824312439621268863279217727275699777781060747417626425566884421884401161313288879002769913811770088830266350108059579208953899466922058814006160280030469434872336247603135032787360997030155333308511902606337867636100485105382550127849670087167569651994119483383785963525810842901044911540881868712574569006907345292904542938728791767752588163454484706831598708241197304797962114395060311367736169570676974487183109525145364400980292211848032038145635989158494301243135436643631948840828094131175802796448381401495170241529970995990046478773106753702386455641787371973748324916638904631632741960659498043028577927215669705915191007865661770984903535011210545598336439521025705698956190664505398291499622916040764360390524420152271378599127210724287575878801044192165915193607264940942876739956700283978060977249558478620534954913536118931252759342984104105578095483557608701050179769520199621317901781296959463630285907687173974523185724185610727590206186723956697964159569267216942893092569535536238019356615677541893787438592727086665418648435178246641469923772795877174016631988155320536019736420112439793760764210540288193643522710956237745665699622646821385354935266131559507599275652275742066335192237188419234445061914603317794079796383780857255543081737243568616527593187880903162189734008891833049116092707277227923588800639663458522299492430762951647795317059128075551753376148773332122148486847444145726261329310105311632373165149509235307117614969743330300511310609340406431258442305259858088628467429526164581998917696078346352080436469973251324717563044100693023165369254578087377348570255551610757263937556054276406058399124351513488812808003569459366789403346728158566305520080242667832907243590995977573147676659686747634738588047925534291681272892960071647126092855073690165117343270863332268031647991159776839312984396953627289683408705823950580117222041175570723617085899554604918722148652892849454357158443594598803415400687931714988714660579420020810185410842299849266418280869948933179271740914751381919754088701357122079923304920253583912655581068211146975224716210475430233874083829339590899586884052759071892934303800412171991685069489687441284599321245282178325425889282367372265976219543477524972635129673767918408921459502782499992399527064564079153410057202497553729244616917404229848188352700625440735118489136952660732662852757595452455708373570898119986546658998013677390147941176123597892739048706589306976220538886157158512040245213623852700349411489365008332022483286297155499175608539125002933854571662876110520907383610119171885770211179664259755304117904028280527132400541440180474380701961244531553878767064903898049847162941728333296312946672893307938300675975582283778935179614689218997977252214756810516502320684737743858521958298588080561767944002790128168330557489527871453581904963488907705599377736386497578319425722795962557204398669278410830562146617775497195154505903256599050536142832426909706079017767868211059388388334929160683077964846734349876648777168270392126286053448404058131203363254241993461420256854083936287983521270207903745743430894417741316659411001950563854136140723820977136520070449056857665173245869471346271081307589570433732947914536628142613768676673107708679657170602123006497513407157139716910024567455534114512070759089406046788037226469687766203466908993554987310011198333478590273113941592480364288387072627261204310257582708688735920983503188544251465637600801421835202902581240388734757230729770112294420361178866049307202318173718942477764462445901348513132334180920120723528126142004856199334508450382539796085154912084400971580339361807736288609385344880384828106249637518151373101256088822738443955907952454893016994542371995640242105453559180193317122783233894941235597867907796458298811721014296029598932713161527075017253816105167427247014005868827698548011343066743449763215274333359422405141304520027028325933600888964390343748332850037672422744241818199832857435532108134060288621454819517897279295811756937557403115959309725498555499225832840850788241446504936186904234543127073409210260453112834668575562159738734368295637582069481663112365022798265040720809960197749482456155310870588697838761735372785685571246560500481945869087945361660697151788216469809438669526127846371923011401452504114516998526148809945324119006055190786772883000794674136575938893170955789245747558615093624720544616090046167802455664509153931334262450289231903699343531829862589664155407159550715187761060532554481865771761697309679418458287707164963494024243782818472516736618969733627742344184949819792726752044972615928059078983391982350808407183124223478590419818848742423611290075003294177429291356741523250729536559942649237090378794270554919163851179894697611845687983597525018096787319249071332598874496333663093786644869899745412643730318629852092186365438858693225354299202752595124512003609151003595810826443741641671611758720243072547329695615081615992485530687001363611672628437996455688652013563327354228682464540132816932688569971956536720373374606125218071108976532689307826581871680336848426383577204146600115511285552919909677408480272667640070712340448762050085423694890657358163403720797545552706155397003872226567100039829056080340926343965719271992147107187955062385853427442694442962030575110963746162248402291509347711055575095198043874950496129609920105803846403094209074347681176883342427512945166120699244828759099360309376195444657914591790506905352262859650501720098326210137436335870540748730061801204870715611189746554591829495636458434548011495212959743329367576452015562862522407939888486274726292231323623494267868191216601065759026520895114946284247185108528423960182071405550409467276409759505075828076801401950682139755984109160130970299522151276603171674788761307245066314302538128048270694151453409064030619198073525962831814520801083607066694715681115703583745980132069677344306263867488471126840381102773920589831823504427280281215672914877497691942993469079791048152715695705482357575716046445752219429095792749644875112332385486048230462536766416831098009518535528046423490872580152135786584350161313448439914797795344116312868033352363470551198165516142361226830683965030005505198030425751681672645387165106232250561469196628583896448170899030587337554568616032261184414495798247690248225976976831712825697722960542714707264041932727052005422526579463120073010831650580747626007739459979576248479297728301951040140953153698013069452934193270478677866002154235521377807878544370855580934265302842871431807881212542680063453256850778791166121005705487315039122453207783071624477635577987024136968920775440143643948456008446608360096631120297261158076039542619301057041676818827541058161331966090624418804310334508440137151301027910341982288454700260705118444113817311315090217372949340217171859115907389270047872115172518790702643780657675113290017853722445255031969202274816414534430226847973728363213055675064777990963376673641635554569991292208612902235528523677154092530960007038730414081822168572659354779223410900732297924214106756117679433401110097283502966752483071082507269815648007368335995415860108315084150911858170842481961089205698108458487450174391395184711597988351801163306038216003541745439552816625975615623111185518484688004374665977364287248204410145320091096332071546670962939438861365559102607141189485690961079865731538601598262987672540291119853893112679312254988062269991132448946362499057544165222540693576274497912544921690070907717151529003360454881993921576791412179004824043318932522659947359202785131119929463883758795947281526094060479647474919508397848451851359210901552931748784558165499469905103642668673590543381402188784074591294006092868610606229524194902141881610131751002589861507272770596634121235499499195384874038976634779134230020606979715787019952435093229217825099438798190873286073453841359028805590655381225496282330649533442181678620813171524303815619982508873832725606442471904921805560719558496237432715906863779526170539274735388266471525596835077306768514802944351738279408785275448812826912402008744241786057947461730243746165619086634172916919851538337691507571809822800272403167024317056280609869763150260894390136116163003082893367432999479050408191802378272778552148380570622555131314063510661728199281463936934587702587273514747742281737252551294898994848147983288473291314366881805013914080349022906889808840588478038279196443424609551387423677272971543996506437092968744773399226513454411364418457196129609282691980535526016534762376919744526903349850315858105853574787681849550440155609188400054668745182952816538620311786020372240543003909681641909357478303409077260692611752366440851297756463969990551719460438258373382212327160960088602822152531520509166119518806789119446901236364280893616646084391128132843274036252961277338569689261048339758797014349402944865486037576432056729220308411562599771274493904802476197695649957220573025248211029212156956524654607829981457249723229072192144098742430330738385219947295021537069000099029384860487965326635784938898689598777026393893299387090774274342537985857163445835246103956571429691661192341028113914482738728566325037839710258128352120271160315731061219232793665843338762268192564048985639410781322482894678871276847043873656217463119127696251370666442415111449956041059560508776899231558233557421410689123941825842584035948639751572061732528502582001728528867832757870664218885528513484979877127627011331941537894881054159072426118922508148656658093492761754243567350595495332018624226548942056709490539122574219136101560180902359918942979800372021730728598722740253885461551584654639306645492937020208251000528172098241101045277778782411848162968166391968251606373641742238941095880448847432245222116033829553554681663870147673984545345632543035388875992516457904974745032434915742427826449902770232978020344693469567397339050768779687412449781831314481757495768268001617252779925271397444084995007764301648038199611709722791772880570163084597097051740342909390909468456266351404496132814285977002193022589553791790770350451154322737072070257657902879059181691490087846151078738414550429608070938335422146277760339758979478999173253181162748216692498679862278032129253889459954042733806282017409923802028844618590622634653367067426156377901531166385410451614981620203521887497949376123958183626395490899117497441729860626583214662018423102830886833318201921738663293238692899392764447867410183598782034393489811137971388705867293867479774442615674644845599752212606886371242900502824592322389820249925315229700211689032865737789961954971720560836244768653652949875185130770901605438394928328862172090266299395697376111992744124969278978789501806625890579224991828218411831987109786901333962346803011907121443451815707842436758163978760451471825588968577030416968888208362484720308951523364166331670887565383847604221329942503714726540953089709154633500026371631859303950894311684034541810091925093742465904389243236148280304000788324949599104184210486008179544010878976316704897872889114141098208926327842717627496401439171071838606507090324521164865376121863172556462726562682971047512769244946044373058000316364216713334554403951548698000967730411676805833714427561805389121636822340978325478342004706171493847246705433701941187003068051020186802308969896298012244423929766888418091513302547279770744917672382550295539408817397818525201595576656359977231189398006616708046032509092501460204271121864230357900976640291154633867736376416123016028142220964985372036854555962276061481330277826827767555552602780519951452414929913247508187136921642222052626173338347844458702828108555211678485275246338823114800845884422786022930811063703781544602178742473808157755373386516808882351607557624400082369188861065887909062511163832073877497117498027803945058927088142909268254681442116094436432464619208092677493054177227425555167754325933886039986816481709922992801830329971311902568476549872876009349502370200347712657710727750686798226615475764699957361139032376914527377672821652652944626565424264464732457746509692834649445798438591703349233326274505634576658900205222268372147280111233412108614626888347526637431489366724864732196692674008181133082128934124400961498767059026949400004030624755887005424012852672379140916575107993591258244317806151283179994873547196145822357918092796294817178857629352213910097478646291404832983661864684751684312801417013638001429008068147785405166311968353073250281475402071318886561132655286343879780343450094649388262394921380291558297360251406041102061931609037454456967029674106388914639009282280244243740618879498888150834654046824902951869377346143078049050330458119026447383098440647817755023895827475697191292201738063522918256297114897538081317812443140566664743090635011933612929623994415703493703911102410024383288707840646856849030969492075123687624820495650592708545047841782172266464436916341545047740310523861731071738136267405713155982786759703750808622825014330354715567912680726819044491949771151731536202139373877991140417111641456602824423168095213307677026673760958473059276566634429793098836316053231119003903054841374332922171264917995808542342130037657747348813808899772881319677860224503955050666237947366229186976493538681627100572652746050254678810920493749147841269874208425122772910631521223672834104012577880106739957812262784484262472487755282548512677607766815078370559235308233577280926358036993960408553287220663967619670735738849295669315386006656048848082608354379965339888865008297000495639913154533043955618489305502600932612496259280330264721364845156755632971943253277391923810487473238606379082343608489775256250270987500531229140135236167586662250025908717415917000254019978597463080411942836787357442828973992321370892348566782927180313172031406672021876830054703351187275799037455689796135616209496850417692253987993885990475378946358190026918582307597619389696174341123888279522828315604860498105524059285184539091290386184095154499663578563195868282243099926680343336358372352684689790066935443539048705317856249213698360874781638789249003184751553132173860720660408145520705363184390947970118920590214410454836324213471645743588635319653490332308394195240532813632822794719351937197875519632040277816451079250497401990327615630401286796261401687855225198974673364444098627663139510860288958903034145403682765826232188592954676749285153939349291382660737717464580280952393102827902954614059817606964186285627193805295336535131427640617846707751320429034041986529292756271118092722451836049980474610907502088356300617943767583975777903378234924638727754141482562003783146069534455766152514299966712244598594886788142761335322537832672651082957725896679906926909851854499260698743161148354230063931002784027367600184353400812019772673071306163723914631487364289565047893113111262283769121105128247044824543671319284337705024997554788050107376458248382916266641822105295042379487165244507127630652585490624506314058198610680685193669039959314417900415743923655642607512446544303640985167649266656866336175474139331490607827716904232263507882924716809562391212771320306916028560244883983608703634409040938883260715174513179035347482741721730032924746121829592821503937959215612122262312269068733716519650520154790969279688361208510021543653547875132934853126857355600910909735902043711320545021562762188836140842877274382885479894347113608733124750326615743421954044384999864492516141091388272847487244215458868868795786400762109953547825870189056045909757771826961993062484229194559158158417822482978825127545368678844034158738712828925890416085633245407740496837793660926516547489313789264273359048186977165633779543073347747145477555562922736723927043228153199452069161117463957441255991675480021662222519884247087002257540933897887609110066875776085399118776664519979989650543755552165946250885147987570298136108786473498140779602611272486836433661874719791329935962497697679086175816934497766675305348059343314399785174235156184078588575526939331691314473559461152790270474638151334646801452719755588450272238622398083077869568486522326907630383580778429986801353102068124954100535153686639026268052054699925524035057496428881246558983129893954562273603934334857476203058439980483656304843819111139101367601177012040219163416597316836478564359420591566786647104293813006203627212838311372123615813376126749290693044716833407005226409299438048739755945201297345445375944945762761042586339223248980380594795834436859018574468280740120587358854480614389758149926888288648521261246159905183860614264055065312624969930601371369179395268554504679609542692233598862190558928662296507343610896133410525167501518886628117852905941325105310422212831324792788653998369332386474878394586000641446965273786350197478761628774385719556697281483307991165836651928642758589183939692463620249391567328016525496181972722156865899323274946179439427030018000379367829963064884783297981640831352754678464404951509884217643568634979890454516410340727930218414122049804064864282068649422698521842484499164472782033015300501458116054693089418616977817405966417142235654589819429862276648507538226442829411870001617589525732384632451710606553364371787580400144273430107771162831974626331924135565124848942585968076352025207724642595941657052031603538045254623982093538599728356403160756735549179773761163926165178790657530747095402299478581207753185105197501026818633544704229720342922096418183266289987824495132101716184737299989210735726748840961223534773899196519281898933710269288668083791659205149188234276921116265386460879201426951588079553963281823684701965443294597408997895716974960438174455896196892263643411961153346694516250663903493532136590015846270695708127475741201121632083476209992809040565535857190396391250948264473577753145917459121285428484782235023044849724601353314280479181627968611263485268043497665826081794794985787407668701541775778505113039194179326625016423798730591034359054234900478078947840552696509407994014127885032389388132201566666318653420388269384084911907225483602469882486443701173447781576841033966262110044233202489779100416564036564711832828057615909996016908453579082358323146243020412478741933442577949131569266935370410647114352727813392109710929383926054471074622187370687730412190419454754522806607156267201545423067882912797596804644141009158812237024001159894501591908968638851033583333732428241735528253199491396290659969766322615821008781904872209407687265839976102461789190236431197270058108197166749394569548846923625569182033077990524521700121145661766533480895797139206215749878808289372104409062176278679279355443617628534198820676795361995413334974869216667170990162901868687253326341988130946054952136648627538399492828378915351735535825580555767491277166691825328756398270512476482761632593749092149864390583461447148692014309276854456637997868085412300820964395734531969354498300586999044474032664945812433383836421167133104234524226603835026249521251484917379833832068924222196523283758607869775626298681921575383974637330517928663272728483237194606566293314111970942179744010548135041177050562930409015617626689828844591559584545556509675246964884937761108051062299721114947153194926689322744002541047765291540913157487716660743402815373308194809346503782896611625219709164885253968213686422032970159409056171699004742625907594915129485318544812065653228852178744659057942216007240285872511910141154039907460223796195960566655729171694749694165613161664361439615766789896373330896296144734901126189400412455237124618377058113358745046984941447357485652181106917226447948435119603677852372877282941278381508996912730216204963711464359854270733814670609234425980244351294513193771079690323897880280101212560261131695245246780467623462995511144432172052215923602455049784389597606711272701987842641673227290307078415457003648100434866720563909837413171888608241101952049556102659182937930043210626927188602796108604620429563390975302165892778619310634217732488236836082560171315897400456373800874800747249068127822678371111554334939060030426392856330804638605850345906668654382262074198595669208707074832772720174588914857908094468290144880024883770983110291358007880466818011965239470811253228196689597963934056002146130084484695674243856638781865808653546324315034148699687212888893400440035252186397792373794510019660236486554652625898490071300089500939048457654883368114308184614732914719284385951791633510944193073107116697728142513743803470170050488618299995107865652654482897597965504665724043576443244899522167680528968497857990193320291502406605351850654318973246992163460830810916560791718185725483585269779481623526427085308207166822751177554658836910338526005075209000319324799981603116792404406854635146505812145256830982673778730559483902542492762195666169575309276358403301915643966155521543709101106668315636355167587691100992197112351470962080250418002624508660071013057871749375217619652317377620680792450211848587682642985373978629781932875730604466274304530421780026756334909684513038248614476271065208474644603834466346621542241405408245369516454454339231044145657669536648099671311045712634923620114755005042554500094634161360154256720286277679038256339302771928594306652258235787570680689947915490366559348141085415507109054622221191561849899744712782864318087729633948210852974621152533005338770032570260902545460733063489240927505048858017923282650682712005370690779166668509265031132549245485872571672287199563383500687554336657796976360650439267737873170219033874694341381322647400783675920646532114721311705130677157736892605658911847865289972962669609573151140559452639160105879260391115035002073113405463030127723662335664862771087462576755185225185731243932159427489393473222662518817119438576764196124981064330417892713754943224822249554541701381271734419153290492223690436228069994914699311956912134243364371247199618582375794182759525091191177153414448019076271060623937382684148702109386898814605434416351963502927556998694954112083787007278011099634435759764097561501583439346328494984198236937762658414063943054153011707174323143354196593590922723759028507031340143928584738673473192627325272551130341839306006592621892870518915634373171145952691194128771139524583934837281416580112478913066066623853514322844510560527634477182984555728250687998476099168619825867840349642922837570791484333838794001641989971807604921714066935875517191433154707064702266928343115902001482860387295033704376721461578788294805006740183126555704760160615579058312578325537735863060244034942835439501053825971118374236803796092651943789309026059467049588902255747583581011348784946216171740792579377618491260819249168343386744427087326875620771297145805437284367674166538027563761509645767304327073014248106094054042175529422835510849680326952316922298683354255886315049926575979656856902060522250334116127359539632724551120193482071115597981171584287233910571473732278598104582201451987791280790343608810455349009534870256951984457916357766482829473286274341554520221573460205345829741382152807383339295294219685946904514674602592864074200022983380336809349684050338161775175450710526370607271473568285565702055257505117799536178646957844080770328506796598595621702865543014401346943340666253159998601065904728116440070084462959140840278610402241315569107992401975031942950795140667240610989851621142253045846389175117220643205888669294044918496197091999688712913033063421069536650281767549654273073528649000483817790331999015780366152748290343959121038247867807222762122780182441598059587661690475163319487858417826969308535991889151839278447487590124398173057914699420931302044028702887314283815888173515692736625856748822590846798546514467283617895842788496834122549929491762189029413001917851305421802296779254860539038053587798065562056395322425257047822102258220889899555358042737080184502994457669384241804159468922989812028108357857857962435663065248619143469586680151191719424979692641513369097009211423475848212578030309372778201484237416279419574625695438408147985606328300693610254049114270464838456031097274330358351912300237504730880188040501132968171708001412441504831817438372491579298937244077469066563945386188556933790461199393507928838475805567433745594888224747305258588206954826225470072530963782193717915609806895109403860241208078553253017594058963799988861279338148354772551245816495128790654809596892985731836364699337227798407020436291557686655302402108963384446039410845472318252621809328540017009431154080958264051034308515064765087800994073443380521051378085782375023164456159012728026971502086862055195107144398629302560710898711405316537348433320600330258375482660218347032050685457969175792863003571832923822710567425556774879336443562625091482272187773365124812693049668836220516913479238559991431677549454168604504893068548396209964894850453560044585503744897938411699450243781557475571663634018197027130126191362884797237000323330517147637926122495310505575133136491811021763537049506810420963316808073647205764517100353392165592375271875570233074745351487071820718576436179923346064954985116438641288445145545709541119480697816378649167683842715097558063686090994779053048030181760116318460283772161141163433256557493838982650678719722252942698677415370219187673324144760603767767650477884749380517679382502429967622945732769074472857941137419395647290625959730276096182550692726384875779823310130932177515415831138475291104622896327683477229010021382332398751871367823503089002294794340053591805699468035727381216729695768087401559724065287838573500143441969777855277248335304882561466972271143659058205999872109832868306029870893789486633716157367828740699806437013977284956997861102516862851599326389331478960147789441187219085909718515015036932673134701237256982750702457342067453944608857690078475303143030654161304983009489925150657289079321744505206836274505432993699165603627273040606714601115261523657154662184372157056574226126761074256398505145265147338167139963791918588680122919888507824364709677399946150400760020182794224389453491883234719151204500891001428673178950110079581506464190613447671244937218004737110818539993020334728465520818267872509799823415214679075362537515738415279382685065686013714813192748207026714191097720128273941171092982402574198697422875686546154446686135819285459238500334403993161700302497273168664552395086255466082534140055283175233446867339451346879788829163399495258277790397665375283346482967318140748824041455115046043892247891856157171413728823986022204036093921268570967802843820567773847462322785321456547037463371994075229767079250662819689784333113193424949411859710752481720580738884822347659822474373258057008816352452923010580315167247452147734170869849567907631981303337844348717606482034282886477137379661185440761193066367443569540299124787993977593825032408801344495248512491376625440755735910942052782626440183208117146806195529892663431418729324799506216134810820864756219703192592770905837993232720954402498974788888789705211933393110607546178089634956091755948439106919785572753627783843504433547012973552169779435881458039398335098868273997669906569670091344352325281669280624024857274746076567758372639947061375366164733941204150776343156581441181642933523330193392542230402965032910937395873893113975546184540656139980693044729747338012406043061688733835181555383674584757075298568823656432067686242392628212766279344163845242111312350086271671651730998568320133626766280250372115208233806478933024916909465930547504176005135325548798847946303305171697195375476011244945147395262567373025289407734787949461267981757250017859682018945035212506781507875130396717320881171898680632034088082004952319130375125034354620365251553829777721449803914057752607861928779935302458931510031544182218297661743697725491591487117125678341952632606669530145827434665257448220569005345426136602615656198879486522501645622189575301561795890480629373811996190667566574951584789886706765145321211093656004852928788437690505996756670732615005306904963851360046048196546687353393227400695784570861955834727768015045342961567531904898128980914255202254233435543786068414248314698695437702503440597153174970535753622884242378865735688867303167909722142359968319064068440226935779890591780769066422020596312669306326762761823508607213240472417902527462648106444330109550161798548052208696769597190487655765336184175501214396838797973056306609359518248581407155963023583244554828579151142158212267531659828563756365587935193507692538288576716798251222870809345009201949672333061176299235752658305641335959157638599114656096704144920619526456131049576603137720680469910493186350352217889682588028298208383627229064717972419790599697665286006326643674153423043154749679599557190745454771349040168065704712672351896545885019202985632486240016046440131313691837256004267579028201441038726539306756307091189311061075567274473390124957363007510356802450084199471739180972674418626495089655100110621160647172754805615957054217623807526991234117843830713015461505991724038514129879528057668660891509385911246864266855137448699230228391029032546264334575843817346612504526354780206923979539886502667214858629521996773705824090406472739941365902208601950990265124406173568257875199749886454851751277344248655703753009716015626476464687754495496226636645068811596401759171252435606503083643441680043583187728463388773084145997270397518681914477603148929946251806133342253923976447810250943792934553961245008594296113321546128579623599012721289779345997330762565086906116275087938600600785122915064247126619790301092439389726275388238867533474819202140422516743885843384219177647770908865254238485070425780973867250271734800931479798148836122519144689655728636274438525181291105516041861241610670721446850747659057993276078304966890409634690148586458701154035080670396178439804274463614493666269876286485644582213169743413848585180473534621968735412136744484657740606763994595800244621282625423834177874194975266551315329272876356857635906716319643419613605330955034569170956768096969701689143085138245533912847134986793006611485917694943665903040231034777603341914667603527164368155074871602852887041840752592559714782693262632095191267490343492297356743060736158693368359070547820169164597978855156720433958884759964239237534440948017684823756259041297310344528280927040259411121820381599473636778588335074352807756322330572230463995804522877805820225387124507512766624829366476774864524559650824135283337545301256334027617611848144936919422037398057642320341855574692453266002038993085514075220484655035408959694605798405406477858967144710808161285256323841013144472801299823627881643048287597920075049624797126331777150806243369952472229017662526495228128885496667415403124009769223983324851542662579488676310875033136302577099553677855811687923505865703308809374648232258884299578474114606743843564191045246506085219031704760482057440034058290697308645180580677285774008744604905465460736204481542103007194406235586512896125259041411077636653274070238356044302176472700930154950746926824120170870186990989908646572568041873424451083423220447240379208683229959844529029574875974513397977143215806569592313065419916516194795772397560390080508098637671749211795116876599996742092854873482433128311098971434051614990922892099111364487801520576264274837395090238464802771515719735250210186598884289906245104577265572232974977569170160402746910444052908890499439784293391860492413503547961575472720856662680517148290525843982318040383791578269744404796340534604034955627459692375946388918162820631439301537582218091839300951386242910444245322699103650849160400720438182193010405487371922270337124134477689837765741671028414139175687867802649365524718318983309176234659360746741189617197192695102356929320039092238943896068794181642649058119173203739002113732851801816814696766569771099760537413354251243952389094546836404793735010416588857930831432950833527420732893283191625219493420706110642509553638037429291764550873068455238092267146686233833396122669755756909448457167929246895516447650741588825542334306450440470705954526074721088576621795962068925452641558732247193152965082674364579151496483924606983822168974371841250935327014075093667743924758279474578908155509281514092236950465904870305681447141054476694895646667063755189026011266546331687342295140572893481565375307362453562310766865983574234790496680029413258720684970252426007880989070989004771284403070696064671449211749807206683541436242805260195682981407300933122622167790349173452689606646259587041147825200549030677487453178895679307721755944305577849842472754025954624611723672104105128544241647666956986866880062872114803445063709626689001327742603888532187361687974686427420467052669768340414829608927784862456477665919360455847964138686282071457938028910910214090505344995099897048189469800200569341273611800689309487738061500805872429558445862969218887942236393531684697444520189149661267617899840888744180456067644008954612468306334347255690943219933319030067716240648778567337806981187131029118799811470277043944437569194613850664277944664048318640091816444628168099814194994146316513316990686683387900725480466217854738647170629604856760225426702431274712349867401064970715889222809087781569691074375052133622689103906257551181502500649575513807392802003311354181354571899103734716127857275047963956503626348847096372947014357393690780040503022444380076888575895938603355984803712531303517088664957299394824664008779851696787724522654550770457640344893343027453393437505014167588943348427748376015589691942486169203704005780764843057419312184410801383255545997525127702099530679404859319180355009050391466525377789137451510839884406873864363131202275899088535500570037897632314345276579396731480110521830454992111756402362526683764227397459930210726971328927676002507076822518454161862533684135506140290988684504484295154664380453695754050195558493035429460787977243120117680092445732773415707905988363304756587660196894067591991239323311541796742185751422743713432135692936093135282092762349065530014164479973090505710615534477273576315919716037288441428621980307146381715769357820365788940887212278061357478465827419013983684540417182702670893608488153441327005501883035876879320411932842387318372566345238006407532966817762481831384434484926358997184006827064568807968040519042639338277712560641167820203849942959911348242355410552855629970424077515373060567574411208390923438381675172203611612512551360056220884443443993221685710841060844548942077516572582508223780307288817941851151931786726669678310405964199310772010171871720563838398013333785241891099336551516870789754364460392237828380802315407776655641792714032343550470507796196868740019211918917927814084410694399797677050294906896159475126778408609392950749181102608228615651830332321451139412550329797095674880214194092029974284848574932926680368905077413431984362245627856667786232094215752446692587377260345758904101954244452925230447043293348707780786505387370814238470672780606410654382167515328140410821691032859726717490324171467200370245607397586365393725917111898890877258785549986870825774820409674976812708272630910097181583776049683033896739931509579492204917492684163540025081473156055300834783287674805719897799657594724857438534938679553929390029573802801667732693692280408397210783112672495090212899302344487389294571155064030962801078981251931318363965697217499294959541233918376923574236411744355597094984340997027942773486876225408309005622066432623648652987714320941266797719620615342058423942870804342474486581771814727527852679146807305709278771565698962623233477971966974203301354057314536688892586171244173650745620702660033304066407519388226055266398145619602894572165329247964754158315146218479466964998066159318975044972816973753258432290816665035280879845471464935622746628184610238455419574181669930953508038799631909974571761083931676618441861809565678015714296566488345132969819800259392247432850857881378192867006680766540913789232939720063323426947560410875600125548152380275159962159156653191369984916662702602070157775841115136670735676729210792221295805459206008502505007746658067803342861951605809361952901943493035780241848037916034438472850741033763579702019818060074451474823264877820043950301459337802221084803085356252228308949509305734079779015871461398904753680060337738687360487930293168461324109725949908163896010956266104122998728183143938849639249899137515884406130388802449715131825280791341804504850324369589647804291064769084273413737250636836523021697771164562001706537424120497953850295674009243962735848069255938008746796698664586826776829378104637569730509963440838918140856576075244032750354561490075869076163435179061774755986138006727304425459452156418124260124093285932411439737998563418437981294523024213477616819507573697569427371670689502042947239406585118681104669091254724649587699396947951379376336050625559047460842840949707097609657910869322402824967355846939852510489918677233296477543455881320940399212681728109724604090699560271689943644446169011866663592134714076778294252367710121060340115949983064571205707374754311696820436743398574134954333685856164448357103326735363447024307964719352306849382313471115722323151468155260222370632811655904185740201557443219871277314195282225827983741861676757952652197657091858500444337867090950473645335776207862075749200811727705825363823886629051846451286739607885609920549235478912320205465007127833452553951157569497275495722089953115921703921474157741656610360848527849319187678219435805129697551352636319211444274268146676860675559329288735427432519790989328538498755470502424029439014224092566790590272504934097208539857770662564181811060047548367017217526172159720156667165879997021255377310032640152326010991441559425365982550165122237913535788431207797686919279087354813457241416992165313078101399005624542745731752622634865228309316690200981921717650929810496078087623290099071317720301686480926952594516127901157401061841426127099150415381630580351713044903810785399846324555377844690339633468879408123105062120147529253659056155421939607480127051175266798311385242442676389523602134538430405499459123933907714252950647653388710221985682444746326727243382717213718826633852469698777950082520793047813092622102896399779942304358350660703409224763685621011167771472077358761328861873359367405337540400707681181568128913456703954252305575555349512162513480890331592198641740260016603895395561906823782180842265164347116212379637588099238601701972791795647765224864321737976147396375557747284466539675683963205758802844848241428849997614310400668233632376172571988909957069696110557496706536579597031435132403415295983242237354417633897637354178508496498375505391628880783226577327652246299289301447934233932591810086824833355560062410036338528336299216579906027017282175225860928142212960458377261882576855323808252038906372132819744290530216409702435286868798534629127346231718618183848644282962253973304522720501019588931411978536617166310422824172016599331481793774667186980692308890386102446120612910211790411071487046161483489377851109445969793822555731075156376160709956219097268059177861694089353994803593196138329725897974662229589685574193199925381580746830628235501049051547347121536446379190462574756609030794332176067075863744526708221495778859493129596302195550863642135359054931972378320906350795553462867226565861825432696406546609993320217404565087544044877646955504866358922609393223941403532876251837751599957320204041758276197276498920571192656906731626874381451304059720446469762047138018211076109913394142020667338397460527786184340568265051401638251815792363631262596760817923546374309124938638263596101625171247035226352795283823606816987718578096840911753612196002040211262402964869571799602674119793308620697592125955005210237287406187724331242475712523513505811993074160573020035237536683707861798135045935808745809549887063517729526039076631613761666907489968153149513852333849278436944427384193540956089854414308590927571317804751142420934810676199729183692851379253957729033988875636815827204369490351332604607674578077497975016558282107307049196425088775729389052299265985792462018006519790128143989973191471331293167972728064518555199822337541443693264906697797690177212745825036759487534805500073448010391258464254069445765939027144657298604800700672599388832405649981826878451794312429464876387887924116484802067995837034128554099664352714469335159814777833720959514000846233292503410450337280014182125755127970928527946644372004219627742253332174002492389775831559270610912424984943705282097571970334165720459368793855978657523812436747410261976561136517540901478385035742165500550821077943167488221381597758742540939388876982172722065233148224782578811163959335654939678587422679270320554263881664909344980524657281663156140291347702348954419394568239389587875602889013302076336115159387433672973818211137280779725568013030920232634380868856833900776542247498813407164754518838114225040304938003442387970464501795850173617926860294507175793560091883300779560095875171361634612329322240725634002032093396300684149492669946986018096630716371969549240365581063299974691997430462376886158337978416182508076755376123198999365566290632122163740693019078267358738584759109515211509225047546400487329495314770606579604332408128278517619226359347488919513975612097438613732707657742457079246093417438982208948883812372621494820855714481742362602001135899041517736757604457372723673008040830961812533486667146088589902288150660582090013346329313724924558858405247238533632881058928362379738018244901497890572072919060579596712389590113085327958309829574802213251705393750338655898143541534921368001719999359399257006535729761707854531921437633115608520859153810381807454575410051822299355255180970606920161806887861312571393775882247618889091153729423815376191458835810842142559962621267494196836913729601852067984336733973455158741526505277844665485526582270738843780801347720011593346579216302761880626896276861942297491456724741272034711231533406114798587147286936999077786718056832643403853856620154948455235672847188472607574488117584261915639482418332799976911440233551651618816127835664207097925133730374622615027078231679660166679715891306727107387583999041938065986219411914957077402790691197952633014417702237960668254251065341852768501722586975079389915021142540010381012243665786033823929752159973488994782700572172389628647558267545520947218931992352117115246250494406010339527838432873205396415531408912490711560354043990410957595868929124733647343025257347608015922807321482715558946783622780633711048988597148600962140734579106452560907207174792586293152320120521428166637604966726189765691033189577146864770152630494831030690439455625946537418379488364799261695195784666966103285538278479948780027415266676947666123046114517025321755471618198339660774289078220792268406577055956118691876362536051630560075982651609355646893449635027733881126443512860073043428087310221292077419637945547230319739707845357160868445341075054402623856916227492277115839045600361752918326452128004460948358604263444029382254129084002886098752928085185024788309731936345189629117488862682127569492739379048295269297047132272450634844496765300908732162366207061392439305777085821882572867427949112465994841777449442109895844907765578181714999747014852571476229666992507010000333680974700030277047277785620158125808768754185821113433856841803894983706027287097782777434852219036341504577444979029912803759334386905902997664112881447594090192317190744377240781847220336319620905962573954383971305003741067062986366100369395581954573244585548431178824101698657322722895798435006597113361842214685897921254883005330035874154783619323988910524196575371412283810139310480675324736345335867155482232811301959135861556495602623925955486618385354905525314188052288872738909509190397921238271182347953785119736875071719566979750373999699867873659665577818146431200791595449101682292694414680652115193224004236450614796975858785966253363019874479622836470003389417681200219832661425420301471512412203907531281038036436320477059807807274826643099029835732761514588892610022035303641492041055038503372194390293832046006005918515780438406078982025409712832950886032957769699974884483625940308928579199943472272292596337192868858426445550865935790583376597365770563479144990503467708515869838265904143232388183340382239806826107409655102604645934068426115610042743095177243777460487284795272760269989846260702370274090119642606358751295478263611808939975056606180232374406206795907761021503686345725047140673492589697810110473732618010012870472861062275714657432114975210329821301347371958902839736539037396362575264604561250930890236215315054517090740390957185463822563402981546561687474934031612780023888707928077850691597381026026279032078305915940584235047599822861491028395346657199340144740111443992671610827281980534249128783120579463478927747295184162811623125642268088706888413832790306771650424874499339407305958175077609485896700098342405693631452881212132207473863341936709153471888398600607221425955190006584569557641142640075988094995196031518982705362360645878808744064130210198905648273693434533151496535127021721477217471849841453507150039867800024517304780921980619325857198877943252529078399837688414138958417125223462160029931665996388071170185742026169671572071343712772902359311809391018398339620066751808030357686767402213115178423216364970496512858150826453750529046938871257497477486352799042430020080253415126546464984400535723091815879824072573801271056820559908154125909089187850677500784408294166488730637709953685629564149980031223183654341870656177721812097231232293542008199573664413718514067571784676876677232492163327678631470621099229263167562266044764075534223246915221194527771797171496656314746842471806248247615003401880185784700917838357483697945072148457694551553125284364544213194242104525871657347203415046954109425199536013973361194677687839223599170681747845968902854329443129087526869256656352327473539517355212879565757994792645537076513506094640967739722410310244682021502127188857495242445562877007823294373939203617622015439166187743583523460464253456930828994893569196258840378322378094071200143309350292157963982004513925131118718419879332522806238283938356870806286230449017019488464717699074539608254987361976912514934156392780943339003552300619842845730206357111113922922744725612811939014960249156537826696394014361064423727425584193588950024817130213499930434316985427412863435640096612533734373308154733960256481759352854218504034404853984302768355052586284466042547575713494229205433416285217824671790672222556223440971506116596122090942979029717019811595252413407831402985643972620994914283135120092585863378135270469240035869881893794234184111941092460799119575974690148674060233501925072219396168382018867567828481684210158769147188532955146747155458140782043314881556443347834817848085516229532065963799166166972719358442306280758997356879729722267474822691733713846889208320125664460315233841770998490750524303949369212754102113390267398284878963417393643060534504995273926545892298486335532386437717225081288044023565834300775797507039841243483842200473882683279631620958620921035685113217483083739629004479993621297869289557804214981707365722235180028797355636153008736245201322971133746796642989735883191954403751124841000358154393148136989141510068342466421283659542847350647058279519738939750125532475262409213813414062090925321856329915457071739166174865471418074682857033744576086076837982386705066503169867567465975131596300461593676330650087343925825112548730781497547350058490041303322666652448674917671697087864550330849807997031394479185750521845008871444878888611839003662306116988341237252008165863053612635262099519898956132274771299009375305103659197538348351745341194997749579241713214471607565680585019235921956091161057400116886888728334943367395791122276286962037659983738016977601439800992059480228969758211725835034948508614756679317813397220327267856278362194566549383878859393326464917167107215129246550873777593977660773702686453506552630670908940825165716356600164243772122125288277505324784406952729788200738543168307458074929995953963154712485415788300295988526510969218672191837926492083152487790080692944419584218910550843449883143720126143374017670274432599533798216350180275012959851100931273180987494060115347590891106545788633781653171869536367157339983394804269819714057262133919207875244331832257550009106999550680581995333323732698135025711380694231835965756519805539042220927288340871191639191809465253734266211966641431649531985288537876431657105530035388724089129569407419030572437723707683358420080997717821564019584305430451134653118698534669334427625261015990461552171262415476763691478715317972453642600817344859966245998965607781239453156199930846378345317525590492052793301400932147840993684484446924972492330525450375619228046495236226064328686068686492169972656256309113440327270555244851993537989457146368689542375915636594320061022653661820768504441253424780206348366937460924103390872457432956080281866619145996863750018925241054683157444471914603380178417620795392397902266630264336507421840120961334662962012706735921047135254995963540127076118523976076690892735293732837873656035071203791653494264221426296002701645795631339093276843725618704793461677187652970242269113881495186098210576248459721174758373420475645627658677628750562249521612688846876492957138336619675466331377535304010424500842716180495311823066964512867797151409917488722175674310636091288478544641300749928091150648505141979715615358806451043623460296646018105111981786863904760581334561285843338787433503513271948896782187809170305824941470797725069228419535820225460935049858680875243329209162572251033795418352816344726266105121250382806032829629239807778470621680526993431459160027878392342972196354919740989982773022541113359851674932105755329035723139579755224338875598340774037770810659080356621838217777661873042004719600937943351044586494549505909907352598380590133480472998824403019123562145896432993710465227672756985771003912766115824802323062115146721797951699487385223226487859143290511465942565339187893902641992324507180499505174626229776920514291494372433089678916310989904401966480011939067361129270892390108664048648888346157310429824782055340556639745283378293854558473903511616367483181931066760132068333967670842690067445683385622038313132137415929443323746136273771970520179837503856250271591132025794566055924960845889373310889082667374862366734809808627773765945037402749527063296702503419364519897477943838878010199382744891393663139246713964241858365703313260050339708900760628965484558682031772693187294901969819806642087987782196950304344968654853769728667037121227821993548607675140490109280618941604748650439948205540177137776988600668066656569064387025777652244802757852227163531718956646200084703586464911283584952890907173878440823636925017596892434380861931689036953351913817218243990882867752082326887201582696683734262707498985304967473364984338702041580554250139503318614126793791721010727765322391298383484586123997179159407815938730227666481254758539695194798341484049063053255588123618030494453270098159149353805292331135680344366623535854864879941548475536316701797155719531781957424090563736367059990645920036862173757186330900825403490561489908702923254711558640987895985029465956340978846110510770566908109414765796081619267723128098135500905526631676596817419688296544932008301432755623594789221353515321920270468066646812335515804740384804884375663285578012864477123229172948578970495752834354932136495724557800212596946488158312213634130966461518126705935559646379741779197988987126397948047834956391153955386842791061429885108333751948010786715936272977112647815024053489657100677521639390889130580970879524687593705189814895473084812240426515812221343535225294703754707925938201079417198746715679476746835592837337431258146607142015512447295717728252532176558496676471352764050420260506646281261555760056672323256377596819216884707642269881017527780187390007535643662033974237633944039281702750441497877343473499075396275566777384142491849655324986520811879650395830386576723249701044938311742549168640240303312975683232954968789884904094131269090391599067903586050761431826773115429627481278463753479211585497764141967882102917414143471607218336162093183626235930402985626311788110121863056793276244698160701342671146073545384633804224117887835156571308513466037857504413953907463114783789816369738074850437104475794979866565889310872696344158169485497880617827634190760955556769142910222444680216216954143255159894130212616890292423511460239225976623945790575149500270943816952634528975785197980011403818508360850408146931159951719014560157908651234052868667957499917566732006722326203619587295571258509197405341409245918235008280181668102756629954171237462529450406519759185117930520281281476719529900895364573837526606263746540582737229294405545372051696423915185000360690441777131707210110329617348619292153820210781255806129230362458283276507153022361792301044285601653589332651290447664811820209206310828182248874287563163748738828169004405647662359232789875802261430251755667978784127839901184130623437174552386025492439257149802907476592593578749345599110446079580646386744240249562550795238051963489362776094818792782708428881315723610153335748378710875978370020055025416020618184366823107021705913082242960544811564972742722222419052042578360801238992624747453039364076170824345325258570058443574412086860873035004030271203801943329761763595538021522443113717637844734235065228063956576313240671626159597077075424536588579719232417937145700199668853421390748848992077108696935340695904828836955352828232204172776135962476207797941263062525638633300410879562236683812863434998886556533784770714327936019445268494189380804785778317689965202421962945831344396415453350166219934767181341219312378211872203716681464941505071783996124660468197150039382212875581041773537703163207406925696082049811868064009662581653832129730127470562457170434410124974116371727686903506913788286013949903259531527294758826154997270310536451732248341549099354081729908631040585269061061233190094323960471730354694368414688630941118914333395112107220768822342243100684968244746949745573711602703753271649978599817147134080042562026070844128014426923435640988938946841383699018511525748708714843214375164629571764023280546806613697628718767858226374818402949503492930113186649035578480812493423220278138583822187339522489981596001304710561625486799663888555672142411881641696647180884998763955853139162050376314392200086187328528948424352939097490803271012118596398895763058783405329591092411691499045788538740220060094586442058566355133026933088280183203878227243578097521574715470376126590886337688596790500803938238521637701249954214654356013842299044680104929861766809939836756283798656336626894146212486594601546209741438479967018680275017397960587787646271690745989411097986851101446761880806429609659705405311171104570400596706368709717008643097145321163737770598476276597223292076341765319050256258976868182508499692100799997386888296562552896111190408983748735347042058827095938366238956212490562189928052254748961472432300913393664051915439414445320202330064883486548582612638497727044324862619508319689195936653156537788241666952148154081499495235832775220622262805969579747108069731045533649742433123073697137352001823903709361484102689648302265368558495088894910114354946395852634663620451124900836386768653125246412024185455364505993761538007981973647760909644564945464176647239562551585339746903561970151277370196537360633325125149566236359599691554721058752461957519043772556604578195754660486604990369599301091956885957000002846534288950300663394761725070540527430661563943050487885209505742545539711104094971334335539268659541663437186653923711534156323436557302899716222411053780134592526256369950640385714932618727227721803554114520816863171437207551120294959984807543164860107710207114784012520034412414300290830799740796737502939995289543765197669034355081865657523467641093360633937297649489293889485764973634479918096918526657101625183506858852577885699594387949452525625502554348601502489632363835095583281698610542397390623542058264765222236569901451631039107453028098045620496932916081417418252070443065900431180207650845963829490070962233089081828415662619125982135479950219887436321577491221926220216296080048277895045926522922424150398494344736178629667076118915187363762791913183219635495819009787016432346035384101067682516658797235046106513720844192173719138538864750048449671319311044099059967594151845907444132335119913305269234249955467402726123651985733778382543399537683801334921961045088735545419115428568862990260595595327132280289745960138709524850839480059578538258935253824903491038099237789025230021195084891707861567986021242974741492333421702192130723822718054802293265049429344995709379981800331507946531711735522625187319398206411013953601626180406874738011875417033253646541039078027602055208588227886767156761974768998394268394919395443296583028882860572151772303123697622718700554079270202178716315627953667241334584322355936041222164090479198563620425783574113821220236892321988461115540092657432407658525153964505804477743506220142370211591409286055537265667460612701177383884409124539933286344568445451488593525914282910443418937020374693233259634646032995710637861050939468159504613824194489957559242888345565266812848207995042287256285012846251610888003406410388406153714618675600595448234179162974446762961241484440761901140973482680881213260914603580387926038576106224943772679266809221598967317733408958327277197937983223952875434435848623839074066231789316498938323348149011154255523061682785664671086443155538167639391206059079149597002299690602891910245432259654684403305233065269798988183700523645020114260150294374531563483294921869242361859261157688314695656997270922187352740943477976065946791471384401380531234457043869816492312521272698297770506591424101250844078870922547611883320616689457021865322875411944386639035796352750138025980375096260544373714528998887358746996532829994888165892063718094079009832729372564859071367211038208478218500654646362928588117288966620737065109779477660917947308466344459284208412852426451608947505163158535790775569201355279902967978644024772879609140171935245416201461113700407076415253471466822595296852662011687607287440394795367631370251188381113223011486672266173994876186965672876145312043863008070684785194994747494971011696725086612368899591037006451486922343668665519439276339355160832334500217230706163572090501154843664808634082855467515581190223360093946040277744215937569305422982684350017010178653642414445562395110798399629037466653097906561091545020462117478748663233663047581002869930519098101865220624777281327886402871079828545919302103599325937891193678341515321706628539272725349887021192915950330632994122564438868518221979720908587530054154613492791854877739945530674783367210459072505043812283883927884371279708261000522818791080224491446295666267828753232427270919467015973703502224869292152496679420424049915046477129523894974988328427485845149405273927283362287446054556436057148248778543982402670493906101191211418219963437725267873870819626876844080196506773692044315380261561322084971295422069576777619775306143908554203414938680194187278992748677863666749634595553245638377768457855624724245686354462454749174409580789428376511421095711890482789193457623217352265689209989161446687343400559683645839351401831763656495128449781568984740848898383313868093743336358823259146010667176369369394742586814837740851998913159815860643998710279538727502526560061288278330837748186228095654882654005996218483141109769658871565547422944971271011814712582159222264531297194380775806260948921181829363678016829126560247995900276616205824943238112846812379971143052384328013607466878526394967508591920571112829045696512041108776104603132060160322987609167712428205016654475786427941186841063208470331082537385797127748204446479595967313019463799918015326498705306626775793062928952637448447767686324805451839388561087976732294775418960657727931591758148467094825095506054520608247402005545426032838761169830789467797286792474583227231515134390070515537742348884932407493846772252318647897264721960755136213891078063045766111228062134454549009566377700451730685435481632562970015109634545970146026234353852422643624281038792976867529958497543037526245453008669068642088624363278654297791580688712450408995716031194024092053751883172546748785468917381878329771883013058547564440405026528300659944274616053943941211972136870343369484832038832900021015372586934926640888263815395456680971220498654264370929994748195141818607370936047802296712796799729515530983288766189773435556951636083141020227967754338862652361043670336648958219322382789517515583320642052770363843708393040680627104686365605067546276155840362406082893270237496460534461145360215165788186327120243052370276588864016047529718906137873485660781842292037719721770421731529103046605309189760631893384752525636835237105781666497374073080866195204254384102115934477875940141627455400152793571411484881210551172228927360803306543078337522437584627650807107141593924801655148282392132796271514855075084625546498904626352893559377498745689422648663535038157540345880725698277403504293989512781562404027894166150917572454873203130876687932421077182766021203950278529772764871992321477906314880088104758482986602677397337143861224556389154915696171144200327934068651492768056008771259486430268946421104156301021749391656116895852391496251351768690287347444454749235185539413234896342425005057603421960122445962249732097734640366955615533142518953381726306096383178063146989568772718060593103514859824157141589379527140783603166898042855897328444993240452981116604165977099047256646258036683239414990495160023586097410387074379340177820036693794041554581203100555212771704468377350878609886666386464304154433207786262790802069335582672732949179905560765018158153196434876828958412501293041381527699718150874859572362261907532565580584041936370207231298186375461731750885320480042979972697575010122733388914815780249434308091782679593433319443541252980525520498463993883822806375841370919417130570426737889418914896926671408958595895563825939602508144385701357942568394542459474227682243346850004381430140551160566294399250008259512144594808817238715173283653737391509182103307502460456320106465981097861208498969630460986034213772034281934747108657650681499562370003891557577246758106496375878085917742344217602075452997778363406974899717434542404259617837824454705385289239567707358415044756267686038826966660310256233539513074243252430310357419515947931592803912367854891209835976150107032302391259891744056840067992388182588599628219754817496409875458151643361529076738880358608122811186931784981836842996191183667274335699178676539595955871404886418631008222088869489920999976006865482994509415107080719013846735317702855422497456826198492711754685854622895636711794094865134504152641320183584515752887524679468257637317449834875470225693889107456430567434892729539556140261790387490576128096610658847032257097259155760177880808674103013412393684873015751199426089346785395217909556549929892236099747997994123707611321093800341458424534934423063483748313129890654842750966132140389462441696603075790022489151802168539631327766994843704079513938794665184531613692448658004864162874842248134793976601055858749422032546841729083743090290841680204157100609665078863459701935131187823486790533437531918790500674374811994758006959015723278834279657921723391276768365305292886426239558345432472289016981230138999717620652723456658809445014014940982459100243739118744852134018234618763836148351302856463693796757220427743434086411658448431575719923839968157759909307882666785695583952358091498077978806591833623457331776197881402726188475493467515030883499881691178684094311748368442314519332355737531189149744519430574123256774798245986353686183760216651995061925284757079363621058879857033858981155695561614904587847173138194620928818631858888195471521733918311777755141466876389815381244758216898145694743909730131330214144374597519437584402501048737295687154426631210235288270776229858471183190989471089673593469397762082214875660613469546164395812746716129633829182845536011607197883480633722639657845189248292917459897008784836249170332273089931923635099916261536400860843865736444402606605313031077916006844976596082937566122570930350143280527884922133934656726490409292419031389549641101509845496090642427051843276332872779387767909978451107158180155057796785497137839678532467975613662346936972032052146399546290244620481535354278887741607489490632863744397134387943321304473397809566578541008035137684277353400683221054278673265857128649777090218163236832170629689340349279711967731631533229580338502253285212390514205179554267560098278086154731152542417158637256486528981680236531872409593071158509590591896717771516571877697767706686180894996462371666422234994308902774574228726911434357187822432616114049156218799413381707112224977532492847219178265980267579547803293005831604118332206935330675360133604126011636532988512989483066319621790224477103309246656943695068742051030412162502250812950211784714609191693992024315419534642090204462990284179482090428510006302660838957579743502434494342105209890025839989160349585502948957098742987507435206552520410367374362153826335426459714094998565509605039588778256831819694495676347604563692732082178359454985299314827805213866189264983208349248363200557757954915358686023313610251944158558665898895780132726028229494176899035592157970310746380149843575094295373449437018903155708934348714732283546056162535079130377745941824955274570153611530620016687792942917506666813648874192189628075598143645990748276690252759025577505856790415806578202846272928287355315025316858855347188261404110322980682113136435419804437675670890300614329863308736312142386325451243844248944970043009082140592236193773121585181576074987863444307710353789981066045114561177653050034977219290752516169624075176560064900722085432208023684963929335512368051607048891414178599414806774552754607962723268297910976852965058208769005525239146746466475977201190268380168907192658998256167560569718472353780972417767076815626767417826605074584689656781493140521411088659686837570602243122498576766544102830068161427740359764507526060770031962795376814499452895225984680603040249530361870767886349901653278191243317462697559125589062814931194330495888908865035191787747566964313888211743688455582133373005149906340757455723608826942531498362333007254843872365110632682241126980912968704426478072019250194096516006065749212866442917720661853523879109570353575569730668319973945116460555904223993413603091866532942140403528437838418684025476957604553111258251911485787464242638285940833919349466282018292763435300937287261825554461660914113117093286711144358598360615661698670132701439406264273468230493892830181287357521275241196760944317693164651134231637746280519561485712704078877532502385522205528680218274409711067648292078765371312381476504833763246256848980210588246970878524226860294584485769364701937523441476267727921293825005490823517840532133847445749323798682591888556860369465284145972423855182266013023850565193714184762116769568836121810553494103341523709759243600113243732352032031276317660582430152812519477284696053424609924694068847446553460604955166442364609487638134250414359726082269396315584355509763746554703695364534869732406166206420086872334220080890059829971050942096941751899865291633980606249426053611267500728243966642265335536046490569805876377510463030421494798486168547597006243721060769129453353293922019455939594282884868388935879928603539469771039863546868229183144099674252194858414212947325362830800240594560763632691594955064417177119453491190262444991769804644878543127182042353815181510557812220734697462907852437377562898799960642962683739692267819282753763692143318568088778116723731560085617688509509216631523237239661784892215655535762966521848378061020420507082132848465743048139514320773087024333357216325280224582735635499889991312213837452311795219955699792065171513087415927689996619132251641613767837627708831101034352421861417804468437653896537105094613127030912024529914760917445074457198948857272179699404698507589291165752247290785822844226006045967771057744415743368609272825052946201281945646346611125727530934386140966112701181555214598476124301583217057838883910680631415201867299213263697462171598916611600722567913506548847293371891069962024946997599347428722084411008153905302428926078795305363125445424928920278047351692086505420885989816105009630211102254330649431433878067208709825194127201471691423650127525880653701996195636265210759550839433444432986092225909213382584587220405970117421175806866482733073266636688193590918533526503060835744875330106334520261460770128587479586400775231184706955145486348457349687752263592575864081189011509155711228296582600111468597599529826714249165057806804366392290952343210044703353216625955352627555410884366500865815485987214366986515851518186500229494822039736921260472734622566127552341810901285389733136580630706887763137707976206952814106110994801047287679384979886718214021001837259016304253526750834278061714709609379706445967366216306296588303627075628767372571826608383961030963586307937903627882537196399862495750520206949984156723712306156572550051050650145451338727880505946843301383300233073127451537646771603833152735833768033682659395643139014786683178399130259389236334584428328989834883859194355036714049971986904236858979251576315940626237545133355239085909880109926506191908753718649623677135987191885798563979331163960647585378657833300246587956862771207746414922781392345968561402269076402025980768871287525217522217411848493497094829164613479274331923368173162487564463589571082153995570663932572179371201519798454191451823784903931247873418865415981348168449789476385625122502486946407969123415300532514322510649423908202279946730462495271371011471613685149993505972423898607476299957401912498461767715485766298134677332524455066294102807157848468016882580282192590492859044756548442238686555708117805677917611164714906853831722810989401137380636264001092067677448244089611313726775525813079169461833219876768245775570425316492620896214532577998218855261168075381400815571874934244210745672917402824821594072440339490512466220839310848110634145367657115399289194447273651446851779997682459743740794866555205067121055730952367427980307963742047691831329827411210416830496474651609707758483168682228384845981339819213297496406432302927563901178812858859966223574582190400099356065106315976732591020715927312815618634657451424875120864141823273892257944375488455712672880518585460585210119163617544588837952979191668774937070726728897768219976284417667935578557567088015224930070876903375242296495946165692049294256346472849282935182265880390402183534818822478114777525085509136110571668905294850923140926072929736196288604687870910743924660054682246382370360196006994278866075046352258133797875352951193783964633270410724749344465496054892165079657713739281873484871193535063349225814474840434853752075160645386089482215181878092362817171017043228337759204883696185783539506064517762185245490718507100572365827511262708397297475975994533050923824835508455620836624223917897093876049869260887097854902537153712307417505985134903538110252133795887555111814534640180733492453020886657703979420687349187520955705743720499516234156264620964280099253465531701093068338262430642091139281327878275588855866978621309376345982689510576418885901722002585160669985213104637796749300530105558167493638990632051613010751162499049819013320826329252390409443307200549669519683840341214861464961770341855728474676612313011435366563422435395288053213926154296459277963821825240337935761558867773818541397708350942447627264658359445867454072930097722208808852888247323653916569025714021349559679671656998200491864860462297066972357182051994360810254121914366032832892030141618217889578682143936700632355651753972971830204072321890693709781391393691800301223542478780441462876125551469664403389537028616245358416367223477217652834136129484861439333805578003923469424447413311696268530496487820034824779159242344519289229600636908311325796703062719710870424377178586564703866050442473000440668991477449045897066849007563093021457885125316525324903924612402694659238928035606222351238946936167570534894164253822654001183223674464300024929650423183830478919023569882203385814456810283870339336805005838656974182924824600436505658162029556343723161159964350465484178682797674789629852910426724687215204148803550354185200389352449253204704593055930088625238666334274387750232042182565720368513995153425599027783361878546942934985394015525366662136177280692717828858281899002980457805573687963551196626988696534862224624573956283600779092753036787468725136997898928801733959159439796331522397999136936494826752807794433689694082715483043420203179897248735053996333414809926202314230335418490920462321049503741647721712369553889516166608679342461699948728455051466949689420412935235138897215092753902538006942323917472278180309152704314099374883303637974058419471782455346235617168863445228105699520579784200830461690089981858885693907979965694253693953580628991118529100181601621445810980301368584159620064133721920090787798215867932977581814794397103751367664022319774229877495962196385832412541039699774974424367401574520093549640971051846456493273056866147279497458491164713387646188759765699044508859952379744847020059196505214544242304607316754903925058672710572607534826879452135827319313633224950794610478600256719581661032333469028805819512285121473477222898766275612325283157486014961640379940874314627234406957014884945475770468337505098141562819879813118296329898302723870322616057982427682826951801733839858122181711327823183595717964210952960823060863988386726040540453449507125004588130904264389264522525374052982523157908835492805533440339426032564047828355306332848612521125958430051132094461429223605495138132809289552786395527702060432635884686055463580956148023384092333875556465288309140501194552520673941355038396283155758451681582880204459513925896778286779684265447391148633444303639788561217782613990495224487074805333472688262045695987333901494096340845428267583101325829897506565964479744640522111255765341708771760865565543428656277942971668242071451074138416825480749194402308171241683021107368921662913962065383024318253289862651821019969588900970050300701289280159054935651504412565160209182777401513543252842683199760734843736958635647830384524726325520186148147165115625947536114439162972284003481769754752289813837390991724027978458683045498796385030811657077706702044718246255720091965714602651264566470670555892587800485206810970141407805658417512912607699093999176818878904911463106619549441215827784837325940161855791849869876690254039303291710786372264723310698206522582851994885328807472929743068258086925900971287560950377152982173529031397563366712188132444119514949728690996434697653316650962748248977803120555485389674073120878579178907408356158360200559824347478702901197484686865061067400719778699169549357474047286726840084676057229039042143901312239121905479908960880609736198672653100574944055768919115470613620741541761929015643347014917185070081167054358093753380538942356639480057640965037027249199356826996968415954331339950633221537657149024542381336416251717452252648950654425914856504879857093010311715072997295666405632634296981322469188662378966499948465855080274008454852897249052748855326458869326540509764829040502194226541128196262826855146201553124476120536730958648874779054586145904105856825680393142439083567666981326055595419838234799996375009210120435807266288296226994031144071280303989403367426232336643657918425147776029182158570867833025103276680979539275427228096428472182757506190716007952130208828323349350862942479040935472865777292256570695620378713789262550114967476309491506624153107520037081130951442404586187912727536977423604295448317415856975073718910922106311839244574093114070927184982488391104742359077641760924969506998438078922284909683796335452464772001019616108637369622416118598054366585881781979384556627093091847504281975080121126212076805019120534651565184488592869225435998723617276224729925930227413805411542234294441741618854527299943672220082172583984233034479775295054005158048448519917930400476081595948373051301126943527290843056990034962078943785111682622578981250616420583437519854305105916972373930736618405872047118968485677032961620934291655562110402156762341908754459727929472350259930360170933377648988425808359223268225444501236313822133094157811009977867640671886206123253082377818744311479172647288322508901402580232043364320459567153626765094580559808360942212039798495965308875766453789847968109765644168288622824647038430280119404843465389632888288612246722599182094860851582621806430119099521395015862885314459939926837475742281170302177693226893458647305185644781557772784844292930902915966328209928874300821105235588929867070582440768376512927496557255553025533455211017346484144190563348249404530924501384531157135784252037815270749707807197388447736183953808871311553362727224452959949021482531831818366311329012230282768225829955691325560134018300571109191441407408487900708389243824669749556890798157382754656077833131162110147916375987636019098537211244612066287258053853737976242082370942263772507095200712923674862675489009681808707493692054260009405406921796043854468399497113294362863650663821566312531300267998831217997529042003397594775886208492437298822167734349067549713561887133985924757371116822038608217735352792619388421678422372450931151268620475439627450235975024423579381234474617787543802315905194154142002614205744498658813494113708033424282450279043910490995144968955459946519182594285915126230482317634051557440144095731056231849019437528351433528958323813633874728851635494833820276179488776101088513678383084916679023348644345982949745270192524530664306775449414063037093858189803388695540814295450291645991819703234517548057623548974060393087174386218144054756655957175421351729474236403047548843438870309290901890184213032802823533909505806359204188753218066218059400665030643879637545279848793467109813084887716031627087162275082202164795964662813779583421828612251321906883671226028210849491050597760910564292518505932136086255727005954878743015877295668682463246856073036559079931368438206841998571977253384414502586352390763189173805174504902487545167106981227642120715262447400901263573591617503632383064135176175352745136562542505441301459039136362304544117138173444578262951340909833126649821626869626996391921825417786016691952040635888431533869977857511782045178146564355613560493237035983470363437777081907286556907617512298195957059190760937454971227132839897532841207857262597706075880459446817442512554650154641901598076316477421770800795498308958366129201318042523382553981926905623666238187191749238767090846644961316648637936186617642153526978947973833598242639608706057605044757929775988702195824593615214353562737558016644637642319545701464281192569384329653228811944147656844064675288134998715412752585967390948935272773625068845021249748090169885325442971721731099707230267464957889825997452448375343645181368568323556207052014427802738962005176109635521853762503157440471826634923458933963146812889662221975652837042751446645042578845705264457585378743802310961679407896606510592710117650183780617057313961463449632415606881794411005215189368821445709456939860616053952480792961352924330226542961085661371779789155148800703221059956369180553783536573963350211506014367371785536374014261766400214673085547166133082110390326053950223663758765291666033350013147561016396010104816805836457021901952170275595673503598412513405728672610572147647476609863105540675286580905275461665001809700300604389891306131457694616476342861414389142035106290763102181121422982100685949413998352161826869761386542940545563259202139443077872042932113618573586290753005997631769795697657827188654421952711851062473967709013679934740625015357571638119165907553752309191878091052730985577630151603371653054525844697951396269977078099254094959492087193972420522611949326930335991669577497392280486415510208244312448127959005912191129582192441538938121864661272158767126284964407518787377594500965458933406819016193907649702745330637985539527175591915902176278913914514842311192051975378240902323231587191944482105834950729560297237616470003095871673138463376950437186570621432995700447908171110202586499759527433147400627150843161611497136072336612445188467279333859257956631220880593563503829776169676533521019488363025117212659809994543424392320900515302746163215893261401619085175830033274112691512854994384502155807109327559218927086471150897731180325881983762264292056542373560187019406108577487704502926206487922642276101399211991619242920994272025518501012416897670444964809616745905743760767663983629726956341011220810793472484262358342336664345020307746151406915413627497575138192592036090209751389802324124449269306375114707230780236348355990719413607648134695129093066516912442407303492212100251765901267994251456231588984169001751369522415850816677568337273608931145693425103078685296242189673995195759360093915496949412485643300996836077094442878130252695041039067487031960159334549801234325842210792822160815220502816037187139870001250427103933938842282674904893595637653649785969018504852246223773980520017106206398112115948774661834121083005115928613355722199820215367035511525189458914010609578504588211613180038119405033869236040630060671545460444323690238946290475431442284536975081022113006470233582620220925246452504624812475769197833452682693186762611625081791692788343138410549748198086895882649409642531470326662401496043113423858059144045552262769140294836227422753996497444908852937036702873571415282797340578857560590236452961098805530121827499912080142050518897378432657621663804137483973257843819154459151175225356912212557036326095199738003342191519485224379960775744010911940622937013377237106171097434849764143862226013938987498157400268241577365760788417455654286191651190317372204161516192151336088754733808226574863537229319219374586847897554026349517199158574287318307653864186504825050394208550927978076076332067925714830666351459434501215880723136684273057161170797217640387813277435663998520206691945411699090800319089256303222797851397841626424973409706007500223926529148291040040192613463068603952028442766568068697247009492515692808918903339322315825599822227992986992256615375918464710443533268048606655230459268159940273483477735430416698362736922373151427350148767409995611435932944414086987466261060871835529034234331183100226729477868491986227489040935676341784856828046054908254666402079014420704653903673165149356749194254346361457962848038249923992610057440914535677796186274512095289709789312233273911868524899440309108505434769562137566976331220257473618826534556998017267416885932615147931815090384437257410281240953071008794234780070713598589002724510245481772440773653310433013483387083543086625557188545758378455013740532209480042855249957628615184859265525193671825472263971354327701420079762700405230927816923683988353548132232284047573754649146783749363550313594251066357991218150338597619095716686230439808718032207443126126278814430628027805716749031920857228554399629629408487703824476770709757298725538706771225861868854959801396944356679464788997972132331606172587084148850106282091129868238472203875740767333174807938628674475620901901463122823446696285396526722731840037845729398782743789485000553455438825555086190330693984480060384740151001207100921583319218037356622516017946060752282871020104359804156022527931837585148932945779512320073557362700243691870625522118773659351397581484741626412498049959704934661386934237097060941424648571626160059240022515333062079371701910504781674821587831455976877512251842918728305970678191586762291034663842053333284880949885316478556553954307442959980419900216054437000054539971929187991493147186722736196305818016518159178122976869340441539566692447545067426750233935936373215950525612874810344132692503566243206178386612425648583828950679627425027740070089175887851229342722233336756140505020288491601834101237299847548951649612897324329653989549050090081380350216099828534885823196560857971619784807821914914614433575499228825391700333343764111429974264842400014208610415581426465151495477270762407736876729432901863080405564567602638222293497720250548005091378243695762066714969138585864468683529670290569173079757850001654323815437969996661610452725352898957976513226146330066266460576420389374370560244487801730873962817802935845076018661756971113709736811667674739038464631346105678741841529112293631235680332934305213558831758010710661072670147342636402377817486483780039444199164553061554492443210960161238214062889809665834703664620235535445185670792701265247655763546539595257558024106358004141111467364374435352365556196803449545288514798788113221129243972757712253627231544175628167444669365749143304308243840968566039995834522365575940104557640990207281867175659050954856601702222599528027666053273209907917500869751350409734611921540612824081771224873601858029913539568947789179806229339616851637282258155468006129341452676601882756214351180293240729414540809514710003009741375416462920485874019036733557430565186716145937862917904788160267419425672573691450481434164690563515740525084678996567545821412397613234241705963621233493232940233959320564836845696817973099965231433681705740845725439462301219799000243099637061895614641988492221618093649273133787523279746528061939609897897484858463228402076427971838632375936343876288925025613519019350201716232117047759823906128677025722618141451138895476197515717512290436118684813686412316309167435194845144831594379880857379258315119895869980470384629175433672457827846032207229669539469034829812462994364607682302665471812931028975422561175624746557614118955404348557103810749849461074134765425597403036947624896955748489750649793002642669326680578078255058220365808240738943379758893679190173183778647399396059822251099063865266449386899902017753115804693458861521488353059806843457911611856567153900114049760003355075553057505598355173262379953587984851847027358770461541974791546868199757780733450652205785235645799258375053952184012025417096722231652317268375767975895662514950852609181143921030042293433037915027292198687453185005580577285641944925789725610142895232809011172246807989009495419001776328354342545134720379906826075440038637553320678289968728500958898997872249557914160508107550908223559384723899781538664450508774263015255285392797798568585345810519892529306126243652377225574882166394746171067165184680671744721309584146254196432089707760292246125023100265848167089537167842210998772629157655758431557606774316798413880475847430949690736188351288527248651791961672961268326996750976673054088324232209332297215954240754107484766074180618012212171643554699428324193990982330286876469316222109233602366602360023365674520654527635587347908961785230685051066314216248865107208515250816285292413631750985005869140298133147761681663482037204434827767359594416169578984649948554166028394895165279237534996832338536142046065125894101812542983503154224264372893238671831009240355881723108755961412203142363042543311756431950091154193392992048880556090603488829208133933522367539885866052263069510645009015944164916483682806709507582109995569423349162607248713807019072000930731938258094163439999560382523805621455993330694218615494250720520323256909269358541902828403608395686640900095110456800653587934150323739112640746280765272448494300180466101510600171402462005444797917233124448368958903042936452547369892328672820490192089366482786160910915605394221106347351696242993227860207524388512247012630967623703603973406181550456602518774033950287360964084514434773654406784639282838005149379676946061254638412881249631632632484184075158367914574874016954172304311452512086090256243571041813081930284942931604291159032332411085716339290947617739015470439212000330894916440491373246838192570803939682164257039656058812741252854844171894843526368977965651626160205731302406209701101637044387074373230516626278378717595223785377822857894622302659614505910824483192457614882628613881493710371257942830456737600584224380236079908675188358080030725821167766384115878496183911632056791648357743482968031227481986833766657048707002848770865397618234518877528133362568603784537835776379243555643598446215569841028404426134612687968461590437609126899723771977799569016472128566323599095291902153835693069443493334928507469380666753539876543454608771701171692125758341262026509536466534573505952200350707007617966261000681488387875992925980481933198691292866095045749362319081131150891659165292746988537286213480490580562264581513918978837769190222636237467193772009487186710235872797099450947715298662528523933753698272551683069814705586897809337829782583640889956912828540089979577208379553608284951544957888012419051052701956203945927790399403765563057858423542278740151489000445587681743496844869458466727974186727627459469475105546554266470097214064125220735958261813595473317562098229550705568427557460400655061882496329524373199132200062684054399971997132864273168842452432990843681830119826413835356398747417800643771700083357509124109789845290142649925130287250994580301261187671560823979384478194751799801785501380301692858177861178313365688352602348216060450037734399594323003473170035029311471819497118141811165349279960519167885326417461215810583721500251198864474746316736568401297270078784149209452675088596326883811516694744906331482920891188749805733307368608217072101952722918529629170877360992136374178476472089927340356986600979619415288821490328770544300817343846707666990130367093893640435514529533002262928987677153476031813621518923993451555321211873933511180993266257135440018731594418540849087964733491617856336141839087510376631920834997803797876751948088867531933532073896903307132833397101012302179751503961832586575252099022851528999806721379778438117741163898907097757237304062719218671496658462182059952507836556321442591837067063964365469563227208725023678265189174286572823344498884049462555362757940414319905056679496918436825376721936380699323705292100949525968170221275128262991614995849910021462412420053168966541551263055941531374297824123699020460761820907874424764828001797022132566328519338122714683671760462380532927621933278945153411310166839579417321427252267208568809541893606284069636875198512976190836186661936146724938666509073296468498658470922664564511921092596396268471499278190135365678526412536901669793833701517362242200396838900382002790184986905841602863449510131062850313388801703524942945549395173464100331380554328067411879868664578159810270676186519165752335470937755070010536365413680656341965850151584590755819977052685367264816755442633619795708111306992831750489211652804762144123777707146111487316344053421885814384489388212647839633540596266298826293399542155236375009132002058617003599212063721568405505964453563843678221378296415390744763634228981858726749816964101772739033185861142067230038095366958447645260857269292605975260616381728768600167019493103830023797081305751591117486733663717094215591136963459891137342865217743250067512946189405302373516456295945939023357101810316192005608641108776039195786122784266270787656535500615326641375730918579033837816231701011121802950396426131849845399422659408089697182874601412475331696127745204368346753073170043447473688745588387036230928140952846935494225548143589224509437144998089034392410093139482954076862560759299812767956617610013739434035249701132150483266667204652909406210587557279162185881224394972191023757325085496613161777366425737866432601705406471180464962572941400616351166993331259540136037351227449847210014754872026139282733094936289225080482486250148659939779486682017162674099903666856684957615630006049711650472196831184032487192801185372852629603822992009895818604900187414093091082767714363883170423800877362478731883536786830111413709645724967137126148460868590585835667675068342437030859805104029561039416869483663116387758775794066755806965469084661450967286660508687132352315866329186326841396780094450436078914639255956031099169381842642390367271901696754922799821410158512974293001919281577948712036917621397033081579005423089356477543106072950468510094926831391598449244926610393226381126820212639811150249409059772312284589456335731724570217213021091788581835630470826943257265917806465323164738826305407207552667764174214019521206568234921563046052538179295950438187915064049022420808335178702640954709454464652787041784566994373517471691015606272404029639221327404418838144466463172659764640075580420664529844906608059137295766894107244336499813339794873993750742656127033078204702556973901122875889025032357199598717588643864406371366640405774542029356422414340145453645419665768867706393609191204369267640285523135965667798703745908819678046359650829398218687391445179023170101380318166668148998575115634325975926675255452261477069274387098731345203373394297536063639008757537603937985209224050134517619924278338579152510167498933091926218502525191822511944980752514412130546362107964902149546161691311047886959570987626048349656240575298812420283689029586821917861377048516267457741331394064499573018431050672419726426403386490323410230563988063893063505982694306527746710788434494737115697982425847854048831026719007950755414638574036489023210860088896001199506419185256039512382872984403543327751364391314321429144104160377557601485749324861892234072129937118469284121754781498433239959920824630391460097794919303250277438926783080265994342834113480769123868228029147839467141211486109085873934672022359355428867889872209880399061671357027205843356926498334730527268331715114521051222910050087290161000235426551090494355747338287340456544719166468192075869631422948883203119896911312104751723541209611692221657024706732906557687098735634836258591076473976921086653324260192739804939998386833344739560805868934431002799551357166227972691174384848425423199097961725805748871236777983087656995881550507575322080150543576892038902933535207678388710567063937938179183287637743876415656657872473247189165657920789725157031434013748641782184253635803637610612859925492613684615944886880437883162510993849537699067008027264739240342814413567328195983961572010080219155681286816918524489057396392478313120304674119168181158586951906937685115654681114351612155460980695928591408701912480226634633968501505631043394227039675472411237268788943265238290880751644427651411774530294300363025790008934110123308813884166743665960072460255131016558286319278075913113313947307504413628659672035397309364586974625955660860480329591391839507480463934049795949779262752809025467912608772424827368901054799633340579017354722048318922858880444983383508283054632396347420480799558114177381333465949966278198001963889517874510714947964102950160070961345797628832784740045148693279470537893733947239876680821752445909163475008388434527446995763086253668687732149788953495267536079790594640578553941998934567601705557511127127586151416918503338611503645992495349426215229649583320346060936264985124363876932706698565501989160310212895633783142975020619190876563418624180440645515535695878649455049342888760839573132193580152290706639839974219995141435080597474782350449984279594936980376561911746719949433290662695979994989965619042565607821194742984505169606260725070696819950027147559359949983688268857592503726003126464027826766961293936874600053607260441068014722755038496435707825518821215071154795149261242528879866506569232236503017112265389544268471177651383077551557835195136998686358460789676842318606253864746096848122368257406672600893783115427996246903979967332433651849095640853628541800800503088374952589331563137717437728491838853416654505916658443880153898639105618714443933619295757193669768081381180432923555847919243009498065336538557301799579502058452819750570450492681400954259606160106720316964964979329660979293483921156729761457589423074668725611309264179913793709319039122171580726905428019368328102690454007901028478349063985608794817709271105427292693910996775727592691336028183077821249642764683231170733716342479291614361726780552286851418128906116329948220925356588624977890932623689527781364424148352525368683662394409047914516401258747713355641924843335125939685346704550037656186556070663510396544631528338858319794617387305426398280015550928939382092688774968775947179922813078113807374224468340443361512922051888782010581683246813855181617419714204618649210336017604953037964605621398882024271735657837397818644485658423921750912853617533376696638575047566091070415612073018973834880324473767496833684723281734815492063549688641748595814830364229541696257090967771745154831095108681675006918243783128789137320008995896944779763710496070754280797741801724950076966356964035324979426866489153938084808986411225415470358407962414281063223764918928725516631231916572245670494329792179157298617921394233527660130191518569882591544714644254126987714524667670885966038080412444154817359604861441443282896156479425604533930095572603684130461743689184198988855618342382672825246232149681520463403164914820423170616048460400121024877285038250332945282488030576165240877650337581687778064122562167883614414512147719716203042484796955010867653542875287402400436954748553478002455158260708942651410545077763404710642782550014979813139677304828399863173250476649483691697523343860878520521848020232215876693979950130323738759813338403132529863698730027628139512643975598686653901746132941908361976514655645249360558553133067653134717837122289579104271634376385669683693891264575544693202883879773238431248997426852907932655373966802767403086593219895317639881116501264338098140979439224443209447366661422103255843877030975977987776828684249186892675666010655932478763081107977206172907487986714881802426479051954224739045137786969001617162172566943998624346178524547834649383060491092436798241914477388073789078980227632055597226154463650251210487223580534235748265876780760756538379245417761828603312227149975739394398840467438683986594570875385140997365881236843911557170314472663751694074045632308535962989960680220917673614728089805147058173302190773165638499283706886641073910468748896191100849696851236370461676746652350434728697173026792106006398171088963567864867128161543123630390033616400352068654115890272601706182973463163034220908454065036539389774085142997722825068079589887353474909182519581808028960239702911918439596472412285571622378000393186857044311370433837096764104036957889298688274246257517280442426363884867454408161422583766183247092305370237985947415347694286297242498905456586438061032744244556045016248346986909123619385993282092540427720583425328753063531804313026584427939190269206853288722338187132525592358191843028951956748322115072686958790239542073667246325209937826501202459475832632504376871736036305749358638052135766110003090251771850528528092460668144091818614376418830519013603297662585475538637426974234941331302883780892913531906902475660929266825902324674533270165852351722745174736666574738167609609611004517451523648199610674757800342454513275932087073812588446335124631938452214474613480506652258453163722253456693396952209005328176588433460758932550395259487313531910450125572404331704824453458285351227446079850766574008066489440036320074901263738648683445997026729396295896890966854752135673325899620936519826847023411902844268823654044414303899275087477507351585328443884785009940045904155984388447243387563412910825458678538734097694832099424959723260135550791475302435602481083258719470493692889601937609648261226506516084189015751900404210796779093574326857268194810906865261454430877893086387328373247836935414062269203480024300801000537489927221524530400613553310745567486532756250985510166322529506514447369792759859474860720784741143330511454931257298208543935377426227257993662839607371963587067527903787895419715298185989284305157927363768813863667512590482031590543016519172709679221745171033584674995152133834134569176472873627985050163439541115247652538540695452711205004909114588616760493568757037478162541905152588668771305177916435239076936227763504161182134958130452398193859151323583184362888200148354624326376828301799090325191001866994451089843047441624259435494143264495391300980422301246058283840382131369400893353464981741710760610506860467269782932230243363165630712086934513979500804730494488253338277751292610463300176337743619757327336836340949324576759740713266797225273326514636249095420476588426111863191054004924166885438776192606444042647841105457775004984726438319911530108907423140872676669889213065294752798891295664531109837225857924359711969235556401525376500805993139917695609203888268274171094639712394799759445482033215801674551343965947322773937760667141590489259181825116280672753442383074157485390989201989611544900541711474553867653933321591220658876259302646359191451509954437332088939684782177132112765179943354971735251929958964828708742118974439297414901625076043543682783758907964426697745596727454330880189856673814015369096075144354330260051721274342923474425203704393997505961813642272826263164760179736227575433747328884482581964867179058293523493730368842244338615268102784151935595518033480618993527452605772047248509693572058410642232288310314255682063245615107158564949486140936065055174707124192574542768146595768652168254400102406782300846713332508840481279396830967096816004615068715398614794278790115731724540411230826813756431497524230160421133075297244992768190151790091469198830041744126350428482715976569488931116612371174485355726757475842942398312660703363410103467101099521763645999475190078668122864256287472500934016220908910280448275500620748167544054318378659142044725432120199443018387014945275683521041325528864079647954134932089937595118677176732823196359906429331888583387925555825031921278846141887053391372664664414033524202078790745318043698493528024008939300461316042395480773197661331950192076359903816455751634646483941894565009792369200463036145240125210829651741978101250631271017396119191896790918302754518145097938028246232508278827682138713973496572182084277230285683252565889477559717477050998224015239003101082142807822698047846770989792558138977394174695309456683850990765273094811501182908495860509057114265916770923028234788734219235161198994647499230448841026965944598016957916841028797614159576456626963669747975291669512990560807045581421163076340703344094762146538821182879400466567297676094141557739532120633693798202297529769896865664829136995404052293414215443540265672637897723318965799146409470756625498637014141116813569562246073681173160490532000503887687405918907561521960659783663576187421764567015154907296127347583760179109161610012626677833506350867052922654995698901818536388759411146822289915500617966860860750877132413048430342320072783464396101277689885267804375392827338138887626385109853324772482242874453635898623092752857489634011535284790745577665456860811169633076852344237880357716042752036807153675794339639030521396626323038503568425198021511269900446362386476164718232153147247269110968638408345947662357354484360905119691187602156013255919678558157689442096397143421168152803347516888664230915402870806201739608384992003878191690243720342666416487317774590494526281900689967002336680267736460448932720815828309960715191662036616019681364323845537202935734323947310737906178640433385533470868562778184849859936760392805425914073714904270136290685209088722888960118136050648417615374788925945869503392448906415639854821702468297799655717179806214100906337627414099811721753016590827640750055737317634463492708410979760188178452155736180242574511339617785615435601793193987258156964280272201543566502707205838330918969466653881704720346937033123312312057319583826777494163206873424590963533770913949636326742773207338757987963234341277779904758780806804422751083991171534234474029484317589751838131384694709548439223245531170505139501310116790379921054693925394961376984521644102296693427446499296261162604810820738460936182339337245368494249044142926738171621492774156859614674444654750544917236113722255326094493568433701408969019310128206109148575461902008478964354398142261158291665551402550463447175850239024240095152976876783225897280441796386293819972955716501799171534979127464898780392048168167236703775516477928032208021567104747828129215633649952140844102775204961669970564024879926559198779913258486798892915096621743862036481953458671319844422058038418036297069466793910990936627157001490982490666508934824323210316310058626223196700511126973592979934797845240599225271877604537130708175729367163883614709061194704236409233379934389681309861316249022095181538678142626422129634308799198827096693191317813729466302051553089458624931548318585524696882718498871554516359700851468981627857178150005332200145597559736353706164267412409882111907061678359275943107801141407618532248272681305969511165805315768708947278916254704236536064942613764976715026454166135480056705645257188217887482244230940112545749568419668230190241642834000686298967187403047685398320868676828283615692007159731791686295880957408411533781448943677293562208632254557612644669504066895014745732125374664247608245847246090329498628652740662537377953577040734372977869744070609122440533467190396872387691487966074972237973607761982467573871360093826288910871853279166110007950422512477364449915935445106743047369380958746110607385470396336626502295823712118826059885999809723289163162989647573624223161613754987283764064915455439634909473175413164954083419448902872896066001163361264257593511323212651777114561184282092172894381333827617520156133143089895112514191041223315350259545302553196614478468351705858099522353717757924648053223740018682416348482858062747155585320527867380275669205993610748737966213090129413534898883266430766615225379294503135086195256254754018977560473348652322053194378959808117160416134394500977307154263765393852521937991270431454531310168496511945371169345601314203446262120100232753970874473905842942233304094656540549366949104371894414754866166553469525918844248324074969289018965446395247822638303957082524554139099630582534434528326261022069471216995990588893040598281835505451724425441613730584746990959357438472236413556566812920446617023411219482705946719890769426692541165013377750338028956949754435796407972131286049457635268666030197092136029880014470407312726567660803300480194112985862268134849106379658332806997925264816235941702426412842327786803060543545775123046267079934425624427451673216576434754335049836668023292064720180082409649661307935650602112555503259486068383913526401533713548346053128322310682241881471278267768859251209419034099298330506190413939968414522166417898295547167746667716326176032365718739473016266617401837607340533347594831867218006257755723776176202156357266678735942740508826868907873209158083893548915824594112210214468301367308252012416235394507227803026278331736981271602373531295444282002610397577963226566405728916398547855216422049926562606062762939682061017988994364309975601476475411812557243215315703782906709946589325532925511557662975555656726271827516322341578237396448787165236230844290077505505390217513284326222305522455506407094116979025561014698048820937309267910762465889670558211108504572123620176579449349181287876207892594369197060507367022719112107894902511526731189518879128510212736838330375007926053289320423833713723600415283240814591110800233629000529194933243933685307984927661340948216871656461438326305375444320054918357346408304532275816656979256248522054058574331431023052562710686557098977246175568381980007862556510101628533888769154643919486662759059002381201186274972044854436207565733430442381184610232218808477842580033757457780341844936564483629796366389343096963230433278930352178863295488240503851105050295479737587099062852330413963922721413291403285222432574885196271336872813309578017060149650518838363065148517280995325220731931812031152787485465783752259067472529961828967789911391155238669995246206922326127882175244062161194317098193401600367251405317051071421773945628372721724670747511207925166350504149238133477973029480880893922664370307595807698198615414166846894654007828562168443698108389831914574867572464563040118473539546517084696187381135229057300545451739326457014689784853918106026742233832451514277232124047597138276937558736124963479600856032506463507745245481793610978070361631957855232119736571055934158163552932504171432331077401688961537289606324004857922422322135549194814571231375691173873897464056555845361479488637615260177753289643048369960430536333821139000548983391831010354192623984264741737139699835905179043145701006101452616890460935247914253487126788545895227434508866051628547723065428114112446417252084691961554822210747638859551881244771762523963829548717835746902896504771323149141083751785778604104330722670517138912477094829050807519328625584079275858836685511331663799699877678378177362640220736388406527468825157294754158921240660645591461145989629615279674552660539011951422744148111090510435959307220799042513759603989513590042813322517435030819183037267921039855272232041605585330266341111987228363285356984942031196984291620965165489731405909071528283062091281726468038468732135035660677361206551248734871586846097100900767349562309105361217792128226496662752540146608123275983303648857807733831911867162530222184423779603790886273117925212329734806821802110845235082547675595461708705795246231156691137333660880586292519689920071318395650092161407169739362303435474753369722979895506796960332522497053939173834783289480461849334290245373230500879497648637419330791660542157071666000278068913514012571801709041082672267851551873958135775938932323944669034962256998502418599117513457981084759266695965358901604143849088368898746161281906848403413441561452641832761476946334015593902249048632416796200677563889615360006614536901793416226284031352585464663438639945797261575456545679994154705777682747011700465187845101749140818611151064331627128441141133213398163117157518406901079160448912326674923894417577457825591239367265508720946183335678054926616839207353125629939931965861010779437447762722239057213224079822875022288866515071944452171817736126692143198761145967780570945566124292212726530647431359708092548221416349096631991935430155043046874924774453211981879916582013354659913720153444709058666660739074341533294763507055672293276407643278672705639596077834255882007333482301406188314798352909399850743863585100632325079287365538574618619658280996853677556122288255629957322394563125544410141542395025901852763421742807339201565330485724258153003538358328940314359478752501159867653455870343748310243195515115895166804725080741930286215094064425944780424121672511531977825678052587262262100993726136512592779726006821741306551138775741871507533588997013089329221218441859010618969382269003321786963785942075811736605402975594234603558203229703412250566424069801660067983173959890760603289601557986508224160784027717511249043130378747859691455610522779373715512286105418424260102598003007537592517638760432957720188862298173661346086943345373786359527054779552110937974719710718294410822168474296131864741261948670462767738625761129478762296677443683552266896206920593468494491585020166109679512707124620820795444060349520410322461549260732506390940526258664736908544579674072408220369292584170418270859040646761662434957721867977374254887886207314632332188813308232682564947243141445203645479112281520576806476060286344001341716972475502216073481229124663936549994788523912212059129093249167227078451240284128122766802296407652272533714924182121860171247207401241521048909189611375586241321190872327436409016365958596000551265993332153480446805981882960858094502351747341387331084123931312943416029075155759358211553633346267658980894750354893642617530750232717835582824640617968987733760181298320273179886529674301276738011708201921432415928222157984332514208550190606998517774376250773415860675686689491053630888654798659599883674962091794571571960086307960123253328427774377137262089040039660178403195095425112771764693756217695589669987622631396624316492334741992661242254514011526867313040327891358055072230154750004278925614367417902200890410474736118650671712475172768202821567547919908683943154810913570317604317407774133000018107590488976481550136886975089549410967208604545224835861046948014508980059604951524787441602781597981253354296293312820099617262014518339648968277689038375537324144400309380919640026385855052874011410759432347076595175398709845241727814810702174243717246822860699290090513339445613423452695566152093792023678008737130701448977474754807849028937621835311011677784216244362891153424188160972099818904823470237246426860354174252449473532307697034538348876626284674685686448695140802545755965220060682293439449448357893191949027189789927708364701324376660944072290940880580291109701632784968022423969788472468148209562211156333811694768084673237493650786545476946618035149908547373636127620124313486605005007816219430063343346713973030223925383620942615087247103741540069390247762932485045130618059602783642408814513240871448496076139569511481303971957680757316166039185829447341016608017322996368866386335307588645081010796750028140767247718499848116998605945765037084611291830182422029034645271617467383189352399607520999522668026619851570059539935792452879816849584353042111229930469976061611481955837681718246379701782293486579485721812049224203306428798983954334004084969305311169960197882236572461410061953923219362181034726229677676836689375113016877941685417037399922524353174176177403387492012719312376200065723694575418250152995150426195658342598616965776052631982741158600356874852617089093110257031799947313336320523516221172263989301242168355236183491120165238061091015835274078211615923250731592425735678578459018523026455489996913767911087435548872613099442776503093476714597651916465828630970453024651573830857302728187212281073364992354008626188919215751208586581318832707025013769374442239097800771683433601298050309132083680958179780798713954943244449456163192497485048517414792851827596579667984243043965851311265563179946618173031776716833969642632677294607771465535536305166189857425235643306997087769149643275400565944147348649776210220614414965062242436698667175486909768586848275460948681609941977506397728960629226783994405990739658471795764020582167898099734343033054748502508558670047435108914858173449150696138428013915074813401455161429293575491454941247308369724545655402270324461398844266315934225717578830863422338216484126669280246078794328992578361528062026583600009336489928695325602218616447488186344988583380701003263817661763590572170957408595856557694646000707122519236996870946152265906631306066579768334480182746587245248990035557224245970332958259796765837259849324742074938548882452085549472654157851582665171993276726014311875320515353331845270847341363933585125285927830373483707145083120161350969042386931727361375772878204173755635452950135350698516358946172750103416767819512507404600132659504528477922533735059688280692269502599792834064851991388540091369149600350763517904496028964510385194045453787676783496581929893331270911920710953207932789869142878332964051504845595723122452696192513858982588749865303673190157939111188758768979463428778980212017289378352279253219025993650442317303015283306578199146780358257161096958280282379205795427132269213229569332072139126684953082558687126815177157095372853545256295537739079387832837597880240259924843416943636451004164987079743530085169037792961432899827663727043429352436553118837037608299575482013011298346452202973694397077685021231503354095091910125369588851700825704945005650269928879656447511706765584000993527285093766593968902287710593215085421395372630024275994662803308742432648312377584812730396450085578089689717797867425664057063187332848262809849642245364463297748914879016274241584924666151474369983551241573240313530865841835824069918400618612899846163910205863707096449035226122874677664403834864230863293108989987571743871586926590913128580895988697769913458835547679459912802044620658261094360063396191383079705062193451927299644009096991235522702505611847368273473000044483486826046916990241173258825618712729658934200672784443183876572547705845307520163309692047503554965556215348170782377671665586768103471159168491749941791542250095539436321557758822255270183434024055735303356244437814330766958096497361222369913201154514376268672185687215570023555824367201306808302748035075058145219151753669462442335678626956587135640778042330311705728417049156176365310492111837505378722738327767561221951343348159429311176576478074380202305345982744024741975782767430731036712637842901138173927098262478141696386304132077505570956175220085167862470318538808902178465719603017041136007615351711493071683739023649323985744554934616496436876605376161877085446255529768513836742658783915912477974782913348480555809460997388875127264996648754865977657444933137385362427113290931169906704714861006492855962255560510830007891626875770619483252320142610695168466268600636926899480813213057588472857287044636910424183617312958570010387004892062094515193762528137640056070626891903524815162849451712564543802845318049461079984607511866634844433529476781596432731660900357958648211235010192667260646806315103889020332371022180080980234208726471802574012675290056541246049617962699303399365092305906733192515302894745646027108932525615881267568724772188915524949659147852149360057282609911605557401222022224287738959970095867764820715223353102665537729327727087595402249439883230029613830000545256185412541626150834122280295061070136144504191586296076382925090146020874621616410715116145940059008308563027599585935264519479412711190159996181113171261836126283783802657502526269243853403549495349241901615948444369063004011265109029715348504697918011324713123856722041974488066349325855282965445099575300328998436783118287411854355999167282656886040458469665791601578021151621010087803724336901179412669983839658133499677031263225568540105133862027348577170774565055286829922178009889145474335962999107114116194815994271643168508697536604638291432021235433781739793799877047602657644416594371475121786854730220035200869060967025961910502698338111109094641752324660106827234417191719031304431605923330338917633821873081723302766421926401764501668592245339461989733242795985902626473784808735613312468686815064089684712875011672361003129503361049114656348876720215245375255478027285305269612176655767489145539192415927540971156809264203579173614337447725852902828264341441120203788367200498707203351504316175181340305396979814944728955264571758497581142574155329246552125152734505347543932830453829528999438549673866737500050857828481117789535342221926720456261246229140117859613024908200537059278146002115149045190610873256092890370631207354562303810489216150172287814320117560555573354553354286424419217596373785959740263682737442953840479953658431031522090232601249980688388128814693854748069449001555926819072002213347254155293766104780108218062527272106672828345920234750581635375615559149763420340266856454103192457280880633993525685894265932595990143753725652363772254111041310026475760339341488204264345048924877917680641412139307262083085237309454484033936016914129186731435212248247649367206506329223811395630800185580561938992532147647711767200935155108618431927017839858150139973412489107791371538928843693638489012448728976883436805699489698101153682300916095017387486231965871158664411146251702783925557770504117850676884966606741751264020272057978903887729291386103287366432970240769438278565203704037103289069339452452796327843785345704476926423894863542457333291286790178847272449081333676229077368280746562248222452579758307144519922951364508959400988842868818168865816646404738533787837423010142559074290228318458626643473439323353949330773635785688643310164738270336715432650251637864599067381827185213943367971081578181251853512955047048659629920987672357697351941923683836394278941495060291139622699155531410012064673797006125209976775478002656563937643273174254431171368033423690158500881609993500444200937837946955477544073165010948180121093559724935241839728209067350804955996054951529230970938923237664512311507240093351397034688438990879758744852900861355631939792477574544892052421999825261850288065732020840194885517443652131840508027681578014506565355710694926805814172659501627504411111947500856127660502455969373873299325345201550691450115818999645721427480377131871170927625515368585185101629435232066269414218129407395545937247928787924932010326496011649194308592418242385405040804604638299725846355572632526550438326127046085512783043199070143422700144036665080374588333090440232220307990515286578993835344957552899064237431344217203444649730839074943456965844863416410950612278079203653916851377272069288893597232268220413228489673213673708583977006847959921512847019614429505864615533891258415801758940802832144536009494720795048286992359237793863484498531774434418346045886868972259392330307745814691075993311441245578411650720892768274350616144567624861269482584990179946975976712218192113390707054914046650832438660318084995180534182934090978767186251683730349288027603295741935654452335287481151081707010058898750223851969962144470317131380330418693199073503512163344070265565246699267669154612731135828341145602796319988783602465285534443922331387607218647461151329126278780664217203914094857708004455190498225772063172239094983966677789020507478935105160716380277499622905995915303026324336848389816073023326799366516209265142558190937569102953655592606263111891279766914289933532646492306376028529779870923387804963363834718779708579407994845786872631549082434929862687873140184998033699287749364092484170586506180615933030638396245365290891317997006066200646181021943580149905439470919927719384615655908053186554529617932096028004936219479226091515897094706275585942481049002114517643250371843392066643531967808031045885907358192184089359726031492109967876257825315268007478720974411146454784877146969630287997978344160485234062502695914948501454260322429550543923800127061710809540836358711170954542533779314503751353742952912989018717798827585151593655967478644820879707742894402159263402786089756777384149602773006488708516385977230428987406794039267898139113218005780421510214603786176137215259664254039515116390593921790755272727839348743156975106019891026145007877085529537559241343607415736697127868282899131622663508083334815190086877450537805600634358873167942808092816450633652212992466704818730205666023173188711762776384533294698020971576195983283430370924084373426737751212642436094693334751433089430365550412792663741402115881914906800436422501661111571944136270754921658531238504268217082689933123211095668016004949157222595710385730357770654801953356586719958092673841871911075530770340500596318737989871925542932965400378039162253937998651335058474546320684312272474868197083353456212357538233424675164097818842031407070771773584310596699091004836064498278119148019917064005319705517085971090845386323166542189189649137699917380681416742138222156089326840158056141475079884396018931093415322005326988330439194453027406159037962023041738176968493764875051024473233331417081571377383035371279539178077080150013400077897527985747861396086365688684050227070224678584071089781968477338828598495951134608624522767658719471254153754461473044607670963037894816524660176407893397242444900931788693637900575523343875641537873395714343233323845361333167078244734915631153400305986095541309760208084982386259398248329468843139291293091333745784734856764519386138096437762182868827448437258316938639373107741060959005997180579113619025484279080066136931975925792633460559132929322435871611305798220030906149454099447175897005580899855606499206799827109924728736633584607795045631421093690344038628416999201892433132195108310408956877167219443887314985248685139882707271659551966312078899668375405464262705595239200721762724907340521993769727692822805259009236489741965843222839383797299421202603894619605587322969003420482325280822388692262669982545148315307431479272795096994125498783038342579659948480231248905115667150718670347930115800496414849732900233371344699328927496868434496075340407568061327122680977426850462831819403920909483271255779722084800455307858948552811014227243600167350062151702109036551025905757418068008309266411792813366161410012203824462806423472688122636702289029838099347592885973608676022835094827305101592228179313122669397911975258608928342120645882292870673206941934025171785080343566800898334556536782350800498999323748981525409453991825011894456326113759930777658067621576201455446162977184381214188214406135824542550373739927439606070509577483596529086586731342880807378521394823314634723729596212481366336923197395151458430759484320135147241964130479001842614244782801144630198783741667461653326454425826864890464656669785973481544458172537620091629526746007705496414627041391471545949240876715751759627476712562236745838522447676770062381713490603584694385244139652646664004446730109712325548411922452314219461951010925801057713650034907887370569958579804900317599513102827924155496625189965829269888253316018234395089564356454709153227411320103987739877492280084463490846553175122503624465221730946483112315307172750676959251227829514364357213694183309983895606870449040602294547037092160992044749915676527492006352679300705273405103406489501867573643288831547770133187899381366593500122548563642205117889225814824756087807421986343121007709901177236349548070379753587307315838264511114017744258657326258620362639100928115124528064083782780878253200634121113639698879396065309303019115388991983123718564239290257867232577462865842313006089430539968824567027032448574674120802828659269749850891056235100701675770917183593840765744406572866926869744331603206241568774537343649261003256015663800160671731140771870703787190416179401188762937968976680186870859163267718575634962787093335765800582719877820207596357170903664626287866102968726821039223327537607640538265670568837419288691534948430941015303213402730670922461466308153738252287461127318721836358937331324945098400645507428649285492486007374377562494947807164483981848427612706381745263013205793249736717570138015133762597214384403022047146961698785331244331974697154522190179201666677910702383928934350527844286207389701339963608816114620849422625728872573323802792923554425092430690200135311424460769835849689264052946097390090346356003859125297905425296711894984236070056965645297366402305916552911586197497115644891023923658436455224088958523851786328625719568968391391302264313553446689915401336115174499674918021142740493251131014490983544543810540751977409759131652011179522118270839489297213736610519397366900305217012992003200184374350368123677946794134230478042905592460081260393263629071969867988121624688444448902727919448009017291629372519467932465242586521656772756399258672550681789430938051901036093314476659216390711614383817765977971423382325083997172852768808855443826778625031510814170983290110655674923762119293018734879862901690982921167472771752690705212310854335945087486667667091937566879341650928228024905448459413321892474183927042368667436145284115538291239754330964747683261949753434960316728118397350537737629660824022635298676940032099551225696616358060905985052717914000726502441422615876336154803409430373955431462738079607364919562182073820265425859054773812859282175225948402640446316238868812753940593395115470841978466192796701459751165918482137129499699491826612633277486031231004714606722243439592636799162187256192950926600571630977673904739755090842123755773358732793504584477667797632694533701277451927584470018758738431488575489119282372706856075382117870662186194261049647965799891476878113907224562920399022971845879002953904300774849356118566920270674060286440573426378946235937064800119372943383702219520901088551362056644220645836716077827288006366174219439279817536850551681700873491773027577009752857177155690809054078994823167636886852896025776155389324556771658322404943696143566891948705830255008505224488576400194375202485200037030235103842366498090597706000411651234950034698512252712472087894689308593055257103662083074267174518945202516687243438195135025042080427885195505757894998529580624277335140558353222578566064120314276832855222121212424063780262463782185256710492555682576528708343857203205870658954294458642163101051488813594486162789817402456997587946918456706532429174506592243719305044019500106740190117013799485003123410211122360948214229609214743429810465684917367381287588703492034059761163040039717341817301608390261191580160611625494280260670012693209311282545927685678193508954735402418950017124261867748095979659308981250619251462920742841394865231486301670899409216522632242022541113899708329874332032193001154668743300582941029828282319654982986153988795063423741821341243027184871021516483979612498524759642111223082175847231969969997437748899562021422692294934605511822750707172172837591044276783445427400404404921158510062193524580468657129788502768199488563712040993284160837194139288895878045802911032713687654026328576618951195606914727022705926144825090112707497380036947730222587800058758893018340503427506583699161057283202969168947698928001301647594075405654699724151498149496368459430741933934510717153886697730158592116833593454799746770504267353922897397612896494922711441866452677883231445805349894863709601453898616203905126113267742623664002733217366917089067192860061935892107125565197892256339186576360944479197774588385314557867901653849590856541533201746296056057935979067150148646354984271572843068460203591704753810826679918086156106618453688697999651246590844542438431340489353813021576196662249656486293694867275438238722656589706830970298525916830488429319269307238402458928708617850514104823202012297673498989118134470737191442926436002288228705747751004673480958194169959243030821280835351960396237255529877230739723063020496146487666448564865918016488263965566033749252210031866844857967481595511744793019446686430432095999513953076113489672159137207270922829449586254449609878561329059258133841195788195683220265332217680216591936727700977323406356638340944918238531229843411476424517207594015827000624043060125022301947767212149790958347838759432094852491189042922260846030107888691163636042117350958493724482813966178929462831343757942815763798246335467408997344106811180663781564847648694204821146830739523082120854113151929693831259798951995451519796362864763601368145201922609724576173532681072571771554864375296970818573903412237325845098433984194953767425154387430560118761482174424807074272628526407178195922097882805681265687554693735266705006598433868754086024564606678323034331702055349514431643759969303098426516295134121841456301059381392523425853814307737216781847420427419792919416375879546916869441164360341618428560817783817559077893792208426914459117850370270261228927124301756098548304056226983908103121851427999694506799828331111615937974899265873244739764001698641317510240137147217163523648300844145279669385167602638104923773032165753245339545804956078050944995269689706185717637478549936401980743082714572677678677677379689387797429359905255086354585244285727220807116958110833599596486211948360519581805553413014229146880505702384812768332781163287642972160778035862653421809167908820823188553162471952994375401564631984454429897285322612629119905671383729200843157035174218752732440978599650849234282408977055626827130557292834461248956628478846269504602077904363535507001860002536576559156128654150027438132196145249257252690605787613891424076073659276870618514595285664403994756728989924204496792828535584494483350910002267529366633847942129241499835053860746167958056206385032868263957306843694407217189328514866922227266572005460007386380117708042371701045202920727286634296277482180691942058176629031759163631861483703940811668406398143612061713744899277384240731235444748773974425795019566500462386274263556305562484547818471713105125027437121425499714012564316111991012970412376648375434878657696661390776058943124918346275896341388239839209492452920192260587909335195414736604395178799422924307654786485947213646828155275916055712896464377421727044530765788246230773399584296150939925527261023559055636385807702951121069425205029942063618829678586057547038077417346122569876041976765929484414355954928941138504600551388848135879768879553971704244080174624367765534433010546101147024098983488790609671713247604794949989176382915218907438890486225831112708397784674678127238793552078333349810185943472132496059185417026807841320350671031165270819724390361055302357520750364918719746374619957187464227388687296326197085285779367792702557253530900638318768853704463962100673743879115120360023710135402486142984647365228302260123919811677176896767190488515004554019363662246280138096863087480183061180322150358946759181158236801459216176115789225888664994323424265862053849787292348186646002019904128837281863197032686761290829420951645872741297002550291028676789841789299550220597803986579624328873585298623498437464499443138419668199674662492449421029312660431754140726910559116837431400757811774277705806180014464349705454123595131216177497483453241216187350317021784144591008637550491643040794392948846917326632150897262490283487043644866489484152679559189511672135204611413215541913442883659197837119779310396687119446948856739683966822544965493536824957831912505870588622078305063367896809490789290701184211363559144054410027801064182810941230493581799055508360602629923171963079798859214380277140754852203350297218760614312288788310283464389238281711839755128488768713294533659390320424368033609338801073152019889476357636169445429634955515856085903993235936353227607612281908017945400097264629073102561347950091532342276156641732284152302686312981829887691969504479162552368078992274454098766726956247831337097772332698396764778403452639949072514397861443841145994701262130006198618231993362920454821461200974735408325005120709381390546103951090507258487325309781766205553259558503316879039362551123025319559084473042164355912847404674418745252187460604683049175777070510119660987458264341411705663501845989144053084760733994591331360212428028758197061699279773602969303608801307148476184948422450545306934593646028500819404679137871687385167575976146025657685014278075059715954693723029725452685073071664958475534995125051717485252039793996436335923338541884416872148586470539936999193002749788791104978923214232082776832407569039023373867573027529748562826139633640377959834443913618422126163217353921299167323797394617587981626433084150903272649737138250457387075314156023466004192592664845210294194279254239482057436957059529476407126604395384056049210029013791210110429557490624753481213674782030540973811523380971412392682780646757975910464063923903985325633945308633349729192091150649031965611153331630584606532094256396145475015400816672300601831804550240977487741383309013467526783095468105657254453673017118111096132623551245909074962227725615153856272737134183074977128910762465630011771229939456097843672763298486171374076254249367126782563669508547585310521650540197380673635057896511440804768805260513529477610190725277529725053125559801390582898483767632474939740963573994394375762252666051826631824818510863778335795104321140254682294815449529427877299030769119061457282234826492324409599379103721844465797416665218893178427402831559549502088733248768991793213844366206362788753660537051049321317565985800749542944002020385802413633431400955936769783280819091812746242968778545918557800893175017508114879376174734756188169953034553163299079078776860703212785334392206327169032128776597560600636111318690843714174366162041102548777090661651067564932117199849190233372068179620051266872789472761739605328991405840748567130755618397722661203594911640950223777090842036265393775242205881943950342474023465206382346892973807211329257741791128546165629534156399642529076683490679804891351699762135455262441221522315569262659814017904100439298890194186217117736256382176510416167150310472723009420932188476660280318664535127427802687291835603447122779007214690461212479578138257520019476118653980915523270964115664511875304671458409213019310549173400056149009218708835771013692890633081195404955637534691855233959262989040808272901583583371362725474806039138676285828540681621528738055809867736555993331466626172347093696058209640063718016674232320609335602709665548883899513109094964994563498886813897593637026586913295257331916071456437991590305704998378650383520416480336695423964675973364011910590811637055270837417716992184857270889797078005660962981845131230226919842779046561469398887032376720810100676826855741532946652749579351832659465755967280640028358475115475894515024756344262315791435638328382028811450537420224875622436487057024867029671885067893141678149062780239162396791275912281166968739851257226535975229516055491632701459172756283399771306149872379409193757122812129048561529010541327343060871735858019559424358523238652950939712708898906719095090501663275100158397929922449622794652122748891087053228449615918127807369061787313521269527270823103003172703329941020317226628315800881772736242448348384989385743106916601943032251573504402296231473047993578927804076506911265521053246635505396372763341641004570258369193374805045323368062623039227113053806849431332496190919591283050268613558782162274699544865475885762092971067540245525077741131979199607929571730946803837760997590655760454521465476380097349201647415585792608559333719459742006649722246298028685893481795726020112507887357250231985932954954361490469724993364172070090267778478301539476087964220885582877510016698532248028239717127155766591007479930217163939876590171566291425574798309581775623860159097096971862823215830534702202030602174603783438045537659406773853970282995076392523687152274455192511416567143330170099820436900927098274020424532684366605665167780768572138823782999939560314831136643377817275832847349801202807204824865411881693177925340563602597978186289037048783075881191764717248330220410151660271487465877571024520850718197618483549071722528651690467572543425264316534361492556460729047842999267396844973509899920877258395083332349059211750089585184342386588189057272145635437036632834283787286472709647124336365646530868719824663610230961508949738014604892755507744582109122626494698309197171071511015681799414106899580193584108823569889461107166090806519247139066699630639262859409933800109535571312742342183083414020763014336638549689447679578954322947923774762473370696217602520385503744305691556399483826251238460207637773560061843043332841986642724074116206114833427938474854248657018575810526522060097899306697907934536957984525158575700129935534166115871985456128098617326288968628699144162057383390006701472317236954899271816327439339513132337262544487406937567394430816828643509915273438046120366555782042766658223358021443824077363847548721027986341778920288969433137443312239759073528489932740114151931155592927559096028538500643037165569539036957992325590481291540535225619446818751262019401035384676734569533583017629169919640959072526701792313307225335707676422860690444635048961797119042775375165815968406598763186355353042845694249444933180102470572924611878431886178847936242914709553769274983785704041017804262109922998007551095074760842320931277873794890020898992862912212980027399055376839374821367177666755499178570415623599917412752945264017964462852733235810920508029926884093768439618627016870461199629983431518649525807083046667155314997434738978196981151607915478146581785052439268894870111211173919807971411216489426837174599904822842181215718959414105375251496332637899860042965483273842217807223145658236672591159555331391212123084958792917215852483680054696481165230874822605474502893265486210890555600181653482986315467539808534282565949358221941927167299259255263442832033618247681652026662710969794624459983569971622155898521185313174812076800213931247372918805295001949774653899946283075435588532420274383219189535466421152781772361316495050094773220883630207243855225574435483845851564748979692836578091771875925667990456118383104763358240742533756532109016812827754120945129362706664827289694387846815900580805832376652128177966006399950412777024979963468659347325171122223535798485055267786329673404790841632327228521131683548358056116417271743324431381057211631965215959683960043191195745061801417551639297732639589979714006873007969431260055931590511238946365119649199236375414157798581510154156517755024868644589949911917549434576484586458489628661105476290800584614977461351822228055672363511638847080893356288353444910430921780317119106505314610558388634667484533218753076370714402843992279295881369307553316005530143263692898672932028070008610904589041637173276645880614652886684213254697003794877226233481216792629192117013807163779077888174749617873739748144771287744949813101354729573872054505506457551103899191121665090058454521497364171633890660852751795737658122222071186637574920945019588009229375198830383843493464942471851840107971474744490390324005614823031750085859410196147792791023664523888544337216712648174150205942208780552733224398208773321719076132889658424113428081496458317139514636939616116020973208580820652624770655036124646952040363273485219114566479198892834566170590792681287889210824585567480784953626407118839497806179267467171976018504339969651392901225752883625060450958649149549306430884963871594320022118112591766242711562026562280249218294128965438433920635235075529821456681948995724321113387990432318605582383130506115122474192971060145191117398866753895569856511730889312322645935282909896018955271351290361666345159620645535303978735966494189313709648839562283982190871110317149558744405501038314293300399172767426679186323212832637547192025382066575238737503192377343045589408549955365762282422017068431169169128326083209255061176031044043003341577895357613221938694705570752120477466491183658937538934704857472599244608992802050618239773730124683636765588326239979681733271967748848946224102802935347439384476413153086281024579983133649079612661876736308509132610828663603507564904885652041985780669306668653849304071554974013438078210056930049218153356904426208375301522242459534623047196916449936937027818665680405861125298587132825637795398695112390745508965103196800375273987616532528255727975057744917412516137402660931300957283090422485672478114009857907681055469932906106767892589020914343076707868407431981674028105183396229060601904790889875295479436126148855860749109098579538820964996121852467928256790673855378700728615172990320294083449704660458152046387632828034753759763619163353437506818018996031891757294476625335834889546643397640527418318579627016865600999063370521744904297262670794067237206439617236081984624062263836345948587344811462713728446434430858180143840249395024643143811998037841796632516162855874423960128045395443917491270160247245035428237288507068223172392318243435061966243836271652775825012834946113206390682425678499001362236810370454772080184618200825769069644588615261075463166839987526146689404889171923698477411990238284741847538360151174475578413681865973622614235656447403479576961408530373139469258280682165041679863436400779411568828929890161476753373890716132471724651525798830096185035380686506273070774260392579907617212155327400465805652375536401438590031722041841513084811158495163213765197127014302402141437519586993946844707484982500984614267598727286130866205520097593757337541469162002286855753967638879437760441562111414072638904828532278074259691332960078901558858765858382949311224077427301667975315356651080807952144133159733307397170289401052307096858514924243725982243478797356485441534200706778673224456024481763165492263130702584572742102218218918110499346469536159351572362721598966072174407184839581473030386764500313908152514965391882651274237765521599390489187493934209110588626930535145197248525558722426400461428412548562776708739307919113599797982688592837780357895554828026770470081162061582486227394022561863038898363747303586339795550180147217292919159333446128331039934698150214870483753118492971617108051964698697012792653313019426346926776951266341398507581139459455625318077708393505067208851145713088635473548752364530190889533146641261002020135156472832325162532259840966867679482512222855845657339594812561362999106075345320583111420962904380887218866208714331527891796492012903850056422219581402760149320542767051470806533798641083414714912081040755283032220836213857275281436950255939134148131950130243395926206843587875616003590142526477899260847716509288083714230612713101932409185893344412893615842203113097453622543222151758139582418894631642877964336048932116620827632408919898631387009208987231093357953849258042470337842535379119340384274253712050940480186747831009507414533440903073314397616401532274817514156569476853096153507294382815177580429102046477947539311334188715877444011053988808404703839360381460687281311261867963601987732965674273852168982877183482074047882027322302902763775021348500186673603608130614496172481437870820620184211607295565317650867884814780166615371861001541335638358096791726399237646003993683156066467647963415892452555061684878115063601356154543715069739380293598213215923645913142781885250179523329671801775199270957667996125843644093334472086221449986953453592088769671749297980379256237290998291967523231200025141936403337494714637239570667903121640243757603769919449335602870689764176240183234803701368787817636500197350524552788164054042056923736936754953077727237549469274351371929284864496097711985929948666267250053058092537289075763588910805176454811159172326720168600879162861212257373611609692018323616606832855506331892470897120146441065686354575208873778204509607369329448988309371879896595123200795795907399146842049146390728069604695961299924722969342673073098611176416765139014853417562778292057773936794605900171324582710662560209523064987236202812278297197517844370213300447200905197466331669777907313180988093392915427408953848200413677079038303675416720660749410544538793823126254509110306452453386156659675672849935456235238358665048219709200923557179765671712526986872292749422564963471747766229576480175150720398118531160818163091282463814327429446600275100609082247619304228414466537751512615593531468141609127007801569044826942105117512410295684384351919304563448080663516043951230042498524973927368712408247126365294641448392441628647894189099211751366239984869733473855833404331562006619440541862480314587603753189594323056829058584513275768325213449891725772951718064709121079016305711808117407534150933051542513987650168906126619564144012208824279829967901936168536698668183582445045485473655293479702822663317763535143676861815428302064073995450987020814775637928511974985859766036355701757953911386290971447574832000935063939876815649393681785708599735406723020178528146295958422695045216778004718288124194872375662740272654671360349329870336066831696781136190771278987403623761309003352610232466424114652391975756559847723916714696496959920519710612487312073749643116968342706110224981015251894003541016207723951181682266933685844849835577821145338240561035514587379657264969558903345152392989455010241074357828919708548181248127112958271711363525858340708429249441698045441146039200875315710659897165125435076520269359700735568342532526884621191213239089756087651942088499282801361895892035876045456545833937760002887129790168478734766033610026328298276239686618019275373053397461494059255174890385365288788086781982079360890973669939585025723551470454898553647864437748684225918085537956513490591865636605080876012529914030991184033510565035961628611637630898020200886600481069082463696763672985553386335694966434318211467478999837074760778979037031190826883918696871344694622148817052013018742597120753475375234917500432824273152940561826802062854184652784941395659625747477793056118831331126252648660780001458173068825401694978981719134996529862027789915781697468438989926419306930063264316829909954106036341949520259748644912437908725430412420469471036244781992026233577324251533424889005824008853703109556970746490299014963099936820596575115266647583330686944431133898265421732241390078358758803818348741801105580901591838324785111627019218963534322044982399183939578752199262844497438399812851572177033068799386102906593856866995858689109159535340269363411220837295993568849384068457632866023523755953556768379468377789168727165186975042492814257523106026760107867779487576776964755960294915614000890275906048223583584368790783767392742776186459699155829582044224016905544159672375631703033173562296151927619822694896183069684709411092789781474614893359680802242766704040711779999034483894391544348104721345683222102978398355102904744199040615703900531926096453385374695405358571635325362428087518049223522964745232505101280118302985491372484808323927634775914185412263955723813674580789641507165523289663374740559521934811176606972398129869883912230762616378154379500371291046880583766064764011553443675103920207907622449435517602513929252360844898688769715935388066966052440689754346935844097929071537049536064517650231742895592615764883828839793036957116570795555878264631992486564814498248812821282569425671295636687213856727955272407186574220450087760506953443184601888026192905839236720851321134181088423866560354139638440692685453042124814744007837863475333578733075283659487943975814173872912549183386831302353976042653036459288317020422177356306956963620541397968476593126445508013903092568512496195258191901651197667893413498196914098650946779880848962822224955324251039571270203085844063600558227223636954366622601599465032959259487852862253334424132554380029919701428986333609389016515593440728168636753331998835920228266345068028704600193831157107456263096641957502149595470077569323891760936027266601029760205713389391900677573124073786661260757605130437036486619516225273164566642043565085798235102481019430644050840664896003108997889045430634494617357291025352073034126534858688234927762936037174033351645184658256268504870543131393248453125719459862547203551943772438397301811291597338709075700870656622120425340216082740746869461620147799275212080772292604304625298971818735199128250457710489317464277642567443023545048246427582553615669678189592626207691835200462990906477107873042220767971147486713987629263481635022599294299132144197640426338051518443875247777183278941045546639381331162545406065146953062443079719033903479039994744423759350637300620449697448667325009334726584704194765134410498192598562044029270200170572751938095548956380725902442820330114462011477579384758327522255283829566317147678092657680400782011473353053788673087266484054818640534286832772438020694913850906079599710081282123824872708371295952917799925818990462948694886446717335893014651593800723174144739789219397004074873764820295703633704037434803182979360550196223099366810953785542812833149147318578071492531272248384134802289201940270008325380621591472010081231155778867763623357930964898962410902233525750325888231376097638610421274400093887326113580895327055861583914978896415342934032406844514113750165370275044178434365249019661684310245138286087472239525492692719500579201482685845454771556709531789403293019648240205555523307439428658943475297256207296710688304462638108879563100978957708574844560541905305076258069363614940448381468630304615169518802659689479467738758997218633492441285488781430796311597154680601327036278490056363202042754976327030104494587447379534246482143643786675660007395382350871304013056835752000749504844493436659543309030166294656321397158162684312397644295447537656787384494622043376916592446761516094120480542981360184384526407155136176155950511354431972206507654244220086258205878220814321076456305405604573231915354019578140781342089483372999890607736857591664613880674486278683723320787411553693676442262695348106693717653977101270444742506599800931939723788145278128862461649603200539157237119407319808131025557941982501071211996446131212540461001634547840905316468485246193995829390377927300393203245075366772171661257530786368495209929592185322384240562927593467850311480314103647634178663265057274910222436537006694100873664733466326310395557319036640964041302453726003957731149034648715461767448910975211764869467654402049083665857980747456900092330303096582142552631903085908998580851949591629529518751862705682540737833405208279250415693825243078741894981215208190449064292915310592036043492664558250920226725883858547060525660787726768661763823569889171391504225440893397068931273654520604008087035303338874084246948775887395197268022019194486882599327953707499279926879635271473067260699405069060391590288144843986155222626773581862052699615019819148063420370375634910499781100234659697386092719709342890325654496131653071968341277634539612388306289268451012892372628501382386700403670688500380723700462260472175184052188207913448057561012659508981610985239793567224405374059660232815890144104327095715414446040518176143792358724377188989229849266218795756774434221169737888969922028505332868193900618455999789704092858847060261337019625975551402961843346924837885272552765908678340642170308462493995198408264617188610259591600286982374502724512227748426607359640395564624411961772420819737533419789162515804871293528880347218563886735612451570105614664764515009286287751815016219616728676736969939220950458539263109326609335860993689109545362671645840924492008068085687497584732576272461658137748100266584619865166425998452056255391906806906903481473856815726958224518285052381482309447136344932187464001245045642914049982524929985613130108366869744621167564752489867389638819738864395088656806882298994112313376176455190706714302496647753093127566685997372805684305103029351807815885108844689544979696646436139217650340485446097550556677796055380493915466831302084258686894126259905477712734624548860075056899209524585571655619282932946081458207458156236057246135270188116615715719685766216007203756536620539758292327947283552937580074276289400645835727430655442731100909511282911838767876456874025718053454262183399768439659192019672698532379313882332247195861698184000928503929031138713754340026194717752756550326585320632990917892010823389958399755397154075295098199640201519633199883707245668457543772075144660118268535124118839942013303181708341727136999090157068395159731477690554401607911640682053049452388538043819769474465723399973272392642139865895244812108122273476737263667267024624204555150104432762979112382364118766968972346473405290033222901087183863286348826987368492888478990192211448795933257651947825932873971750077578609017721468955645583139914038043403270097394892914288632665788150134529551127510113303247312816884792502781743040028179704083620861480652836969618075891828177687374849745716674138209476355428073772618223464191320794864317866271556691371168031769122361996639012810479591084711470496848848133697726958981642027534598301668573849823971200218038039396352911210898074467294220595948801708696552499095814216604430347999526514156548014771395179655201158338072384342566780203128768665136542657214621697829499495681796621335858937939994614085314517221429717884580855684490259965402235422346898952687004216323654593758052431387062619135087924730800834337205078511567025426346045349324119074966411113491366677913416997792418758535047021930685787533224209242323534168058199207807258865036129184301712249355919656907074890741688020110154925066314479730517197134134629089461669556169473996141296694610327740507108920624902777568284467541407441407010460693156191102370984222557949681745390877907836329525089715950193508069217792318949616393582512094592283677602649814431160109324832606563893170359893494478540176859503456073792154782615513787322363743510656761773335618159668359005050755954642542762956607853581541307565954497124415732412943887588804424975007023902655024227395282194293720514256129689594384126598378655338970805986426296434548802207857573321071682991580142633350833838776199303044788110675988029582276147182969817950172507031299227015697860858470543911847386937314285162362351211937368389596635109378073887500941391413685364446499346580478447001044885578914183068767452398178111836975824987216313885151109482660932929591544366124722683677275506722206943129937561390376830535338362562607134164022251445107658147559217618780979126693066259740687323773473741555616079656663174905271162763260347105686411913140745042400891755140595839410720168610809366683381200557808863976769680837820162331528703051356282294248118060499406990226134344953144279781949902243253712032476832293079971555433477123991860107761250676804675058744247160972539311573013077371977085424272947113508811286964664951944807321239443837321180621881239750926790163842609350418915975686869711444401685075314794776707672215635907496941239637932013090145459900461042344893082856772442599561176068071078752411681510634339166834432165564141457186561226278311944475737444523529188395535512335306389853401446329164531130878712312338122505308976386975062880786100664401940160222719532116162810123042717776619165704809869589064758810542788952461351752996373179272837963495539172539754787047692706008567840348238029979158537509725996326139846425036385510115379745471380804525608726338629334039262356596415112656170471718188253226806714517573357273241674762321986060471868927909688816306822733575062685530569308119174065525995962703377228927338334982746861991806941456132790490586978050394588485599264995324210947498461967449519113869947520525646948543196902807133952083245115536708571552058991103769061128278988278166755775985610229103690982011756486744088887365067493134420722588209324683611796098040109557725642157013082915157076079865986712308000365263987743089195069484018806260142202728776769767621527902617432551577017869491377104305479826231744998450904621235517379754114858852228739960426060728055661403989325666451523296392505725036707336428121841583246546732934503171841203468619815293406906364310232092669009691261167931731813698911881291156346680934019905740573195992864170669407478549314751714910846099514279377680642567549698244171748124751279206569645018956496226191034062721569934685581688814478643172814002450719706743434599549527675468654102202309216293015132426335586372484311363547574790936238772172733497407912973918235697782088639814988421352420742252451525875441380798263966820754450399260443537287334634456860181984796465371354501711194590512327256892963535803869970492732881587177096135471374394358115241695439680042165128871418753754104225707118433282877804691553210830397015441957884904505470368847375619312670311718663318770835703466240560048167752122508995423561502360067109762951787099051415634036549065382797434834109632774718251988682270739037492355902645289132521059506182645093584128878251676464582069028775003114644386448776697304006828579764718875036791374999071052831026312068466616420145404245304451784069788490896633981165742333881499910443147084827252889817598107110228314564223677036185166663639199698009646497181155901989071836362700987106451839045224136127282987847583893222919389975999434575050126094455757759422319581294181913177813230920311084297121218921466782925675381160046391279409874069973732714420274638084376153433700157509251261210526157037481159214355376081746045002588787093774903719248704674502371678731314520818817617997830556090898248612407549136810162947507791671104219499049995640404790028291106952256151128755192160805353532822512132556520435411126987398850655863249888846715445979138352060082564684799902515060898691241607139398319709591807239644667498138053583686683570365439971445251565409169803578212796007893147492346686718799135505550336120447228518191791330795499345023511600734149222643773844932154790904625624534484732315192295345829906753294418477462179809906549772696209183611476407070090217453653434556701198608546082098068365981803952740389298034196845070239136012959104033246607039544909236570917901814835358755643430083753017132643061245389385812156503565242649857112566137771340051528317223273145199301301800861884650087727542699543316154257882089306774520661027441266880326602124574206581103297804361309891309701989341872206362686676258845530391170961763471494944382081920482628035814853400121898691448479652075325845262669664490904738870931017919167987748472728161053111503365820364213934101090095073298185608597885652491937947145139274400229786351724539253128463870506827752413759240223820779151692457696254619763030113765533300261555247101637234730960173628291557649813776743899009106860554476069419626395283554309041690028870734166818792608978113317425042228255178974106499769111338661241489421243770368129279971440212643346374343566078247561835189196551142048624433316908361648472087841027157522944495506583019930982158820216768490894213388113974058266190516605446800929730385352556487798815708284474730985059341463940094408191020104375894745957706132615999209491225777867241040793386549619091805202402146346741215247641426289308066840630608185566273866710317707385489912253405783939044956199891234202047133663696028660960648761232015399916976995717253678955975882202886749288411932307689509482259415111848564797468999796527790270935248038374888023570864086000232698685643545617975571458693593882733590660050639261138930129618856815885271680545433281169694145183883400073555420749084107282427647304793871574818055987427452324341551417658654865479715969143308344094719251312040366099727813923147401944717590140791959205733143283923422167273024323889030590700026456801741366121710478840448747842112464671678339023428851487214579827836694991361669632341981665396041995664683024103008241008801234241895832624411861171385540966379464371798905074964626055711870622457607847461123273731295207642216300013142413170253953894689847681691070058119334448942872022038043807205133514908749279938002767711152710559510303121725897810905730505929542877322250631935690822925809501947313131262729408098058097721829306629970195821995115498779883081880528737477550839272873615584601030979056616239479035406125566232973915710255005171287899590920722896496028698595208349712151504720656300131142517742286331011807988495958285916181193335210889636358134447733277053260423475733484218929429852434351581782409063309912282539944202860797593988404189710860811828400813994202709032547579494534493002166306560285769120906665535190224160880528888736473687847511664169565242663419379802497375866520614643542994451150233867028851418448937567271953481058924522839350334406838155044636793678130733198529915567004001000070897390589335244959601422506628047308152445351997312572383400756288014971674212901883720805202968085215936627316731247120762290480486222171061347334283879889914045168662005150264224406873087666208007509593416955221530410473170638658406829404284461956392379339388670977564305575446126892531278091985744319820371393961927155165751690250024761705684848056930989520191374883997610914850711278330642547223138090073924286175964266130004372412038809621596515406215858654105182313458427170928192919827960091794284652181186816009717984580109306753668557657648324528590375734733832040483223317241173658328737556173236413943288161844035792847925231853804709100946091779392947071357315852768111803333259018084246640134912568735150922862849793867818398145223796142822920748317509797115064214104024918589093502211607888244663026883441930055146313929012952458013020217955634661816861539253517156850373881506661625865653806691250322118418553600525950182194020195566818220570536592515936647051434493182760753856385183987251229342547143104813960909273023147594750264437907586839259880409052040544705129642334685186842975268422604641345948223080078539113946352984775817948490060496432130355881555545377433322082608880203578892170068477627420454270828417660684024441892706386845120699640642132273418746071561641322596014225831298660964942163855188337461532066935340932284469292825123560881840548048957352485942609828215869268972094263800336145581490370290010975620313237094861047755791846780756367125226253103170568183785777469471378101040655331891793568577803324534474448257180335718795151803484110397263595308692272700102519635604532020522686639286130307191604362052281541935424030465605065280399799174149892866005584151636231196945676437628545768934687744960348026846303025635193334433357657945402604293575068283820063259489910604945557528365412296299497774346121269040270766138578051571649098709876701972205514528161846393446873115447304493670106930845342708227362673822540472940821107080971602784568482383358359733517749612098835196067142509525433296323475404769933554822707866782287704267060947505939403454028276697389810286854526654826419047572918606307036358779951320976893080774139302470931924362477655052951040310408984913178165678583669865653871225240177168627622956565759953900742413309142221178783232520277477117133245926327881873414844173390105255767144536845628855622974908511979426441039066220978004761610947143387289782081468943930831045582455817967449528901452015414578932551479878955614930462488756857952739020737696605710048144425670164581876169692579835712617509110217329379212271226139786319327019480736621453264782885742171405344518662329837648405858619248733596159849867279011014164770591394828114126252000335977643104502310609489181529106928547975208149884317422401536653137805795319587269509924284048357357659752514714080665729774546992231197387469153443528820617145996092537927384864701188019534273732419777056682692589164896257718561887593083254914904435068667954012503587738883311725841288108888930449155105254847206925044672977958212321925662067028411193516425618617335842995349011899407966442243562495369234647898025221205361723771041868619898671170661589878788849209449851023640578356823549962436498881653335973673624042241254966954577035527899680161273466593499345661803553398590510222517853019259989910934020765804057653255047823745762670005124005009123490346873858006898857723253214359302587479596258117686750279926387768325830896747334068871829817945235319861865719215591684847323598783258485160483916990275375376955469545130006188801458320434004368390122310225113314798488581283803870336270212983862164484519954005326261304685637355187844029024266624959113899063915630134607929898588584651232971324813028481447397222635256846164693735481890499105249575010102551193546233072650189889724179454294249671192897237621583631109446700377058855343002382997370751046003333308313785346373332537215872820892889885492533875169112467921456198532223470277822865997711343346734025908040080418795572474594134403116136920685619506051429879229396708240720207608176329191963969437932136924960726532011575459980384597523629751040525468272282869262601004715352761967922337541794288459335572707962656170991225449524537705985432172684402590249406726045200766765922172874086268643554402488819317655315825331525231044675798856809420261881985637923204629326161318345959413779193605387136858403139588398858456087839521572862898012921470854254469041552446210774269927181020136145510031881590218823211990579286885625103620205565901528673981875162887865041355994013679590409453339517226393766226154779377327168559183851136977871869285033126317385977312241469179435374665374609673228319554860092282883017115635259081319150283167253657879279373745906713882200464698022555984849880260560098797888045680046935587589952279496630676509054965040300884291178189867574682956887011729420135628395836221170126679858474308684827582084017572545578768964701847394426291863694608220979343360608010623778672701928866451044728523947799538099809031982574896060061717327178892802935763972682814477826797334178790107041202441210528458964729341987542996612905895810263248184085828501059028722523862355682909798993736565490805346248986138815979590552356266717800254638122452272516398144134876605033670891183201180896731972069846788651953955798029701650041693608314278591456794912529497081485568251383015830570222579904576546458377583125080301031042121464968765621516278570087863440343321563131943331114583844063503249975734482236554909456515161704007983658598762656959757672857878801821393467058648601795995958253443609998947348139274101963061216164703496447686729743728537842668280882654890845138827076244276232408094446777515054811361035353662460212891256932134046046309002744296365834703194992833599043591570330307273998462831362249457978428511319949077859133632408331522766904453593995690259516431903730527851977429606772062453858352386278821569745916626092132333192073630640979195977601420601686252002603762677723805565182342387342413978787023348068622174840500962305315410708334632001834552646794980529013509584327693464469562891626440196560060525471130956142553059387883787545980830222575102052085020061563289118038500096008035520810208737487552147111394797450842462830948844291842192835024199769966922105107273507288295542846709803140238690053950294858344314929097508523459789566819032675717302009643393633750749168974257578775153567626089691343108143874919293960146354080705819313769971314219124100263787632685650480761140774835123379707784523107235651938343531862535661955688121838941806290479946318494864735171753546002348828787755655293210056690176241204670033073353201294713346025215401912797428929312654077189522859432152266185565657657304992704910996865994645970068276138377312469171854116707366981021412053027046544970822770546991904055855515762578586877308397435337997027345809386791285377508357452778945646238865213031753657479558644870481695543019436289864020852702869762984274571381136850436776288867463613698724826288859550017364535308088306139898182258144665128434971472270028596928378496326479521162612365118741774982431360058832347291247912921064391209348338959890700169022434579500918224665417143410429198497852909274391590041345687928771361239093535468231740803780169267962644469473005802891594625012985943383335313834540985861123919799131915324734301881928413282924065242215007694583279789352876281133852347719887147152183914707031655413435359949415913580339126285881141033406960609320855402728743038944614051542470422043177261700153146454120440267961491147447330317985387471180029626904232004376790642010752488237453334427737100339639393476647304598800018747905930316339679770707732137890373437701113309637483859563538652031909957382041256433485391602898105946395140039334986788861058876410450200281940934114545330645941235742874390268403971983806462561970835587649910636015400609798163259758753830654855455964987528885875999180906217418869970679815592064433680323720357572164890087940700215527371919694610465661674319903572875643723504310932433157044336628061808019821238910761530721492283735527973844156126400805368688429148986854473316601465300584218899772050363756083355075552050649277217933147194699634264198320094388289079014601112268546621479874639388269136177572201849332095417552083431065801835716087744395445275925100439946375623046208279655139062255694033502300833697163529868938017159566825238721597808204795208212750283186357921397562983103520843510012491849781319853745370442550074715985576223775926493954519725066032959562209068848370651064035364127159089720632321643594361342600956643698906652179785792732373909778461288248197389404135264391622161648947828357084954973723188372175469197634319318055454210139207593010074254325932564998001720221009771602169803326132388940445849025652964516806069917520801432413732806334739786464554817625533564958309110743299933704464142956572718576581085831403161064607297274600988619905278729905046393389185301942677715031799700723795777202001757481412959935709545228773379802257309615042715398867886666582219469832525614991418738647465680310648443836957978227892713147799451714598476124768627186178049660428953567562950199381270892358911023118061081292443725898587354257958553365499263583777231576810016132232168837930267996764219553854286993841809430775983578450308539373282487341463716868713798876861596425400441966879368827717375074861269014970741332334265671749529388872206041909958308630667859828948276722537971845308157009192345884450233605825646708811311431254033320733545407560078892032586634805253993457058798654382455922932313827658706122322757730026437428602955588076764260283096610670603597283703040125187852957901496947141982938445612349256875797527225087964079028681976077864660659929352095371294357867238638958623846471927084356740044852410685306050138597213850571146977525705388864608522289926697201769879892688106510564449591961025851210069459615981375096647902935206571217842740246424953779705906438928055191581647862984487368754753301322612846137433745836750709080728423245587754728593181750658079472706314795881223164290793959440066553231016164863604514736085215932220929692395211130928477708363609465426965973890650598296809721296790543509693458139543117356388440852144096745252346630969201475273389299401272745315159379190067365857762075279899494344008585067102154443483607719795932574969249536295868413300767999641062279703891695529887927800332037574164434472355557437939980792198512817135486482503433284775726229813873050068457261759178037399937364851842536669986871611845632086448133489728501455936422748170464720222069180211205177839012928214323843551872830479167800158637176923426094314954895837453142943142866900085593900011253244489791888931194215330341398446680007039216217173602999480863383923644913529468966873574489607351784620529427057904376900635347589640475989621147129970187063839002422915632189216259004773066359005887205129734595566770360852191205966473981551481765686759924414474950377689897753028456422301192142968530988033926517730928791619414587995109411285918891919398167074423882872940383181450011773396816337591520625547317404403404620513065219347784977305820158291851061057517158986920141527957062932450096288337485925731113794260332813985873621281619320100937702315631767026837536410668160703099183846427339191400037355244278358786741794867517827123242488889247264502260185972624474510071557714240935052332975709374903113219905662765012101104373018792138687788834661244200676056374145187067161194637404223021610499297342153068928406755086753333365895977387849215934006979036672461136451147899221605553843163544832454466728673577780547706629891286142547423350149264980164019152144098843515380367109869129700619943243276882305255933662881499713366076974206261442833950261616526735490333855768434278580301486738140908764423757118676211058537161003122422436795357058001421982986270069557243002009734487811306676245214295783852689273718617845991874376013293817496840389790397299118273583633230507875868578982157165411856971085893574005745488823704672937134524051157166417017957146117044444424629286528624037655990764711013034703254781152040854434212792766186811730374929928005892966253541723210743026257777724264580750524303731364427149892536037725695659606541034662182346311254121825099904833316044282519074644388618813991544470450238405025010799465088623182475165639821052229178315114595341492256143205593014296474922357459359439360903091871950362527087471663089231003006344713252141817568479409133163556328511037534530745197072028152326408062942776149611120220795308347902910946392260887973350291036880961059060701594873336523840426118579969136211432744528905854094789231078570037363078070184268550823975008821479469798022417792852068538638172823005274513142911643335033804511712642960298660676045302006441203588807955705434754446356122500878881136760773568706093119807731124877202242834710763249154845435115256840255581451593664183391615006616575980421827614671224216932596525955872910115169529375674432621827153847310793159068399127498150621727986643663218241442757377721309212258945949422620794868245259225987877194107054721660867824420367160971473259923144564849631138155646536036805635039664670715798531320181121486680506860203957800133373003919567103730093960211055029939117903322727181791987694610341012717481623488132749103648095200462430304397951443616831419310983205151963123301077773244413059113086494573804892334033907851464894680956497721355746468906306854482217478390365537761387461821945808057205852579460363927981452524879733189761896232100546032478163393403476251886193323960270365385221306191572403704479881714810585103016980307633316275203159511856464745815548801191953647266332987560377449060695261459227205527831908361165080740455365114971208586219913885552927134961106499796401044465127694369877606662312661530506973480259137687805043930048880715069717205916347024317987849747501385551286513679606342077690596806984094312240360539910095177295560965590034577869212003980817839340773585753853585156929777120637921864321531752109991707291956262293587102148818943870293237263235304863694143900824305079417450587342042060577881469232642026478390977498777648850853174287236162418880492488836586273732974353834931456625548175216900412459238674676123970664797180501102368241794274268398594648694602887379325156471907929741901844579616507864967553560129878185093209383759605086247324021262068724864268633856830958763287674244232730952167654985092848373892020228922729242388839828601538613777668521255336414681133712278310334427718891733983279875680474483822827620057732209391569455260026413718045670496617400029958108564930863209094497914035131931423713759065715846592323088025227107175539065986318480709621563866686307138267681681213041493537707037206456025351114822862473711221669838948221460018954013612699546217757827625592329242051886297164975588152499101406980782024558284122153301930454889269841813737294507505549102826292839789167484717842455078610410358742556600172082209296830672663555126146854723464184519025891107259556845216039729378209094246035542691339174058120625468046344481900003159078691817968449478027958482287172447739329167201042840278483283639017783221303649107345134447990849976601771657748570679249262872479706334004367206242939067175366595959385007071551128238300835445269398229599082147038312745466410928755332105731302821442972779413826503228661384926407159011509030434884402707407239656920031293654080867626825049694018796502632722017345202366831656920592752792518803704471335884099683476319997871389305567233351609585238468449678088166720155838550238882364820434830322963954610223397115654860850185133304985970512297157073665843917246178810158201655010563945431378878990324050667195743452742101213302074514149446049384431665743390008683626664759657224431293943741055818342341192795975242737416459146936136285342832149481657466764025705737983232034628610797109778280527089524797342677981909153995451287419780295600648212805975972233624707388070845698048293142466626751823254714352414610890664758314500540093159686511662575340143042804331951104423877363677307336425358668868186138921382113460333068619545379298303726287100281349858004528218533923450554960978374968799756312518824276600356423788781599612590291661404709000392552198480753044236446948769108201597937749864214589339677379842049959316028272165405179944234891673478903495934840946095100322858959014872158046604141052899476320582165787462890652668085720047106896950537562935395258219351368194181957170508817307322083001399968966109471930532730578677570441719232495972210416505814549885749521214594710247539806445359301070675776768094242160678693355401387474001935281869510392782364998687595755459154434129347286274226075704256455904001716781017009053301271034017464550024851579610019801555926523326732911234378407228335489519676357159604430022243095801773777941096055165261263831685165875054231960946763930390252294394482300283794785551574595849145146017423590923716318567397451470789488962542857070055247394790516152014594809007406632471412355397326863154813659250161251277358418256282332791588585324749126403471910555716094476134816359878959395997502694849095909177088590464907176789031971334807574206624304919503061455568519644459021793819969296556013079863901853033546001763555414606275434247663585039458166241408876312547195914272148315809064193108993821521678871534404862533144763203104564619356703316852064330811792250315185542098001116112520847046280309148759037294715536555078317554156823994513489036865208903350749032421053551483918150912295736864331762120781942982294320305748860723212397392989134844064187585410346700412838187904425624419023514059677164593416633904723738912225494233159104193236508482758222634913906322568643952275798330598582450370384601950583138039701128817638813896150243422739433781994986390453241769178107074679301526818592726617146429131423752511433785984859367614772794495439808236311461209800864618660361337250055705134355345817064713110610013909826914191676480983648186035838651620830760024991710615980665801188810187645157527681341903457913518311087781985142698113933431692287091832493594592876689630011478040576817898193175131604240564905209007115689727618976600065807793243235967618010341962297856898119199980503101347010204121766522950078983269553497129587582272537485440179511705758814396039452788105722624372251895120808697752389804879236955692571480322739813610716054969660742134455770246385909318940823178728390676463089884732341582471092669387940361390733918488996045335150373155841903131758054570864137586037992089754173372974343762734509481670831573431847387828620201900325088870898244051861977786308301856788201559225682283589614067098256776385732331920330446791537042684910655562427121585463858424518240997130527663665383500658968439159787949623486997577459739248404850363155181731490570203300730837913195015671561750124382203661738457191776527140826668747713255145658759987186292216153949122401088396962452273780764118039963100949078428234640577236993370716365934784803098940468036251985581483240447638711342757180797544341057820359536273492820200029898398741934601718179273831092011751119890085027437818958023571502625685658672925526030119054467024812257232510779186910920912382697321619005877736200335071773605004142802664677263542751752771670943683915619261479472778012096326955314623256342524556006191441303642601543706199055058177405584202136948619768865873389687754545999047961361425238640127197352895905929769676028145792654926662526779343453578732744190306291803495315212308502032932898465187732546822810753710099101195461910832032284922571754552728430325884314376652155367154899372755526651323681444487581151559549668343846386595510817694838042715019971503042654258659606523632091485329171601166462373317873023197833989875909992402829888522788011367600121156769714370188556367171941915994824964007273323636426553085429227486172956789412130067047060796372312520647251648502617201075992011040266896982767769445833537944038091139461719633069412604858328385860680180907546304137834046149921505678157592934995244712924838050741656410537291520302400217632622783098856064663888600818078731021581677023817644535625160400378807775020491215911015716837941802116161293071809197008064122228506649296992363343101883497243831221121006212991957501818165612920071566095337037441083489238476528850741700924000712503607556874420692852253935331730811387500027660070464429840575443914118952894596588742197622306875084820553274459817593414924317237454467839848326914887166149844646529597570712310270176000712055834345133933982814913925383762821286331206156836117492001107621944539185880822827483647690183587574949517243056945667444048177661952067709624303615028736993268344750991744869974115964061689279985286465261689306218861509727186436385914179344627415476403876320827935161062665033809706396755001949174600946288081739009468352600558569531309217748402082903096761340897859083067083446171399091954318470944645440602406468961472083820083207158083302786696450431782788640184124568435044125388249782341675748794207258261671626071869692815021310876937540091991642159489391823259110012446294448766428963488230726993299999073155223091524170323763913440455847770969945879532532223174805365911606853583346945917057860554339216216146894308625827888582760802662411761306738891783750165824245611290120744400188810689360505271621637429480695297924735744860076860667277072769374554089283427830425359330032576138939550996868610111498502095164542985982382685038470044637790271606581307354522392119959575227645012066152158513189102752281466528155682178389925612225362889954080582176180450849174115403473732555334914024365894510583687465456459950804206007924512595561529543177654451980565160626860322297215949765875710587141856064026367815659387048956677026787193697307483775765787123851746902120852122796642398416597406210527999501987779622036791210607953343444936550314186099928809061854358549532866384059344452488088433844649192109579967037814029866929962296518920895988681273222950357960867585962234485354013615728291567958026270042073390194220256179022801097945416561844625876955175924108577391701520396086289380222122873353434062529778725433681207871301913478407867626582756147241007641099286793477355917400962020318185082803869504753348642661627016812727163588625446334501939438602858164642859996424595073954173202881006561296738561214053703330536533315332257788280257320517911198246189005944414141826048464679381929682722969992205469728240006090484523445833715062549520740142318492571730180757225501205509888879066104069975891887427570013464036192725610489873849380641460024935845453937326591952320104527759544444051669403801291644793679621102487542024614447968573576891918663256730327996867653155810182796514143349911701363300560963999394450092861599356575379940573970298011703516481281484346508002151240094510031920481295890455046146596707292717109505279249642324096847197643232647393247273701228676483801810868044429450841475750686246990578767828977336067947174341626063156273700312748758839956326723095407339139267050470944689372898961890995822972145448195582151941007397323186164873109837763211453075539350672045426338480702809205335888184602541334232594823246444311569352603046204071314217271179898952655592812586120061603698638766083141550124604296092664960612441687339074527121943628037636428941773365113041624311382904566044791409834703329050194658075936797092347518542348033460539197278065681110436183588972835252291507307782366688654947069675973493620681776179741680315353027476100625843018107790470422825746628552869855794481764805290659532694966987892108802773420186919310941495129811532425725561726423763518573551327028308365084450256150570745952622728801588277604877715595592294830687532960668919901292209502681183605320108787755517637276869628378794259220241222353110707758789702843233075511160851766616629355582092762793453238269122780287220781497120137919080142134048243999993234748693866499034894854606312925019036011994082049345041165650424873691804224438047015720883238604181619646977912197915689124830219771486435224666253673557388633156648350180223749939354738361367689950408023742705393571433414174011315368234221162060702270933731070357160690037945385160644640920738173903730722136444011967833094079785232794589113460962162722924699273497032507978535356003525142738572003389050771527856943013492061670480151163993425166606218406781841429732420027779382537778238868088909363771735087229430994812410963887371202975830987347485981527134486551754130281655803341421581357573853602992210441973064697244434680792039982666479462908059581925736837115680573506935205848744038810734396021653035368053705897997944408111115126011468449784225148137425146055722140533550373031814629936284689940883396416913748290359728566292931269938839045364780437175496545025527919730478833481563593714523121335655862593531742666683352315097266130274017365227380260107856699054531558200693155778421328210740968486349044269414371464434358201553144437840180014819160091200000295057174564897557626514665327196804982612406845342040802808489144986781202438122439775162316886778339124724611607051021315562152955935241641860169725903014431388194096790325624753648595455019239111911154328889746885192396445222523383140946201875544491500605300678979129245977492296151964529016603427783453266293899747882531614931729694881342633137730221687187249568803620307953763784815003602188213065642371441294746561451267888559273647015417784271905852435416088446822084258600630812617568555318945596944997283904211165583404649564534650104082809911139834229917117188111984789054781466585167534935124645048319319690200409367335813868915847553348674833761816370101740172368360597179368998628030219030509989975239695644044955279642795662094128697087634100565809370791337002831752083762165159383682142754636186493633160182824205826039369168659550285281409937518599425175026581879330799202383505793246335380744593836689645035834911499433693543687335195592577179508045161191780866944390446149845558753928759193398306746256370878770825066390709389772816367461806889036423718832668571692139119510012227809425246522677701229685420173561971641309779315702616870796266908195059435061233759531266254647981471815620046453776348305678012638800603222899331894300270430182377913301983294715062069099189416987041137993379674539190590291751633360906955275614622125954573103654874796845547442978521748845812633294271702097812763300248966503525999509201291763784975330360432040978277875621238585722334546476020848650929318882800017071683033009163867904136471414751940005795941307903516519813429868086362195522816615402617323031876500899453090893683058141526469690099910869241087505079634664490916987624485539645455255440482311146209990363886394708012362608339725868028727658202278278381229433392714574061690270209882384516262303645696301337812075405596655779171264874660450765475772586352600671786488352665180365254449416141596507371321533286815433577840832010885054681154395143838767469357610664356065918703023713226746147799147933690112446624557779868400622946036453295237936662209101283888423250449043921440941742040461342061070054694999906018077902839333209330489729449515121141614680625181781577267104658106430508212414442422594011194312059846658886566890201664699710356892784779949573436941343004807264523580923811483212161282932018921437833329799974755127030380838533410254088497596765975002480557519161332140828540878475167498823665316619082670689200815860194526975679422106295195881794317197885536439103765910463406297392110546419910772966884628324370452546334871698036908559351662278253499709064711559925345823366446824232321764546881351147886835360970154343239942348878667696453739980442908641471380511345810806901126534938925226780080715772445364066828254022791777937790663313997526957159866781846958542184729358000935681063737800890260766213337177372589252002938821414028894690109328979812288957984197009385840033942623895345241715463524840088771092177004952994004852485476734050566720819733699776485030085101288784464477032778144677992075062009429887361238728746821838706755347181652312099263358957834027878348562058722978640443139133063298546189822711112729426962860181283363962454774427802818788583619333603538048053234534348637144203030907200196405253624874905091794144422454380148842002567587262374463683603571331840498071311226342577707622772025247290767188709192211490985967557981008741440562294535703811380532804618950156979292188725713615639096361899937939164103507855023388478258432538944513140366013091673415613365975329094075101505131673491655959945204645672092467480135959414543980668789666511884527888180092628360716466516545198525933795358796680401695963157995171815420258918065884647276209574927808575688783589471857060465384708428411979315246297044941645200415387680699423175170090176050964745348482666157903036970425268823369888515213918151701128862815455550148524791163080121557099435154401709181272554541957308364638105949573417326975377309109359442238136402795106718702196830628160710994368074404699590929101789797685713822613397084120780368879359931211321603991876459847387202948052118258992887935039882220152826486521877218533408913661352068365475921462784417846287819066192044856548948673189492669037121126600571187607711618346570108271921173431263275685923587792758636903947613116051308765678449569816860600622150783318281768148512371572736378470423728645632655471966253271509660245313839669237888060868076965581283169623545525658539437695104111629132249886209068294110154838708137807486489344587843495397456815902591152105611471323657961460307995078658296562691744700343154964308770053564150264363573321241431376204006070965647951396316389602505833934003411829386365206497335590749567717499154708357743575501005750902108015895862195027832980934802955428675458386670910880263481994031118648274957572124837703879500914347761484176716463287521484832598635125047813945171258099444128615974228565743330585440593813043965228862067145186124623351521601342539632141295812352999406979958543042025644308126228032076968099814228666579951608863866272827932296652936096867271119079194721682584359990998541402916106228504065347336166755976101481212764728063710404047694308127295437781140344479841875722232407045176341136450625615804860025093089828748694326081594759751751647511704822277526520807709343507807306467013378779342461900733561575193482815560536604311987884546285400872252139072648727088683036383954788750118118708852282360496310661689955603647985108449840897933583492111605349438375775569665949160661261631798460286051554419471625467030800096416523780814984263096081743221814146165317098847703622627138586742299114038502753503477487773506242585683080529590761479342358766502592585486775984372577632033227411076599747029856485862328960350164368310415420786234246105956544914972104289583616986205168841337000891249034836102047703582702921424522441198002631664424201704279602109888309946070142964010888280838554041274355773945695584437882353975964652863390338253305448656684691620662605227649076316753487618062883903199884642507371578461528756447069455693936542478135928016384256146397621343934160555341809885609148109112352822554598210093691880961900002383401818420668269341694171346141366512847335785108016458183885924444297359036972166022561753905577661871154083524174514153587775767426547399113511834158253234964884365698634111065189093718505777613627896469547302732395070178791197291259637461396320098478394719367449155462257738469449406545047014981546258428706831047159488624521820012240278045173632537372400962586389585051448674443044733928096385785762485938593746972239916175468022935295535074019986222889733613926038364194187718003815495340046490935904897832838809364568782439188026146444620991282271456480053431010329391416286037467389436768018376835366042758861828289986784856512493555593377305678009024555350226134124300499746259412277494286392284327181772756699498570697579558554919726415036433854975973493619076613226487551460888953406412883823270671283194057351332281265931467963833847416328484746566977471285433748443952521959394830124555573800402614905802994378331653672232850578074068346160545000156338338158413233047712721274519428671136411069247028270877441967618800401700523696525863618902623577692512182392473003975258583403046687707625907203306899495497016415789773574395906721765085131572467509540886894296251600899212978561805512205295562600609101022386760814718109399842389813254283577899983208773478472000463326652394912285746908912170681127103928571544016276161266469037193520609964679452381286406118578555059994108999963040584323565633137952398190823847341783467634830180710191014683744719233855668065994467446921500352239555916177364934292640351978565002105684165499118157789419586869297648018080448475917627842401480729990072788339996010252690570650301384361185792701099519680801241338504461352519456297903987408801984745186330376405165662089677341373659815329684950290503189441293850556625027691779374882471234930135854697331774391930872009990338970060169846519773523700990809518576955825302149190451823436383017024911100527408265802754479571813753079538704462401548633090570142811861306322124175154034833175230028318794088697792649871610381977969359042829103018413454502391092362989267680262115874852872260623568062635804717344241214118486991001893346531125421946854283787025185021654879236211614621251060785675465195401150682430239083672932033926438290255569482653636987722558795034902987923291494240527302812006820600491551361061557747632518129190646133061441219160209977228559082293094068188348114177491311027946102361617744486778725086708885753441433331317575726564920222443706132909577569219946063975970331684653305731498696259854987410977854112881854183092824296512856250246432754777692340833212742324748135954991944030994689685021385790340587335122180229111174688373022887235683876571956310988622006666442802338666044014740829738414382086631571285654142967945620065138938176590853391304283101336246648582959262513233258062050011564753340619599002054732253820995539968418093019072887846726316356939012907548351056679393984591015569180801941238570071649013571360250863185154517985289613833732086020877650429152731732540916050866512505192726938329199948046199395210077275714169677443250899453745691499537026620159894819362899075789360473489699863881853027411997304944145204379799628075898127325841824855781487907812867171995073649933145781182191885140350189295004318321286768606429642665669306191588776874357287542477502771106883421049033020227815488535745222378276936196035465422173727407714290131218761641890032251947671869665713438035688053884727394561033527825362184036671755251728484277935616163160651719157882331238970663062329286687173877463721633505118536848966658343199068422739447895664284821657179060831214211064750539800667755823987786488464546633229989426487908503430943802306008846953350771748234717306859012809909024666609001434828548514996420227798487181770687143107950082684070225468959651864919324148927484887741883751077191554814839742076637694785297209549702454145041514063600437564400124532297340629865118534509129618548475944371106543412337616888191676437774430556436032199682561388914686243918496870918524720632286928208539786594601174950461026608455722829260179914913642178187210617024731467671658247078111689603921791818646594773925057842017533875456831659405374933119623009620884075568079352514114117004550363582647141808422462785146015745911928103609721482467222348073869405142455425697695912821589325301962711850122439896881393911348042891191527543295022505051502987414683188711486813115631535422237092504253659535938841858008136373958794559776448858438760487976754550942908899660091465175281768398139120378681231960053145086873505113500326724295538853401216359789283886820459412558198929663669322924628040323769078662938369231516853438610444797950515381040439012579584422137378616799089810183917007468208454977646890062980194527659833231620201317661176604973917667408314350804728774311570844434037283469645862322693678930416942870989883702438819980231014681158261007868452645407222293734519866376185796067727508579298026369197399167918787532108552588670633978624171890738028296813701836325693775949415186664895919469099668726058118897746293169127231538057884331978318871173967609268794353323671150914185708141134792433310561841003172673826417389764632157165353172173789109801297003087281169933675956308280507889279329836308318346359110087268714778818284725745530593006772777914758678256564352555365803038139495464232729700509686921451326503734096290823927029408387973620676919362189530177888600440968160514691985630634356205620523887521819221495975526473739158252297805074601138592758085694079213025958499386747926709028312096746997504602153615342961692466834097386816860357551392708522873163894363106218721394788106230583751299350834498524023298908573797959354345978818984922759999706331333932666008630206509811825520414573751102200172409366332751019941542580237212517855792036895785140982128370475161095053144937478426035599891266596186635980366892227066025569915291605110612772214099910690474998253488508975290747049814431044737471636610287622364735918869877153880417337797914223019123286820417003987837121057541472962779636274268840334237577271593856728258096490195626215316393617838672885958653959980672285972217888811304669724618930927020105054298413442627540632051489769382034506569859193464854376331927888563524043178683479848669808948798080500360977536387778937107775100485754159743178084133221509464547585199766905653852004289534496576521102722996463194839495900540806675009733126123781869174941561508429889531266937419611536630368997157013400931332786788065165093708962655889235034554876594416037104768798119241017434916452038689243200390457649082406904771099265342695291608460504144929509222018801004790248738488954929474705635250597519011609035642502431092909702371291628098148629476499748584110095621918890864094129639029189115432521173454455355922613900632182040615339246925946379811932534790122794373496913693126431956888407113758864864394104422214460287711767220320900046858117975371175046626783725104528483216733261308603727103119265718204285563142693025749584871152383852852714681253690939937149355246358691736023652531758059833637605235704649311746591827228519631762945265995383173601915487946356177486109963556813053244099570911856752725311916757172362526672821517863786119010396562132977373563752492074016601515702243194217657998827133024270849681237381659625492923368559113593290800274786493672550063726583910628542213099162938447768602267011261322516303537443951000792674017690238466687683683897544737499805824529989647931850799959839134654927385908458075703752499543246160732360039679283443572440912864189979942574761575777470178959939440847786888285689387720566725692638091329873523581576078288662483222172589146126207535243341074667081265648125979578780060511401671651929209199739961309485490889647263369332221474444333968527223727662316575138455212966299351277303409835243154448789358035749042639989269930511068683773395410357539439763867767050967763681539523986957160453204239271177961690273641686649048222512390120699818994576792214589589714676393357412416477425370349673927006681114704969475831263424171375993395303846697087230775850151170511182826394451115883038355536909241268903501368017875257676691324692627087940113012127017690268112488446069306626027489144118196478988590547212855701953196683938076281566332656684477222272000389624180191629340996457771172772797709308234323671783272557417311933239313965406850466398884579627629327086280485342407551644030779442678723469802182533891142943838586751241146766930674408898308331277670857840076741920951975407850235902179166469761604283882568398500363412762257850384371042063086374348655631526608933039807383670840476953525683373617470455805142566272564795838018013550144881721398095317150920296890393230391859383908416875781977226719844211069215498722748189320138681152889996098468399057356298141815503581074113840379945825995425711853753772663021668353462685512882745574513282620607023295432655926984687205578460785825102341847274229594417020221450514889117221567901503316742613915160193343323458539509835405314870456457093680457241697031420658548580460036692043076184631638758183101430271568697352778088867765214978500726884255597437943474741671300501575534942914694769704414476122293997317373718373047240231355008586554532525667866362694971812357860495675988272564311603061983309760774200161503749686239053271876996578623950693596823702871759783152780324893988725306625167000554807218666810472677893062265662224810582857238935245376048732680355064969694612196979178158586900611582883327273467030081199167632105918507604657975798081912631166108503553945257412420503509785007670042156760059790650884252762051894024318365222131852261273231582972602348359949832114582144651826641839979182850992025266938082327809017682076810516610621759486460702205390176973835208312145289259097495433070528540944521427701048382102956137871538245454770548393141617797676255607072335110097560597125918826891140636451505526641504259681750446619622349038559826473532396628068998138052356385136042475997805889493559117956605620140750932570841719699547991711017724834105363539171977693835655879550432390612966995992905914892886394498515776550267750394801160434735514025747275141997981898596962579575466501627255624691194968095028875484459667343876264182795226149242640310435738665020858110503632349221894076431335671143376989281768588660289818236695696753341172386656349005056614900607276098929965262161763709347714848494100567132455790885063749480255800418811379091707710351234897662698542405683767474753729860973724838593383164365258074875627335535356362497269842735846940343937951683085432362566391677792114264849935502292070907265519880217470023456997171227083890928392236701524410070997966448893992019686514125140728252628445026540971939914823612855608321873104867053900695438388151636842434082185486542200536019262104663048191530639762687073169113574288539293791203800566508632037714041385269596216076554429412537956243611056206986710492455761937794074387547049510652103756040555223591689985859181052013125369603274792420258533091292250215287062889175879306902872537078112198584640131208553268500165283570553291186647463398012173764557678421333338490031762771650305694614345231021967868207487588828037028040644424745665610909046531852498191574009262852579370112818340608170360661979529244554630414871771042231028516455097642256919852641881314049627855713588068714424970018003189852127991642298509567702967026495680784062855300891421927826022712930776157127843245940997195936390793277310973615409959867358778116762698546451584492459101893728028113432436463128015538049481858751649755188003980900318765719709190713717580136229429669585490823542633332332172389503409327071378457542299974000235165063266558240386179663972105109318346290197562430087260850731333386185111656375455582935197552955024884117434814822910988442058049832755640700252402962970500504110357889634285978634276523764169009874221414895697787612608867082063015008630257084829509764676853842613944547638366486968977435596588106329529626927949456637260605713115193328278632792779083491648639943845383228337523059068047936883256309645220418437890602862404724835060728227494881203375326798700316453186866560705614371871336653263867703059280620121357102745061841959421317760400298960682480991867536440163779145004185692134845023895536111801707529553863157593928173173142796802905197846311921989755245032352073928069083163763475660421503550545752245359317088862917833892427617125977505848872951080855119668979554240245054163520611371158434718601204760600966828624605714260405702218128459044559528984612005760420780260358084169676840578528550103508425486529583600610156759751477240530002474580760444067747433383846297827469028012862237124933241867383891596861430783359021556390318454780613002209791386669336459629768372653264659486942925699723407350236965289434991603814360433231273026841932614156601745794741585327954972100996342992357570899278856127269538283243034810335614882777028122917578222894388388930927679636510332939394804367925430184996531552749138641777424728468471969814032797598600026278852422608585924168390759636692143916023379383620693539176643919879032910922033631130986689432804383401126777385610744585453680427246662017156991544800346438112754493008082487925470017181448454750421526524368177324526788703338095222727879674930935111194578587518101206301955977655596150201313987296108360594488228261471217797764242940600200114322996243271926936138519798395361347980555461052243207450915304493771699018234307022568532077409567239867735139930032112165041234484119351781187978204661410678944340134189929934302695093379466922358355524364251610377974539332808911507477832324516236082797944294948902242268609950925205813616856579560879907134116028540345522027019125270942587820938625717648324789065312774940078331065170998356110471257947477529455919528950035446802480192375807197313704983517165387902306775990303337947206241467177405053119222410897429074250869930061168357228557308630914393561547194908756395056396891691224566721937998181128995655638546077695067653563564481346981839702269427568148323112885749630834419757441001941013397484234198476099331945924397694433318387783132780300650220349038677390812299243075388544639447477764537930011106269810035127922342342224499697029798208161905899880483796899378380280813528176689080287752246297389754020239503881904234154373834971680087543099793902470547561923020057191530392381618948738271103888228488093524296981569182710870592032375430358749853071987700095725029900613068268311248720360913171222429214469688655798194528255532354953372141247458245102826442752280955794084666740650811701977221894183275046914926105725288133079086090507444297871484795000829486359297820272483046914689099814957717905343987323297520434455097489719423742578672307168109408620151965695692093550705696357985305179592311576127954824533464378627490376276203480259544626834973435789891719934170063174564725796352387983070704139329223281928499373356962189427114971119877991010767239010961147046139993870814980584707509351905442773051685795559354941986982964050043123522810107842732959202597168426121122711470006790028227594491510825019221748388416418277532536195970342139608076774985782827364298864539575061153757994586215798642295904579387369796210749443737862479236087051862000846356634979140913900323262679140567582042868766559251749828367856818602802225270229658927138831990120498814590566438176130810296656016708175111131279921830982613525401050986422922648746371746401484909707323171317023607502094974755145745709406858759580297454628539663750725023529329497150586881284645044383302681372584639768932304044870934611536228693268104088215017051494860716777509859936517736802104144312731291336854833548998739870395096716546482128229474055560887991269604868677913854202917271540158159726068264268113327453115584024331189370457116589303390162531839736326087404543447145797490865787465330745823689784356286732998173845652245110679723764953678451107101768075131078830322256153895065162005956187882606088868169480479397947354488350692367489105551891510549039437200057757189196300597721887687402024904345387098512730433763307107462223819565795759464271621167560667703395130381652422162172981707842494643090504872437661438298640392305357851918604794623583288253239873873982297701001351151193021154705672643274198106140906177101032446832275522687710254330684264693261783494646492931020361201276456226821881050606355901626450637245162264357452396086758716057357446496186011360217871007824599966212850273206731186279864544593047017661840468737764851144728597346968594734649402937673633759934602274924313264187532020081530753349730158533013446953218432212994061213365747997848357266430587164356425166555160614947560306682532088136937933343976602362444690141312297420665926329763130659654384087136364170186882781752887983761413950339087639061992598290088116314213168678717587175064904058015602509524575500314656627113619906721642511969120178757211751218245093157331174972597467032479088379289869881732184118105959110380461471696766451089031928717794871318167217936539527932636311539395855529988430198788865063621104713614037027796243498119321937244495765828528177236478488716382766544318268473354722064867176841068419972945421654397544396518159205913344444152267426879255578527319277829118080026063418158695544202128353286286310632052401681810347733512364244284786869552092844893637765097916391987455514504857644201095009597804785673260158749196147561044265401597953367293027045561081000053402279370711433058019179123278636948877883426618806323009050553567632143733214194718711778931543968357912931534279151443775233435085944844678246189075325923909802637468200675823872352180093866445095505344877584073009061547567043075398094423504156946126196178249780027194635592672370674744325789877931406354094399799275849557757519639387669283103032005271676797512629505137032005234256947636490161678318549222555161644251149999317769179936817385165707350002644026191856893168830038363944320780538708728847097282715693260678054626490907381747200230143939867346511848843791022982030559605756513819937821653107605753585049493581833883317576947013634586222466506886142853948147595784955281043183173496783221969657054864367194381917420392478732872354097282957099005061879483020796218058030230582932737623796206347532731098558927028810854288978450183600307546227934168824394698605331736463155090026324513518179055475488077478319927741009517838687609081876946957790413510245773971375240611407875181252659775787679278699815327387365055962855971071957987538547389196001313996524857184372583863643415631809641736667380985315198676716213277080772054733823478494770113795270030358261705059201866507084897574422562574543822515203950815975468440625897885515814846645651840082381043756557347579381143346914477173763490418880157376819689862817041761018038719290744959599584244939177697446774803838199690270568111819867080215089309539576646207437010567828959194177881733180606042314642339682113031924196380821731436795280564728157847075034749101508699778690243555506335026611195419256804255851982389607080733292359427186828683908530181227866979683867412978443264594093021607614597674652504271874048347620491577731105951221138974958950952971457927888645934805914468234873720256768984539628604653293673714025353901700624845493828753178076418015547466322829872918317807913396518228679033759980911304589622103717100383234620542911292557316098358969659663392042654022642641602843721723538019335084563661398249409082411650223152688796059881321228869903075375774040619918275993505349279429790609268068868921336412536172575615375752845821677059289282768041552081122973443482047348900603088495333862718338242545988496714070504673390128426257281104650590266276543004347864391849197122214954946732703003742639325216613630667337074378910263740915573737905599189616919966425885762509453499852011171077265646218709548679801649794731974524298434952865900549608431611182414414267014271916303622045301871842487600504522219721150207690156798300714912565522011928157346448696073851720076861481873087546144976696270693595470317595189186248046761954452402231074374491546365763509238664533283801017950678623372861230050714161384752930073494218562510408164713399444655504816595494549789308284397430747568949985995550608165018969239065740363764133034734837230125418002460970715385868665124132693844376017610147395679675992592830428936886024612125605239774153745959292983612767520236747188951603519228139021085296438375383647948777476058929650647683147680171223968602077002665747736768660303152685996530412392149279697331081569217609917348531823260783752548425691042635417451485286542980894485504901494396613318702406073003024463212256154374670942009859289361166903510926498836964261639970278720965377921238881559201658231548667500979491056705440079024832189041895444605751420301880114503412413760973116841934705650685831223625675069589326936805927350966802611498741634236064509910312004665010411679475684464526164720654239978224914423039535618853259703121459829420830475462902841975550895685994201258386101693657417261952669154535446386394810217758920435130535909867977523630942232113445353767583251731573391954835640532419979802270778747341088839247621182359160499164383685962986788998051857541677278780819696484797880078546608435001794497374072706719285900840818644104599775600824985178548736402872748686550602196692519255351716010733506171273132207233165108251220643009229869700445737285550270701052253526192174048427972556226581184462037472799357018201783870770901489333665973642361968359165469600803571538408391456989506321522328585799844313377841869618049840506453446245154125440180153796965482494728972878054646959250090180373500850973286634766545953476074692114939487644040619895391398253265632544319389688469573904014813030347748077790217090382334468466838753935828140045763972183503459372599824744250001721847197050376716114473325749849228266323973961631616209398112437969868542324519782982408129316493639694169420304841452921228361562431027348352488754261443428553868044741908859868720264848661556785547209230653230826674015588209087891452475282368787028614745357284436225542532171815922869834234873199213901892775594989488171665815338953700203892204373610437627608758528264923697241325773368579331297651176785112329806883820096741289927026361609953620021891391925701461856049070856499695935504512512309155407205884319079877918977361395357915018170230921891666071643145654409443844160514531029125757871446923921596993083518720393855447976670530362750595229484843367020931868449224909909278812188234775525786349627970429928680620072566617111434629080367096929488122487957275264330168962195963398446357005305798775917144148894828133246707996274491314522440184149915596291104026486934011712833587988384357805812532657970135805894235517033451725280703244214255094916886216333439907015608788298104904894373089586216387563290232609184737712947469998231767527729958212023389961068467604537786177193148630520996381810614139229528010807477302751883000559962226005135378389369101009288691455515864652568919391254191332823822970531021903838769667175123463086962190028777414732561741249893998957937268767670406312354902850958960319938974225507427223863110825429579326060631032604031458232961633670211821539206877217982187455022741383591641447961335788049144531070432849848320615448571682886272154369577826378317200107803084005506936556261518721213411860401502674199389842250887913440689274459975123620047192069529010153723464630818101441511818695434020028737298189080224577244319081570179839349430163019849422164056485360408942785675994430243733280551432603150924670078581775076059265790312506285525114109206361702273893726456616160740190916106913559761522850521834698001331534780977302039162726585305725290874077219433077715070259826871244166454890547168101579558110967722745830297204036754150192510920505857556971147168764374402785854085580284380244909257852572993082201618805039830192559048380310157448770095082040580563458444570646076022793847152150834214646959729144865798628626301314829167262084272179963537790400385156249441205879747342983172877808098900638589309591425364527218561095152986705480391932694584255146805230071794664655627522961259831761480901179666036868933236760384754330557318626365491157719046186201622487815178880073191991250470713979428262033042580101039745052982725962486996812815643795392152762651885034430495794722583411332450729576320119473923016042818836313116952335794175165173265740230464103323941235549086907342160969305695872365241644483794642807475403651407528428571031654930686534040905660705661955581529245386031825701070898364283939931747704695350290417859994906465188549414469659961120812747883544197147933468470053553590871771436708388463792126685981781885705056989866980721434800723997473759420452636998471041709517280383079371085594062268847422355717438612319977662549219057322191585171224824576523321540977946662720419962193757384307102463245990741753013730896112598805759515074556134457167020689473366967030216348763129261275177554772490061399817622127197648764140820908054222435050419198814475125572668557366875520341569073751905732453246326624280765443247235674224886350941973591456766981741541126349816626619010082587002045600673827250356370339870823128447020184041285472642784739994558497167220704459467625440699508381901892223160481470158656394411391845408102511476747702856671809727393632431072010364042994377671038906759622335488715622167028925311266408916821176516878131711325805221193465858886933809083934839664411055073367898813839927536087907907825154823203872432565234073582563899216719263860319344583241165405142160424356618790353572495996412615584419287346374177690721565308143381648612287269916225285997750878333617574062698488168205711341211264423292664714044284844050761976815376609299170469222137736909049472940938674730612344658343057046001940405768001218783144171797446462576258222177391206304091562877749387347643406173054695477054645911410617908178525313430509902842485872458878975264980383199523942146278002542012434533689171838165147287616928340145128225928034810434321262243518938124574235645875831457839671428352041149704337613966928044780065435778551417561903708716189908883324316660627867057957898430244041411457016467849957636272297618317610466206839625534156337639806133466196811302540026525291252941693951763386526079242459720430659855896483512543911228738842467117523857388452396626649443233365705361715434320530945559195310105967617444232945562272965437681291966903418611623172109184469042409716236808627624344678605148381196332753577027820127140832798359333939123176285663878871461934624436166758107724845125656910358806635286429678007969155065149404027531862962308608854109980985814379352541047767446547843382739703015960195367102208131021859192020621830045718641780124966613556234583261370450741059621199832853965338014866263611015770892436754415386544047194574032434376922168459204843217196745683443226859084608481114285229283063292763057108523981593265849412458904097656144675947676100651722407622569072402732566816114604403187923158715248604912341670674149964694611606728889099684118777874859296970361188931115153259485207468586077475163977414634413965979084503623476619603088290739673149279216981470404402393249440710051307314346327438173398519853452316737104020982357053102087285295049644487041806201659011909426352189633683946761679092133809265600887544684152825376158325580804357438565260933302854506392043614697916520634952373351722982397274182846701317603890619938225150615957613776556088652002959152506151154434412761662995411052330283123718459855291238979094311681978264605200689625778243829985303304475405103836518957145970280193775831088302725476103202910523345378916126683995194021678480725113674911927106894348204994497177168365867082408776304349448233909534489944230330505753771525798521521870078264145280223942366795368838978713601868908038362827376846669124621126716692211600053626727277777377045443371999083891564098751937336286001794138300282540344916375952512977305430010369960768634878695366650962559501618157443526819414597546765376586013721410539961651987228094731280683247812092550287147321554206855635560964657783102534309960517951339047109404682277517989213497619616282575876439432962442619033611246039432111811011455277663884261203168738829657989797111364773880229825861252862671938042655612787624822152467926818943171826293813921450313784601900472642070667367391577114933365262696755525108552256404653456910896725251501253599109368626776266314105631601923481483382308490511623449322318876182972161039578200372446499733478807455281269436489477082919023496176452138308419538197808474278605756363162608553108299406988526141856221942017289752466371018788709368348502870679049241060539813480540196050026581677749527783232698121270223684569610509993915561539908237114410123943189927824805433998276119681758524983058456255955776859388166324702906610806729715872026240209037537401624691932595450171625721609239859338216598728270197411225398450736931214234475452324393296047085929452357898002455940526994790463806800546735853677290372507861025781610277190951103005985486260537374700675693090824306706420684434827605484230027870621899389780919696332547512079726045674653685231486590529421197111462260124761719308665740444130579835942076087646229115148931907357285734385310689382365471886926235470981059983974888240193031652675819172553109023625865458001976490532219638969557314816240804112071643619161289710281229124317513243219667706014698066090732352610403492116212228421653888747039212878868975103892142959440321921678425689434145612170257659585363788064615073004564047123211850825862130860035817221931246946534929107062918555620090346503866505419442184866537329856934379760279023042156646718488266561387216478093481266978184497134519305811313084376831880524031089453969161833096873145177798692345014642754459442592369834083536205908884581688881826836967413417130902002627380114667534649933819129473411471515151822613708634929089840405870814316223750312033894741335639661997311143433822672025853660173181747284013316168434215361809610519347491790644647281150680684106063013549478232926514515880686362213549182110464926455853285546164288388089880891263801748390997417179827615140905631805385298769049678547658570415084067734274929948662447261289618825393728551739418992264988139236371083505886332604629885576425215611868222189055391431650784047274535888817701861587798002821936446622432509280508929991017442211254218565316552753012020749093231576661649666002899302016351252656105924977918698657448563802515124449178791818661946515022674801548465433887273547743967746430458225966918908113812322221427315267884341822856906384451577824508449442654727691235783816798977553653867970864493417494391486525119858005652834783397726704699622028013461952238443086424982975668467598999993295097667217505344155606970565709557820139694703745601291987193607430151542255820883458847374488080070348153067693014466722841297381729143077653870442536519934276701481099568831280826424079196527967102098734717240675157334303925575622965787567594909663862315390083380740368464319685210304752922515351591925933379233590878504226768699604990161588964363902602852776484700889422054468358328440802708111558072360361980089424764690351023442980068039357018085022095595370738616347607599582713307970841336249837322006333122505323259232009694386815323279928766030452776002007933334041233686878079372466281034915551600315414505351921365437940510070930529293010073071617540239963856965536476242419239646140859757638378122296316135761494180113675038059245424837965461616972134859335211302877683299768563614353362935629994985662857385074234160592146767121191109613957747329721482612097888959969461373433164297416647166514810426004990482834051123511219413612823880874308303835461676893719432246274001670465020465378767304107144530179022604875891429286481724632154179007826641233857672999841969819617342791287157413515644775780071377749687220916256149278000442431650792460143992573876365526133772717130328738808750921633023919166562264386792695774903181071077180643008374607267617092471858397195662079037557783748177967052067959776359390387466520800921186146828169429702106254188692484487681025233779690492662028871859524940896413692024525433562240843345957656674859340479443486316549599361007756723502068746321507149201973426564995595155544776566113329423237280945949889043161415333138167955895966514868320346006117369686020934822982390659535500614014965676496621710410744455816493170250539482353355277680885070295851380799835810483610546354127298923586306991605739304078503986103126781548153546252173460596445453135528672363092375236107023057938727436525851587721061757041691626283968569780903344665220049091853051392867903175816911341656008262084945985907886549322072531530811682854350601565447275616841552127017829530312848433651340791820090547689768590211056610694683143121672053471822046857001787444778961312910440485658445370297024905460964158893864074976153456497257508218106107013251127101910440433461850658019080481682417563015424340226946206614518643991441616034234594483757268832563346664792686088916890373884468519853252208628234420593136498541800144603649849516888866300872532423268965630386836789614142854344863810144593378331933871783225770448138122821072743829856364672181802662714222383296901045892801709606427527913705891032085956251303092517213090550593929934393934788444254370610620591930766385196114458807004581554134320545331868505696187420488583728045249848552406190528677297203490311050191266720620596649870753492050892376362203587899448761541131811525042621555812273955274813530549002101013475347064818264039400953790554977620533519718581836043400643604922630568406527087495306521452097786156810211069597206638615437214439035515390295683673369857698707589725752656055658363486233451026887374428201547077125896867501319280584529150121228550088299350587056736696407117077446123911135543519000405948177003360842064457401480419620713028787485589623250924636420483695108301647475166147684425296365385249153601497698520344479941389633538953845778520844721120178181498619587647020911108547660543741320382217528009285507659208962982244113410378246073969203336924088882743803975032549777860216364244862563100569649918913681422193241604127289042268468835254561897620421607827923319341698182443716236178284281559547672211463734274768851595835148229080159138628106336118285164762251745464406717905093275295186167983587379983670578021533380547055488918370277851730621535832708526967978188714855225814402665766357848305707225514892717890080459517554659528889219077084430189229846704870143493458443448381101567465337437211286466015981548529586403478913191092884756589857735888066859530652113030487453548960920395282392979920547968795691992201038257304244303965291833918026752188887267440906779141559492620390102994730175322345655416958246918588818648555948432956162190829919435048389882640700398275218075734918696099303019682148385032734580073201093156431554499775420410814535152162259388058857346181102002442796716614059719071453943685513179876956849057570310966273567147772947349964864371199001167311358807188289700295146547371586483755169514951333872012653150463370145446937589450916256289145980649283334109860303582305912858809540298191514908514267809840977579377628811733577963536909371140358540412488402705977795659657926546737708259910232240619017080000810929090970959060766605269635534737149640097706171859407135367996387025368938053659505053927872402051702827173906814379023137305552771281772036725060543517186942945944753921386689102763853672531051650005576905406556686200018578026815405525746103244186524593245678438464400547906839349972859159832802841081772764523265857749655580824741953874347474533488083703807739445037372641566293703604690066229447053819676820120901994966815634078946073442486414257010926139061023049029275063049511686286275805227384954066069326030723223280918433084962996688952675889812292477789371555748356558986438223716123965480451644351966680979031264390906130746702191261160019341894945880541835876731541202136363040366436286456223391292732954639701863870992756314915583987144231739224548306722254760835947804271112535614221829155067691667405227307568370934695210795911205992301094645015863680739542668129142634226692019244819526781740532185554044194408752575311372584588525832136201170050214566469684652599100729745753372623311276637427480952406667333570128560283489074067744367649985285880866482375576850613993280802134732756977562021622772797230582494072573287175903834150320567568259903705973294778745142116545842325874821408169643379812357025666763446295200261413875611663642022798248023494328056813767259452992858250713457182693222013182810204509953655011169545683336784156678455828326799800353889067773231097245552592104568382243691365160699077167639001055381895741699904540435672427869708599119240152240809387560731899544875686822064787189033806322054047491773399378612584096507880150269243873014959867561007005649771446260325000953700473098412157990162969409138701508904356188459923225101246063611064437588567256659435539368080387635338567450135143353134281785978965195162671545192285627164065894063686475751723843554968339436099729507801702139261153845632797200767805136944491686561872952824962746000754298879615754130982375732171094897914977373348915283945193579744048527854448705824933212381216472388959698846410183510646075861588733977692591764149927740820915031640019476698933741200313563796060159481470848228658241619245364644831254471509741340083856266508223710660685406920113652668303138703104351618499588849943433341587892627351014534172045537325351905632274726820353079572590438354126521858317506562226029037062550903127706753268554701857962182307080621892274864849945299812839248232842885418883857046707700337448536092743158544562810731363148452682700917351806940912302067220014439244735038202351777483509683209620900446125741747544884188259076910240601943485609260960862758448617246915070652671298053688798458648614583074707514832956937378844047633056298394793495566675470871978317027579649675581300227845441516815727344996389256940711025973774110508993675573743473525277287829507905805506010773344800426254072803962230378878309762120355404094834926368296826324152315470448605853380589779446316961104031813982916268423181303867279726062366777875861588948802335490266369652200621933329481085221439159597636756985963484749507892046171421437967337305647603996513851449876661652908611733690141963793852271708805087664369214799782718422120962845636668542945082141960427227143466231349200368707058722622328311915450443992798947872796098510928732313012544357331500841688341741055898450438992259802224402840610577038576948162323150684803479408876984277617728329005982436586356728598783214642207285308680959978648740200239010494001488867231077405598864286753893487133685870777088837244288952683643833506664281783070838688645444286902682484646713605528427792991811912601228824230471545160346474893633397142300030161166161140664914403630972702256129779798112675473651363595820251648707596321533170683126711443482490016857935683538164016738348326975403914210187703283250279494204923973472938228285520602088565996000633969294738495672781642111629845527417616068265723975464798105565579177927875476971069427724509002115220923346763884571829107519349863249769655699192788789880871540432937995610126041408669146368389328117117683181234063181084837402786275193150736801534877571070028998885593882059876101118988165357230575300367943643494362884255727941059437983676295944473976935546545345694578936224156589670524981473630239399965971108898853091812387790335339215790447307138667315016192961148106438977756558499801546572634187853073547793505175744151569233237643080493509558295908250159140286524248088237480692342657879759563227090841193097698228717578520703211625933549316970014954398838323304316055688641488193307116638617946798536221286586036035656036504907817670074461102627914354867505718943506844293253369846342008864736299625135962993571942973694446921476207544556699078694187513948288480981876748778434361460436691220294071709587483711136009649935682010306197470757315234084209823445101223942326962119536368774882044042279836523709642396745120644627852314299838759948834878011038150233124047821194169765630141743269342420573208102121798366930443888815006233705735088184829122879680324658307643481450213870262724840660308466555214718254913174973670417270315445727333132659343528142244680819835816191974231748460204924514463251264418424767289697276126753625772205066629757793660461027559937992378261581028377200388914481745593875130665881802744742880419020718734423785876011849635430807159884822921683749682798981761566060082802041549793800657383934452048453562394467392211199423268577706209971057437997544361072020932744181956369235001687243691564928048980754092927405534660039288979392812181541244922379133875300206158164667979821675649859831223914542035429888129293138443195648089915393486460775636570281357193136167568233871793637431643387608175088879093317432278248441650770995232726843411048442982153157456045224059006335603572148818799469562829418332342531341096540800025597885999341672600030974193774341009239213280821869605520395111712901838502473192598148357069125521919116270904404264754193510245040231556484569921225332356320222830193358826623293890145803693937637134983663925686377937945950140902625222371067374846601407211673646420137119421469807751659109584806309008690004893165604485230933959817172995731128753328097457532932079898159236745847750809360852797781778175170514614125478652634093081116353684777130905104829941409022868179494470322346721959641247358842918037144709642443262937368403948837700380028741835033222546211834348375128921661322633207209622022803302691667768665376495941176912357135846571101869137358319844540079083519651763854839400973958225417587915217544656416548936802308350416112355300273274278165630249495338226785140745447713937445149187070529339090671374980668698089247563556494858460871290291365926023663087091091085412745875399905992915242552957051718135829279280989820889185376291691000352475868835657312194093111044759993010262159496966552987464857829609281328043097319460170173994753037909173640053194960303446154933952129434143253510969491532967768485331218147692323061264359120367808715016402927926549032428794484811625545333931507734614450400423726008263097188972133471883649336746436693069566658733761623017960288376421532074057940425053351891700769902382924487027774581358517032671209160880524058672679303353991176752408616618886502297456085071677178987763243913438502574130826225140212476684036398469720576087632264520666022382793276667955264717702217047803127519039911111717590795874331294306831934107461475698187792271885438686992459557085317342877641853579471060730744534796404033092101669054758429789128361164097443318744416428714316511397886190765820885958340603585748485073470643469308601485879842086388229753213921896335537773563099287873222211089092079148045188397682246658112265628343353306402195886502205226087448207398623681830055375226262530311828273838730863889113700211270141048997832394489487391360855605622400379804272585338159913305360663332073661597591667377419771554812106489571763101095283687095604016625063288771357092925163888057370191785265195487560150972070306655890093406602563319183423463856714163273092564663844289217847419533572684957246451210241210006945068845218231435797056624211441290296471235947494585059735145095161549760761835760653047833090302000342537465797480577784886877268574476238056693737556792254384518119267735099266720788795859400232678478006065202757145317682010918943312828500254121475656992218438983306112937988640491001302368611282499434456282006383418355905892765559222725119165446766805187336632268155911371304255399556867245266285315166583987046830180860096176239173454795043055265764469974483705676054943732656034457586393851644136903102567603704202745057250971071750332922586562712598830194585178054387193382816182926961964651217300947581361172353187414138028104046520836148649763322201647288671325243975712985823154969068971086979430962038150158939658446644452937980719071536402689012420290603396939817227034711435441583200709550233447021846813406213440371599945289657732374375856617427439087292311542839038317618044558280014572056957753131949571618796288924847360037546285488294056667665867952048886468535181553408340817279445791759609663408470923603177851109212898864846443635046532819291283981260210638949361349831046051629797254897927084051027069443062784441094936740044160361348034870175659391690493316202317183966464160374153355130343636941381210519742125227842915495791639802362135927791156442508751536778815260428830893303277235861841094287750155953957236941674131264823279420297974268796835329693880144788356594532946031559312878186651929097100322061318771749308139328568085466932464729299147069338443154202275518432717373627943368899122278295803739660301872464889048531373733391520265019384350528379497266558041189275917308804361081315914087713953842984345019183475914661940424701942304118855197799071374449767753132160396143459472775003095218793838722198350180810183396375109436818902975058072294530825469072712569690989130551318013764978540545907361357979859515826859045348961733185627916998776214509679662015857614278016467580203264604618927503409934887017644558306500171639156629552084521024392608358734527945207541026290702729563304061216708463902668662395826355327189675349013909449591775522137540173349991260590122617309333157150241282748676961252187874096625055442267213598547352061575798065817624308447681914148912907531982209162574843460864298661929842998026046674971116965859144697349794310846229968100043794945538227569568302190658690151216453666467206359869407496805135414276822705048339357683973509007301758841712497129564812770984119748001923625095371891078659745280728979096846445390107084208692756593270429791035868652779003964174064292897332993224536286213677055132816768164734932358317991778093655582487566269907353197437223475367287380130765942189289204662792777887707386966190200422569892383832917442684475457171627011386744822414700715934873811020123809217459072228191778296573176582939698819607873288267690751278078313487454320616754421406395594859736643186980749676601128752319438911058753791249979014229331738394874735080532290987437631615237545722261033396316529806208943058951867041189836202915650388237011576377418133174826638781744135001054572696815653524082501849716636131387788439833461993432096419139996738101072314425838322062954584663196647806491707913535976430600020488072269261246136980856228273528779604294326017734412850719016913815522651126447358751520273674225640231936471717756540761043340347476554488739972856502145196321481976099485713595711920380177712230841552725618922337674467739452193902718024996744518542756814596863340761684408030770469319048856907639900463356564163755739672768201597864097679979445899922762839402050552722351032749173864447819732428607959651626540862135430822117895615543250077456281961164130486173332177779149523506453277777124962857792588122756121266789776323913207077970498834684789924382887059952701362437073586253282720246652395724589507254054226741256251960391857833363745071819899476734396166451351928232842209008437267277938708467954095714661608929685305002940947030391341091820545400621472524400201824337996001586519757548543309368481292606805535739181992035470919581964193118054813526322255545379985423546798086200835839189985761286197342615141588458730263427060254727703385615327445175915515414311424470115228992066567341490955419799459505940769513799632187903609619150409894708056661660251882363136041879640136555645940032770970151507310556818094938673582367373396053200048941121046961525495884487089690570853987686700744786935386081296581363546418545240904478877432048798377899109054120612248066439955175556272378724019390303718131434237734486387817987028866216906394035787286904122520198316950127546165838686150889709091828202661069668677887240009278337181579925589050111428043188236339473405939241994790500528601663306221097083696373003104597660643249771895010612163689107933307655114726810344102470884449762980835371601610989409541002077863131568083892411106573157132329551420048430269710023946234287377417881620472392012927896013329313727992151626636135444434671480547933449852608969552298136825842302684711856256636979331823443740169668383158801634136275973492712914486736747195112123095313120271950751736750966369455418612023359155363355681313162571002963435378315252425259241236351772342985506571092563819242535983931637265189046972835781836257453819033114195759188849325496982229901103838264365317720787832843974370086362706532325432312949494403399677373986963886458041249265995942121220572377877682693518399792252301412109432442637321376524423428462285810159515409739518789007995235974581836696234178659198666987945911000864103232786232151953115437151516088778090072270588044173387034965838464011606336523350711907503015139739438819147260877831594481076205355899042346255308471923944944048427500464085457137823456945547779379434397664500389367305375223965040193857792473784960989164514708384162014912111978011394197208223741901116416153418841175335644777578589211236404493141689685707190412556483288612293598207308305364110850629051139841081039060014639881224736378882186149942554664591352563481643039572885924854031066157950278581579229948389176031680456364352580644433856989100550857392175223412921772944933478928359597739488076906842968057544088706792791787696625407257919852642356388108831628936269244137811781213009699714023911348391427280917391162145370529841890456809504827107623385939990873299685725256772709996072945460770998901204307456191068339367443263800657304047379384927442550634015207519326196787710611896114134572279847290741143724452281809184303964415402520992277384555086037409720334169233904175714710823047639802217864967867193266470402623530829488202498294119244377262959220995236747775463596542376242241656898392782338098427489657407944421880720581821946712488223170430820339269793007627435697891085317217345962484910219838754409029159525009073349802900712546373237483529143214465710426196961383669996925321287460957721385972725258756323358978441432195279051449842271412581042411139820678353939998931488332538064840224374776032470828821434974497523551474752656619447925796145354166724203174798658599460789217028680114485971934253550929300768976924457810488891131576313738248392034497733451631938189454068036240311975978970979194241592552974003045643990867302690789477674858470209723180385115256389473710611265757696283956395910025970265844885748031094189360971732388482778970763967475016969329659624427644944207220774365595192573432469408250833249593053318821453265616303140653770006063494133213769034307546227900006517589704048708931317479440818093926668630639684347410418180168505684331255072512975312104449269007722421288866320628838892141612173535278627862488733523589537797738554421037062830414327895155436455898600419565561175581708095968448707154993525374088041400148451621125905029256310245673246823253465386022659868866200295272962514970969148686189538522203216950236300047056995338544913498512342585643706912828654416876566106535706868739256450463757965658246919979660282289575120477715880391117994945942466658334701404530526558949720407906200858578408075475415470016011664747543947464736195507810640220844264444372097402336558054520464986529343226171278041657625244661005822715563089507824464468120959576755348900514316120689500505222361845705612228934634762229645095585364189895836917666428788268890847573206486439586950685926072764792011105479993978558091371291057270558163319374003874545952423281492607100664320298793028203416909953790125794410622453991584393395011732008300588229005653843877919860360012015458083834504926324623247704809593620242284212549618069811183495661083497376472751037635685310651893171728287804560009757610113663979221164225584107073324558247511875310998804656691052177630282576267421853423295481386287369619734342946893596321054168304178539104090416599540458954713821147496737721234480382756948492470488493888246972877133291752259749703110523384609514535801091928690269183945516673701582858134639535071421221398235180485840785781709057217644236595248346442138886725938741262285493035253742510427544021722499260599866779923458929554208692880185155156851041347245472706044233654432173792961485183715128653346351678646917761494400555890972592419055885687213119598363947347635263371949629545495408086065698258729073995325766952997804332425542188877466937536774399380805623829104408948858611500720358158218207059824659012386204597832057868601367119475870882876845545995698886068907414469493772323614596276799044314703797539913535408238484635544709103888596539713930249855995662402084698259497056254254639606525925145125398936144442062275009036845919667284658172463960487755377563188456969355535105513079211528967657040605644427891787393460965831512110718050317219459411963169233657009255751980222373106389874104444986101650648859322138602868969911364970217600651023800962722418590272487984617665996409793530547401359280216392687256012333036818933470265054669889863845630008015848765268077209974147523638068536979763334424338858796996545156922637324331207179750380162849084735992613602960061675654815516263782768061988960982198954206737348434763927023943253358701222245799103599299732921489234650020872337556393881322756380515465243405187780326671225131181851176666432433666550979442297518274905315774797767084521111205436205311700346563587380402424809651149250331458355872265209399897773285151915032095013136709454280468533007419665682345505548670793397201650912020012288109563262213050952718417505434334585424523758418746837868321947084439558994970970933883981615712159947184128977023917811866781525773103711976259963068105274238225063030826805740757110437328923199532860687819555045547937400389764032800469158814717306632947591154287125975659475731988835290108201321391260594691181209629573921755207449349441799685926693417039978158783974744272216518492858615001872893619054597941990586133857141410145177683157861436540915392148820908755229433375902243634403450410183782286893155443983975862731044881071491568526951157933548331297454271964549534824128614395818912170396705518212074867538690660731101195545728064175408894957483215861165630403223599496349281654488989362831405609414014103469358264669669079636007514107638796737112555226893202477689145382955568140085341117332683067336283230426677766462654230436625808090834655122732168380075654001033411764105461411579592124531034441615768161505710835728173619612322190127589316867495701966911183469912477396129855264882347776420123035852549558216599380756499126487323574543501545624349963037211660785632935995655959025664357074486574812814280357635210931129086049513215591171732349229194918046434926133777129238316143896367735917996961130399295493098177282602444212794288016669636761456374544939808240334009609565049041634570343944031544005582776553648539382392620188212067179036029428763137525855091407580585399228643365421627720931732855531991943331710255060134375000065045320896686007797987404753375737181140410867212502245562009754012359062305664590793654603210502975311543333777422408260620027957365244110578171821406563534361793520496034588275551344325182862140468422250639557397356495496233835137010563090515800104962189219514688792170656648426970401137594163079778760529242807322598163182310604803000810570209821401783232057469328886341833129347897355762332973561992172850814162455165751500477364866797505538046233875299824406909343856209351004997992524736559785536959419463729013402646638455360748725641450631050191963320938333757112139787017019730612818410015158355029265671319717074269838338942520401090821770804165183932144327431529378262145904491451263605206975432959973123071439449302428262633531333456784823585995286404342707602914686125567351726742063474158091315350685656815835000876122332405164898431191450410807553888192023137720848595545109334425374867569729867743161182784690454924221270525869598109994507462350053334063456466559573340564482515524626814737946983526409611444100074716209428028312324097332923337523937389231925843598731452846178569966943543332369606691489027382686287053226996796999666976747382073235106252145359582934428520322535292873424833421348596356015060143089510252882856073101927757320141745616803294971560818160153032385179471106696183522054934626851857769321022167569165648800100637478655780439921033461582217656085670328232605431917694350349254547579407985355187191753454932060762919510856361335597001062387484430565232890794398873021118864226429501089819485958714520645804101361951753552927834841732398813234583924576703349638561723358732611285513421228317134913378356540299727268367022036840017463131557437578740545115054581339496088332898925614240663440090492411102641671868264761188416288069582949935366100336487167294328635000702310835378294144482509191246035964442351207625266261378661457806463271814672414392546496281497761861057119268564552088144525114765947240697755440507932341639947062644378897701783578009096372815886588926136290472653520854513258845388692570405406377631222892031682619397756000554319525607006341201615837844712952514764565856744627868941036484600111132270329352934729936407723381165882088083303966891797603338879733477051934524005026962156923259032650678168829852351966850751431846511501154330168177861712698798679126493154008882709185411194273169587388322090776933116123667848182525533509774828069640223012282260902080807395648391917953185222001728010249743474785085631588485973791686450517999994031407228538698810968804600720055975538427996270265624301495902833716558439545076771760927119816363230027823781517544562936080147452623292254722703541670568730627887778024696149915228687435480571877323950085450960042270180362057194661197727518992432021099278522872231308251858806074310342880806835384352478066252331315376951473231370786283080144056228695595300952498199477046323214728209129483162548544624295938647102017648795638793778751020319775930112141965729882687198065481582282231404780450643833395786971978800293243171623709529274336847267381904349270988886378692896926805207141568901787898796189949166302679524168487936481960410387286361983758777268957957878575474258981471230515989342644901600812276983740248372933833588539218963765871344933274349886705814956453268638348801437971030663848975630877145537125652588915790480218668868637225818477820344863110130499536200398277732075664426922640513761637032850795313081198651211418037286078484902631229047491378437174508696160935802519573544453238424243337963188020498412655092463334292260498250651981936010911300304190216612311500252524408681946140928746535773559940924864145303022681144670986552842907751937032160190530983693455171975594703484810916381634608616475689474024574725743464840659844403854859675200999865657027646809508831105246710992868513213894850756924611569567702889798285350368393932388743824696000804036132855399039236874111526177046967392897124346803559120108269948628313102251660302414409356931281255307283447427477053701204658800500564528757704151951458874727690332183298225906410188137935364442203005525583910118290687803532775292892163874368243664503458962987021876991850297084323550115994203425944920174269940904483882766197692768421999277186778895308996600179347825252498748608356909437187739922439248784699990051096512028233799630575085496228402658922659855319943536580478008308325802853459527425314080335383081104931155621292114248336045818462687978116810737665769195844315452879280765981370510181210319050981561767113332127447042198870643782288167847514452141774548300674153774156212888884314499867675824593112298280724638530223988646610414288175865967015518448389271109702376500772098014997507992108725825549152339947059476803340826840763452859327100350779113477048467577935779246137577519077514083192133633012152273006277034811184533314154529162234724461367311930219120164288760329472282053930143354017308500303411690617743707595891510982201175210052133063223746816718121757652627893184997908478512349501651877100984271542033105815818372760371538377819578724136973638244954851104991535427534423208883139019070428785416642285500580151997082808115966294885552737928321143959994328039078056631530238139175742370501527333793734224137804241501355732110662463859682729818111440714616294481523134533171720817387119922352928594064487824924612458577586025098632181589410462151148131733074489143310700555298426652082008224656620666091186611354059610861063575815947919447731687426982320772831879726684794835144084633397704963508587952572476615227831777059364282920702986330606578853523496827140808570546373802263335677524256338283012849997238415677959598060948660797340668811483115398317885715381659215060133010843767941046935152713739934937608308526784845293601645255231545916442506845882377508952606641539440035922310863097863242633186675257192238404500669954815459049333856744802158773024173670542492939905120402193531723126207657863453762141329516861318933329242320426570972876641771750822073448758738516148015723621016274855104014401700340972682237740371959546166978234120989507418030344049010486140004185726168119376850009301566712838214887318211174571606548508616917548723329901811865532463946456681671085545353731258627237566116695134109419729025217938018040703869753849166362397072569507440794698400070128632376248072329778531196064773930348450984755463637974813546538426381926733251321565852968634525294062351396217121718873576475149105298187705575744405216132685096827549188894469776487885032446218373633359123044906736447368263983525806153221951106366220559645518171521599268978809586126985713141909254019575407249959287056453771477463178433680290736681406524638225276518776385591260747232296241744707445601214714290062116659131190652428127580596698057897623709147459626665464808313268378831497719992931805820920856359658810358364962246855597712107844261359264777815468179936536466255814797371192183016148592171333877635789103819311053578998237044986725621510266615976711836474626541867645717096856579876523807676669774276060405246675089544466926016066614777675194830420793466974527967411180026116146241730439498929973333134325576430276748318394779964040397340240173375251123538871534620065234666259915810511478758332825561285604590725696646058303015525016816839903323134741013607272219525767306262202321174363183416789783330541451893732325355110336295982013353498467996100020739270256899929292014855338564943732534363639089025129169296070716627229240589020536815447954824022085855648240920964495853360419560843852821904030016012677171086421792890309405576622144911797561622325058578779024987675473556443452584619452276205947829529439553483937832309555703063920113027620021828726099213718380277312846055878130320284571841988328457024177543058488951544028568728124630127280138798614247675002629656946552521978868459082325231564162652160160204475296038936212836986889082065381918682383734688771181153826681842910023034895555006836304469768119687373436232804837267219856720978379230970932440349520256642589178685177911623072579386297733118793523998931556171542282685087174359746097291305285365204300611157093233185074581503027012157842727158964196309030027199315272778512771135516023154916446116786476750729441229314807942968691956695569467670667588977243063771099600251645192897630744101734096272921486769634591350132904645551894306883356300650832827390914537113819203891812862311422116980241323698558152174892177841907516177787788503993557503051026277832684243731413993869062257307972782842609481419010483662681285914070740962293553271475209587066582414469755956401735041129802192707211203543284361594158190838736284632084650592424037223028216336780236676018259454475489278241895862814193253312381623258025442414194334995823504988139754488706414916627890357886382228833860526539452156074123729661027015158204960910559261507743344248344121767498736536351722827502444082764695373847669461468129846226733953222862799050365928073579634617845791694316919085686609695472668989958135939948851155756796520869029413874523659955771890942163849496619455292147918040094869859705705122697875066274206819202037702495582539876490347143567942259389831388913914640890060817878812286675136503977651877608716944046922206001938898455204265665410983869917285097548275110463368621559975774777961466198728531738031977124621174414821117960598656711583267129251432758642965827490801916407867328118350036272470185873935331008146907019848381844980221903007852375619961337888813881226043438026524264325704231653955033322417572700174698269427684776178790194802789884921532597221974476969372151248690049638650337226600301732739257180489818630966722924253400421057927947369037092073276864824732176733238295065232048111984265346766318253663890328233914820553010351250575828483788186369291454019216014059157566852847141765756215199645588424206379177813839855779968505578100642023710378935066110899114557447582991532467024944579880933137536596634175353806240476660986596625529335150084625378492967862306151696467935814343465448221371305236890216603315791118735858452311358091111720388430280431738173082202728739772551236722147503048543448006327249861094066755846525710547099751205458493853988019568841745338854437707331197079889114077877685625494320536699123563398058958798452062446531711954154397321384438760504389041274737089243943031119984610435113569562614113804733509489005581182880755925041242400783626178347682491670155864161497702883055249372233999715526986312687463063028393640549330919595033811329006504366417347918716668764165056700757299590758832731105225637069141922804300718997119404862621997896488339387350086175511808047168573636029866869887020088913972560833141843194106817346619553145389455832950465045789912672327415296535637109718639288799906639262391181825798974219345896174758786894128545423051844590562842105424236175452950513421013282291757114714104338890061391351550780103543130777560465086824068924125723825147641969793155363050256459964118489130966488513967281707157117686148499020788188553996427490336569319720266969295079999351180552094973404159577871962337831496721586617953574396028167214661648873813017827543807613744824230923052856354111958408127023468735524038316070253184596011484811366931395759480727016162498953126699241213516752338414951638901891413036921472673874261056716911324024891084054385184055405388190449293629102881256182120789755860760205838883782573049561030986188746040234284733206570865900905667119100363147682292679224842578576644395022113787225812533569821031013434301250088898248276886818836074868591576492596078815592248898234685056797484457584867568203711537503592622944605701517991702615940626362201886793580765874112174915523472207733566811829812387305886545157767338964782123103396855799003583037812665782691292575417824690131557630255723763573507247234299813114156769511454817167236197500372278625854318353455478513769944504069098678429211385146958106513567279645947551406586949704170694591420825337866084595730096129617879231931517505770912343195353132835597650647699288641790285795588342170572167378700326670708449604157758407597193104921144818746636122124541496521311376012680118154832276966005374844166819323402041762918613557938814830535171823108398136259461715926384049732950170172730618866169460394906611186927559156560500431513970457937078653887586508515667010039546309730237542543373939345983657578329867480978608264665756917674285089593477294056799189462206957503354923254165496104644918397460423474102856108035033642187099612643349470219147992720397897259702280453253136758444126057993674816282603806403999589559869107395919799658649130163430944294415869902367894614137042201877135433039047393715293355323625816599477568443431698437452971473383851338877163227163035394101460041881451896944317852435435601610607351486425647571096519002853579197128802555550481092091901513067860322789145828488006351907285979610586361742779136585900253683450273092736156916402835531212394796861309625427363759202283475802661420898399734550765053608050663683421345890124449749560234531432654665391960250828273984162625986495711550234566117001457685968920873696132128205254090461136985204551088141295688727736509186203813248694643722726060898322190402486206944393735688860314028314188439228686202941119893060341658788893185303465811871293062386539034941316839578077481618896128783270121750515100131636837169143402140721193545161441768639167388023127340903116671754072618489081129672067159434780315053080991445692624904455700806500858676002059057931382553694800301090810590382609162254402595978632736027569020801412811197484864124122286647244305667107858384391688620897553069091234676860016019688486847326900080569630195826286774883313820787121965215848174257855038769150007712728280545953033417130201998468838762397144771401009066716639666295252867722232618972582492539761006062976996215090492025741047737197332359303687344618570203566598468152300683739709799821196774804617882724391111075916508870825197812912451564262808848386091869838769895952970176435988202675204483692217832311214395111691630722813688870196650186509122943338418755010855646388031122207698711200088037595702309947721893951234536897289970117365173853666045336882787937902506120820133103479744011858167501043614816403397890785518079290895701811536098354746726834365271124251562812590303073165910205496475472427574791915283192215818878828449375483343492729511632098887290109630812646003273453603633860125372623386471249605423827703976110265865903088930000647649756036751027681490998784332483423335557432000108890171105515475110213753246479242810033891506483458594779140825168439520837562076918452484738748546346518990261336804432550434704484952638421850167621289092869133899720379029576964089699370618119502318305482454055731119905434758592823254129362801295106050246252453309473009578215653308507956297668294013477502911610703105854593005040004129973986101783447681420510982926856509280608273805606435726412112287180384835490660845786361293792148598170321937478000779116059119532728962321469296127652067828690862377600196138203291548729420025007044511380396163260308627873839240234634064893387829026940878167545404816595527776223651382075683360831808401964159112962410647317065484652391970833793945627908219572698796077070130066734411075651362584471641479663144568002067606318356444241068718817602638211800077360230832035996617490445969417361834443975090746218806558140549310721538396068587690445085244689565686077642296372332708059114662840460286375856444943364883072211369982539182198989380824323098896067055038590000654412413423824646311220728677680712807258386823858991552178695895220504084596372102790722672800711803127773712398852052912734240600281684047080124169834565556435892528114813051189114987738341720902279114121595654905794474034220987671646597520949378190581434623037202575192981570976616175426016559846895868141755641285897312828686620010802862130445130701961775819261847931010290898551288177672553280739330510467700235357738238628757385526240798083170524266309463009400872102230352811122381049530935270559414092279474303040985495499878101961093839074680286206326530126465243175645515013342230951557410649822250548237593124931785466609473256778454270275658245866157277156271324627367423624415627390988911527955033890090166343739222829853824608622874302149690737591650065401206433721935085049427655301539804522333920560306290457566767568515845816393197637073937006226464117017296413916995945788203657290635325653688611428739947041019836899522960831792368598300871486573699100497397937487456955749586012689290278790383480865563445434730779966486651563750918901929066549626387713931364107067646819691197805796439246059073644911475893299763503310200207688048948653781200755868561584390261584753648440131988356413514425784361551366797919151978197902433985098791877558926814205126755147937324830347258215698367738630920958607522381532245887993339302258932759288028387081732514034954929013786722723989872282628536902876771648364126053706058795167248329823660084121642883249811349889214546897079051981744512971713213686936643380266565480665812422286902977510540827764679383976361087514167521882459473619104139253202366723282895463670886806536988254673405297777062735402721360980691628537913691862281331217258785003390812865583829697866600924464509864844380387816539096596547079521596701610451104822681615478623341802516189474175061482621591847321768262352527984018160271362482825640654321981983596104316654825840904400751698811002001969083744409846958865275299570682947168372648880178602846364395697129176505931514228420499396258873915025987257138992172110856708599767280556652367929742419059953488686047047869861001089586329998866946154283399910240656030432777018691358228535005199908145936411657439018368306844097118803564422305173434905855388617552193701775308872914968567639484509487581533383523550463216691836960269292180278956366947293219487854039722310719408337655492019588090601876192236579886516552976877995870070720420836671526280955607265084929768304139711305588278463145355028519446780780583690927616543284932621938537881248839643653685660568527005892300455524669376162878912508907131599389405941038494786246111464996854255964277476509104142338728502023875562230152138913770448189468454307014637238100433126557938554743976929370063095877924934007620909165015291912313669780821406507776155697453329068615903973531777293638051669426085711620129043438591005134516039810404804215152607444915114326170427518790570827463604179837095724051084603855254911731577354051494973093036622436129620662373015840411381020281905809623358373543363676607158627680496694599860253755077589521631686569632262913998371059025312759549778418371466584306147410308467595860397967912469723815689399724004343253763422603872559116290774076828047054077698758235211168652788553598537135088916542541983990610055184415170111291950858000205592959743144331678710224454788017307850903282859866541133837149833832841670924242660484008843770570935268338275293018885414832827704660828941291556781637173586248208404629052525563161462819177135225016322192817912211433444829749982993249079083791141278341327909605394554110144518494135629296393087886655867792949438581870651255578172203304944314876957299310161610033049897071155461436094091725592171536080091895702097132048924003031547523742281113995008363385929189988463565973338169720564933782396068747238559681712543457553777783574191839890103093648812327968252988209549998671559230540465288366954166173655300608821100478412046250351470483105928758182840653311699910561294623688999226905825396620443079878251733017732150473945389186888202373586060999600813291361568679772054064504508814646191892187168376021255118240681419860403557120018734262506734244055063797132602941086477672135762098333950786270965041267655536824518718489072849610953301242755864343550300498966837897190689463116105628815078785111703011049482312082782510588226032447097994637957687119589489004706506391272738735189183274612175826772381524293193991678569511656545712436208620265755213398046449377751413925133418102361773566402090276194575468802236545274215969940931944433295339510991166818994338403589660433476488970718127170776460473312935574755334031949099474539228587251333249879121211732760541734142804017722821460541566006100386494292590911716733713266250552390732564395335845204558283211294855083461706145844446706051682746052448175672144448779160444679006645939181317636598615259465457334510269875845844391354890688030848541173744335767113663091016502392821904796769788374364412856663499653919127216697134342947824627420827821015058228241361044965318144859505212778853936229845241220380087059663646290865516927403591026544179943162314031937532479423156987998945681595336352902623446189061798354847066651884605912086834297288951532394470192887234197103657988658423223072487645120419122617068082849002202642694207304217111875506402745307485764167635628127527417336676144804881808800455318610871566696112747714518788047247505852404148773582414871089104361237457680226367812014938337623811160450527098075550255874791313970703796261480021089138880008497269053989082030093173692630426599289713349430752150125645832835134022472242602836410406684315649358761474449550282298410891841424337167738130953698923998630716478414908773857877053879884460987934803395052429479006925653163144074874870653325162746646466873274623844035411331044125406349531524461105112743481132264512341445953379414391936451444940585315830416275506076888147842736121704739928959107734743798955900132951879815344346816953893218497089921439442604319213880442926770401721905196538296124396731298365567835148395932664578007157436153740543746686333928588365638224212274485349217134200448511014547028153720568175201799781136510615467614370055268272114981698718565732572089869458566978318070934359825481591151440559281544714242340343178018053407161670131972422459299467453114940890531714970736841027539061845990930351652155657261017039763933803068853844258313895231802348698008002374694028439343763599594104852783674073313946967198885997068509302941165628301457685444086957840673484998702236290348463270130381731729475575275908146784591244113479132030556518227597671430785481220627694056570740256561851969175499163589939995927853782240852199038975128623743378550339146004925218259571049337951213414520119856290418972838851430895292626220048639747531141126570292770671577242763537836297874673045201907049030447076405081443638564742188632316389550493883447305159418888780877999305151915219459549283311087355281279966473776343083368027408200188883322134621643415271438791879031155454397974685073772145800692169471267650421579637547433052061496009970243192394274194604955388857974938487881148706193488253059026090115033145636336355225655909979265306381544447558849609146240797960244866287642021484352718014485539867425076537064233933292995725094491583452735977222261650902108701047278348442158109458208230607145706461516373336933922264636212411418832092625649939052761160768893876312407685772366704283986172582163788417605005519851662558966657916877516624310311388350991186780575997238066628777992309324939118412715919651446405275645403394148048876994909594923925294957563935456846930787626421362822512211772854684870969539251359691352393871030777371496809430085089471578382874579337725195875862863968438380424273808117885150027373575563268251823647907323760426375879470297180942838538651952672170831088210609367056851504031037776291548726145837338474497623359126540045854771144671821667629689369670355879536314044576711218536725530964724460189045793169799195418705517676185199385218980862048868625346100050175201950929191165843255228657173825298872112690310172445316471194411447735099059359743212298882785043216468303631379175529056495451729859241924895100049770051470807090584179791077361878728710095639113132137115667014261351689985695737167331794948939333209806047861087870426794119114314622551958800614240686446533307912528013702759501279546295549107752138048552097432692228852167778596114271040374724515313441994462288459039626625121744591033129555113330679130680574240124922366806786473712250955103568237508176966347618195421129479783037732058975754770422492227282174138176696930457961532125516000828789245872323684026545723335760808107743402263972192280821692801211334460607291230892978799560845138536100311805150015433797301910664318709776899703134209190677044154850425722085244601121703061605292121508385799713537223690911535176546252818378974101246041184247712076001554483061887981982423184872372067857849778379764325132835602338862839364529694756527036625236628316945169915203343390668882662644892982871926144959202133708494259146557624321822373161233761890953445105502751955171404481444623665822272862453277414536097095043897011307978712643530639346851854396526649741189358021061479414733382683847646240020997605035251951581315239988623124920314961272403646254743814341821746227465839250006845344542740069489739935012979070112301723765136765906354980779340366632882304655917778580154444098201788254956173075101470062588096074684468486058287734739072776791723672810041985045887731396941364539940591143951910975517995002079226772482683891890795807995823114401052259015364452297604113560233205157399136331066000614399276960279474821869514714969825227036362505295130075925066068743161973385163865809561078531591577619142462007798762356770175121759304693293912779088471765200532280673672651523229358563285883169863507456901117095072450733532659145735341235865652476522336486240631211863783119508578090855189879794225585643428411583138618018912823544075552151257307457558800609331570942477089629600772822167633783002558767177049661654444840181507379519566880998805062563570213827440179405237951166506851035785737472882730415310544663228416669864760459023185285393833934844210964082617097425992729832723087455509936792515730160472050732885527241620248060112040177285276769241034824261634545529099598839116961318269284134639713533807898319116396423783872885820261786496149236965641299344890659263910082503481712096535171761917902239169740326571232968128818255944232867440635472715608273303707463512668231100590534062225838472077255156607318901515154360463275559597060848227001313490988792807662121978292441587001362151683662427128356246469612347297196881862953109406293586224369168717803370092428108545445531205167895597481734151980271271101404334179283428921309942301561057683606993925380106610547464254376328909975087114309960222872192210029053316107928291223996424906645577837344665932510945028133427618580111861078069179889123839756500010543424857326631522432451086845213984683006494849098664537904637760562870707114570833051385593014470036560259226443296089495754759989090884246969432556137438925212190392600583192127242846448986410721767542082776840175273191279855694368997310741536287677551744015695871274927044474880564457314030235815732899541252757136804790760465919437452046074728541438982960374119864882285113887500442285737975025633477744858324404714706480596594244707398233434672391227300525154243077756218692654731712635435438355516661086299389109000450962375378725434931297835188062993475152868674492832008132648639573743367528666143638720986595593388554750341243164821959986505152872847993362153136422787837298248633667703187563323164173878958557891353331872267927725687417383727723949487734732307763701030121353511661317290397078151626056927118019954340068449173301841103914003599916507773416975727842993693853245451430742991141435418655057226474624359007499224695166772838158730222096976805372094301036841519004715415741568540752043439164445896500061907095419459587525924344859280005677258152994152289590844793258629647662174488348436236547863549825134697636682919178025289950429331438261061851621778637136768399651190206424506405412771107877137854096001462585843805572763374693191000653945871537015253801815163444072738345664673275149737003367054410635941230246309108801757703829193024138003454903173230452993527225755131479085721707780929441159068132078319754484746560905425505890461138045679399744717262062318480041023927176164101667482432136821282808554729084652632790896032021358800297888080865853503939665944883328234548050119070822097584547491703739785692282841219212924885130964691312655090518871203181151062559110132493006701171427691174752823440262982624584348061650118967605778219560632859192984064840911702035034575752253604872711914471924306496813036534828255129830682295818091074990673545937407686627030276803468020092738567318264330642987642855560160545730013434110336716614770624295815605009621355713366989894426660450652849233980643842841490795756172636389397873520472851406641097181186022939126798045713794626199109474954979263649787378319921171639685080775498239773336417578851009935008835833598783905253983185805456726698361788784693984830045677432290589637748740175822946854332744699687821678056200787257293169220250473654097533589037179903826325283407442839117028639743617074543903770697740474999550112268073249349129394052889220278783218960320076713825603754414570563579852719902035337369078395572517415095727694801218618172433256519970353687760614734394846256942450633514063975809156472172654915727610706774247970253052021023160598052165922315341210565375147718255099257781615017639798021773583529822358149246011049338636490346717469815290094251387464149635010857483817007010140282802165002634034264880979670131999532432081652597470337409983240804045946392543447061274786388653042814758844114930712086039248260861145920532086508855496570104232752237561546351182037495300034541347123363988084772465528007989100261018316721978772559520598059947547905881894501701430568219071075524902899249623012463164988268900878082496037027533876442695110520076901925289639961923929048062320845150932541217823475564136215040925037069150367237406252340942418654604695617549999207280537214365567038566351569530311893017761889855356825793372850805799761172126412640830141280919438610591777802597113509578299526944776908812202640283841068581075287898623712186505131090999848511354576014880114632551064424100471004927032944094364528028406355511960515557106258035855658943778922009993177748551998283556121093298863796531764887708817374316422945997746409987760618583520494922575534766835405433986316061369135616295681250344543256225099711540610289252003433696034889365108193276306591100100403723273306456155271180864507850428535839895408133752934685686663822939719787669416620259985587244309211771478257004811455364517159034301516306879128585663073390294260966660146772285009643125470784259376969820826207589115413235820595212651549605644798261526275532501540737746995013715989595362901674491928093033633318636732936617376705838815335599731186891592242473382541248529032712241664042329985313268351569525085154565623818847674390022966759057301884953658939802797872454743030611327726856391445097386656786401504370116327403185476964120686131152926516707377500153847677485954688689327827104683522614345563021965873654005202012794972814809259700109993396604432131826723006119012993980208912468610563960211446001543676911223429392525305773130824959536116700273575473618354470376788494761232393375459345577074612882661116574765333289117261575074513725836979702198927240745838465411528772386384909914169967671062205597986089832429297413390565667046775946302645293106425864608723036604671996459008097694844852432764975432233209094816783934295967836738097250196902468838978725817261028144145474224333865792974579403671142122755156100942458493919109080031575274440173457551422174064990078528924141345733693897810308259937018314760615861826526008712866604086564409582869712480528877530649899418277840700740063867719872161469549913708408702214031690082679100287276866813697611654452783337357187326404389578082458942103088047522508942470355683053692061645125293427388919668145759320774694908629735485250334299103469614731816451026183043708118262853052523339356807717658928824774890459650481563167993057555526336365563365328307529278380261565932878868269244417246352207037933701402430685241250300668160736861446409808261587463426830019018761513646548199208901972295614084642003372945702145327200266790256217815796506574135575103389998877170474108624074076934629566390128735551186812305760308478817398441000268022765579972801830044687565172728208632365270166564543915152463678777102473287336002771759840422288114446256017930574969507986757936003533659247047362396689360421235818206774402500323005652568720218586629884908228686809408789691556528362694286666201931030815657414960895724026294787604885468173241578458899018631929234770584042239634244303059373070875414945668568162144453405416760556964363802341663299066548186972672587737073528172932268216636933830013349128763809183458954330674266734077043254530001720691724573531559180493314519947230310711940216452971907435110317095730249757150949972889713853044588263345283404487698544831124875334245228999934608324160903608869508925071844675196102031041798722863648827709944258223667003253357347108094916422983281220228600046407352373730722528174528249092269527074132738170201823355337139723309087057067921280729321615971235245718664108428598856481550520293615635797994374292559973823862060539257930187534209718110042085278289658930232413326331394430263506504152314503752746532415501390715438262286699399815935369199812251631766581641449360198526891469085702177635105856581028687754991813606999137450302677116371275072145519788477981721017638504434705254392127710764539579044623457944294214849508576320625879847665107020502469356409842120167029254770747625423730888881695792689096771749264133418886482601969031290186236560828913493344972777982097956208805731066054334058608042547956416455917114892724635663473038691238638448208283384759088297428269997441797103631630349088660589357690896354615081623868102059558854932284301050153553560077116187230156721799911663832129990194935522461895608169707666480188324564308829042444774806632364394636674760518661129111396408588609939149833019402986324609157904018821479615273458780273539923000229608684645816708261284137542600011864601757177291619229528006441570117501011666611049950215227384099616324348403243891208187001130347736329453691833844305495623304959510050412263665662361546313434331525482084466363400550819413205657707109184399260107704541143142335200947169384798671619685763897133831998000730177670361640183675122542068810054089490926878792878512029059518764529833573118225931858859382013901828363289075591493669761671814456818517006503149480747834716479677539746514113299397313284276886756150745724056581736674280414942676634979003160874085650921808733959068522978519669562924624691797398022214021459317970246093855149043692292283196038537348585542782750501136461128153410149955197549893947895714804693652406373639577054924677486571938496126161047747377214964059815552888177532050736199477957008752764323681980713546182278378856961918297115960646212746925204412086828086434629031270649171023427492198889505763965261509981361989391013103055135875271811485203751025556728629269971730663534421472859328730207584174539276611496639170807251310208401015401359414665944885229155590715680226740795542999622111950084480011282317580954626577496077405218958846620749779271391028511091945585666834201700843460300653245562032270650390871933364257535634646422895338178894380982233556303831784413679906065322326071071103192998214294202121423207687105846957332586474217345138584116337875157761632053413167208248091939635553546444540564954196174468668406976279126803072803202916653426458648464824932237379338146588618977042225154999186881204417160088376323747582869608681958784652085174914138050494243788481336398782520805885068286003162017323886051409185493217577915121975525779703780312442593060131235481047278246480988452266804732866821740880804299542305596406358910790356969125798450015262286030181092802949165289374988709579213345253477676364759094771533004590767939577982400080431003488262406573199352975484021272431525034831084665795158058199572057015771154939822802205122234389967732491547674235121175038730568913431404936769531149977648571937323452171017817403648379907676837173383749137839757033340603238891728536124926718738332001265739490941736022544971455280977145389936359746528983360123452233600265340333876742865385321691174614558200970174756726956946828298427494766154136999094151679609640065328277856966610339796795774348292354871758201736034900431203658683418446821007661671974492691100426254685954375758594064816157149064516048259132978404348585627483818151867807579912625835146900397245125361508911137564687326655046984510551195536857216392745770666244491675219198702071007922976267937460846335657951321561756735720998390915470925326435727497869033965794978781977787196107848454219504144124078083010437617803874443061769146918232367001658086624154068714526108932138570543119152158394679962741706840275507278360820933911720948885014263734773403747366123770413427401446334800128263621726243578209139966577148469240728967368166551017848547820954728538548124044670852696250949708649869646945479821538047112103825136912059518201996018548817739123751727698656715110706333688635833035547784580964636236356523065476054183710899817325421449462612085002460847689031175596034545048216876124815981088338600614374017855355732028138192063204872385714681738984397117774550243120154514344638476054479877234455399628242889845100596619757991504873515800732833641065083749865148642567630572720051696011873130570050327381860426276355137577401680411752965518961134677418956722131953819361891044988442948109945194783107059378019467547726834288300132027333842978701049679529500078112653251093047073268083924280558233185207677360787506144816878624652428503003864796743595255297391646141297401076420240488337493664276705298724844010187582188874435847423141213902740439371535798837427529731507241255053308305590955303505540425776775004904811402981720437205891542536718112228487791325690390374867879213134740413375088718332671470276783025439574911188149374765553486814438028369341280334204026836439645429231499939447558847095319223004752916713592166402586605097133489649909061029759198987513677870156818142355264352954432339342345460976509379514596726916640773559845563564899129967262267040242543391032686683892348539293600768635947449340291331096954284046656452841839270951715736020344120231130890472941001889688494866131923605668253415736244343796428274561862694756691730406109670247665357105325269395302899001649805844184568389688478066834300469420976158485860645176368698853581130425893807732245015430033814074149221782490019447823259358948513715389346885808810791176556301136195231990320004045429991174325162723406599172512165195979647267565015416813194962835307038451597063185500359679444998883416740137192545609509419024263735085564475762903110335997457241904605735074758834886420708331376703056251448366651968207068497384846823749879828456536744341773956945303724770226267452008329689701911342432765256042004997976487936491130895087390057940751086983556443028454294726326448343808158376851631707444115083070566452406938078163039501186741955846700597623124334736626185749587472811882833367929403561871924428890137119674126051991483141796321424350072304393843676420837633119778724153927224869771207846972709883934229489782662223977047968702239662054598540746580006166867416172678414829750844027746503896995584198098793329039397545608066004008583360380318923456726430143108186065079708105629364592841547929379073411185635207760446957306210801281040205055197535505430073297053371515679358281498659017653133473109439885145549792058602272463837202219528726229721478729654620469773105649551649287052323546587200227540128493337731469077953469274539594235573222598256046742777538705136290567650859554236444673739243965334953011946163247568558999875784154026940351419394622411531589340035112469268968537998523589866647435863713950216393552942241579016999840383888446975077059668406660169050824378131804562306057045983861822115262702629702582900541966481693329972126612478484094902191451656396262028490961327435423451045124291343275098487542713411582147514756630696165154002364752697396058286318005155976627199118848751773277265478711081934637391855301944919300961311100450269291614294506744517156125325688203872890630632324813483142720056784960789614113695288978092638080332228077085330042894625027740893699328824767082914888287065720529934601107779724803348763100400798156451395244438165865705389035922259693601057361518894385150079261512920767665049247609852284207910604777747555359567293245954317322328900826815510488297260408396415394169760937727606606678599999775449552855466067112264628903175258027291646835117314196621003100213231247349005570950204725305688114963814148306672633186831522411130770188185874710575328142410486035060899695239838513291600285904693848119361328684830772039377149132120428149645684592052809313538425460526248765683129604919678479499787796905297429735312020818138136965234699603633559854128506529991459331529924774143980279497877041020377359256595588888116238898243086156740300330129133487409610837030708994181705721259600581354057406689804310174141336062129246992532818853232300182974297469088142754276331148203592922909879116585219853514044768210353805161358067812845255772543096060777393075391852785807018576032290964096882318714243907025906075033359049761529951410308995907083166098425189722399709541462636535448449606154526579634891554915886866548978597263609615576188693508594206620173850388898555848213510315816062205744744785745399025242898998685199109313512879318576987161806264121071387918431128680681628788525734011703849744162379402220520690002629774862187344570781474821836093176010880216044920754396702876705412435891982026908386370772782826093641169435631642196016695253305359210760366047685704099897964348755138242072268814659009558201159434850548208711257044320039220267334289682238255484054693197574845150977513114124172715793562002450939985191747847236285682395554533165203042757231417977757970350302080699359534656398168768282426003018628900290401440219659049826154688536629317492677489923778649099737609299636965648939929179301239298513420556730862088701313215410510343321715820672858074099252713989383492923431426130396792676126321616312223650570241961463932916261995199763401423801013700124484233726341516154672565877727126954813398535535212136829336006952779847373954719870860507482604094313789022976535800876353136622459052418957603785277052239554424143757803131595897464294372369948637538444577621154050563298716850429699465135337689265545645916175127043575757502128699390045605811365706968075143094541808578447457668262159487207606306366806824527424754263468138558768497542150513602296809881604470932020575201752039125468001283577442831528436547309144870260558872013473402795126918388038028386954447494708834727308654646085261162934830148021670716739845046813096368563226477213882467824925591718604758811622163194831831060118395554391402856266950696445129559531830325009673480157336453115470356550712944591807827614321841780696656585381238690197258493293786676398434771573322956524649700893351651517273520006642331723616239042806028052638542247480488545844819278964050089363811979720644702576289331811092579913246240250189889970893166228152408514517579203745229698737461374681247405679159229225224287732234071530871788660535504837924688548935876501023752687367724736515975330479919463703327521462781888322558621022035961791155496598988071576261887812432321216009904562787864481698034760816822065648628651191929554210401747502057235092522508593593334046469194205742176420845381936095836347564509174357519583528846853158828327392173128334553248584041252251130076049714058579374682939702402237182307762196423823831562420780159114667859964342751751771322252000015538527217542618920345103200514189577024403120013254918525287439551381916319892540213809668213620199054614372829741796653658140405930903219376847776676607984076237413899574446953360939753660753768476278910890566070508996123975502779959322353596416788065355580283245132550336673164825029679057710403267645031456828126342288111461871444322026469988726939350809260179674849232927498683006846636741075068227882272964220395002463043952851521230166812522360027721886653063981042883457972572132052579749906897955533156501693076810882860812973557149615223752386775372503029067052137022973048062485220362381675726492837925712756379562069119491532875745775690615091416797210871833428722020552730117230169948812751931477823303062965923895227829741157199686183955046055698301549078586052544014436836871708375350333949024598796304940495134138633507272013291331368553539871757185744134089434840766729623399350811658431828636417953583282579887064751313713084160180623167972543534791488120270069598288990818762376326258661843368995432720948936618958924758501530815112807047831375047521067009876715541667047617291040290609624442108221939325237521065138252627680452147822178863894583072647217495472194795849532242113521081727188872862778582542774287713425747930641047181985142982839426266733786243041337236299097574850136098342269212925025154285078947059022023327132826853699446898298521569346596060656287824839275478663822603706354818137602615826245447066596350747690506765207942925553038403066889905265501839206107904063697338270181344658760568628240135992324420335993859053670901357547908276910224830373790684656415953540467364893117000951026120470488576368517224894266305389260448247132178901022884109557358215138294898334138579293307905408820856777092479945129917586799398859450276306868044257909136066981458506288584274930841459782112150915411161056542780577320116763829537221720704023115416088565992302687609237924435646038050121777309773323198629733433776826502238085641280085704957920761118361986639665941353014176028930009729486231039963409327386995662665490316143266271656057069363512872817117012071000011952676129636287478137008020884913681317569665442321897909939588619656609886248518724192470804125779880355159397690176258351469672149953255632411170674219117207116689069114619994962309369005042267512298347233607967408149283037126396397318448836646181868312178623570010669505099602862114231516440757734876115549523540720101843435226970709791013611152809431936391012060165130114642566829861906068093959852952296187832530337247341962415314965019679881179129241330066351416011449411982812503535834205096380077232519088266001857341388795329235108108046025758733862526951962755439649378816175273677690419367243755083475007318197392116302869384832405684008320390136039939979951857271604222263101988033473004708652091363359590326831283241383954433198128971520470716366389721515025555665079798125842334871478545520774522282253373011133344818243417498408278334425904545189169878514004122973135246699629484114944291710494837722541441510060684329080674458801698821920763207888905233482753456201834858519929231637702380337090018467626300278539070697568792565089680275483716933392547032699096327473031858154246511628830967544281811477539819141643815418655053893716649807485162532854158307205466323932407045918655112823704086197612843478906762601639930069670411562464533655342092783017318789120320569163196238432180229178629257169643765778077175884726295557371155565133974182253015820299114675486177184589825347809197712064875954037553397564098256976921473470678154197088260313097020235172236658127247719008294717807291547836330638389101827107171400985112748555842711029443077563213901818919624474331965111972877905392063946621288962910946338137876198186637639194233540670117107840788563873074076381849035315726327822121251943686889022152169918621188682780361194228623890627347461544037741677318081950660196810216625527515704357200697965696792197881763283913788975794060960206638192549059370700987355759678402892472060375952009401774215502722509173616751244320773014539546051046087348314231832035384586481349412799780760055331606483858630552610638601726250067256557319769186574116464773264894401195833228701967498516140743664764377235581745701079256154469042662303175138834525011738846173374635565317086340098372099301654765813299208439709192923697503991394553838154273620605993955558106717061938862713066623408401852866071362852396365997513425971178077496317172143260014364282881890613990381759908907737378337310058971511353098582757703805513732828216374782216218829241553760685389366050574941565669448632845164204424031053673881736627089807404230433794456840123565668767559164289118537982896635865472884976438166581602102200121802054531291483948758397442087126314636996952612345836553293984513158141427748814490937000987064968767723253087706496004608252739795407622882873472634686110607323834770502893946119946735556726021964969623251854501279832262046982586743886934636395725608066149692617228108122005092719278512393154468269531078526062234537755628537217011844822529343585826862287723135516791020175840979158248675578621605662343487845029201476483562664990980941185619875548916509478665545586439908242686030023790113339256773971853704435565743069935630398019902834279860290907958800760172307956847346435954994916315477768321285040493765988827111447160052450068655049032276391418853254791279885432321028704684986899648442301757908088395521560497301804901022332424343776864262659152648290689893965748035785633292763960918386165224544562844324230829690310250795464654885905996654211185687896132974853841336451275753684010218516063029439983037122674398525615078169077669000264951958694337742610754743067397048895256142434856504172160880899830981501181560838322874954440969511181863917715988664573674591693191378783745323896877825147259387868290567637670877513961185722742742522729549547600126132804281975069501283303002429808784343054924810387645186468253634863967667305263305524438613028624716748146543382075196286976316126125221750439600422798302951937524719765530081289172224607350724925433614439883185810391700639059550464768080320934994032010709755160202168238433636159428319224213797952186588962645731421519917148100013005265195375764403847294635666094815810195699902043100706582358066089432255495943906936717036963155482039254829825461168837163214151711657687516213584255907840076046798106953861183300197952010938614101144551228108522494707982524957019631155025055123235789640951555607176077436396512073484666150675041293403139307841342995137147770486551024119956208077573854749634521912038670261471066634754757693470190338675722292744544290548245647050710825336356294983717743804225203839892309861718947671143320768721886883904662508687160583483245201327434913685730097031656654883404658197140165356724038090997073910784365293417347079453169583420730414342188546602195465539418120451248394824181563933944146090752908884307311294237860509381868416938934181814943798673666929055954302356419528708460041655750331247453293826933101632483227878304545507770956890449301261378013990945324735249100452797863771169468726469436590106914371752472662895863328246767966511362791767707992895688370948649551506732573527816775684206097456568809482499637452445949684378785886659558120162827690917555975823000496570275689930463304318083886883751538778503132308812526348166389976505216940700819791287000240793267759177098232560180577671747927194015118518563360484545031720696462240860084333996639430418872708782281177056904016011772201630464340114570919336649065879104613641228076508448675522632554796085000058298699243367240628448192767057375789867795438045308487418194916476445397392818922062507914389673057199425510738918661583076317718018560258992352881424256875428577320572323130379095594312476349251395787199377822664447694597944310803028517588001845636289368393964279002272462839164024338908753169203497168206416432669958827221391364629280563340919588582089562794199695184554096240880934977972790582811557489139951613148574924073133481805376240446474624293744775582853110497640625312177793933582077933394756839172774450514647914974888941370283532218476369976244500662519019454012489207947116929111477155415703947774936527684109649799116493663112262784152786942569517074216888080902389737040145214917517985811484201544498699363464394818649464393283724347918052831089001135852779663552924051079848544713605206080939188370900455172340900673260742435053671176651968712197991865315348657737947009120669942037069772169168780147317228133467006627136138854914599920026519936698803679174777326759030496001025673102805171761441485871220831964046623444764140848943786486516547880727017859083234457965953438042705646639210614501663603900678850557491937322429791198231801501503833826970568414133864998315712281552584430741477530406886039877624571727490981141883564748607800446542552865483395608448596078854445568829979333330773083442085111938375925509964921783621425791449564585627242434735559332857618182454638475862273438556303692652037571104960599857843880086053887313384781848260029816641093195133061855034087490074202182040330677490493277836754908932112179653572727557696103377359648706409349944301846010956737002186435685442008565285217980810270112773492974264183566262685031280532795492399574715152879106444518565857284859389154191516677176484710877821944691052945357919503283358627522193134910338595273826102534805036719419120700704339476811272846336158293401255867192680747865841871720412922116791406789548943076117249326088350986568041891517269065788645898045308739141328329861458218057755104205622126141702556423752991686876689645479976440686572939713486349746883749545684502071491438244298885863393190518407300550523967784909601872553416053840841885764685769538778789451083852611180805948702234680495855853499453804333718451834047734483345155555966282457694874143402221552383631393371932142068228616138426211313643197441597248603805282937512322678261701988590239557980347751312287332549252519714005913547469035360508103394445687208985845049125840057565972896607252745797755274929557139955343432969835197803283925187448567505582274236139411687919463935171190196914603670274586406763814585606165779983842429264672231334499426923037108305121461120708869318796165694810429185811923961267011158569262545290217105442900627574247035813229576190428940296859609911472297197134402128518912896532200925179313635086618314902967024346292526192183922388573740973381278910625235720154460417396908572735546620529766480098961606105070316403056180120999606223615767807189403244338083163257617580785700336521319208970426370243549026077114401066626940754715982073650570670690337960347257771607449019049057603875452581127088795974847870042301271843912894730576090977331530869102652363969832606991577216882680312506904692127892760258259672888399520798139540264523335543875886995346648695685505848257319413582045974875444302608541113692537949142682396967347459475315876311008554933908785683878590096512208742817683412485268730696762097301254725289946818943315569178894457925022269958868857574617841970311730204729743229051184241674312011436419877557795404547119245861610300922091229933422004958674936275064814469043851510270766459970966403464695690625394754180573064008343532349160109007284410982273975271540139959393945813006851150685982798236809091441455248424778098810174730248904983406242374153837091147794999069103733587535850546105904596657070877258565491566505340098600512257437336038417765076633792717601319605798221631823965164648411494039241716681418591982437773889137652424317686556219383885667474258307953640815879925409866603368760280564171053195406094434394128511924702859092379742752568787992979352807005847193998272249402381314476644655109016555069345559295149881121439636076785749823851545999585259202017396698675165316659871347185971856057717333869642331270216818445750728831895366612696021049285007944718481656566294000632485707709548284847971427459186817243488682637636504025996217829320931975593192835035402208141465541301034935201655716082481880064906360560671544249094403233671130336891081207808602418003973375307432987108636019206480608208683284191204765709164994468222157248570171394350420596404988918280879589486447649660204168900002301116246286851996227646023522591478867472632690164716514854245092147234986961987461612401997674053501797212565800281759140105586404907509976238591725389769709679493103492731350558237386661782004258436212083564102767688604852185140991778832266420887306643303959038118376390806230112503610157677554994175550221755368826510337183655320506239140456494061558137910749101192786119860582539212324717031166455385089764963681173444085473681766020530737230318372734583172845293606816325450576719094462495901437367261456497426552992654873967427565054705667756126749570709740769317289963923923583607658517625430379208795933634197561244612454057800373978459463900762049491849414907239846786885533395438682480556919939271690259472213677250613252583636868411284712518854412213120295899965411514425444011217093201953704248708438343482198652445652127633798484543441491976750119057477204222155057983185537608978569932482181068141167079603813458676163887874308320592827447707333239073301177947174204036514394461495530191743554947117953724819492198737738936087077617365339985044419327435983199694702583320713619558167762408389825742697956279481761580257959006355617069681174469847474800128536323881266280057329199500055859469348262133365811674288735053938445036298078896870319668902545450257957532677762062272719525874192885152231668562636055039013557971134944286178563375857319106009056022679558197613696464834166140502941965588577881448249818415056341728111204317927391661370114423887772235608613314938141829336414244723205520015767964066760684205754454826448515321814705301391343409560277117145050122794687268687878295209053648295122110831633728388024275772358571652502824111880463080724727105638027485581901376880132588023212748820033270514873520382916530030261128776039734834679290084214029615860296400753765571492604061867095496675818949565176513869486301371908495871283698989555162699665340708073022238733986414328541982135654970879857387983258390729204928788410447594889651612957316664982147831228201607917889450781100015984939559089613132539514570051512052032924212433063769411671862191989941183875700939340203444387342347695320259407485099678808308975197162837487996872628170546374443295319783680976523453831246079904511469004029536830407421358344504244431160612986299966282403220391501304002017607925836134450667462766233587284434496567132620558950205781344066899200125074942844004978048706400793488617133704409826197075415765801996124494754770499595539473601581413051167651982361801818750451453042745711113491252330163448036733885509125664299280760040141006381972380775639837905683254063825395452650570506708420104497970470465610360017239307131886129132170978550075906859880800209748842798363623659657268372606605775415852009583597824909908053697555424876169668175272873506959672584901551292140558658198610863983627560278197580691049448983290566318148223342358262802031968427516589822997588333256353505364620438907665819997006416729213287020706358959414308087397544583891033180993546712862593001154228129621228118305624888466548250460247953476345061335097259814065800849763662477101387069026593681697882646915493304925107325137752877338277342828511582293466060111268474228897299069335498397107032803366152752870823899387574726327057855343443830584788291731410784442293687389395492014164281914261836198167759340564657644044467872937604969058519565431510705073371243518293274501408997995223414580612743778625626742862232573169225972552520651745471870324717272420621830357399769566454385643379989018349655525726926850141940295980197612085678629712347573458580925101056559730804280695340579946643906092788078488568447982981182140064740571419220784915557707131396624640379634702558225403049744616120618133456387554034229610040778610258542132798382781995842491431521473711723100881156919214811595226692513388481348717136407492166767554943898406435764035419925312542336115903494122435755990994318253875328577289879421486171086079304188236749582727247337681295067905972572390246238163751249031836512752241821140305000079011418324238504737291191037233798166696176165137481316225001179048153771143663082158451398417192150720694780686188630588341349144458063425364049161540427623348718526671021584648540759470738304661332148727516767424613217367948830714228719476216309879708378238906579235482773738822746175672918745653787576091068555547000068750927527770947522205181294951870396837736137971440674735711234383167588879346417805679370486923586473590162359192592342979295566636700847745941089222068301307151776969028724837468815667430132553576960972386647881064362629505696768876974212977704605564634551022887209122366025019880711546552446664498643107307318538216558473048735784433500907222476831205276799036798449846793758177035567096055391457826976359078134897177084652542944665642056984254428479550996524256624350121142507286529824088048686830244615440554075236842164594726819178809179878309204614273928263906832487879777565691454106121349648936440526938730415848803026349276495242213835717582309731067368697172281401352440917962152138233078066421516672102260671403766713295689823507584172403493561776861616730198798874524005169910943393980771828144194357966866675425406688644074995870501200900157156156988515430769838106583025384599762655668308306616582007501696598795168434504430426584605276564538503792131228547668342750125173804955385036320232591872442095703543491943128132254536409249636828486557766481675231854870367051242955877972056872989082025300917989095368121107277323278638381227076115287741864737143127322080788234438147693470429790165825034536721576043184681432216987425813072965766498933978452061314115983582482461494202931943151965617070388215798136469788193323638338735796412854760707352202831238622059783746994970140915862283356952396476859883607365416178997811502906970261019595566605166491079475250096720777272205328410976076198847987969305423470979429698195991336929697085266317323417424883849166287824823758044161844497753257454234989418348511226278606340076123150365364015381941932905130290717760296265869379629641170648256140387054794672281161730670253070341046112987566995427940512234468674100966610918756357422168732063878041423249646299233433784436359417372772245918427833677026922202938759279624235178755688063820406748181009439476460834342599964034282339848062075966456918939672135748815921649966344756036246653097919356045073794230477611975564374445074311052919129776177877029128294943665242298271012994422949392076359901000535121953287916153339062583524346631827290056205222750269180959275393474003262028110876395614414697394227714681961674566979781355859779632463770065041009899080327360368292385655032462870721316641805510870885601122922009296134420534261867943395843551782150714815656435735253563854961638120298235320997757972295099109841010080787346431891688676857361669052602337975313087394075795115428047729884268867198624801092655690813318714848584226140106520832150968299336501068725614740338202016310310391969303025456449702403423859686485221798812586225307315297021429683534220476411440613418859383945338726802467691085812270848164894295782082736751930931421287177480874360759549934300503421428006351973686948481818826861715243781724758768253542121200791101357286622156200957173692262321330699978371068865777263670543564497490280738645374992999661202350021133952823824121785532174704194962722275729167673847436049125650076856557309703209781664781321161783441335138511472612705358639038701911601134542834330366499080301990173676396098396389364895252562088051313423826908824679195272706657318405537747503546587336588184770875740497833414829244561608836624861702812448920774688388398713150851926802105588011184601938532154496117491535605321218028525658856969772090786785429653291291797178186148511042244516201263344890560172721469378738619403109591641429999089515017669408378211831034676494179143798460647957188625913416144642754598546808665702701973394091919298490335457804390722289146620341851173081247363754048915659496056290451714801255046985501526962967956007446287118813457789077192890306371500022126653952420304124408777279766358128523297900197384786111517549484548733928055661104065909744030209845704624291264611230437909033491815369019629724696292539282080774359339652461292241336294606708656883342819238241710735432054055220572573330582527974142150020076559768493864566336743659569771790975745768555076543252977980096970281980409142109479480150242561906788168572029252782609805626646588861626944544488106053792472890841885365777052927418578186729331126723505796992315501316712389361292476476890980224439980604384341800545925377825984302516696432177968338947882873871769370916949656698613826231273588774240073801572994523255663065413989797710510208604316511309550319616695523750295670860719445881774943214512354740939381671283280380699526028914149105906502016625196978819929213662858770194472511118388736652856866799459273816914940146441844605188534460051963546823901589029662875659632319317686916018969915414431944978960748120819005669659043179734360753380000203525834161182995693359368425282167214835640404926313540532709207318264134860013941830058733331552591986750499761554992488891187168243541987187859753698837444582340162445221765243055308716035370681768890257025237753204494742927264188566367944146523014107151101408541963580424746018718080943553828858686539417406657978433199139490955627009635422925735363799842514352330978332139741629817287058420444110836984427128422446541134481819008517722706795451181202255386652431122702482221851988389804652286998421036070735398054392052862744659681638207236398070505187554912681768462294312515057316422520798091743932165969159157931135727152997205689993069273072986888371086064191741078046956151195627168834233723382413919458431308607997407245514259232964764246049762834210156766467879640247445299679117758344963984909906325779372123253711268915008514251767357372223196787569082016952287384163898784706335105112909175237774484155044468600365385445500617818306925005660398823354061343270578059609307575052780390057051900146755224983600643059317868303257649524603911107605805761864259187307428776230285701372106832901766018622496919821065182367797600771895563751563244446232874497490029255864238004554667765769446579409317903887292028370279733110511900747636586774445204237972829481743380860481749161471336694386307118221336439145760278785850766760536720436533005655757517774034660050782845838290887263221455444247626565554658755801406612592184452876017494271378017882049792912102623139623379864766395438512804619667871435839423106691027155202949985653315488823576222007859270925541225719040260323653847947164318290607546052957547428081957290368211227711810936899140879929020545239415439590007278863142492932203181441282653663410200233522265450188215587243810212586974919858340690369585207951352312630044247223652271621561716473369355191528992373173768847679862033918996615215180906657857373915806026708120040668544934171957454641557854903230674494920801786931472334911135877869146318410214372925768498868571007881310102095861416167900685499201393781749692502518694051880030152994885779401437421114368823623157012246503666344068838227393406017841108043777323598542041446431397150154438689687988162197770585320573843971259091802492305551415244672063437093342904820377289271529936309313871340835037760482732501091906790984766227637498856319490857336594922444958878935337473748913655918835649316642905227930099992187660535127451057331444264464197808798317707375253679106192973408442863761861103251011295754571362731225618919591112424122238027683122904272882871215975045309730536832278966044053398802569998230469231635432031352819208503170315048662843993577025678227915261331369958073612738882939010256732031548091453035947278540421864618015122251417351454491251312384140626591246144774219474513797410683441909894531509930607321248909155737229388415738132227518249280158556382413834030433479905953076822605445112597148755318389552818140221929987264166469965699176286171589434193660322019491083416725023806768018564789234525139571596204580159991459976214001475199060991138543987462846286543445819638772031184028687440974702901264928122297947550965726294896760759774351646169749192545739491898630542376844380549674077774988367071854987723928387101613631060597689429983696257938210785013021753344879765737439061714932275927414089852992757132044496731537498090173451673005792694562518734718724113342216913916059936057510237008753730788984499964271582631198020366654294065857316247534131798112272153054028986630615372449021814544559814598505068353828514240238951144465710357702541828872151527285930380156975146797458945820158193366222971584543336442334684783958729933456955388287496973551933975682497383737460952730861802523705304183428268020381114615496688532423386802292832662029191694207870644112519671119572101517134538843012785193635192339661587776558907034826366487389383801247346499264027785164614953378725077181761023371450593849631950859874794634922358410208242636887692678525238489912745388910590940598257546814599888795176364429821979869503603617835488007141910913771752198170857626641704601238384988193761108135860757273505639467401616515227182799201755931116082556428189511410785025189592577118276480405453461406450032080443445284003305200704913541272068254255665528691504202758493157511496621542504413591785031721318379902138108129446979548700708319190650036421543635532880881381864708990008226697523458700332904990114197820485469504670577167973451387977393580922316536942248532357389009998238149459732445544094740834824531404575618169728339144834090878500167178744228209358066650859526865601009279410107090329352726253160225566837535401499729250931398104985278701772813361172831294466164133932502428060052748509181974680482684265485322952657315099519924925809463726910208131202066856320125215165606674632782615659095291714630579873585203404866260224508712615113508639742752265478099425759933643680312402272698688640204946973700123459248305500969060390308665355425335678737708576701998793767398482981881528027219141628054516669010370686047937646632602128091406323892025182699909930662264567585319407456070995867411590892179663045965705484603883027465438498688018731979785129252680516126982524029792112976210957675984752573557475529749441265538976712116738072537686547039090594135048146735015623877678182503549394601734045782688777488248407426735320145813075344179909898929149617320613045627068911768574025337034490662371115031639862001791363925788093985360577607317625203327510171282384422387702554205163495070804948473584683771317817122357842008188165459517969175776531245946991877255313397455558625254166318626616077581675683088377367068619088634639801166141843354701809408568830614610627747497583626537362525568345584117976363123808861612207605750112918894807827618848929926427004366011757088085684667557859336289883232360192691401647085398985973723296320575714013906000688552076375324471164922085554993380120026112753415705591339751238533665390556082384498890207098297071918708142589578454742153954401255540298997808676388181211164995091863442051384609306677988259363700242820242946446927594000271413071082375446986976393210045065135278754928271741422949145422983684620009291646745643628241732122338246318095592391458053076677461569837662215859612212631410221654883145172679733385569035272242744688181696776014196240586826923137290218736112606344370583140749353173923230932219212748085563571332532238731130156538239102012774030910830898701043680676124677691970908583393675011552935404886037538286889509142841744712806547105175038413163052882738501803106425997339436179253021075018008230198430568217111805665545865973019451369325355637132139503828594745978923105969961262848103145961550305830899906030741904935734047623286797754114772854254891916056326368800408462785177163013794851715788027746754248729647899575057947155089434576870588677931729435500812620714194114952756742994350229710504593237325302912081268807025191300263387148733046976020639918608264043590297426365759462577263487103692132694227165094405184694244328198901232204104096254020574413255122341313080439620020126482698673248879827903693079270009816884589374539731009093421382006900070257955599166990483639025359725684345795163268040541518697377630176926408358629778678334013028514748509017411423210536720197987045900914291038202408922671126038597619164341835298322621857596839599169637225189105357232170398760601676450074401628235498149436112772554527407846958962207487924673359008670339773846845884341305234902938775380036786283324898622862089757444840493549983194995244554444909184818116202030197051220163742323184324167597756094846767787512102296297369302444935238467558240164278847710598186090184141174885898646376752404452748232436703642716834697955565550944039826853728401483819652974309629234481574810571853715128501847203103403951071190566127621849579458446223727668279968166328872650919749966255372200529544538304977872988325788634016840271248334062301083219274791981662321350574046326109448401995152962766612798449622572484200460212554092797093830111517337136016483779495904315989315951933079914878025501256170652818784174993884432168217723929490940578621897809104822809037024142948321399181960012034220668447324812514919880645976959212599326960644768814164484483416958376464185028936154555185028353613629075868365043388350431025759039951083439667100530650017932256796781543982062672344156990747175108179553722737262690072910568417993120073540901298209100604896883869986831605759505645912394804461174394718010629573401168039497140367574691685419259770738974309968395972826410479790890794152289637205107028288167599238327239939058627635662948225837033118040265445308348977697709692251036958730710842567934389653127793100821759134392296834237775720881770873066741524552738230219770377888581208168441364643732019673133057614024151127760406405530585129138680053404804562009725986653466387951772513953655707936687556879279914310166310214538811817239083487558714432909225337991414010015431338886745608008402447336788805780818010054518917011223809680802768741757132618786582844162717275347327210499689501646227761540638832401349308344963687048706520127437698963043724454195142545112423143696385535877446361542852575786627206022124445201743764618988464782776368382470860654554522526678765451012353820708213676518835034402223181280667683136248432227748316933625961199009539820771625919829869286550535159447108474191104243657480938285419064012375849982138535015877036860462399664454175071191488481433041282942786493931077619781542158297440904954077935122524306794623248970205265196158449285189233454234479774323628122969930458274227977584772888790618064830897248375654122781289380918972813497187434387266800210452818866949332433943013681484494619734997480486704491776634699892780596228130782748759596852243873434879211062810864066966495965017327528380568676398466449002093829747951895341170531000656483998958987231901456787937965026656191619926989245699211278306738356578251223498850394926517422420813311558661258439784888500846001131499266121970735544613905734840055681353223768552582466336804214948668152358402013707020977868315258368867705021912911820322649973527670218503281801923246569420321161895012947486924801732002750510828762527656905577913696962018812989211628824825178687041055671951945010218523649831418006114089834502574249007023388893215591498170900857830598403590354724847918118960603945367414217144867801633022686518033985864612245615618984414098206141277858565565712450726226236759276229844858716431343126071110136851363554828820117837120964960700298685645722139763373160454001499315522190901594202126521423401928823244476725909591037943169413886251394728721853651564680715720842328580338457683202398755873930328631840532370789888645865078649453085679739552140533377335521772376831552677606675999628652375012256717348149209880680228980791605324211639898447897713570798709879418387077227400669175985874343537157812271248346564596192776499844901132622005060945083257085897724246583919799625925475448147734893108360310203320216026007047937175677939916700792715770710213891859053410579414168156497396642281893789254900498698859671627406403423777089042401866532121451552171162829404362521766971573294940473195894299319075876660783931368215609839873637098100513418713719522905208138782812496195207495118149550103262620323871001035536578356862345477987007603788202529053092409752144924363060555465998277885858449794925491891981666803133687860431114864259690036597972996295228158946230228768473141908416840358924706151517062290189562418898795211784301477031536424349330630377475057237420896123413442573420666341901341667552917477795078139269066486527007672856140308238547584085372870709889279758406274909727841921912862127686185876036008966807124945694497319083721199354123824200712154545297996030625321060544521479504596460642280629414159578281707966479806005855117740036095624258052397095294729453074258819187015234393969039656395784934509934319034353666317922693254889505365481610846025548990086976836237950828584543467990839430516876453324968234368061328106702243152610046053703331512674139944491740062536403095074472267429621863196021568073023803297277820860573374568818013579265905756044371691206719761829608340085166806693709419535468342053647656635229354548271733837331103278245879239905828250384322043144044943939942567401472141661303384660589398281057243607313272829644951160649616874421921346153006916795723955830611646277918567470037517691987889462802502903818094673604935849429567140253201046734870310588732114560677572979411398012660781135484336874591676242912238516806694815797209571537476465398794147045682973549671278324534159250995781292818633370125805984759003274789395702018139291626127885804084904426849142742335368333965787226415614712715660751945975769124855484846170602303549521667643804390453504331129514528430259741938657279810244770039101827723902164238660496924637924128980219758638125323413786293365169331878981823505768811951998164024420422965693753473252811708093553089946456271371554995733672610619398892748955246275331816596718988415223366445028623581502073248484496741430807127718959864607580527678999468774351165592665283478105886080197837535161876878636966567343810532676069507934137573101932808282786728266772682486370962013289736325340200378633548315046090011862922176059638368072496037201904914651146445860190899320540904730873077146707545935506314008990683909496481148934993693073585116007524143478751320010439062577067567971008744684299650804613406617347970586894893790301948576621289538868326558423135962761918482414859003504952723165666435521020592306368535522485378146985978732054932614489738249684592446010054775439076924822173640522936456183114815916102710140126921205378115905275558102881540491499540668503539666274160823956816663215174996975764810165618026517002840395611119286381533423679332565358267722711933624229405860569477107490131719376830969325223341422641530897323003810169299377748130152556279735404664165370032596050071653184686243440254339061159345515997153612518969959380628609026822029966619619829389967349366583515933274756196172714921342245912287347143960820794615527627337771649781360872144561967120587129821206468635382540695156631140657703002744004659653940646646632953420788485636564779727106450568251175527715842924162577133384266658190640065256624039152764512796992414843454028971629237310936704020169896219855540666560941015137723882297444148875701111513881569514939194134425364439929776601024632520170877461343197800807941732228057321287752671462878934265877438521994388526544733789354844996192522293452303673032082002559338509970491477530963843990654620389531314659055633734253361063320515595402331873764336650446394996526467882761528275068961455067557032392902906165981441349083685795827516692747458095044124196806871639829747862591268150397990378851040917955736058238796002093956515879487517838295706340445158047715543434562214346871111088950078861894099759204448173197157431139390846217300051100104085982044643392532462229187076467132342582656502526470285419314316057530861650352359191936571047579400680274592476995130626501403707893169330584484447647880589938829079829047090015542928111002384619552445701170715935598487819239879783168663809046109763121435157409925308137333495465157294867105328116759326466444534264118149888908999060773518308532421874930094804307958782517575863670077607271497114250543260274069279032102000029391012073126484113063817292509966510362672686468892653086679048942061434406406593395076649363468149041087356782270180854796035695793291676537383663191921724035372467506198902389026524823005104122144960406826851987561248624822468793808163205997528089499605474866299601371196221268878077070197496815693758007886914561146518700691033649969320944592909335913869599896129351069393836111620181400687273847578867109850415722350588907161228683055523179612796440900278382754981212467196895418403237960911514529387226625800153677950475207109523930499863951599343722227405378908210631272862144660358588225647617490087138642359605992344306535143499686835078756849960506315821339131025851664339704474951691772297766181891419928229834380841820708201142853576224490011350549738703274015882987089281397320924077859641788369665534072640036806129438693398232893695684967985600035042147106289734343756918480015132515277930221247879079943653673323610456151552543120497434298379694505163298014005644468449687792336259618791754535793420431226220855076470328189832158054629276259592065086121767822514016418885657088267685045969821168386244095289658566372779249088968159512594781256447792170952366082956498521061183477493135095233595120612109167911942651315038929391115143004400859925211624872514269069784359320586177761665238571677632301052255744088266364893629485903939201934776387493349711219688568511276164639003484883995199509202794873901936625096473160619866848122188010018738749872162608720243842977573365609260552412480087203203458318193185708732173633212870315100107962088063268210321856202090396331296567145209452780851364691113505167763785117750196034708795726281163004984154180320212592941324863049326428946605716676027893082277572607817883597348213633422839348742533013948490856059847797544266969549203357901670789617398245258766995924348391485101606823206762463989759131054161789947549990934427372700095172894543901259320767113711921928616606461163765800779257168975380246919698132635601807998187461780427219532570872245918191853733054878592428055979918155130374610559014136509907127966937415749356728494009601882568691731933270336790549955389509140293244256437106123438118813313206659201228515947544906842739217942246516740128011610734021139141013934335754227433761334454365086918070527906823525513846323173884876372749553169199047454675680605373034979826573171481362353418203890267710886094079755449722823312825965448368637103677348728764025689604318568681321278434506660208887275576451558189223792411370044317349372080225334706587385044670381568358367845481569619570719717760178998858292492574454614518000339476224386393852530113548948024937315835295145413389350027209070407398244839308236544583976326499996741596304395709984249085124995056113153995585648838903897175003912044573142642126187475883566743128575292137740557731343901480058099209972122831578970560646347170328094783480077051619420954758446962580810078316353499121852857694188851174893487944235886348875060775212640221353495294979285161151710886103746105497479604768787104493015304426700057056281800346490583424798513686054640525871752420599395313514044758633310709956652087617880066691043350044436386261042540174037537823314700694328575224504607854693544129168067321419416379466663977165340335024943008690599175908179774606570190843338918748114413857718036277244261091600697443815078780096685901299979735422663491523932928115627845403839051797142306374344016045845545519296737957915598907461867877344078420537147985980101834399189368585275701715648387382164989076691475884349649552503514400631687547067544534176584199355253073229942532024218857748674299588713422583947161943486791570951305079193655943037945307038459305991337071183385376964472039321062679959954210402996517958942448652448056819447104833984467119708207762767932919589910194412016556748492671102785292827990605939633559947456527793760894645707486824370430907195560533312161210704343192883979667485217196955956045092953745923168526623436002706357283621989747771304824203483031847496490003433155254681651555025083181305301245861408648691094540596251239432549953845267193701861392455353053229094120808821201375096120378640820211173774839835168554272750247257990102810221500630849901714620106081712399812077987216387390059506178361488543085945935758440805615112960095402757870405598665540450651034134354449292571935861918893730855685032731448469523455314869104184352642260747132944063266820700256530872879890732983626194642162217694088751558039121538461282632573694614060479143185689971326350033114366316865396717356759471846581730150557788695053039433351347180963112764580760199708641227300138724423206580430635239689751737332310172627493792002482199767676621332862669978745144390612809447715813094114703143974081870906675332481424804104087054744188753354252821304205484513363044800732298405619759041385314963599616068591413246778742067290448359774571485291843358984922179117569533781516531563246210737872638224944379460228209106061448078939791422267874316812625224351540234532838465855978160817338095352829040981700419649355471047931782726937597824861282995066403917221432485123155060474164590885945490820270514616893974263602287030730712135347727127846319421127944171843897919906446830581208768777275920878012146653178747722544071494041927397191126795303162331750400784289527083252300132452520305648594084705688614633383842038741787575530509765736068470389472269684547275332080315462814312796884099950881993057136550944745956316512980692430750905621315775390309596464752691442343462526047093318673107870135038933363307263950629320842101509164251054795329059708322948453871129030470053080498740557335228651156209911978963262334996090821932968492309419192956673451762103459652577135789917628608398259341970714710664958409535251809821463462726583223236226592094961953663105066517036430403456701820128105240532981573872532667944312341117842741903638031672711356698146440563523184606492576554619381691436712352720601400970096318341453883503501684708571071080536274995796868867743935037105457464685628731762581064881707541660791192484466621994360842548021965974588956962590276238036508676315862828654727083063610573132643028651740374399048970727091068325072733444254327002712946283540391930742855904959320019749712349443036494952614883410709373403112943976054367539635407189416720264327794572664706805377666614606089061676195920878057717332605750278115649672534188419352469608031493435923956710134955592506077622871430566340237403927203659375213565284495367845324137151943167222950130144691473063053976861147756849366835478231817168078480966107617058646435590435511966390337284953146540958772362219461072815951789801385874188463304512412944925950194475927222214986353539909214144394228494163409493404460608366156042966437967604149472906192519435925155726805015800400395088371044677258100451884288462143138064984906918453341819303874904669527851328721628463896743919743480731550110862814378998084616822714180991943617364672481223387227965180223316726588986767962067147781685376013601596838159239757370906942190667382788990637921888339790020567963444248303816887904278955190237646568671322966550234670687144359279277606794252906639993331662153182617776363647153555024338647275467118319834206484574861438146575749213666167854084221968471224864560450001646031331528675591348821219954399246448579665435807241380144730670330335545537474607799770663658828511732092118470555402727301238570918078689035631161419077337529079734149733004157655681761257598629826541478802417379867144775279168930955009171811201459877138332192968090421418886397597757453684394421377690594635676728319392710785900673102413817370989082229503498331419847734116539495287663740778004509851471040618022629845001564770279457657411224387421276888880723764774914466109388216462882555593908544363826513339659595247108851201459316715889519180369892978283186560010830400590995464629780400192561452864733975541787466198243942609264055572299146483188408576914693089732737432892334571499265815088183325403891920820392843784809623696980022754907601459142368392106239464447179193593301354624650877463952716398835869329838842082600284144701228518749921278316980138529357608128930234354678945586050552583380450195384669002201152182966276553957271394156042515674575618946842727410406373613970943036831940072643542858078005743114262036271681540813901377734403705287080011820520611255341705014258670025953518956239584068671797528861115823397967351685692198530309114118989990416434822816621052161768348786411932396967884442199065681391019674228085094191133889514869982293409587350451687888617977984604854271975816628825902343544730303618133241462211764287096660016901148779551029076822377707315809472237692825065228111401077465926153118786604932732818684143110333076231138008173343388937714986573054437958857603260770234870242623341584735903698894407515321163550234338640097184061200640339035659235765615919218705655620968373364124759461207076508601395067920194980873149191429141611670985823979537545301713246894470397030059408869701466723895702121703784926377854858950990310477747037159083146317748284694724558086972864415753831311749657459060206599352411207380046888486097163563360272405515334271844202603453885532050589868830307315376035473077557667795772826545109077587798585867895572611292015800880218356892406134912013936770342004685246740905235470453572740200927475159573710877213311569538554852481526500679386548691550372127707309323489533366313556868209734619352497463262594617029527883765094043288851749562738500679869891257394213718175943415979917940861506259454234089635884499992167686261960029503776299704674122258535348488217763899380427665746549681276240249367330204332947702536417138376055276431339799709131628052234710951307858194332297680849826854322155548539090483785295037452129267578205430553319107161980628457984263020769516360766300674325965910198719230393209167096686776725272942110619920215895480549750118242305763494499572062081638050671853535822248102834068965188476031698308394998193950198448608756183823691696898780881243329950334994194117028073837048841796027874559598638351162302234246197360078994728019170901067645517394833381660001685984255837863914976183669881904255925659938555875918494995232113091564854150245403139691175876958353248310917676258724149372199828886009912033638730870141914152972202416217867046373190746778904519733261405780992007972423184045361324259206093364112844916772373650051415750532442971711782214347598950448415652206921799458045071172110875115184013884680781689784389476243328696075013644894408142539341644773608419791042518166055478143161401236239386524161087790435618533080021614221597645575673138813773056734505658024136035962130783044198465034194766952325823373858706550058776478727441876973246169251182725042544173959431669629520350474682083999197050502686441849712490230760649902150809890151112716426426994108205533975548347953566650750248846547124829990898515290755344247460533687447848207736191205356978457164938833091712603716153672818717635533836075641287497084492558751523087644584404677870464389760861870639861349038144972821211834868692517695067678311955835762521096951410438347957140066755003049496773325551035233090829172790079051949683241335265415236565210086197574125092375195118525603425065387231944991393587013425860582662627317914984613750546667142490347398031555422326579852205937014792673720906317753792061387388622979720109645283105698220699871926365167020160155336740454456481870638958985893731402863410802348833117811648957295348936035222097392294537082690701032184001562551503257721980115883174236373351500201520214423843477215304596588747339174925441884243547268390086841365524623510021329374034245313991924774929060400346429737259382739640266135527315533119412173194231035122215188634545510078077843170103656910964592378048401633587891116921971278924275523557598940935722128108464576171914048933717304966559085283463685439382882701713185770946793008668946912419699239805385628458466267234818710142144986199629892837030544582257286485364713638293624871633772737028614808739828665811935542929420389993700450564781289609890629470673916879805456461803551818041538087670699134385238385164556762081734210532465602808101760961765006528041612302357029014738784779838598120147539384630727480814658160673776233613045045842824232469396075727423530488276043449974768935972664644495592075923455808686725896641916768039214505707731227522148067744799553832942839739711704271134650287442115306773296804347223861615716959657404880078534006958277203160510236816446690402892129861470675803718782541134104036034691267385971635375417782105993903230076854456687747701248587795444389287225358347491359138590388534802804708702290282143592981199816774725454345166378432060811585082546579997766506231528913581155943998188879496371759569193623337012330033249132168213283513747535369777671099207836980312569159170193658000343750058150559677231324683875808343109082847998933400592984502456404332635437681907732032791743049984974911171790970895324549089370995071414935204746444072502382414416339579890185499086637446653172586248229101159851162336291782864625420836917004105309595171799686024268256146344582329690781674373932297788149064636465088895333585062330951960380905818164379378173301719262550825243262773300573277204057457500443757161768428275473917335405406011703419596104707856849590012522318127215152315156517508362687416310307854828382688644769614947077012145375654979443949092442172384064892321818606033548116172146285894162041463609464549512602926706884766194962473982487418041580400996999566063443445280251652978817795013131110052939184462753367786960376344030908907549672712292987204412100719733906444170218936932312366606907018566341864985241967554350022031593478438288444293850289918932683860301125350296844592415416424381527594163751803519702503925802667052416823097131895874103346652551129724396572142024502752635892051272471632102251000574034271832777386084816859699311019062592558150313263634774984748665304593219045309424063563009998663878967798588774609755071524550869024119530974086869326473602573136946707292321727870421526279511396923807266120033157587655265714415607080688476396562581090312078627639471401011809981962249921149557265273183121961238021248955720111342710830187975976040571760557267290802660858557919338247461523695235455292113927613741004589227551479991538427686139425178052528905509122382393224071206364718598614378303460162972625278501060402472210388841142976971208973415215574252754503774760379333737213292182647372896624895859247229187376213248102108390853215419525869160303521975071387660226454604234754794425437993931544243510729472883714290446267390435166814982743496420956837543016789949993133887462705295022609025701335438059167507383701936543039463121479610751104735240698953661478936481911479329906740904489197452057893502580120680222906157655712878466208417192830004183925383319599951704503811869292929097534141254315321616004693619086598184367384039462942849659714095932926846829948745446545133792104075985842895821586870669952180803635737210399592490621409240789410553282477606408158345452508561490141752865335171026656984850262329409053997257544136400071889991400796190439122973668696064529084693755255836765352412056994762685741400362124346951397410188900432882432645884701440583138157882573291684318999723717657652512022989323412321073237693660627583700331476218867411017335239836968414769865407909710874243210294158083226808318960714954312003887937003018082292109578419757327197141691556233818174705904625699468319301885436070778429097126190431394700605657991144631785459676258781557267365135651620370773597586150641691487421776717397790351675063838102451566608595409359816255525766363009033157822606062027460072175943342502649999753322624863853552063445103369532649389994170675161125559707441577982848013869867143814826980629842942077365000777706142307719552566322199409887521168245568735537251805952173959460199439676651265432730704117350262331706382662508818836873635334209676782326005262735806587326955827817566832296595657263076627453546114492012195338460498343702042461936553019867267824475389904143804428628417104473858815399395750306727874803926885475692826393418700447297891235516553078256348991059715469944734084604231711038977780266578921791161881206957307208345895783554840166873151128996610992769826253034443934279371953856065729103507182941766040600510722345649722932019806032881874264903449957062107339293163837193087949096392572232201429076007275365162811667357616865329089627716134521421534387281699006217562057688062914035929080143008811781187790234857128408123999708355893240909436306608513991524738503499738067044801920657050249054934659133551761532197756811604035571234046916211847840809807541457929974761693808352597354823078983641938355055715226866173680158412145775610281212166513689016974028035470774623582694950030164245624396787743698376718305588098385573515798914692916135805870193058160321896097265335227115282577414336914739674903254729486773401959583699123651338760639969634193597134021831899715413229063662991086242614111341279141349743636465899207991263020675062594526985937879408266102078552778420644397427491894530204827228770621098465228192098045017344983689612356332233260769719012850840988446560674366005267078853460192307009194837433370900890249943322567084159882456480533244622906272783174933254137884770796214653817115238203666070788667903662404807323938380349897863963732232304753257920556459306438859409464182608905100886934535099826688184182610505637009014679964032950904839874004616073150409966961277030076522153801352322556052941776649556066626329660459604591100652072603647219364332262564218961857759642452691636991416432879661818878288330748335672563933820680368098656378109871849045078843566563187519072030442182481261955733460600745311222079907819714976237320506976574595842384166678599740627139367853054122725446904957988430894041500848408967437582424573295409517700979942873474171812545358497666652611763970620236711141278134996792492874199682982320085221545111163301086399164440848901134366496430175404307253204783988194555000630131788349602785891216407093554432241570508940265469376142548719342371114380358651847243603498852120537994436080164241794059645355321657615208351022276893947168858661162105029083014689274562636818781705377788527365687093072388817099367465912797029803672626929594384537477795377586902501322854969715221308769370571327401184977744401997597209525134043049565199079508593582360073365457360038545700173724152018827903645509522657689938164224683626086630918542444552268691853620996289371911308501896335101960180209063006190151008847149425660485132227570754455376830638216351991575439346453040948564568305035245761981967686051905331610688770306907986900065829627739009755760787884227028978951922498351597058270051367180326057807352097328915323394377823437458908038079105369969960646710376921329795356675389226989798371987399071914039174519364001889825861651776596202127509888819313690514394249707417526445047579153837430410251927364046690667837365275419369085400791541018186712293363058916358113559947124851064924149816979725350756848770994555340465280554596728973727281950178201164468504316358832999520160796659223564958726850559740159429577445378031313738338635264882689100572339523740086875905516986845762775892222041583535622716023791356617214694865948335198565973078654684369579635617941760060709089019858249197104909197710341629637454350468126543951788704784153493119980741049768184002462117997087684671561192694671917326748457061346175542924062719189763736081722902031545349815072584816392164227613702162718506751263527355261163009936206862407638708559333480572850849026470267589287247210843194587965996611765233641011217775150782935701265450597353297684751535204346158565222681113475875539773066974383520416787287141058984101113907748842522997942789862359488917920288045883409169120989342110978630687967235682261518066574776682079407065525262650173927465698040380986337125229836398641851204006611435162750962763503513904741312638088696646955906007424349377618877570715910421556477156734555817092944184310853728338573026491878035285333226972418351085502416947838252797097327519470879389943275848230211067243694727939646911792941514144259420362924701559699231935335813979516129867533880081334358373438014326404284877662102403114644543080123655688255133407335027805636866181183452761323121644044359853716993227024363311153471099936168095329552224470533354514987765178013521231107788448250931523016232470443447306163145783670500891718610335178835240470948505166742469319958126471579788278112057659814980396284248293479463143601394757467161686973546352502576558234953517523669037611759879021253439690600748834765479885164699372700569359844638829890167561282991067105046817104438460666271482284214514977480004384258951584718050020437832877890751573432131280644835235760314317112711978447459449928807794641204444296403208694411297631100917383308062202522334499461425512963678910492034610778025968295218950947892047464620173711472972092669764101748854538222076187084764788956850270579060866176173947711727367992267011916815825570880828827201184714048661233109924265375043753892306590633875613052461928193913983580526368086750718430645239387766797699414828760566120404631838144937766136909251686350156630904322042136862969499876269154562138834315201250218960499799556216112255470451139279875331122712439798169956208927504191910693129768281325798990080782304284553043764206726036817731429166228916339095490533860086505162098614678998190872742393149294160061463769077888251997237454121967047564418278839625792898040964336415651519161118387055435964074012813916047339908067376508620012435796450024994781846994650226827559786905358819760528596167402002328270764774706236274435793636184672190603951120470910528589240281210311921114683909360774978698276296221898017466614364003911936443352534893679228596656395309084774956719918754101070036633261275664453233530348783193511319922571341574037362623864862759945514974512063230750472098084492584559167155345022495605415346092372312150423663265288406356580052136452126280196139651379617683025633024078157406343118303353750481191909491417106043147194286276850923483971569598047102733600382723009914503487394089525972466355705641227033974923399266367300313719087147774258321135144855561490789108110593001396394765433259471919108766917589716052849937695386547131973234392140344075242585421670721215374490452191221593479371764265268744140454637998572093491067089662582933063393767549023797302552171001064883457524052559364666770355100354583212637886675643565439806692784710003093266419701831063507334293762446500520356830820857408498690975030952132439925219202665557221760113834590729188049587508754975777943102671892915714712836667550798900485997543879725617577928960110726369125211281633405123644926317458498878267248701452154843801289488126178165134642893367853096613585409525429993666229595553384527493975420361812098170561145229354423854489644990216122259581609099730570977249654828013209035630550642671648528271261094519835953732460352257234387213621045455504460451442804559977154170298804434272520395238131433484927651962374370311127421066969152839749744847897185996125426403027421532692301146054254490561402044836432079068364924036232359834927283792457856617157399916530030282161821427642661074950189196645065151996896943812759493161492795430087899236704867257129638384594629340160563844652895553534418947322105709519048230225834128319840781918687213170808095241132081183691071474150862367143092583095428816434761740464585335198288748535221961651251391324410550042473136605429302633560115840049363227873535543258759037955796094990519759215944711683742639402903803813191043334343672233342764720023243162476549368918142483404345360710007938253788808151498714774215564454105375280450144117773394863058693448858808218440677311427601159433885875698799249826685751233689318679832970867142829636831272263590523533006492036769839279680804921362929476566432264009508277552415222762783254444520158763836273558390244246219886662238654032707550172301004198540029190901383485058883100726283960662333457957192595965046141337011578289307342637495380307203444218445403540534965861206229398759232175979173635033055175417354420081273417153243585742441100186567022848867200986931946687032595160034694065797286491751605811123934038129519527891175340482464928398995928344155317306355202743432999653125953372440950951250973862342309850180753321869217828283147568690152455990028384495234117004445029462704067729718911996914891107859354532201358962756326303960461147938471859029341917673210291591873304310373407145478507335733512968050743380548721717179611093998157047645811319915745814888127541694307959493953091740815890954609753337047375848636612403160281480441699003350077485059904412248737199304356181711452795551068207772268339147649338118723402943405345295099994794123783888244021111209749373973160425843024900931936137587192497179931246983302072293999359382912395926986240494938823324389341578333132978932638237513897816403653625661413597194945267866646993753872640688508097215638596895444820852519277656923897579954043498532598006952580573729050948884676395529277947457517535727727876154452191207618995347954433736791783818227353758008831464297465812527460107986910242231260980673653042922446178102054329933806561407047223914448049225155960192940895432637211234638288018601785573023016030737981617937478180321622196179328230814224536875946957800786263013776292053923487092090281815809976453366185154923923715102589288022122613969952125135600321843705887605677051393763303976755648256324743538294983255653127623722057217324198289354804535058555911514060366509653531363270373116083065601698671830351321482118946590377809824232641221046009839852701020200286416183401423322271382892708743604615697332119462464061873596929172757301290660797120391872223820535970318301471903301212335697808239979361580756454600775321110751130710531788165640122092009404739978792589745430347693474727842535718460084827292728065732752237366518070422215917169602347477720812311701596919235827464891309708791916397048405044372365995880887147988415107884175298879503141452169345116286066214795074658546923860612972708996993988077166729616122365622877155990142563593421268262508117656570257634033791854506389973088441298971569831627159400294426068444583564961284316989801338155146348183174167594010701388949424833094496908041225778512851855067066750056561397337195823365995382547743867355541001638304269982977646559208544982944523046685907106475644174347967913821164524900172167637097345512048513953405055542283755509494081289351945080260913499174469355669724137171001899476576429262688808294955464799652447333911545997175273354956454720594016095588841097355438719503080609621225766660416531125187696436121691162153135493032257432083056425092568716150456499614190649339953003628227401395551172528034067689438171730321279158258349708132085893518715992629129246973496873657997772033099191174556813428690627672491068528097513491393675861460141569326461828992541088994526028650048156427288965341077405808133401777732044814797173652671004661720915481295761454770683193641384938922900216028940419894629989850898427956780472567125872314969685893275528908420987153159074084365153946086242255579551536247321590594707012268249072115500414181943801484322405606472217825529411279409858927295026990541734967824056583096548831425277827146377140783079902686057046932152819281644068112919150039585134717194870517829525780248371280088406782340118929186415015401199191027173545667819529975164417284712490229777450991467667067147504723268211286965406495847692760530322815082249375832655911847566007163488755343460975656120751086316113900039988800893808981970949965437802664776873957920458051314955840996413027689310352621378453536978784042498695916453534201408579442536849668321406308718909007285656369971815405652401765099483487554012791282107036867855595539679206401552502137532123186433731821163491597022572844270557763496477835025572099999152394230273877582781799208205603743179141621939647822253528101598451339948862508805559605017955238452175726511134839517071528950489487671535643292982558200874277606247417658380057051327742099617263842455687862315539013894707599526648172788355057182256010433868332661233469507903333680446109914400935236471692544891396891979787043482523553570065937078154741132142473481666462952364411866821772372379891264234207341380012818946989580548436903660223159019808914311568847421383740336848871857861348425384277416409340586209330794470085193827473145054853115479838946128730447724392180742326230288458289036665809628010565656217745619615140742044828755839292944431356818069146094045508819460369861661637646527203637904409334834039782048903611063290759010364255247415117291964807084386971549010941988178651776376486641089359549594817913819404860262745876259269644125498718372406100337314777726545178862078638819740433044483444946767574002849982289670785132354844835748914094201008665483103798046368799115974068050652443617068394476868415683563628758890179844811900219608287223783337153811005941484580506219800858076204709684904506698844126145889914809606023985199073681928712545418753910362946022532830164257697073504965372117676693277787887633880042314639096769188876151431659708661006001058654899521634454651169183848178438900957687869914702870132021685102521583233955668058849353908329427044630423622111826024602047844720209735163981275956923714497783270722866484256763896614583899915893662572933344277199972237238429922310768700576325459962900993697542450255503914221856211378002495583302166375543897433151703739792799462895507605955411975327650852327006762797797284124749674816915368785614363179167845221546375385210258711557375182346471329959674952227081360993011454847721443970742931270014883858879858649280616079398085942725938400180664231122215728239515068391993496371700170466415185090047603650685159430286234105329677168983647635027062089384039376696816115444799567694424933890845186927722493015664323861874265525026746624501302779707275962236715959383004277812735907283808576293987441544477243869477922108166570894122547177536592481561424008185921775741070292764150582054789766055969993748376774876645296090024687743959277942288580129503023797047783718274434910104202097340473463530759792264333893565467036114928768501129953920974747279957113819406432704695662964158778646352938904095106113567089997824034269558020751924863216795091395187978705912781611068154556243639165820974490095610998410564813727637222394856580390454719325452291219856054238330757650922924160397390584574394224068017095042983795623196293797829276491702599883065501049996696966097564270214603470028278014314872421659014182045203407454056194180269188249720655006331332838289326385393635156133009953517933760086562864282517847619143804349397402806860515435615573012626685045830349943623008236271307620207583133293468462981774375024942791329373313448653733542452859550030655199687102939138923865090038547508649398548773629144527879091088327373898097280678399132986125896313460218733566370452171866730928902422147165584120005773178352566152220202730210625016257895763847486665356040509701668575615088405627515558376224443665595927869241613385627197223604325039589041033474134814024266754277344801278143962274665559139865626875890638190907956178376971006265886367804630533789131181681823595486212789261091197978169111518929168629662050765205376317164475789827457610417400501365500084707417957117789589687362588915483706062501020952000126820230251422963396965458171591731760253631939980220178615061205013513238929489466643405916523302381126276213570459101101452946566294516699253295312508625509118232681449800289801164208350003502613074592922363883145234811451893711850041191002263695479862207584974695732901418330440650383855574227301919687389082356007856014057700805746680675936431209316351507738997084673048685398094867705363079544800382352098574795989446182847161657952052163271467585389742354019179213575838596136480920565763689098386643099399091818734791045955779916570756095441446170270549724774273576602942537846478803384502637780637271330605586183393736069328018793506803858622848498591521107042973837075129934576549733264335841916866117477900994182083590565759719814989099888714519508857209416766664530936331724049776270008770008453058209437638769386807048260968881996518764814488612326743340517021017514277749353131107344780289493029436941209691374536864335001296734230363558753243784947512477265787049940288480277809569687334817187019454325550616079678265823867377591100324199704160923097844769610912977512986380068142784816402600254897734715713523153366138276640895040347798449859505115104187801395873615744009230347532259783303421360437784122773828076565365988957144363776639253756108752930500572073789993610880681703190678403930335761723475758068144607183597760399619284300332732354660842971529674165855536850366314917523157366842827779555160612440099370578831227189341494667269492804679932859799909974218163406028220701462458486036031673266682254309426184298210628420013879746659346236553378075515469324130797051619008093431987065911022457455699739061962429469172476926209550809338772915598131457103881010230977976063504572855816166319055800381811136331398229274888028612296725298337167429499264632869875367020738907662897587562174984361822889411272533183853073783637564386715511679372179654242834662988642975537907893126030035391858861131836819416032082070533599870911541245545989184063588607349095552765630585802269764924486310986311350660516052193813486044583704045019725613874086564771005290504036647544166307907948111528174925078866667970225969159776604569428896475386742790869961978219492363305747092029623087542625648317570334521336718398669244588636251558579533012113239385921668288808426549938707599970710597805482457716310288999113871239716481454467397928222784732726222895869358231836159383787898340291584351346072352917690544170373263349119755908739291479410203523657758348873536482789420340579446525778026962810801108152539427803386568226177768276908853325365933135171677909545019551909445582545503035358775484432014478877488031088222681096259046060417579433588850403606253917049668068098899309512224052347694894659758758255615437296304880117558220415554263269172531158007133863483249869518647491741551854274671943265439241166120071434475136868726293933739641331652828314066640284263988978963446907450308789323795480456013463080499742519639377515526203812371057694670495907148780236984187514797616187485704058816719105004114593175942704324780298666622970681602736100746412069753819657812019221117124928570459766265723784111211815316510857145867714084245165369856718813759058888933734868799523134660399262806930807005800251580781081653705094369305352385083137371141478021207575915749598334060996640016478256396492455996063501755806025439511740542065722505906109268635649906949142667373520937561182845176877292226358723840211414275450264018291221187311469018889274494137862615389150042977318623471414257216952213194517084674608122770893135135977773632951104678961113500599487024312190603454474092112327164336011860225462962914560461777454718235516890555939732291917683821651602412798072004568794807989289857244390740855640038250863568675814268657544676985749499674685468624289035713255093138443206491264935820673149960341156924155932147885893796229479217730005657557403882558708799485435685585210947422522225923501681548301446823669179286499193183409185737380697168969579579636915494144035014888997654326107887256694135237741028668419518113396547028183540627321835347489564291376491854412271201596373136647898163392885268703134288872261721756297204222019475800959179642483224194367629167481478290627145219728716097883485212779863205816277320004776778783595953682850124899294040486211543014071456840388041509079568158524712224069911844266645855614713171785170856941034856371682030083533624954887516591650426018707133591150773002050154739010733152060051362417198418446094867726094725485262428164960041682939547010139787925890198207239305095389269355585680035756067381262180570794886303949610337724931947299707195754653076862193088348904157028629326162704892148770600228181321922092677467929097134488573756517094725626300713972635514600467274956362220466806902683103362776406205455709949521381450906789684781093946444688371027286481809073897901898179077243771379358154334477579482273911747201366989291734686543022682812263122602773379940851315963470515820073194502456739863227568447691908225667709395862736734590203623268172064732334884661412317692400652082364352338049127639234723516022887865643236677005474753007493685510119455877889866020787411855453527791070302096244647400355716264596061621163159486642914770398601830816252219290550739361233331030930283390401438028586809180116205942427879779003950268999024884856791242969037107503640554984779162730536436583750275868315590927544567658951548779749368610361759599789473481713707685996878296543875994320149895099917387120256363246154874647076192169742725548589150932802495837822107983774141902750107385691948389941877450228973104030971434547621315922696923587874893542494612803733693167795464904966596004180039377162792382187037699553107490201406351140469602298656792979536597845457121367123230452825490469228362835713901220260226178546358774372411540990716481048928024898310655977750330203183896447712477776937619784754546981888804176030188856220138055838381261714242222432773937164779115828320232525020183227621263218611255665790707250295119622556194408767734022654017881800945382069424975670329973577486969976903186914370168747847540301491926271063757738581332163905374950209413477338651114069085468314268822699857705379832618316208682795211981488619928241696662816409512650972750012913106060461718098100030560287008516945234383499918035087397979661205584199199039986015876163445348106125452185613297033870607510151400998294696740015553723410813807510103412831614622605517048960473586078512530790492318299597345903397223535212178710091819676990509803271642339416017674220997449301856487274759578191965935591509827976210465044826337481005099619684133142084296541886888963959920837115129167817787259026891334145670049686080802693905011850219554652334092492908758478082737072025673318053244521096907218486275361061332574435035615881161750306206211759360202285001798498308642057387612175249548667003613481248158175974824192378926005851232808318559569223944097510807104082757626536961006577035347602453265334349985996607577685227994545708847801596227593328994116326998887848892189477413662798671750860024844923759153453869945784664728952779379421736077275871221051401233256011918077603481276166720652353274790994341262194157458398979949426806070812311892595627459448494697846751907555450664856913124983404233276519613345662195006499185244362649870770944087837524327307348850061903103675785880761660017586332771672485532398677764153084590640263084502861089196964563136503584795007500313277401319863981622076672797676048458664362960134404243217519671028116284844459837523610199549437640183840134571459449685401224995648528031031308212583336948867210617428177732336502770971841918286207449330746583889252663935823574020885928375218563911431267095530723504275076048904168619446355000619504094325763695655876830178697477309310540414662857716934796657356193548054441083136076375261000273584024700239023431011123522386561113000233841865029700546115176632439632360742837090238277672201893545750577780819854918979162163401267747858523227756362443125248553599413649876351597468026653472804995618858025468648535115732590510802999489301723337092710623441447760051866882454755159608640856824028417588647585772509697000085106704069094998984911176932478381191088374817897418919327199347445358906427343684481728344663568901587432755767624354304825314646522357964999826680524960966096360591295272399619926858166430064055161738110654061969107425166012820834152535449522601672947360906249665621749978063882161685749237937180312870773630520737878345155245282303160333977219258568376225178616120606272427400164686025338710980705040362076428457479134555462341676620499040044570337198271227467290251440124272124463385832131019254891747523506370322916917297159191278969064109516282860146877037255113924795360435100502972028559943183117315578497307946270202698595471542259668394603881869482163741373618371032778755167916113436074491142727041825489634456585631508330879495353556236261396918312984948435346881869114787810699676242582158060936355413024094371593932881787917450196026513855274731216212819113654791440130546444104540061119308052275097224138525115457963709774191239989190945363981541410402383474791256355058602163382404711782507624908421346713798872804854499773209535232520536900571564828958936570206410560947148051907040576564587600438731951598079546870102472374268971646913790939825504058941732439272676716578027986792085908707130201994505634778543293813661383634591769742499995096357202956872067076846462085769916206006234080840658534141428421644668207219108345919545319133877582060549095119139579617235694397725105907059664702167510564525109219996278072836213629474326507874515458818153470271219120387245443306222472924757404138594065609001528833029343979555003327315931498103667656897806105420964610410755788642713343771449568151614779308284937625414618739887291015559482500912755478756193658897102203979345537851613970032860896417971675130994736145008059725685525825662683798492077634301902019103320543424876792326727104133809610521047685303728922357084636937177806493607701182779638210899715240666974690509213377368953892793588618204174512425410179653333781638961330678205816184121479319079813132135561807125629643735208461275441360118491603538923007361540823326092116783822669850664244208224726030205509930366547995522049102309306505258546345509414871431632474521538412182922347448787290306063940568877520499431772697930789228197830804974334308162282582216632476258058055630162384921867873885553343834372515894696187737242441662408561889542071284588830206062753400190566440441438183833401419030634205514210576174251181106217528011026304034700996666945022252561364348789808196067034977023013713474031153540415086731362969394507731713177312884231278906007217510935344307904085315275992722794532423317775898760780039987764212659261088281162009993775927494764013022493979579175698105090531315483062678684828606540377221533733692094697569566500122307347567082659920318859293681885116991153385093431437573730841690583121522694109759825994079443330995978996600558813798478348774442651225393690903570517552638712702920930573390334495583517128939922200118022825371852394236479995193485669306766315446089761525687581279026432721813728067156848364472718726260712264715440731388629353819821716060722428070172561319184075893235819589270475849209494607282895225111205839722491688164143820632100716865079650275531864100873756637307128413181990032684612239803028824351635120242799865680954539744176876082286534883879370038923604315727325105549796833922408914261148002046110151178441989969295517931260186171542352661747315952000499424087703004023560349011867010804666849049796076541124466438934747731802680090260207639759537779021520993185864591171606134954569897748714804455346454276528745035144948936415403087223955901254019128817632691362546259647348799917963464691266218765121118341336742414869471913179068791488855885659555492442132167188514908319892076902875679240368736147100018190641559200016882739447150917880774635678889393782290407361529213800397728661312856933906239548943898459513089272529123343577902129814606144051452059918270213229861984116795922655575794627600656383052037915134069894766263008918933125957175539974876771579523868697282649588678030849108377297778924910601854967386403013261077102950532128440534702288999915217285417587254919967911057829619157149034153225381436388261286331878190077054502454609506577887883038964285334753697259664797518861438839965916551140118035290341390785234102914640946556949846198784073328896243916074810059030796958694207360535062925008952531347430655113825999027989879645877340646285591899525237496621783254587032486698156413310931121284978457757063198316219530312029035448452967997001716686513776644174673059245664393468585550012620021546718208947620705431663995803568282486607983177523031056103794665061949965155383809877910881493656257190401132444138674825588021515698451590842848842455695898774233157997321353300321587896439675234798568892555002700624222889293740657226679385452821467408816292510848952388780599278607371020596767826205726095591756011649183940149197253637779209648039297877933787876114225177727093018146759204043187784712218600661821000370853970114199048007706034372133477267853789617550150975900475468807357952527143444277008981314173134382719708614610442127082617987355742519611158920338860724610745372817238789432280597026284104754102395796860269778373025263914400061152802238628208886481760944659581064710179151731060676302348337880305708093507869714955878827143286177499712693520115299102397673882891303529881365957754563181037374368047319234053952947986118096959016869960113067895385651794958168447041752254846649706447903437034730074400712065482214343339995527245842151212389075362121437958830369725220165710148123281551325028010088852084497216929924495482221596251119517354460857638943323176763883555305778025324870811980379779416518136844158698245057351755327039949282885622440357418058205552126251590838646397892099943612138023621302418201551682415793265823601515022629694418653401487100577908604026871421430240558501941642608091790241492874297733260990403830380877541146695089503173484107290196043057221323601116649889734061955348177041141418544554477215140896469484801751548692484472198891710317901316858519043910486688464631844983104041510319344038148840986768648263553380991898601146586830075978220492262858751632050115133735722037414039020513749648429998324291917056876355313848970047508047648339430396538577768185822507530715039302961288620251142054208131940516947213440468367677891428520670584076164875210162437033464056713045157618822353116907210741430696409118575845121224695895814706851101039809298882959699220781568388118643079032242659963754447681813228877380448561850852093660597240064540482316347917394520904815129612876694093383488751422743775677221600213688602948399091612191860545249306874952987018104034763349270604549797187722724726200346354105961345653172502764529622826187950699100064206707232227342420439365561089630504577925925023080714094654143900356879623533573668819761255704228212617631675098983016199657274665791866909830018949466779222534261275917466073253411656832818667771952244625659714812831368413832015024536063341559700523709064788112532320142186276635216220081926015843186359802868439784230041719105546976569016731555446571517211850650969383730276687895820441822946517832879802943367738569076324598094071629745585970171217792596892282206574892974644689737095459008255948391181568351723098040825599575457289828710567560490257957465889057253842011355075736447783039854148211329196957161670417073545491197228950563104550566731050333213334745554887718775179912052652540221728753141028251445631530780717553255564452491052381415243711460042421418759065317100548532738176561892047546630694971227549191077711338207408817941177823207927571383258426283524317114829391178102757204440304965026999525237282881179810987376337213016456416643581363223176017523094881510492549935539406538718733948165671013231466422506342600622616699346355470677164310280585060381730420921047505610925706794087670922344247436532086026366944862510403386146407154229130342949222764675109072535393718493886382077568511999477669345155122494836432305102485854472113613576385134024265720733520611117609558807042291978789418884203240437928153982053235847623143678442100133533012085564379902120853818652563255578664355014135205186634954796415169435918191365262925050092617426085013117835027074587141214548088715529405162005022835801391826315633062947234652616616395762823094134612933249881093605809907077737185739595724179541465134968462210660225883303463992400753453560740172385125804749336401931078042784409220202128413155451140820046155865133247694385750072777271187908725208042313211429235848236832156605409245472506773146829238368381489166361967419857201670797550877743155563244638643931645467298364946453002057473937746938262742039048170882665978822167489739503012977669371310968870265725205827810200749446203042034002373852251751951996993311121659841980950168669407707792076826924547490172847364078607470620554557313720749444221901206509610311941709476548753647874142952407701196864395097582858821575157632077588629732551800754357696923667691994441428074795964341354050088982683821844533625827947673028034676708133910156248851964835800448666656845702089811643849232265634443255207776801914071487426000777501291296881617695329838001948267332330432209589858329880169506573823759220432457783276609328940333900652663966859743542847347099858379787572178266919621480340546280597239380196775205053024481627905310718447268121497710062308791653199793599027770486229339211665410480386386406300441757303217862675420327618323329538820716641085709902817431088861919062258121542202131690598639675280636236001451226577103281643867439168321105891153846904771501233499354071917796078107434889141130071474321203656110099122481161366599424468565680105213711444152071486285987583944050207924396324983758725539933177330311440825519555173104119380056416136617703503181498264151327991716725791095387248330098394318483809502531074672794222851206278671875195434733062972015859545961427462363870946773136637173897911442919635231561246779817709972932397790061353330887850480069141147297064907196034345970527236074923034502233807415925429950739591555006552388710876423207872384245505669780404711116034222721012926058434041794396824848520725607764432717210314301320383035143255461484622264432882643346977406678114786397743683697200134111126550756820169550224420956465116966184123462390349388176787402923630941343223928857504682712266310491314762005438911909167180130624788707440159233531014647304973532763906430656283260725102199251838116399282113670979492307706319611779704227608931663136992059707823363945277465103703122624162850163243086934642252512862139070213121479734803801404426899790006519541266997810457053929579176157028623138818678913457755572949541934979839578509678597150792148783205838280076041385171480148510825968655796996570571364072468955247113026424345151613424556794599296975541927530982957185836805966970510706425187697280026239326080774982959991914397550269999097789070473007159646259488050708254489986709912886321619260520432266112689113692535325415346173926232035467690230275696247274704296250973166182904617340228256502453894636249656109362559201961661655002412703483168208439535121270033846114964550244200612321860198095779815083880781224175966425994341816433092272968554122985219579929929606141924857935216554243338618942743015781286827402517211347558529042951170541534244434426236421756917033722668279804006459781000671427887236352537251520553055500909202562166829600740098549635388644274849143348980338856924764695030817346039072732868609880357058761877470328599448919194212685349163864617705542845628911343361445267003557376870199596112818538024892430185671854306319513123893453588266007164490310938483187119059292391769195846965943082302563136890576353954349728402520532170650731887204224262057438293505484742217411632699107319403026434399384297113032766978348699463602791502112955022334232603222437751171351400489861691382099777412434950699527750549510625776663390746860988871344090569647407453081651995831910442662630868652245649107607922265309132353001408223116792169969224094808771253839124340533468489821645819603992702739990930177674371466556569539524563416554935017102971856331701452202793280222467421081927313574711618060460349684398251193803733086384094004713925243663146166827775204644387071684678827421584235670099033205698063404918250873421912404057662901912206383495409488550950389681352485647091728593215198229086052172282315368341775865817692955951736484382121869571497401441915698298822976603512463471930614386643921389068978918626872790509603632853996874993702671689870664456012268458939488192762964045531208035158689955571809345687562602150636082788251240367279885704965924023189766144906030263410535702887765043854164549038114951850029327521248767344859358832189444627831044620016954366060266728613051948425107985194938752774128034076552066049126628043198817859105675401262540642483185725660928030381821067636644431652121694193093330908309444017166855522245721468460657202478499117578297259834831834617967301826454635494790771621846135194069543959552144082987008953407716657813810448210555236924552888601486360073613870943757642511017621428076093403280450124331256276141357409744529478951286739039197442985842687767667106968229263321721216411544702951232843229796154244546065967456189867754402057219282366361033958612294169544351867061256888198982976683504778038409046109995639821474777705155487802329886430040543594372637551972538930930780231900771212894988716365114117620072354139983033299946173777039871933691031940848228155615183730908375858790921426586770052077991419873146049046931132844459390225182121833715246431424534913962911702484467693534069599710155409481921873234833038785004952838394727875581528055265792954798524661373111672663387502624959506990856545323786719896956101906483328650536901745628282572984101835652964900179359713288864624531224481028021886658094638072194260815978476637911456702251508513087527486948647942325484704961680914210096660222381790739350111897825248137666006728052113995562336970190815867102584066865856666867777791456246316248619076294396694864300370626328505124582645148675498947258717743881475593889588994477113043975584168732014919382706839309973679541146094755846793568511878480827711710772440232202406273697736101546715139512458493075135469019126013611586252397553411720548557019669267459284593408604380217081676366777546413737925722821267500880372740517275389675706665919048227667898834394913676498998413933690919020150348905124203477857354837527840224729395692363740813478735331767622184477477551208938328594831030790073609825148534425226839864682868678244513550638363238517243812485752624829051385775492080625736702528629560898823743120375578337162687560390530369951603015903059941693021766712379455909392801748324250260826155122556696251507040055049253735082401625828028413298722136763351603562570642466136761555206787840749515985148961769310142439025399300852140207872478906476640277305698432016503504331496252043245740602216058510948453380354478237718655723868534488356310521370161155349074552252014344425852747523472716977497532377566827419225736372136855808330201780945966215469146832696108065176900121099704355168734278913640804133366803230867014103713541255312326191801354284081992315541359914879089738839057859069599992942394419972377087826000952993304749909442654640396120101783724308156873812277567082524733829180821201310503532273887675471246912080526368873270522511059272175871046400176176292333549580302515887765095250632732224737905888178952872980727217742652312156232250641446462133436807185919204525462045634556755361915109840508973885298488973527905644473934986994371197559831670893177773753578418210756406070003249316290589932732083864646490040057159253508353685920153640221241378351566463661527758732988955914532487458376977159952469460953070289364144944596813870577008049671508165352766682982139597934568987733388666395110074961071452866977710440559645605759379047427582827136071870046525582399984116857098938907590234191496865085287379901559877989212639825617240487205790361111705590950922317278612755585997939660049395818209768589571000419106530633813475535889933941943761380128754397692449391223767593768851310203917033032199670171319469758435428416180510025789880604405390826514278308242823870720784184879861974174878746253223615180376254137827081131198749373387436779464829186562072249527660139843936667016031310194361863731386196808346057109892985220642362448913818216989657031595967886135601962583418902300696549462864386634414844227147474341055166247425452535988281872846600600129063814386062782773019533399149573766761745232472672814456959664944677654312756386351046232195796531591939030089401053331581382233011526657375937098428212400831005077421364572206899706282804194197686004767724966476231794121392951873872980671709238678069232205296770267170187337344016579040080929877114946687900952794375128604800226241855156616562640968624211530705183907834711903807406457199123411327982084684691312055977037030322141268537334116343075305901947604728314532912324290824044869471623079089644333831863411938200085070459666487328858303849293784171807708857037324781254410814726523672351918351271306316049594706646102911189974700507873559423008816578799738605165903933127468337795859992699495301849088103214965854832944808811860100017763121822055639807226899660088255591194749722634667984910410996616404886570992088339153280879737579542781691236118319882541743069124896504577630698340039102058440342349012157826348530644918775294797312498437078349125673761849924110123865198573588277173245945493813179599742663825559546667951309446854818729865719686057495084730838258442768466977107051407615239650843940635743805580046831694236006760899145965107929292501966144909013448000995450895837022033668413894710231030221981404024528099930565844822742562781263790730974925840750750525107915887676013477965109115338387774805933225545650523122790968496462783441511020110468217247574462151113937408082446355834356871649068996502226714212782560917633809281260410797185246652827117382945113731882570775633792660077872005189391668539569305447596638266034753571542488064591487552794557347993800956034407729971932604214675762162619289652882387158967564935438800238825858813705296770703237136113544910670699172281253693227488699411548286519017553078713008703368014297547606499678689184766270604696727497255290454832256534287860536214739359414026563573609052954197058605779597106731979687314420457038435843013819916868083704223135447900800153248526411377217401194152476885451069519394485226079321490171300865645336834157781301759959355897686821487682029423905947992527382259280802699588590018504478802015954780838241248556827527791978186936519922725645136225361045991198038620779639328230750347763047970755350986913058259218330617357771137801605091376865333351931006834819655167735261787766680871501670055791293012235090000998332663370493334075901468836588496597578905734857479879522454852692482543835709003460936441542878430440257060982563419065394220791442210057351234290160040981969731855005364392269430198656707244021222746382780972647724103615933365329208595935367160014258687999321872068688123397628962363378767428228437438842847786754586938096319412845894481932674797475665692657972646628462308754330816449566935840403959482788026725786648252124994271773152505429300987788723482484686579302646014100685412571294499093792868489518245541732457378000443652833509387058419923417774456196049658990225085986406691057082338177091624148880234352229602527884694874601199453309506059336380979380783864599419057278520599719910213081540963470177097223250942072276262713337378679941302012993524948160242496875193344734185578872850548533180796988165329496013531359116822168429330884674577678619244742559427491214697985467146774833234497808858855067263775441890772939607175077845116776144617585718972898700814705238856576225956288785983467307810772064891766539901214870182451702786836285073755083477321363475376825646781201122185508806637760449035780873532887154785573026243729603143215805682856562208300130832455055204016087890471645541429334841127622323401675303522856330496476965057063675800070590969939835672602316122923758484355770197417585607175896749072186178391228622505284909169339275551382526207806683362401650300322011544766222355498941392317962780073194826816839526794716264298404136853167707740603367291267615372366474065822250910233979193189417021476746165791024908833608195341771857615093378111911688315242982859667590659736026379937979257864788887075998793445409849126919506399114366596282652539008822118542503462459972209188697217625210201216197603716047580991343272265028964822745994501458848839027549779668819139298238901140595595382657333940238885048753497063570194917442137265381154140412473680107331734189439516794335950257644695051945952883929139701067147833654184624933239279791300206589625129321745046682507308506132471334992662603317427806168355583488279336421505909083144619850358365603087880352516564125821646209469986800682274867880672224177462932844925104429023169236617992879009193086872802071593392021624692039125702466979224592417003313574937459439979626628880874097203359134335218456165288757481826766264570184140191410172173984769252795714647402777850659474795117584660854492331738980438197191050779034118209369838445472667606764945669575641229544455185135771320142272727860105445622974265906693319086770220434281966607420964934200617223558482997652157268529876417726287766644117988517919010414680177318999276288676444068386039247236784384276491630583564437151202664123847621887728065283705810942544019461697824739034675303381778672850023721684664960542604317667262415559122440602519739528009809317559836810113011962169157071539790694195541542045399193328713085996531672906534007525343474907684230539241451290665675739527735175810218080188768982245049553648251682796062222766732048487776366156959100569718135596616317335454103156548714171868263688265660709752353874496586318785661462458229850673752490197900543744013586571018621776734091257957775040427502770372444362359659578335726240257139259042449325213348959579977354645045370555087405014159375487950655409122246499420372736828848704295673390785734477733094963919618076330919077825172553270262694903583122190808659384530276946131276513663799279189640864753884923147557031003659249075063559672694521880307825967921593074475131871434721244181912006882381638357062562487059287727894614416827401401509531108682879909987733701925428010445939457151145491372067876663078833256885914324212628126346153412813791690669285653681794258332374223872137638636602055734841043632248478313795998186272028066402688126579570047246968098592779015982157451298588744457850821985858850250300026010440170097602711757124481971015787387443800274979302479875059845449052471631543712595874765710048296046979396630496952852489019756399164508894206257210652742696356408654731341940061895052697422890510760078229663256097146961214437284794563168726444383967078783588759109048381479456736853694521991929539204106712459489766862574687330813104695379067063585035065875747133145870840452957101869025714059441415673461940114017655852606119728508111996824819384350642118838943885148236575930566676963359086772463986273348818040286642699163114846481147790603409265738607350784596575499318818545932223437229289275904646983137783062129529033969565582852579992013143308048490933410106455947510562984504456696640838057393099545122849237993860428232602129834465513432894794052138934434337486055382578869065196799074924685907387518519148562573260057906268992768611614053169979070300838918072849447234047622206678686149177920561139404280204046176681316488272694484522078039341667841163528840359264938609251281566762411278956464108936569955626766372285576103681497431446905180800335134405225288273245262638077292513070377834915209401162852639732503820923764754785052535178038905705317342308308028325427946660925548537382686600455297521685389141982675087538990381634667189540972587608679042449365463750264007269788465714023753766774206444269091899663343456075288961143478844511226621181705504969844667177098394494814785077166678183472212320828901312622405079370523825704124045040005318157122246670131836754359995887073526845045998003821224797259555839833740824923480154258231500051324041616907433890346374027494489793075093317386702646252502924898409683766577460647563317756640898503075707683060569034959822159781244514606653439373380322122446056051541587598332914493299732083597455877888695912833760170281029945041549790264957199535519052061388119616761604058621626458376489154059760674810129274847800258673941380910859093098777614979667633099041945199398768068521830383273852777139767560604096261978366977402716197154592326251153470995653469761756521513911125771330770823985500181665891487867442743531811691312764201214008294814052523841254807290578700303209096778922479280317995093025679796081540597193322021235260975941777090111785667498631014547771577131624911847123455570982690322701662476780672100310794960595895706429640096329539580062977437621357650488504600073005679630952223502532544934308277256663411516255321447767886678381123651648325206988138705324732715223234169997774215350846004962510339156916311834050495518583849036944494242578339858919735384514379043173453821254502346779652518840919695056582598336691946846496950674671383480189773281262336319220746816409832636714062009580866305860246565613010654612887204744150581103885273999174514594324977260689159800704548360345137733140995298513230332588221295341784738331085116730714026242038582275679158358100491464485293318633446596610267298545855582060157351459842343800253669645956153734550253688212716698250656541023014572190017616350243093132019087844572364057327637799888933099055945414009994873274511253379290217441470573510939823542858757951827188511066669899312622247992852199500702220328437400214041991931991831158917743011528201689440851175536642816133740406520960517326966587905002460667393977635913492960828530989664145571954035389402496417161738946787840876857004504323120222313959509352687477595824455875878327790169232302869689809701843497019599763449713900784548936026730739751993230683265002468110476872899302537091140370507510836718143851359819958394706481141514323650885471625557063518599021697209650342507485324620428983804821382891880118859743843827876827162479694597036760807057858151937533601485427766254489449821961250245519693787580803473733686489359088938938056890693487141137955237044990234667615203300726298055531037620735102904354282682206207308948736782635932979743139665274443315921143175048581361416980853791984250000882730229082766282641545084879399152122054359515057769674551914742537808891134959236905885375894262736482452415158848973624106189531045549992144700271114077371842445383538003950498288797190127923109679693687253640516557576687439265281506273844423574294119283551904343004189730654733797742509914604952928348275014469166174060880325398290234761456810493038475125836221191665706388965973275419777951886895288959235452813883774867766419736561467763403446403919994744845963458381804374044742544814901769059513768989112529728384847349799508284304121446985218829001149648951133397910201186511543143385428089947892090194698630508576620463862511606876648212849996481915161000442427737009091704761733952060964573210534936845919138359853254053615392472498589199131234953790483712494914755478154518796267003941536391360317417311024727420081730354658788876209997054557385843517706238711914428040869163135757838868095825074535741620586137841091789727639727275452518024961141317974061574369548328638083271447992927677877487593332767985476310794048563859081210135837085083859732431532992852438717386703303205842636934125399686615767828613686300961126714184753617670946024305816523352926585219227716548981415758570121657108101343477513553241995541787125074885411100901705249447116924564492421339968031524877262069262993077893371600511083394796948271963185071527539268443047646350261059843322963921673456436974186397020110565571273294617993469400773928649810752699352448289103461346821660599060590956745167942319345530756596697360181904070209028436946224613990786596079407054857464955223336135634334106066538828422581700130781407594981984941133361031159259817989492856850229437387506945938559053718579137518245373941482464930342435460489090195856123426764198070430082905880204978387990692908872184384763836177170784658066128869050247363463358635372784080103976964415469415509105955643625697920909332717045258435842869716579025438574502629951211786271681979384385635944367964034115881122631094377317089873313200265920274617624735663163939441717617893752786938788528356386782537275643205731199493422014319881342860045364416896142080393297639193533110030145803704201073783207482669549948764887988333619252742501051595609428018048585961193064212456494065867940533904488049840888852302730220992845292996863682736047400472384055652914481900083587161296621712501528452387070335442364737877783377194251147844109273000639301197869587326007922334506910007652596189501932991094000007408818808155075735500443374834085933933621631535945013467378887241576893917238321502330016781373642305928266879731127640902005414487030914236129984432534903039519899232415016541886309208485471819727008192082237109691196711533598245004569309800570194713260378499570737438901037370707476553153235199877515591140659778355088241162901875443149712418949975163502807349926352690710456979751258156498282441596950846191902667752700631417597228988570196880316821727563232011530502825345531959262762746865344968404398220626816272553728211354456001557459043764736365980029985837296374966937184928183646013113011251806876732793711480830530186528498952298142411736456935639234044284239952483014750961673357354018068605649220855114921709215840269049416907296840695201384389126912581706219678900561651931906037703462916647022708665151257972253071745139085023383969851486319967218161871556117833129275167167870453680320119079848577969056899512555207391581136883783330202194320762933278473204954073845398134765745991771549535064231373377065587211552976341479981791947129402655198855500114090640426719509121767059571323085859417694979879659510380036867785000629441934873777306540554455705815227539863284747032184736171365393224428305501129610509462696490609171027759822727212962148486785704889599377687865412029229809064115480869581298374318089137698626977434194083370384553070529376129498549537986609991600575886450347640887468457459513215535414416970912173004403822867084519488789013275316813618708705587337129568057672332708450012717705472237003537207988969025943896598353435274089366821515927810313996831340344071973723788265441239875975814029259479829416664212195458032592645159347005985476320186293650584262858939080888433001054694473837417397824694296253422196183841112002556443665262746084046676006324520801933450106593713579794481398600872893976733240673802244459392271447450939421189711612089790116330445325138430531588638745308349209862516880961524813081206904539604466851542189931164633891856219665977443525433276175951089976263173207634707558241542734507329028407411464598125862621332755105948328881074901289370865917962496351985334460091881305636840018891712979567636455986420300864461361506134888929709413973257556987915472647611314284126501888281112715051052142386161849121791168437849095296919033862973812670253516502526427720198413528596308418708552114465447574945241057850453385956720153356655288520567060818540829086125401746241742535679731964384785207773270580821005305938545892074860770801194696868203074687954417249536270980533674984191641626610932035371963160645112001756504659005203108388920253132974309300044414173263619280531865163900432886372707431894410903469420186366639253098041754753619062568146886865033868987918849006305617163140653080756794706300547141113360038234860111382760954840848151128926215676728712752499895296390685048361028215238621915708001300358087896645367770366978312531542782462994954053199543785326671906610772922177527081887382915039160486472210705253718809586315281326014893691487072109401715143147522570097185014511196368949870201753408403861110124338654366543387949317806356249134185675472284067214878263149265766185835689327332704347920996506143056925880034587298085585209624126965479690713041489190337405727188251762724975011839670632802215444945710925578674276098777678221245730506552513427162689524644968667561545357249328584246398273721546017190050677914802176623875896935563200093795682355856977185705572565212206549527562646072557943248235076206620276792412257758414475876603610428860260579241656648716690340369859365765959830127851085938192377480425917898318551719861095988983715035125273980018461397867479245061661972778545420632725673895508846642280012879033052807196227329178551185882922138372322927165718023581103160299215113009147004379832713686233775024896315723003442349424503025053592207045850178959554961509604800710787722026812491778368515601777136353927715389231631678936080228237952456656485119765172729336998273794611641822714188172831534808667726984911772949948970562993117933880874353792730996405725082365530927972629608397328313579068042481400194128103427258015120744978324704492669418321340692863560936617786494020404076629900782144213022769545638740756681119677647482539695943121283654256398939386058887159418328789562712101318807852876590137058212233119579729525470068518194218260859405627803041180660947544113821717262807585175318565155446832868860648942395912296328195050961512502355713003103454750814836920413414596676204371346496538453362824518863068311114663182009697971521442512799373397968884044897183937768613256224331228358738234053547838865620403110602011777790417449958212903632092744329582359976496519189786672459220997092563466343876008268742578404548549084156051027733527401670184112412815207372687908734100182351735865808288325713231049954807423245552214669697973671645154920728445719021408492752820639434087020934327612419395796918403741803949973111592868555983943340461181608670643518266375297616304144988905620329782956602031119579147728209592052419203279160029031781147592183935594142733229433951584265804106244240683737748194803186995593284242560497104842212525544757676764741745629804518481826252969674093527091762182651297955957256941775042824575411793433193497079514992968621104845927293371704380779598637023260946339407637128378200296994192760778790832402825860903718472926011089293540979504755641500562313670227351594893942181538930525797131054231046782548675965076184943987207967100098178665428892488532572854526557479370652434542402389377850780246071372456361008275951919864425811474680660263917704391718750603060464254592905591377674279013005887825385495580348412970254030841802324267087181119348007729163619458337798960936054372425650280978360358166760602991502264379131406834825397911847808622877985466054088658678187169287647177823310434850724751390382209867594116668792582117541619832222870305560057774125966875230333062175170578321360029930016880535185229170149237001460417067396583663905006442269638233683057706186237337721946220457327219695909175714448755492947219010481179843674760296109232395144795417391918483391834100369250627788623886776737930279706541163730241555217806888740668086538080771535027109066092207958840658135370637491430009099976562502288778086642480955093995311546393542360986236679095086797949066607669728333754826360961320016605133506220321368115761855991320470793305664773112291107304017165633570336317259486056477567351166013054164234556120273451292030345797417686784053440847996330229616461580702101321894542486903329116007829436485572807146016480849929414447682066645169728038118207498701484113738020421498385797434339016271168228188492896694879307888698055710162208941155317399892341451779462824571011631969201538867006443563763961237028846701734369908236621827032082735500124960981203216061732479187128810937964668304031621904393036819098536759945747784208781589657452372647763754007858634136064418921490344820998800933432166802073773977373555157990053676955791932706917993040884384778844171988823814180028512486855477971929812203360664147853629552242546535690905753023130929608862578589680340617776548343791794109493848187729474674494571579842018509650914125357428799961803402096440536466354702164063842366728981579528202326025003730505136824620259540137659498543533994102111940006078434267910784054868918792173813230653149922157327096333450103223504096140420171459979982586865101618135603064791831485461459839203149232111933135681619652559827675078475265121647130215628145934529120513812167303060427807240945476964846710291687662250214456180893793829202217532345328363870537621428935832519699014425483294543333199666754156294181917621769952511313818425366069562280797736009961807311203827986731214865251256510025982246411799685055591996737504517024827566814625735093739369315351114239308906303395343792706550220541412257757639822890197709328314861434193953854495485343065665688605364413331276511413383113959994506154092155476762994916119869946176631611497428533868180737016752307899246469486518025172338068133576782198359609476732188205937395649919671045033674137530795553971877141677986182297971223898296732734644197093050753987455994370677564382099746086199537558473699138889686218149350937662856616479469880157184617532870321475056249125259510938069463186242618224326832557104268947447863389738784846753426914955946104632842533269620809824711437611596530760032445561096304366020596410485293920641222818090220177607711230845262106871966395663931295620723997633436562340525892011596116820288417612682148897384459555305282234883095569767485204159448532531656517453377389251380726129980525039102317499485811270213756164219067571757187039223365174041242920484741301374363441212069772662359858999522105118071776853160482862616087833323453072731538640340813442577900732552623084040201021119568703262201212334096653407850766070388280943537525656696447366973183799792529356811815507097483839305714107604457405326345646548412625006047404206961645160436408337253157858938744877431129696383213266449057302397917483294843184316712956744336791224581371130620160303599307849546423193828243286846924812273864867613417627345094921584984781128063954724330198879404755773098856623825181482686179043913400167424389316362487335474090701441773474434795185636374938779913890102654885210404819567275517436237726417580541696997288689506349952727998340660663097899494649425162674861341954590561697573388485186062687556364839927477098278273452047108828766625235593679984736880959715778144998180359053952281560649710211784640441260347042996705802951788501538640712380646200459358443467927287846254021826712745817772835013206149567061530080988129093934338623583553157036821745246180923744166377359634449529647262027018994992487571240745999792798043586141475884444751213338223708766746499197833929191329009444296333282403825858502750506600862873965687215298268352318808223521825216879887043559856652999372329980406720626535600747617231066850652478382498933515487980177410386503847150816957386463928585187742609895994594488159220785766536983427656344181531297172480626971579555097398092823952595666451340524223065441595726587657742566225670328025351665541266055633584964843520729875388370489295960853516493221196976328564802456102321501103347801806351153747170238450398231623035421676637255528503166656322406130194301556036363221573393525813395856448528691573206454338843581016955238645250429819348173758586129099671254326412235129214481132409512886156080362316240472114936171503487600552018520453631451599781438192202897664992601273079355382660388484056996789202655565560718393822370254083069951350316870451143753822000371393985383585209601127183349217305249882153283153984461200198998087907164194336579069981318231139156444518093841875384240953257645414883462222808562238320910795353515207129220614260412876353474475142282995450325758103026567924551252897667389910742812068614830084525810775855816729979451184038593077326304528262906491603412487740357142109331049109195093085248489796020523541585078760658871781988673300567227346566852255707407894908373167202004165984148136222665498057281477233421514713755188096494146121744290032017040597184508955404060505661349103574607732946505275413207275452559153305048987869481974507888685071471583091706402557201562268107158443946320669003181581486814534953941556608853194726998665615923549983110096739669581124333571886059392746439208253151057997299568634087021671004818938960137095067178289770786382196148300525400122104878667929116183928043083408088265720806400339125073337976501851627377029771860108963965937018273236813951808967548571618156292723324000366260600148697660020369505315993587148046587976137173763887791805156701135547662636975288674580603568372767359663911404694772082580239849738751893587352487104936962426427461508909447766828457655314859028036158213227379740680196938348728088553392850992811768151641411113917739469540918287044934895441297831578186557196464549909320978921829676409889916735096543184176093646685770655932403615140738591587071324410086549484229759663294578288988532702832979379693865815976304730391691813844451771311397755622100481998273446593313760234459730426154233124324769279527383371412148705829675310421526823792149124935626762155848474222422272699916898826255281471865405100456042915113721587101918102157580943051698410085752699629924788249931830123996779329065640282810361309140763663863594037843250995913091659057230952680958434178772780040243393146572923562425979374784584142568242396812686927884756907996398821706907419856428726648162512216635972933918558224331134468416437551144046881459930177176158663766406969863399501787639383643848019537261148392768662479425791352532017313352205888653919296900114102394144817323955322052527105999133662226473661123108098645228888989333720124220171297822669632098736106702341366847826228488209640912408078986870713070512401068116006670930976701861150969936692296022227642558295812208976351906672494947806859653140750209140871988866333902619734044353403769333894603576325336186886739776000648703566004592343612222932287905467373795744132980708515568945516939064092169331075859022413122853883083308469814089110189736992218721494742096429211043818759430801967182544977813210016603786284276537834542439763443554444977054602947715870208238076399662466702455999184141050749724164199917517241267784749574179895042770333430194655088263702140675209491180509250040511924219910581728420345539308090766855966319492790594970674391234218598849563867321744885695284344201383423129511081870015267746490393499664670396262607715187306681066340013880336057148008682054348137692397689452878506973915731823671867644974606031731133812494424513091002710725743309371246217912919034179882684887638053152987663679416967819660713151562041897778786499031411473016309007194287471285506556620296531143016956844549706158713469985716233628270546912070911607212389090482095548470216960745672385374265876624067284963314165601436344406304281047064354089029906080124228597582641119443777405448811092928237024125248148947024898653451492100049697371864970476902578642915162841120625157348153107639977695046938538704171327351180740334947994319818612691087270741337548510109387142432940380081976693914797745541930063749515663387107880853004023119895550105187162429242442530120275873498607520949107926732819867703639735808592486033570654131069625548012837459802897788721105948649504164753244721995419620193697955292147944622623523636437821181397910029201013082769256946411812910676191892214194460156664908726705579382809430481333347050671360471785692141665706469744688615315258884957720384052022045223973887858491868288213944981081053814048128672283569912823792502119115322162596415504558809125707512248073628277977554959240503626803648185491246115643354877461433426999854492238147489849909779231396889615573130130199469495050626235093517152941276134696236730806663997467875314270739419763139097274873219268162345755653216264380117958700840743366696509903650737747894457553007061933234084274783849863037981753579603936923085136323673944936300696581078714157468650474614219327066385617071082585959330305204623321193316019375078502028981616263232099622665288104068233262546905346285250944103717114941704514295997409136065048906151138881941295979615459903667989955805742273735789609262386488771750266901632400502630835323915683987187301175150271158436078191303951969632767604275663194497320544050608368268722159157554938856067661913648615134004945920745877743391206662252425138940301056656975779188866568099739705845346463178497908960376573241417862280651794480740631287340124612939476570303677846745798916451066237144329980316212995878184435555307699697713746354260987416121310822145811045898392604897329752866494611776745253185362342854584135427265333455661482024656472550832137827325179129952608689927548752565625807798532103179748141288957123285975569310054675622022724552005539448700201927388463281128335204285297510302202639044029099647631855501794111641769371313056814173662014996252626506396229232273231330556104211395969531826989091732399962782237879089394006819493109222555848224197588508159759339081337390226061983930505119882021818519276058987595773738239652322180873170902193292188435869332537117958689026509416118085920454444926423457284715447573794977104057996367564726690174233471644743507156937931886465018273396091674419334007459448034784600895205906210817912617921714977294305542540868893841805513658079685145385396672834333295125450479856371628285945416132275557205564951415385367034561562946774232374647949809952859769602940193898957019874795522482079413558947374206258941933750101118832407471268415959669427657151135990517916541166498962707745456766476361667774988102770514168187532488904356593190571891041942536125661227481200098947460188705239188818663306364913721295828016349266433869583461850402120140935846829359011159659276563991195033877912003627566984552065180596250187533900624074936450123392172060298518368352288664014776561390311660456317662264645381216344145815775952926043032077076154902909157417061585280299963040622227949616483605791973021033943370211405556979576389426399685245759159097758365074346571461776733912110812481632661762286110524083024746084144446679501025275333975852708914847051821762867326951665220253599370465310966667117398841947867789497700223461120355897538282287818328272404576735233838281771265699117904035661950948911935298133082785796159876785562607304115540660223298753762917578276349365714405915737227160977800287088069261833141852974570047108233681311359331922292235117114002224781148122566806373871437219233877494669542093350527912114762481077088246769422584803033204786789590132663403950584766599253347737658906057021988891012939114177407910475036325540056482673633970600769744167187817325376158005670968355434240573237786533905754820350561928766200316340119424723890049686894096676458010537528574699506576031570924285187456360890720720891609077374585553790024150467320975464064430667007481713559155731323051993887356439841954063374536169140044467973137705888166084490902171088493671622585913866032351253343108841472969696226748300411113067086368479241238356379991224024062827510247265079150778051060950000640171640035702204622048263845665040300681841737337856469686563716893524411815455464966696275805008132643824598409160548129007505406824232953622641240611658357017305173650747593508998866831971558482307141819489085819121244688162980274704695359852842071347393717126549198099405921221068488057007860382974269141542612486463358178194464949741190600762419141360137926899030276367610742720043973122025103058912247416901355865032311852929580074501444960783173307273743104846318128753249730883918320120481189823192930508492715738370820715085673857475743316121624102839813857051165427284585403338681471430151852096993506475229468050332796016031509815184830377097146538598448004208095602612590408551495879431530684466094095492994022652272899686667175535377593559371478268922562537662521953235758664345325369777985394037221563570591032724634743725499424300590278291164006441102825192367632540517791504138596528510055331997450020071840585186795104269069444137259514143257522535334234307443808110290455355223116595590717736299758616523391567472116715447709515882360289275992577777835684058167888508552209323467464036929367835036952217224850329737698383361646865077591997712175848533910228689567460161020304986262604645549310968457441557185758895401766908993928834430932730432437076614605522401058918687616686745567637334535260321648954173940110495266376970192716632239979783227569823630309895286253258507749000656632146506923881974849699000006450250093747879857067730107815120527754162931700558020034600446286419161038987166915652729925025997383297718541404871524562202022275858966568542680726752617438436552896697100464520519967659838155100040653762310168543666014080909281499686893632815013188646936600254282765886697027763332408192445744938144624741170396519398757700272690911146777026119277955802151337088020512014147322384822975377480402119754121814074775111814843368024183958265409932941015380562554787324542948122792233089981979547849246983101757939939934999725471347552685278386594179093794181627957249181852747886821045689682602883148433227973764962896629297584953628992428754580646203960535700721169935575712513787289751553598690820371042148547605181301967665884177560007803623199365951733353360454039794981586287351282883511254200468339201627218242784424820949589790799617504809268510439728802769051526659325626197539524097976323857435353819755916342648370498832429131459753367219959808943279055660669747136576976586802192972873668266515022361314582908451691636160322301541789028600040082425030107506815117469636145222251157274018278963341817496275812752495302137000609386669821389468633040215940537177094029677023722971408536720832693886795293671374185674215177660051387657909941680562066252813047989245980261572352541513502951567439355874273778293714945856297841315886147581333743569093274092124581715439226207938572856333791346162901385445343519887559060858944228610318849778839767795149175245929715652081026324888774333319987580505211637574232999241555084457779579958276921813102631689059740880951657972427153768468137037843854357117696087518530542674655902107884220412441915221173949233521954471335899698438159858599277384139038911952554899633647294644297970402878150269542532441739784328469019631114285157138460044904622515405320220676611698690591803314782160384534324330365463813156331241708691989116959750753607962959694277421591915673800640323024787267845369842619168357105529010551556621787212297903492893832736599776790468701569593375968748528573110982700934129701931714115673435767417160955307871006146091434377336886264304444250225830223187977092195333866908282909536636684679844508298807623192949530756335052301346117041123052405846449759558485930117895464803173928004811791722172512671608085928370036985083711979078424730875450721738605566660162938642800768008784437441349552286882980053954585129728430926257443929364765406946555458073363865246204789303166660352720746368848804904166727311053312350417136321975076178349413838482266763383514149639588569905723627983119140525537021638232588337984558344299150508791891071650313736676754194956811771027724664546395263186823407871008537194087402230122815571652523247299843089443755495089492890033964758332836460789196078885111347266847609453043674338383663671015006251124052324580750161961257770304471089184366184527518830856063998366475968672677289445154431509884734074580097770493312242200966787085035529467052304094468867463289552248380728131867987182452306439525075106420359509465892270647877834917869963499657214296909241847699562793845210701790737580927068372786862416831621180576645996027705148110581448150980194370359101474291770159549062457373583485870188348597837451003338168862848243320407687304568656517779157415229370207644329921869888196009769536612597518981537937510549939640201799913853863707157960417030925145980762334328358092138235721359421086362770000630201732299825705410185853820853926227562691088325260497746766600993701568619955425863605811725105889692911178027428520816803221404531919093422761511314259998032812384749497832971905045298518457813548078207629427434762188923973095092855600182104002376232272554500723787074162911914635005439641355170630595045315504761033906771153170606849652128338190043907552756262193113382912777355058815668560638309922981364144600431814102006593755077957304902909260895959049771374877877194355535215929686842012413370335545260631040488988707097243131668101328091298331478724793075472588833472058852381801395859992159086184316080356105032780373208997059492454033390439455215460490181125548039055390043587864418178383258235225318803882756102856368745877279114868114680111296496347842049469953428592866393921136500709790110550081129518137617861081301999861348980151833786654697965271488528478443091772189179513768186353471440061696573031795976130211094265446907526261925434853114447955456241142178221438752149441552720079478149799385283112770041528459364660679470497930070941859948188633597394532330545514749080292934511127071520043982756490830599267341060498069224377272990963848023261339984607123077441881164985675369762539694292874296726138002659545385657579385741785277933626388167783877686968953429122432526435794653684792529086122144643919030717480605733339766544642220238192074641822772558449841559071824390972415166925323947802726227020723953158536143848210985752501236072209480620592990010584578293940365792140610999535693584682174516887694673501710883556049918243810715893959725367061630840597328057235676659433586823885526806163154424929353810926816695126469690564903400284494846709368421435841862805594717077491697292845878616320479224457100495816931041798752541960529929820567030956016672784327506729495379119637668897156063817833316475773636377361673762830187147518037075796786447156855339187645928816726791311107654893900577276378409064287181653177855872471109529522086309020338929688143786894069321207710351600780961828450804665697982511028016239215191836225353397455937901468952956335056500117978532309494109226855125865743334528928868277746758721485647043426228631322430423833407079420484551691588383851378465661444729804891978751344376659574906683264307901958648946965200929639902554136216238127334815226964969951843810499098512575007489761010541415813941170774781421191176684861150979245695196573378356326826831367432885114720378136997150140398680794740282579671198060456313898123164827407773810787108406616215213877324698600500232054922888569062358078731492439074218063484758642861764913503333809352184220376980618458433083656189973563691780471886194328751095480782143959052167720857528315845605787181616715317369525656259758885746526110128409370210344809531858398339735883801770051131270732419955897916326737830489668669306925134593117257899661933323180027936829120621208587510088557987276490833350702605030756073853996451801237136791431445250522629420060282960154095346660610725479727186997827767568001671127739783775760234080395616578799556180673931086619696135328317912421507949790114394483214566147219564112781487639222402631700193493942467713580070395436484699075183741438744967111715191030785057282826474199787078854233484669642630918550744074307137658898455397560005740928431061251456870609472767606045461753312113959957336457897872914354246788711323450398921306712104725670601239020050176702695129889216676669380403444772160694786874807367807712264905459757248252488613097104441562138305856443803660966547872080095019381365863808825567029212201583097075765142156658316754900186486391201614083945228067302943517897239613667760749030779793660577627906332258809859755399472776218233458475065360389946497923632856667268460038472778251688461679711058671117985232767476855672514798902392616121553951278369394009381587429195080075629210498223651814227226391991373075922396786359644178124411894190857287054390412887236251986253833927442248294311898481631931172515854868594301192179979626443601331908080226683005110139795063468584545327601593675622068311162130783969052459245862280856581053617031666478750370194873819372576716204467862146470266884999273106490717762563788540396849257269866941341083399270859296472339410136547981037314619560693253956810351460153530599193432389468358558213015463157463084957009682310557612810005449864987013378988331633747658550866933201985942381745507617761265489381453027072996774101152263697052493398060131345247663009505960460845602072173929015509359205281291458612012916056186233794693883565907191331290821091180388126252306397685644218415296568815638838579826154613174875538329409804483916580252841616756641377859097833618443136473449087132510240157695864663368492186088633814518288068800273866325080295544279382524802033211749940777558837453401342682111526892241712336517009306757526068463498258484409345322283347395897160958682799776306661296273581331714763677424313169692191994563709097302424014939622558852328922756045999049706807528739792630141307424132127606831113341864551902749808777872370884779412905272623637349193528864167874171626383966908433989795662911048369070747223305837155907554279815408314083500337896227847578293089743173409650532983288130588356005829918123506319846426522144723435548660989456465396938344567890549461662815587292624448705585580459489020574308195950468187819824178503175820775606957184417075784897772930761299985067729401603708563899522219047709844902751652674304381707084973875608111202839860770711533311897585847527290641882561801914114175581040595770426969893879985766909077188894154036385912970760395215064436866467574017367949282988597442165405471904651212792257444454825128535758947665605243140119407909756879514458825402169856308484234686290809542559354984398425032169391454587746001387025015584835503641150110635613677369585937703109833871223629979229740932847912578802913574038972317528682058971681477649201404354419700352661756982780276207172579528276634618699354308965614673289347715268562739433048697198596837449111448410850725598831264513185566246548612703583954639895400096116630045662193784773165682284015033784857670713877408634781578647977276125820863332400550258774445759489333492689460073864151057390774403357463558079977547483570010272653946630823510971315422234000068250614474633127522291839966191401240278320634910648423184608533224476904466867816123519427708331854888456644031632464737294605854963663094270934152481919878641380075991711170970206035082083545979860434373080040843166977159832370270642501166753190082789214022178505377398512398646042255024604423566373968144305335694377899515103340611457745576245088314796543654653379443796614420569879231947714625821173761864716896605349865540619148544607441993392518650693144289301199282378134804263718478950347563750743841033472252170462017728879190889584122858426620523800709348594192304582058797827040999936386804566272663907108105998444582533040529009884328245898436440117994827870578282374887986818924858036746318496159816361213323496431872373401188367351712401100994322344995173591803517449690350751555674429314434382441860194558091178261674253357059715176905316561190394258149083519065095985741821137777663737594662726421762807270661468573817825088055341075679906034114972364690685078356067973210919199628729199563462593650295707849458835450625038648069727805983819283183815097389895371713294822655369147970892701958345056341337368974718576103432829180008935215053307723244340659044426584241218016089452514618927758100091095313750173590683031727037171656252018970032357611242537353884981287415190543174386860461966855013082184370827241687608926346519394397627358251803402517331660130149999636368152449103807276144635931082760597548928911860804691331018864155434460142906745786110526274171913914369362921161099660560565685300765242527085634489439890841103581144324723713277497030993915065366855902560727255451628357971666527931294517285554931599027039852451089477734682877841410270751265028679927946008042146554768550076882655089040984656834271577251124927778197288900563798993461501196458780535685924521284027569228910702538604510780935048483523137564325404127176498496313041323723357539976560623910000216282862088797154972156056001427676222760784082542162802488195803513462137142785821007547274485494377852131134580437903146923561437280752672173753635485040999471155004329629824203656162097681868144364899187445999497432660406036672243557658637066222756728548735747183219045897486109277645456269379153111673587080358532916436371331088706585965179286023753942249885340787759311215073250932113196548119795974751610807351675434551626963569833482539885713792766299369372386945147183150586847012605927910405026259212421395667402221499420104111250829941319661245233244074708522679195493129651193824579249870066694724366556855736907886750781907780011318948515551941663621449462965853308902566340542569527463465849505940699845095639929551460282795181465025175106490597785670264270054439290056782054756895901227984267620813582626247774731084492039469178381618258960682406279482030765821451857546039888849472583141077716757927886308590676700589725745722287403607986357592479393120585286559628913670343842525389468814121924774144521177659244608262895260655939858965346108018068578800525414271472655318250985086153582184087931924563188195488560084393276341388286836015564815745537777672417046894880844470537322682026983763023021765183240725160085636846462581845755808375328725613235778966422752372749226777205168912726640719776235006419160383723890769237122786685265232406388935868706221668513868019646408223061303809308647480857822573482071487817597795163075536852272252353390339494986221512507325114750128420138892271458732425895173306064400452422198064902560981928297495207576252964816350032574093990165893454897836457018931645054354021724279137759773986788953408414736207268069680434060970306362586159976435610229549001678198331247206432958144675425373870375857645447987286883683047619464052447645420260071313543268612305950276496684883039426343754538724458390601628520115487981726231865926718633543078656219426551956980219588828676972856900776045143997267754752317975357023230942771762119293840041722338482151592446045000966201530301235404186811062548619848222788522361899971977176511616132532990797079232319504556957047609301495479682646849575503941114539251200057615788350973566758325017091668693637382324741871629281620852460169730249486578870540234626231085000121750714185775796014136823668117429922223856417420911695735584212311224777417939826449304676455294325565838130236428323771598003777755146779157240358204073546252915190673022187500856186687726877770174640378751111337738204108748592681016774918699280931682664771337321990154615812702165900301945684800492275389990954207167214842820913283617354768928828230792372701935137677072318405193459177249612361667271825515185128421045629241069472460530877181442777922734215246407576755493435368485562149605032174712037327485011400044123408778614494147482429215024870034864982238089490897702921460249642640530373959105612400063856095071289886297860132524608817360786498733429402705297398146459557766068014720845948669390210955453315648358320132267424263883152187069970520292794579214698097690535184021142438081709426712719422738236423952353128790154494634707636345606809270002171763788814267728654539258723904888032602744224314250711718703619721672779772394280645893089835753284388831596715041382949756368735093936573959744600091241206502001132405504889773486403614852523063650323282734226457927468676097777813727687583231746023390181001849871941094216319979152621846720364199426954259564578586336008330110216804935353472530200051009842708130680059381216786869214657769863209791923057034401917351122086121552351801146586090371763239805455279931538625479132684904302197567568177939329781568597665670197097320804366526086635601897632230753313745773919108071972146344165212505988941900646142050092266259837571580744958579613701807845741045250767329527007390026327213614913472601651183820753658007934414658404525514607416750002220179263989691159025546570130788587461281243756487792957360941295868954084073210116974468674452495802620698308550399917423172402392926704818682092796919149722058895631587419083952641680313608333401286351817650415572026005844662317433349395078122675103383977876664019495496285394484227869985270895302017171594642092644730690277649308799485415404759233475397227471772104274287351473558504026662508386843540580919976230601841506223050157785445441631831887208131126977394785936360438256708554202957128719373694429017488213002662189848803179943189840401729771287641905433200716816532988210847288326385591951710018494132285803507463598623906015006139999096577956781539598719790420569219833237238507163933672481357320221621356690948605342805662279666698861626433044550719376186423486364382380597436062184315510284221660462282677730620205558495026799637282963845737733651857174969247168854689306723191968474272959620025260100014658301631535529539113251942472846579248381998044337467714136168105469752919196582068018038857316479039843787837571559944954125752392476582807547130124727119138259829032086002272585252729364307560733975970247399448352367907215850062704711334509968700619592141687596845118098747427435816665734473675225658283653680938776283626039873385297927992296613137211268413263010521661877875624191244086955744031256589412390018810087720120571824841146596577565263763763339222698858027454818924772038858256589022389932959248178635664168105274184682202266417665037638761313867889669849406441061884969596822528230060738051486123962563916713895487685933911325858674201568399018586699123776609191459012684860619047234868218795104124566793044448029932247576033558306981799124387075708518045975891366181787648882173977579010389649065990249903020838194065719905407124425130263396386054960483255515650506520706040840009264488763663423659713880399983580659266997797531328690492860840782903708147457024466402932558329072922999920834826267588963777381770493253546397900563170325409003661149505270927468121125534268024519592548541980834156028380927467086192661670291814490067089746276642896783889090615153701611316724591852778648462921017084730391347257804010205151265125740308180053433957625961563620366516158995460471226403847865738015008602392297122745786402454434603342160800840799487073499784365133537509681972519968494125048985138189045049395486929587339521751116655397735679996236608214695985989424206348572111062652931921883684642707714080786430807563895404517491628458930241870176854479911274449397758079976365523892375073090841130119390570969247193269889814731775777952647005455096734663114149108861017450754352994942553229081921773963344195679514433190262395191692991401055825947245984081079262162238151323619875761569835143946135401246002198088110358983116819840717625906728795705558633552678051357862405428562688427183158028538049519741319691141040438211867064729603333301778319364603398503005564717973180207976069415651797996239013655582081513263899982633515413393389771876485976528270979108222642689914995852174356597326160274212599099764386640961499584632945380886572528721057727516208391486033621503013523292236664063512244720663169608314419839483751885116356621296355947480485061745749539994067324704683006256216567406604578201628592646844877979666122928661046726344277098038371278155111218247218778952386177298148526306182308505438296212692592385223518005013666865677184264557115728922286154844230792181538247820060324221600310031122474942089241488459469235597114963929104662145711390082958785445193967652863903010985406983837539610261432499332866316225884566904355056490598049337721493507643357709469815729923920318084923012360551674547006265820200358971862461476209289707531287581657707524961526620005518733594758860691066924149923979800576832644276331486678352983653102493485038195050067142850316903077756476446059391655515880904728205077395356336363210347745722842016790209130878354251250815051167948301121179773706600595728624079219194836413300038261114862919978788907646100093486180378612059878239445886368435920054632110603194402800748491860935420317804334243172262621948298095149246864302926678272077919184159579883925845361025053287696819462139482968116210682942377351629267638622053408995461092114199893136686469535485442528598743773718412657158822608021931762459354270679830033010343265891318720752286799244465593356571881043085285790709541700011399527448853574410681673187221456005688084622831560643654583487760150508578618858186045887687711332066381084424955573397280095998632525117061879936193262044471540838685754285066786978269451503756692766633699298542358834631705139221928132579364507881714744346944268737955189735438820919167075335220002407379595924017721134022003036833536105072980830991960372667252625121843577637949373123090689404790780109177668710506452173849260296926688214963389509296567830462448660449359249964790710539336630038937188399143084984941629757824998862123716131018119017652288573308807830499029212541601145506726058665966478079999745475580197643046251371923241175307566018900847176688592359924471419536625730571537443768670055781271253927191667272730986425982677092568475967318462027451926181247704144364883766730670248843774589184604672318057702856562950387024214636947747957566705301013375263369441208238004443387838773954238226815975763502548969649097399276431566916225224750282286792849244284049524450508839135791397670777686419756520428467329509487287805388614063700303372259797458241940124675076974034234205753616922685041178191388414852023900331437566294372358753044464170890389315310628831653653144158853960151206772921666993884613268912266272663517854253707673894995064179287195866750069359814613577921243258810260848940534897297531052666404497544433967693602833966165038068990470320829628529678281165379268334409662811368195968167383516641377566201133747901610995987077892533581377601908287535241461179117762267718855811059962447263505596937898686123778689160251346272504890455781852400244960943572765859248288741704061109837657441843567726080815628974909848539786127083343678106694651986050828040232033263792488739947603120378067200909117397148797608661976572639275751095580054978212710767284588454901934020774163491024398849878256740033686516129648137637159182588652001024833345139995652252700859194692768826871410892607146439181120676599218584082538115051684664145176528525838404047619285882503975991712675882574325771987189982306332515311478450435467980492587419276906787002394297741438446477178296974758159927942500717091284178324395773920359160225716116303019318260764551650350872955966675828955420634548899654262695418418599370526388016188681448255652489278242636128840184627264226997355144888534934770648784492521141812719010530155898392577703835662349018092868432245397051622892416577679111395556724642453598392494376252229459074273688466502850051365777849627212377711895555138375821131244818862097866957152370144762819963269072464810666269383167835107747160822371874035093871072108183021722167120327620017495461510656775602094297059621138210645403960859154232806387920292523059911759643556164655546673647029309308596850967856160977512862573737137740404914647605152782558253151902781238791469576899479873974410851691325152945922280538074347176716795439809817427886117878832790650464244144514464418897958405413423782908684941939918275624756072692222922960021484436221081191875634139947348929063419573634798185830402653675513045289016192405106681079349444127443928858169998877287401855252138887149904424876491504074817120373285750556797352182580046958823640507184318588576578776134778440024622329600259448693824123221440895153215972752514362741282686108203959059066179016005431547837711076939491166211350732274054026993028826995685605744025389139577215994315640975493899048742812925692075981343289498271519357706518277089465627871132475297199899252873966488117752125296004338434038173968466624571215593375224838896895681081999206790805135884502900316215905199522233317039898015533679102109485558729755163116139430647538767717591303596431301882544120541498563592775947006936302843966793691522939149659977512717287589476718746870640784922513785587971550067916387505792719145060143750955344739272600479176889473272232225420068566968687320874150395747032422778492934517608246678260913161588981791148054122069660580354276684683475858969647935581663576189901195422285874249511899937122978727942306993558823108110667877180806706899555942738329011333219091235443096020889473277040718747813138385086574856451914362924880006535159153482802768454694773234190722284304097370595162467624806403725547151304155513681802323485899306741485822840008905402588105682173265576273744492924781322257281848469283334346645998330133781310028442757850986648543094572670098856053199405698022833897724106171545048976489356251108323684080659621404802102778453694612263540537565126534122779067166664627821417689402400952225974908712903329271629263289949710196012380736581446598403284119109844157195058718944678941319905347925386579316920966264268217483748519910982622807249813055294442759114117898620900051093108390047302708197961848954473461244858398040046754038095336887738894032171731490951153036999464456607280551768968229775334029390804459020442850387700367752051574276590087252670183383782395505614137288481585643239512079074322253340982820937081901715116072374302688061963145385969881168089252126414549992520494290187897682881763932496371664929186962286272207891711285884516763028666960445657517986948420095938035608514105692196128214255071219204693332889418426864056456958653104404022313177080991057596098126261948195344750565443528421861053086154351261689432621023824554800553584910320061666620954705510266015151419454837233685977320286107040131385304770195895753244438897891878761757799057578544908461374863800525668732509452521284784637850062083900038011467206215608269636676395502470972723936588643442438525245340707541127233445405599715770900822720469919932862844941721086387603626499827719894398444998641337560924532408873658086115270980876139529004079506827795579091226680927221798932020579419857773071481050504627567816983565938145127223561831180994033474385391513585654697126653030758256889071237684113789689348873458991581543103739893402404388701619008071305980540620211950245333948539338876518371745368726744056973226495409595626325798452818618679434431205104714146045790700818819188272516654613020990014440760643502408813688844626544363560800068186474972269632273175491157531759722106259144636859803715266386154322365168651909489080089157552188142061340238799819829309437501206455802676451282922955892750150411490817991542075608853109547024367980052250885447806609333036718018648411684828880117670248549440165262476930877205604242592671998318215764620299606507210160483700085070018156178765630186244200142356691057062949733825383139082501803844983016487465828590154905195750602341002483992213740915857602672334772866001769488406212376418559060262431607880083094918792538659440985234358801403961685257298851203544224804539778283363764592356224916259103026528697904714232276441440102827315161948444082902761332036786632648423315257894908357663151564853832140644984293165592590936701143076833935921833388280005765868573785507034290868773076070762978463284076544772247546063163927703074524291577804590486801480548296050536796481577385817292008213919550419979091963384252209071634034469526752164463584207729644007312048068645369484283059466390709827645829263435387739391861018039463469543003149868155645848561751791344332116167792493060797163644840959457588170480473599463631460761655457750229134771505508230200084282627822088135692737237720738215022083818177858020785084579249330855157709416572172568102421221018988583849097930930633376633917087630891464618938122355391776077988164744360951041711519033245169235013557200888271163536768832572178634104962600433124625657394519299100424675117448394318874155304542806603882136934525811856173881859279973840309216026539037888621311629015759152495493841678548812168582942675799930711025940135075905487536880558221111815061288853060486096201397756068752179466873280832899551384414486482073947364058377599452643599677372798036608598135944212416054522749802833146819253831665208014172063561143850865391427215742562829650425424737968494176369225393114766637505850292768562749457254440882560111555068978726410799400712276236854785017944133630493914900037332974143669333295470439659158944534976030106016470669342633747791443704054039031158212309550673950450279154854333091469419304753984316623923940003124246185902212175727461086337549967424070282756012972419334368209969113290008193410573573824055190798765418890838152059935195487002425074946182727563049396548584489358950318455306111198650714046053299149108785596679690622217966256947869343252270201943712362667617592618917851539312948043153549106554472126220838314627255497443601791429763813623706616492422181811770966900905947672646991810449078165307538215085916950385994599569285677458307728285767339369753924729027257108327560491752188614674770781952329343567415455258177680713103223379234045192910753528136611198506440805845912421770398133653896230514836379970001816742326809309975494898650208032601571692544861273299023344062607181205261428807446880403069670107930308857667966166334735433332094184398287228042339313470078638349559062495292466358627298792219360097734371104144896215322061290136209671582713258774741763371475787832954149393866171925776609520318787359629647614499217431943347244354793692649115280073488387897370715520426068417402842105833083619892119190452645352656964570845925877370001845803882518416055319988295110950691595232166109168796278324624637500723470356300682893003276078272656639015508351744997983462501546061193854553699843252864456231820893783508532535964670251256269786583448078931894909739454505270928946297716529812302575372117797961709994086663831316774807038714635987221461069596302442561219728531498077294911841462635394951309784606470183896182290120274707570545921606842052239635742718637196133460830478056787192408778353712391193152338790101387094453520375763642539405297392586458517743075746186867230564067868217777037254453314270993879424418969640573993124872092637652043440367833452529727711157780277400185513961008329396445206800305092004510105076538736837326888883496684552315765103649934790684952671340406199637292120600200409787784306207818608745277811093043694156687772627473554629382649797747215286425704217722368043523267790534437491774629125671606896954542365669931832468747004684383359336728400891098533669554534273762685600826635604447623539617199058667049103143028711757122203192364869800242147128490967818714023041370000400035572074089092811180540559437899959819575840340352610612566465421366166242462907462898731107817310763653444487285350720742434468893916300772184232179649269865568810853480373786489970762613453150469607345538939976946561036551315407960608079468811106442137994302043344275344671027979198676750933374111114432097422805160285558347218048597079930387658822286578592777057699502762105420026583165948788717610708891653605180998246012386686777216206873874412827050838893919836301578191488770927153974261648003064804543204715624927690529122986683210467751515417104277356311571050649187890946677230574202712120570585365843062486457684935347434168356097936123562224371310447242114291665467161570948503845181814390555032590132438499314254808197253001133941208568113997388620391945478718546425190545257233100507839329352171995975647758043545503484595077192538482157311762705849074972124324958591415921118890924763598184090026659784788766526248839927322106929521949953559439746724680556124366388199349400667423513503662806165539414860486140639581463820702877762130652281664594388947607965255888117046695808221695740689345331451788935591050153210478719687534164033924869529995024903914566398278690098987294597848583734379697998043026325778531347541465293531004340685648739765124523585544526446551450205659563187276796356172946939905888309571822970401440402611270655438721099388882021765612280985902164920216125857213271767961925666237373215852408095014885108058279218507116426888785390549018643572233429262060151095879031561440537651788247994629930735335910423478087478692065911438519207553884794631761968683694036766864369553851241840978894072346479430432681001055159554918118531935105650979164797949248916159781792172963768790906181073550244975561511947658367787122728418916333134830395483378645782604269083654816024015311322939967455268393797137821084127028366845681992815794792756951026549911943709727887660469043996050781385206843662478737825341202141824752431430907648278959752598910055210741127368807923436595837006747585427346355872340512537570929283603304666398689086730413170705788844435069614307640045924546292703263256429614324541938169949899539986620247661175650137563238539916714702032053610903400655452783506011536250704923261452072271606793067784751237847731309550755641939546424245401768588865748968240955938252672601754027253445097232929886348392516561565619457646109079424908867040828062503063370184992195336088692241693341781034678167843545303791770497781812260750532411540216947946934666457377751900141698669726664843087242988581559547034602378413341539348464986666076077747509819564157400652656150783387274477735019793580227605541459665566828513936142683649557521980071687682947124325135222134620940327345797735732462812920606043388748894728282211597398870788998117124428825738834996309248815011097325872881823433270554168102257934719451717284983087985479444599226940964603457832735452043765985190226047171032933735838427307478163012798850280911793693657863598881863258374385328092518783625029496844430606759965385922285062502627141385995019215362939662021138136407158345951886805268049936127983079181633291084770218299984626161110244228250275805105587556793373082937098136233607691416413233823369674766523096782296199417010546963938941725694310878014202108474112332177110143574660200287711972493328578456593355390549046932274392045624016870007458862148117620611833537980988384557029025137551158636231238631216916492864955023193927483037185668639315076837198800939380753884546062183426385885324087432276118960769753722486357919521614153646178450666680238599006106819301572100343021222374590432729537122654629690038312009243380097230659197416641284439806104874851216626401049005332606683060470196537674445687605858540767384060995787219627583368417100834180050903299909267621433012816846604632747300316533465976526625910773804939952120899039756296057796931163372998116884744012673795006238982729646202826943066112422364271644995737940870794883100069835354944888139267036181661806793788830436915375322932107803763711165494125965122807684098923899745792330293051506740508405592039904484120990965988785752588842298497049189062916858342865394341284429745701456458946142163218409825170893896512297607588699949219942814662245980492045895259667278288476194487337158328273212539611747837365968411476892309585984036180594850599739080458466645609300943248032907992422761939146640223657425392956902005553476292949027547871556817567955582959102437271216523030699642653255948156775113113637645468280456281625202847382651369507391176357456236637551322218368290474712526781398106250116207360768514726083950711507113903015559329251186387716733142170067998619835666197541888272079236981275887094280385936489745703730554687179293812915418814698231188275843835385860218043178057725942921671240755355377158970321579757327884046243345171764684050368703539864989358567045562029136684322709957889257210931717717264719151717467987351305737023113078905368608743489064123056003989926321541840500484240190581746378491419236773369761957329272139118038299441061020337849020885878189610368929755595299003798208283372058682775917057910987739908394623526508930268053624635225796686060610506019868638064234612987318798317485611278384090623035630535693609606304474643819425815939863960288711199164299534462586201256343923563367515485066833417253175424726319266943362656104382823935448501487835483513012234812506880869817077621376046395599303674221826010022255385261632760876056761396280112494019935724272012173455607743779238123061463646056687116300552012614128890283004818120270865792784982455995748267527646443038135170106780195606356400156124894699665856285607159686078020758081521804722951995771734137796836990279756511565872374470552612413080435730480088790321978015423844225470092851468610015474345250750241183845145208530562434565600674545572344200280906786714797588762003541948010154692801585433887583829714600086292023842771176586540401011969099991939314026650472071858641328714739770300040365888098325931944921888830284294567965447238963035803752561291486432109292712784652202281195550854323117635131723901079786645597496879919792458880156976994003223927501402637399989413966586456328404829975449026899026637186154745923861696752313141376441406918214580548732329014293368730429472556997403192103548340362439475027662880161933335106406098027955893004245460034856632717922809871801418830684167680764222450375162996663474957104590292002352946680757328997582214627254116850593165869364119029019163385426950048070734336211945122491844465841767427807553701443441837027821960432469840565345304124788274603682789043625294928768378866404249708825668119663106828643403891334302826713879024922616335718852903466298437386321709698080821725097610665904726000383753108176870010525860840752708271932793432404746725054869598995087372366440185189705375144879277879332750810659298796873940081925587874883599554957973908283844717193237817091008595455792119023252876048905412908147915852080843660409419773422228521192079616349628140205027899342093288869811454970976296671232258120310459891498627427962392279388263522761417480649472243690688619802394634959756318409686933093747139015237210439443460658147771498937588911637684744522067366567338663596592772614648458336523547667076616481117366091704149430069856846767210027647211147373908886950210162006670838745935252457012838806061934391646401301725496349231780268973265117571086599016287327648577105271980359904694604489311589120523032031217421478981131420562455122989324998551831012840944476865517975722683869548825945476372518739639922846477058359784389525058979953946303974785516178822808703498445575726601322132896714831428368485990114452771864876596591630910752398093775969960542245620260457088090589148639509512131939425367104124805084086586560431313016430252697245069349785781409997160570404881319874392571232241152285122820723549380845726854553600919450649642916266051938608006310243809309254359438272806845370590998998045143631275760970489590124913503135205205701780639502248823092641211733497831106810156408435873125709108397803316449113944120458663920194672358122158397297178100976495829051533453643348325210890010259263595935042266270119115400462198402227629483144237317879578637466807711306238506439109473257983833226465165766374422493692694509524725056070155509871477648060984612614949756772944940535406934239919240213722865038249978053267746722512657821994476876852838661760775666752279576641133994190859927230230675067007271392871838061905405119976804071393887711942020197009626662045369506362668583027768574598272181622508241530166013163964746057567249984210496560534064671940099209621705146438009195824084727971188846746801262940837382910379295614554253724802456601121056227661492127760953354827163958548104677576591039750862539258626145179762759426377489381841550056996250341665538802548717752689739486104229030838935056043028624151970370651322367517071348797859186233477264817742305515050130621815448202585056189187924576882438933648116948217685412811278002622672015350845264002035834913182141269553147764269572084372388814647602658480535028095030557319447857412019767199518943774898638137933465376039956824277050275447143772126376164169753215369403371975787064438380364544996981121526496280338151974765836190052133846127496264066232863080153782383748386972339085916837557592380898049406567895302623024903620819269353064487481447780629179770127024695296484974771798991425340702816110046862085785307447598790079228006913759496197372452602248862971002797914113880908252976202041339216117300602700652209333289263591261295096174880338479816029952091280651374393904164814199277845229445396699332423792916518301057658394458385372030893971390093882749322942769744874399376045758896140540211371083782264407455840757201070387393236449432131441708230774817313428739974378673912595875624181045165437168467584536303086393430572791269435466538042534066091796388377341242555333928565389726983942881317502914743107037368399447877813974141696995621291642852643887287917984616627889921677959516795346245686933270737041382775683143877009648689880336090577173375880754938384904798960650487857906964188188429833778739663576283416116378345804834429876172564531258517792156534566442121451362422008074855688085158466812670796636629791305385231842623621299058058352462685308741927316677481129975113637542437130663017287032164325660490606238590076544682255570278329788432157115911269879874254640404098051438380094004477754943774409215229167040196462080035459440441912072028152179848727516811360391724748317519416547529167136973148802637470634444928159054673278389596354525810487790009920932991956877239510754909669192686086581950847784334144058990849947209156647182743048118346638550421457060401439216340327362352921508823681661389780177779855900664048134336387497108181045840059126738020698299005428062464396621691899998108160989202393763987192413969857972496004968314041612933843471949072177130028209910890754483223563623707321003951310442476867109323389920113259445315245563618459380389206492019903757866267824144585690059672304156122931187150622200452867878012799589059580802047843697588247091202222491127925038802112635926407808741580527695088346503557401156002939376849144720409030854567900906310663369551898998964768949454594235001866421998323496137950376019703558131966427835643145854747577738049374832551652201055576001314721447175447345248487805465145578443400216304218653713065807247292416972212112329470464971723492063934867360915443247945175247194259292130599105928843331943874569121217590589667934273028679391940402355888221810711895606120760340769677608453008403278749574396043181108357734037983053950803816556397212245411001005542330854189064994036225904652450241689077355668162693930448873746166346722205913510349018726594965168501514661823079466017956466902967720067549366806877637106779726565036868660064843552253956453166542546022278816151488666076010494522518546801675940560778607662661967657948900100170790238399146346531089006328272649543859129294995151182985351393438402696742081528602584179623244237225036156832190164972764557482759964220229982502576763879491448066133815922535641485585380437419521761837468078129571374078713881689310088002735685388638588657036768590007740206855112121324039033551970417866649259756664698028033575613359828998318069394482702102306920177270462859901158674419517815143979004750522420754699997587268405496260690607797161033830936196867605156502605988314670090391747836418172419059174698471110540741785242159192699073085387629911740995920145849035272092566273843927840514983130344566748843959720944581435680352237742504868899313290874706064677901838414561544793618548286878046497004397872741133075938132260357111031395424870275028793083983330828547619590854581709016988658496252180994705604925410232428184277566487369424058161094701385757547673083172757988629383085868425002249918555717006159415540063811137134974127575619749784256770520327413833245407558307062391589950673322397394889185412238289496337534453531475428837465267792137452511251255130255535177153084212667724302889473042884943258525583624567169233693202889988430451993382925583934651920704106982246641947757332267497035961845301182097703517606008686552897070344125584346500332456992417238766553192658766121850350348765178945219890175546601550287549091236277376540024527346222802025654424710299766077556892885222379472515103165051395192313127143376979208751730869963586099798395372906982000046291802081028472868577180976909345690786436434552747302909457693020793756212867797571713212897847958611770584777328304092412230902848892955173780937300709956264490490820001550059953223243650043945507814225749519190484091339718703750007687719131057800187255331612198835041419343141320946200612861589187152380341166568985502978619770421483734905421876686116446483857102629186939631699745592567182962475962947086220109799023743312222930887866320871337348375875985884704639659802767797029083314740134819253962452687503787380441527569552311980053630642953236896215944734397841384923889390793336916165231869471135626548196195833833490928798756809875176606915283572566096816572793034438095137396175325605209877850155232080651749643717932697914324162869525430236734358811515307520259158802865256487689098639241363933240055419089465034603288465496299100814166084172675615451800763720716652442541968474430290952498782034033841213402055883110037719135226942913663902301000132757254675229520904115275525952176145757065475125061757947834975754124092120479822836838651089451830471696101989030162844535214912105036171427280264277191110276846690697128696294363043996938531328127274638711646482393727568513665897945582759391573632393653873489907674862696923856689676223258560852535492570358641532133507936556452788897536260845714493998217558805044026420563246265737334861333952806425322770344664687767148770290475921337752213302758662839058707745103225539815093142740107023339250360366965417853852167833236663836604968701428947098148447812583454459657671468284403284040172756202845606957008079377617203013368780112127066184324008415361321978019746959862270424290813557544447561861375761463757901973578679960795477951751558814556531148778744390506093137462431643811596047762254256382685998698739575379283318870739152888801440701256278251453168887170266683333574763893234868919444529149625352336160569837452362836959374437432517838090196643439853901263292421651589925926782526328143769908269511126107042284390796163782768460160201436716001548421272657695508841092945386459341556334659292756718058641525757317767598811752052919251941148197890667785647054918968896127452340535137595221094359768598140036000565886848887037808210357566518934292874891726073032946359712018480649659997958209443319127374775469618435815948222847500617196577222358038344063356375153686433643396518017885257150223310761644367313095654292837587683983673603963728699392591229827077155974653903352923316048652507636256140366600199987223479893946571450427897850055475942309993388492419673379938600644172838490685618410613823406449606552263037263215421606547778360040458772902146216279617373151585694045528502391203436556500285373195832243506782193995630992991693314186199867126186678477277790728419132845050193792125967460237317116765380451609223581864739807592697633496312709490204336293809789824441557974183475072421246046478903834594188766963145779761655998636449179252306214901029280052521127899929329569911524423477976130011488613911573560657665912896885239208902953021659718771192117996910070790322321871658470442021157306216383909018278579670866707405441430083140792734442930264030700204020852212151854679954071917282124950390803297774610425020785590862495592766497871067767524212122394382162078076596038125683705033851186020376037509838473585179703014837063567451426231599785635007951598240322729678418277747966058164575720916715562968416299112870359026858153021382026428423140858888522209047912563497135069432087979576868615884769971379800997327827023674574600726258162238427067595820536622492570435918294912512869541711041635976732770893372653893694383010666126574014800963545541807903578097735942861803328905556488702693232084113971712652129406506390437761867849607657005168842162329215434679211927666175931650309567878803825180327492780981752876523633545407918084931784703335398562053568900309358327227256059191397216914440994793028410137451535618657310962660510240688981435279908476912085870254736038797615172604839862155728158193454465506482907695117525311324888908410943432047336537892559254486589667684303175173971084945300367947762041382930959694489114838050085401266639575141782442490047539018797757343415831343740063763065602295582035494151497739463603329611940825203956171219140219457646290003574948141051809672114879442965080379317007024789890496607578001690952610986528272031987250682895804671710385039002002812200930485999227315178549285190260536621718119272208530928507158699995015139902280612495315251260955806167434715191366788951291587513383840437075520975657675181441530135526733070212470758436102973127837375705253617918975552309309653953040624859182111428900845074488821476338288340023686279534485264118515323527145057480055216127140290270307504060158142739530507220082896867331302603472958357286701412957366812028632271793663617267804091449982748305400161157138924110451149377603003347185538436850368962151022698296567307560316092697006738290425977758140201228246071840350535455234718256889433936052224676663068370892259680529643766839860101118825500496233060954018382213305271257041664375745620556132289360817902410111875932636978224633244862327376969252019325868157566531231282534488585517150491886608990210702393379275311476724590586005010356182641213155737163083683158717077376166777977962823424205545596254227168269417303252888607891005455733381454437852555676335707310860101059845179094128964950153613926690905100150468920490216722301944857476520908997986649762227603146063865551412113957053454734154123170634097453046439884852109288289376005684211393615150887059464094470302032072707226440588113625450830673213379908406388189859453493044499519426732042773742255074878063165072723651983797348834577089689151807809618357744715644027272401141435333415627113952580276731997730863761761642846142055245563925416039145359560862234285527252395733278449697741409043772336148678736052056506248180815622976330223712236882382063414997617584895254014406473455168296092100493358126450759850023584834572153016439504347281450039159344624908236478525643839537360678065021145005447102557898870984164745840640790613816368879331093883206485170886230217543642762776619060778791970397903154339789951553898958417398164736198043903596537014782351737225441084272895081485960774758213889010375538231879287959965360158252685412972781530766838085251781216727065013496919915186224042445511515550773013905959282864703350733347263979695148235182917638106122781297124159763501191586685060066090971688456230045640802307977258934762331241090271591558604851832699422251671643734140945065840459206272213975448962367063538245677881757231590467986164127841099527064259579764469369111566095309779968352285150571189072796491855019314439709701176344259909333712891069481456855580413766418161038070887162612868754492955949857363873883041448475254031665824610393398952303050101105421334285433291488284020992596125979944200423470731827228422453456644529977071765501087896752343338619869444797811435380618656993587290180893180705590788604694615582156592555992362777715900979497262598749399775255304203921408511907920087286315530464502718267068681269080043819900565705459100976776816607003690284690661456844957826908486468671944504363177202701137848014831406129353069664107484925849030692739905554752267084943847050972289066623181963378296993150407982109227173895896349395200793398796645779171191482595657508941607859940779805557846148189105581794731115604349994997471623188546944278778995857994768055039834833931980611742684829160588486229938382413011552620925073727303583837653606418400745882324486492003941966098228643195216408426281065555185305979855586136884417795095052017469757661643896658178748234363820032039481365696965426232505459737341696531061861989168897723291133983293507083883081786140876540941584426123765739571916541802498047138740509018682505947285197567899179105357465291856489799076336117506042872759507192493868665433790836590236216203031019607301805962075969911508770327186259658093662941850189290050169446228029450289942127435524261761789670798940409822794829229832811184215553497017067551309630608906417070860715328226323918372194705266204773029124574072888371434716899649576550901254895389736971139719118819963522897504561406392130148777073777681483333468920436618668532420957854216699039630236850190615497747311616765234592000022174952122289436709284981624915812626010446618589565305781415696381421285346477313002944994563345651585925520417653723052661681214226308058909001008640731531969484694012304621335342033108409149896735832433455927112156840459376443190448869267166227166625893773963656505183018150485104422782300566891575094632108923421198119780118073522350794686069690754113891100281065274237606719328935278949866260936271285915760647190396113148121956550845301727987175508731613406245068874079378905589897633739320762965330439014268767648038091369686877973085530196377622132944465719954093977045533407545102237259706383219420667017564037374308179363542217479658588847884101859222299589138949635224369475630378458129398509709800215533523699171234202734926674801473603998626585067647597490737802977293604441359668652530520538111184485648287682497977253774821336163295646635675844426659105133613951494661107858209342737662878414902561354953166482647999583461992045383141054885699639386939210740810828200574607557531239234074327242576520110042893397373032803016571362064122995019862522940180099274594768684951177290516346647562752973005043439863033350060748023661167204726384788941230316351574041428151495614781303727090293637568901771301507046775411659827407864045034246036498606705937184820829714823393869140063747182575804646996437023937766164475084585446495505349101775311894603737689686063229307918787554354592579024037101643209075198861998033074168497585391242161110270286347439030679853944970606983442050712846656165837983433198804084001220218003217094533801582965277160476127677959905279410019049867101065152231433725026571702113057641941344595564709837660089522094232427130391373450238425377099199660997047069885615520941204199253545738897358302746500063510480630309466431242364438724409911134932309796539026025286566911014152124572436522265136349614779234256678727552717868753869890761433253410640806787219149864238575311108295017307262847155612804090875111257086281658418236456159827014982135515875760801607097818289037491486860790985921060511072329539197960456861616455526243140238515438481955725138840362099076077450337038318168105362347839849484226007865571841502585117042262522632718738405941509349439605822833656042802713742293026536985345899106754437661746179100158799875355285564151428727879280441080861342757440845217219319232436586944947453448357227695345292892669674905920397625073694094708363232844353893586287096487219919039926549033455646292240673556289191108438903328638927029630833657917062597454747837706826472974482535070294452367439682051982635231329974769791099860289269694358021902005210428543012488742774202003734395569943345448646631090824942625230376858348488592244252273895122379174037515018872029680739506242141776765921053958674911904086203711064560984530118058254277225025924523013635646353221882875751874434149734724900374383695106374275014921959845508440905606753710488259785858674035154520299803197948302619830722019719702661719734239373071954100081699133773423471700266091994172104809322615140292802924198958332161099951948834244528941047107122166579697207492264991749170338347048979996913292106686779752341892771058129205764398714893555943976575388244570630913901820453368736716883005629808428198001569027718842433475087077064814525949944046954407218791185132682175453317633425086351358220357596286601245046344820904716406168732573838524047412904547351647578024133331366378229683043818814638957719032055203358857318138234462627437498168574142849259874484351653743081590723954220062851147184545970766221149479971735694998302303835221410223930191965043865868740114163175975598332703732409436098330259753584735956576076217865242542329878041604806946450767367766555869772917136287585735523475358214099617519476896587938047942985051037981164360327500244203676462576144575596126668601947013039092727858063535668591030248538439741443825737199600950827892196003309706194642331004688136269285636235019386732307232993297536891346921305915537284667468966463486642826974865499283516249687078948204000321782619694742189312885162509586211856502699147909088768984034005498938593001798036098771357542291891674357609228046180651951566568659642960726932254338042727282349787450885013014197493134281242956610696581390975622439995517538034043385042225903016180453175564010441667732197454486470784015011427880182803611047585221625119085804212129400657398890264408677416938236169169486311784491321504181029979791101529986950863833006072189686350700341183666372228263446453010169640274536498992939376424185664117004118590313267365787814221187425993318540101691290752412008110386034822349312220047005741043092187668904994027042533709496788161384484574969777662889502758304647587810966538903830557990221617592946592580233806563691605312863848518370064659070780030073722256737003229010602049622311187829562608034753944492816531509920558030463781992132013911098088154723369432447662204879406939727770339140010838390650004811163735514345864983036482146175033850793408671324475354061937099918262064952717779207389290248070298225364280607757767338742906468772779236487000723804261264242976258445633902639922550005794762290594983510339742482877368996509206819596744990350672599816371913354176836279386592758223477666936010764933693175484897453496916747274140496055254574102015785502719584783568518005692863699212174971072232677474971021603254757657686380412064718046112661730475001116798120196713832188351437809602741927983971286281222013206441544564353272238464558412254311397343655014220167904692919423693326276915347875926654339436561156487479289188450890368086710751227177269570313299838404681448455909682342703673758070131908217375359010965276691723475464983363793218643098422596822856912924473446997310243380829320215791476232373838206951401456375927113170823373078270805544154490538055102435322024317426863739322955020301123224835274689679202941315674996197466016480865643779189165079086640084064963826161542828693848483564109559243016829366467970721931617720502675007363900641751016516479055220882456608288528390182827339765229170314939896590042509311461257125985961454074156251557103163372567168118036459343748704857453414460835313794479589998130792423856775464446307638696890330650441842023938856786049549539799424405293138955208984080192905081932976532996458673416811705526120184568239892133243626545218931999546211844201688541404249494142965670054245578533419135125936251565071729452332977584647979098566009834814863653875449586704935084779300624255853341132626028328674398813019757331400205639866381569912893711928348963548971861961744573528401652525440021336027932565321654855292548201294036097145605825221181522654796550786926256488287715779430401602747239023704686053279517620706118347696694780633386627925508972546900220019575163697195390290276102582524617823103038231183298865359926353174017713950121888438702591916090560733810464466295599782986243629508726922719226177677892516701811178170631177854438543949080475153119827499505984956596951877330597284789119315664437571152369544650402644453167075833768680828626008301278993518345505661624844124586312855850087533169146470272537036621441598983001383827023208019826063924138994247326369190655482817513502732323730380424323514355891594735288026952580303770621828551630749009934279189803829670583810076062232008330405469019478196611670748048729225249303955718194788938892074729809123404818098325823540268720031777540969381003384630448802282869252173826904066166423783240991652063058288782841466373112594172835407862751327990882796823902121808529406811134134285937152863004256927464270649140282620908797303264993904408361158271408572855660378569212560051346444661926292588782906168672130202116441947147290803054940230015769563243805268926691069017401116865517779232411051167596319475065910878868574058272750199426174937379768844247172786619580589815974898676531325831147162618903656279319888934500612690406756793139669988065615564443528181484954733071061302021020449453893488216323023602092009315556207555659032887278261444640796354984277228905310983040174153299228013502605689140030670688147218628659389892446155432203040343347436134608618415415416492529258575370081444990121444046378854625758056223255864644831362287134370772653695583153746795449294938785977010388026020715843731564852528595692325524382272102966265332792727841673706739164022685168474644805095654793093754142328925335045858369378476804188212782749394236209051489758106780132726922435056426201799881583994841154128079808364274488765213096558844386649450360961265891077093314802386384669199737874490190770424483061980524534845273883768049458222636056734976510509465087753554737778560257848985995309010328995677783327630241533026977268841463529366337119511143022207055921376310970845142373144107783390595647153889501841650025145855958628401125167551543174054915794492921309399422246101784720855268757641672140219816196534937840422969991516680512778756148470183039932828782127103064882546005141766663649874691666217468369755670050932241396151250673959791478472655833712107308642452146409505884006196011460346551924549217220020698558791308061652149630232323596796879442547489154387589918263839106579596928307475630349769597265814132443935484641826079266852466832844701803276799599391485117866969137840112771304879920477741658379419114396795422411421298832847639181564230221492509705654848735127933573935674411737621159235326983615179378143599788588747524590452452952577679628187309997935271530573785331227212426531749038085401034436440065905573910271537423030033085043134434679128162398459957389137005513449727036079907380045158498346502249452210505367288496861218488206523957840876840485427670620183092390581877968973803262474245537640060509013072942031925403775723540050019711044718721769913794627702149427563711960039343769365824082257612108040301488725060102382280954183628306213909633864397102071204898211729844698646338938637691012114591437901475950786578368722897001131969648389679761360049502366356061697710392136517349636860493353038344611285164839078142983026463481143523223731058321214700518574471742107714468448294716575731227733288691450757061718166578840783871709934206237923639853671771953472239235227143043318458798575226122809502235488792418763686486705921414452616725382366895652244592590339267677216164775998002729822361763035996625971375454015892868520150065790900007910802813230465857120770121608889699429512143061198862066701120207314747821908249251933945615041524254959163412678909113698539304163787571474173861866012560522100921759681111978688243175606435152104301918910222884751851589814712201648707067154196527867815033328624432122401716943990551223088234044657637744211791558654709077398990181339960530893281889395132229747957188997292137884614612361024386283606152303117965649266807517012442722946541937405653680444250546499400356972842525353304059410098036622280069361628267423843616327732470835106206837934263380999818068449666011854251024930793372242389675867546661328108342772082310011198614704078012424687849443300240020199662762380098623815327734571001142439927442597998548859585171675833575342839676218288189450199427779236829049700932441487331335550696774324283032446891180069054740285557707785401699141815530052791693781630356809435207615205071507363548815113441068780909913189831895456265401922009754757656575862571435969107002575073375664733188271473162375364230223042030133868808262258156506619256726377851060027352820293928037677164312069534891417341198537726210839783687504884173509552532018315906220484293772193462634263604492377696124167138543127304003875594753377886113662780600620188799625072683584841344662116572567356125517653522089695136566752330089404756579222058300386190867126002829997794238985962034174423628617493013060109410974065553716405352869308961407092049767435216172972020992137036303594676939269496413863221622789877980184440133815848961910317847369221090718528128877161015699910950184141398158616291106964897487498660902067536247776534641622599541077928953253097210469341418464431574453571089490932761772550393590002050001180565316188851188932454539362412881441609024567396060070541304796146160570243583874841959176052373677884512662972458661255317433519003175242934861649645043815050013427512651257808601098681184124392951276929020460206301510005580577716183563612060682425491746262144128689487368714895740459029038135265388677965816354697841671915745354330886877595284209389235053977074296894237432608545021018268551288974671897749415308737637591641830423543781533389126211185863914406487165178110710057661347558526734242552058995204942423557114418006520933918480203613861864466204191924242747760295492468373558643359587542505546291052091362352848093955581354436192929076940873885154589422027681099872383611529512957624580787857084664110625670485984290570198148251210767162493186929279943388625345348916854915037505238613843751647422461999796337386678096078695896108177295889879541646188926544113147319314468691146542095386062092863191163062120157861518090088057868391400563995139566750341359668413642539228973188857809743269827730400818225323965675192953100596560752024099810229739665778307578381039120967387685117257067240917462852734805086139054928564216239324358533650792630119655807921300832732910831316317202959420564640140147243451086818163285634866862275234809122294992187167874672491725959848793358265123586102651995247418666260278425238510103043258205098422784791959624201566983896169712452784482786183176080875088339091268225548742579867220503286074267108437827914799737134718826354540347229541715377233794229004068282619699255273019012593699858983261841386973391675062865765365807000683818724104398558979013162180798303200066885377717205169908593516329740327445633361274235254125732424154612363250811787128331127956908417645687918014309075026302820007154478098541388320072780794269790762047050676854760114144901896874966563214648264571729441749697952524036279685536482602530556505913912317347327307446703250598430262030919013589004418032574208990311138414837868745692186349738564302282192508077915118357164120375969840716577088365974673955163387177829647441033708573423779062284799858386797025472170027778250664601255207064826479257634865225436148521410373106321762633780769451385646059686774766793249806250994550487084829017397395905284305774239702738168362958598988769065165919366476290460057411525412214313445286580576325725591768527177411594067861053625999156764945919038621393044610950728283240061381877250180182441276563641564398437714404721889640570837920788174902787192702281125309071418021246060954208477636742496662182337720735567883067314927941665274471088694230848919911940241395664982063033805679428494357081342665822467125804558891095140612084792348170151800658679368388536593178115339128691871973539211857419471375381406095900418383687688239403245478756198657810731832141942690984454131137921351269787018595219394287972049423352872223752809678895748815210622733247084293289222237997785665136408573578482105207881260452514551557157246730250029701106068203143005973052703792046519644359432354908205132284093867194363606083135826381340639539493931068185471405646979674342029747435672993572402903704658807952426274027195375901264798569061306447591052367929773343449127137031969827267903770919223573785624171065803147814289873354975861603017702885532073066561496149537644208188123412422222023299617315233470294198634430096370367311343013289788299213541502976124378058813939991163075492374591738699899429186427065632906273288272111065087315176941651117411057912748905461146661505940883420098731965240495836638964058914953176838241479302475023539783147759662321760816161984171473353549944283789719344841501695131253100483164776259773746127214591393764242874855617222885342778908993815164884658827590598444350923506785411147858990154586016781581834099399825236875962686385681439351856544720424155659360026776144034296159636794324174471097370303627779290576434638298054457655898722601946529936249500663847229295608729781009810957545259091927382594067592717387517761057919388939761868212991275569398939642402695554917742820397811630307971236355255198964836877401578824988058395179329020125599554662721052335584551168164104146252053825527388894762441555361093935533699140969661295904068948200537393090832131590068431286882575448169789577019243478808912129563022780065790420009670206334737564538558739687986210356691488195390322012944941836372982385243898371412064910477163766208453761962513092355402532148529260131951353773460994267624868199100103014489024833305388669669146914621825427404692935345097796699288125215910818746452774691547783842532610635419541376957734967283768495696646312506340517282469563033992484296106388363717412095136909209012033425371198403419175116644644946578254484747920561306062428946655669930664525381679266643009021733328243376129468226100171407386423484410463306373355492625476612635034155480980229725802312668800096055658639648368228703729978161595788233040303832145987769595584740467461660115466580796929976612280678944193470695922180297276541798288703258525844698099344475339455000668259454330724726081810844525462434215326681322413410865533821786576427970829649035408405477688474348224709932043697285065908506409602719950810161308773601181071243461371468407573334911799407757839561812000719004111879828740281477229749470527852621442384058035508593900339018793340091029371571768393209864387193667945692986125736301471108494387213787874705116201098485835395490672094499590569654846542835800955941457906383732549542539696311967288078154734844981493617497184650216224245740969002861313229423978969713573702375557461927479892230696373391434984026883010215947155675538817012710695693248797046990748061536054547709652960017501102368000611353467505391249412269042307097118747027979767979098125866095448244603648636932315469547188393930363462438994647587040388518091709268831670922118662668753415159581077021246526001406205706222895956107109876107950799746493650195049817807655582291993597789316478547261000865649828300825469049944732894784150204061515873171750110536417225429181015073408055627988388700641375954847675563116528043896864728152990606247872936581131044627843791987883523098444374398054132419243509204630576351715191390126342295306736789782565518659500987803477669597396472425054961136227961175560038748402398492479722551667380715320226248291673500162802437794219996552678331221983782520655093426111110431328464595337820822543153798634229708896785153220115707311693027274967572041651510887932486482883379517843344202598657746449344089016011605050956987110683200079120372373930769416007832866567755498003539287407284843648378177645855262469045992119850715085978625084469471148557254620035405763252451931893460164498106265784469601251600031959432034974735233719329921305998150475658060730285803888790444544794722995850339602608875066823458234138554564363334987805433855400770572461173134343966102672363776832887063267502893938522196995206997546334225596147859484835513238656596541610125538327384283442215568493650094541238151872113156809912487879077896856298316132620870156572650904258090616199934434717581242171339880321374331421030774404596273853922612844761844943316360116639415419782681857793392352139870052378200913410063934541032264762764041388309871435566840726782941626183608980100533470419471131997055338783611901162129862282416242234663808785096257193295938714966845195278624757200410452483424307226410489443162475178062352411072013444796677814924271425369969698380277761713977514159402545192593294315650079883043029540529873491841526833761697051630831767114463026063730651030010173832346530401143261981243728621235256744146384165694227701122477245396387633379602654557687654120002463727266740786896599829397104830697831457035112673210051504366615909641192890362699502655375021008208296859888055825981557701529655268258740948931402254950002075735176781555829139951196546630245707922119809506521958379234744365551105386342228796977601002297540106305852846069761099080962883479199202397421640401777560416589032695563612993772837294528461998282962169179063665469418212898811715977069712188513508305577088013216471658538590366897470124800188747756923278707985166207624881762463916848495607480922565716198799002325926895578447030106269131468680803812297986855424666872928376218092974164598982719268441453228641784866240870101841571735182753049990068240376653512607310563136815765280558857533372635056774342293524425896746054974861634585518440186753410817474959123029113583663835949937959875614506513470896475143163334241637993338380487433098241448485402722161461438768642353981854877359725873823134390255737529149606493366906524996184143038276571843372762896396771087032894303813397709442799825496108268505948006180740264165971871232267760653649299542002876495056191263565081652745433687419930453851823498610705676554156700751768947665669158063550366017280827436636690948972034620080587757880282359273733188286154965743617223275181471751266024157834258840065569959301085451737397701140034826137942184051127078776192806893987380763905031028657578674034374008478856485770208847224367943225701837269043362046655996197118622172356033082539578612256633144490755544267054084100064393556717484178239112019857019995715062138211410549574949682372945509178717933609151773573150517011777644606425976207995838452423338286792049941815377132206941555557130093797931785067888969290768519145739352782158853822984265700753703452241437417668109283648936951877116554286912532117912659404030600322231921405726057123991836186186769454774961063980332089427881824733108165067206446071301512600882880033027029727120831659550599784014846078659402973427334361399492675029662903449379002736352141573317470512632851346641524546148905563785010740117706584905310750252247228210971858393855327810102577918206610535093283587296475036550445318647278192698511886143496114516325805538131044353980339331678274688215412136670574910498851028880688003650889727008419254113470213135186644986826670395609432624273147427433192168755576051726158111585583932436211173207096193190739837166998050641266299841885070489773515138062193882680462974972236897120240616814661446055666569693847240471912222008366075114741287874667303243571590046260670874085137401092273783424516600912218288811426027512103045053368351773018125905333312754671804852217809580377027675302365512110699928772582006101279281900682828977089346316899848669348037524056202059832627304297140066656968253237943682934115465564463793697197942090486698319449297748954282382549846625470569923985798498880071800561894468943623041710747154983525350359679271995899769927813494291990174442273147438351065317335774388460410858289813072434700538720939062452891803873938207201232875175774847714872375417725324830405820833744051445087830976375270743962023707789400633729683809206371320169040288862571596111607117032039678935104602555489842146061915745686917960960105759466378756227254147974667242674444478622864042642093987462493087438466013257395238258602679679893475034297178546181427114268308212354277324505452364891693676955314452498796648607217656729635273805388807664942158024488484832201590934022646448757050571416116667483718213407574153618000072815807835137356799848489174172200375659707717995291648260249558901071678587353345506725536643073321182040451152481267752871863349536301717666005195947908283541927857670774450981506570843743373370922543317863687021818708158449959555032205381289415716256247216695035819788306374215621861173907255811253308413719296453764122164089369676991149718422761278874519083455886160190534476524119451496697258745495795816636116542325412252366943746308584835337717749517189650068060471651532756224525753515911282299607683247380621884808368011711020625310867977407926789353492494374139037286616991198526177146924209420351078721701557543131866747590731347676364682339147522285022773412666911022825119034808315908827185459391110871403116330629060413184465531600821438339027462826114558393738951934134708003277865572598253429938809696939348262533450268133095616640099556393583656932806608750724334760466239875614978010179494104870324086066229633434488110508731008876399020767609459067473128750080363490579993171765897629243733875144658161173377792512453715592000359849198102812698168224137425916763094383576686661345852014577733508502185672244015930650022985126924693782011421589167777285635224381274106480633217049472278415464129251978431424605248015225165945640627397316043798518536916848621691527429879835462385617274453696631838216816806438218247480604415767023082470451006589331688979224325738665142303428825004383863948797528844106445261927617502537934783852522513099843263972304420376146263382268524747574497955253254993882599088749559118337371698153647897540930368133396544430152454216275504469505358345656275214219798857167144771364324820995127250295151400966756732837332846419879755011221421632240865990236967641387553185292307131525449366660947954190683680235184805590163672811021690534019750973452984680526536752314934442102256363308052465258012083724130490015920218627251009410715051790932616172383809310371493470699766930221060420553589346842816730082664204746442119868527707929863934956274398133213464702666740309863006800423185614399273541186996298244222883148135653572951841742106834837210221996561121482524869601634059972710049823475103748716429446451978982499473109224032133409060957139489614854567262192183655375944043115500540887717869655402211212097572496654985832007152485291905014396585933186293989026073641456916025543716961260603889867449592826243859743715642232231413550369117965466865059528313789678996054132820085984564239918849604355999798819234675923181141598972901147311329995225072433786024033805015487404475864582092098742424223561645211890310184915839464410185930975429054067914874727905866426175256175116478869624701980100331390255365228321404553244254103083297095595434360634897768525969258182283446264460599483539154853388175881429873157301208702785223139005107053483366992580524814132723223633238636962825921815468337412599918822525750387081181544620668899712704774032125030730140910259230565536686208978874409536844598673831316160633279506132884009883141519298060747610064585558307788409262079572661062481550211033805711920276582041872291520463094754244878394902058185066297783128806266626482712790213684526464176314289313425665096751535167484471782779638207389072366163389595025480813785299954430288796210882253668933018147528504683737176711571960448933260063596823137599046791208792905036615507753920855452677808167660835347037361614107414530893993295197924875884447036547160489057804638408828047315119736285108005454246251119861217032057577587927593760510623805201867940317425323753910409532780659727218341613482454344352995483463695779350004282412628936604377226438328777683945764232670489795911061297060203222354510087154231505902631739569633106298225756116675325137901540221175212379619851028540393630063178425978883466580917725660158603563829941087248920467330409604262800220468760957772257103858348913038386205566290401177472784893554057630342600249224128536742750517482261722287118034129098306672177390786016178770200711572623022880256276004302970287180130045108430469440608011060996693683005663667991649607405121789579544891748103228499813220390039329662590918783039778015880899596658744337332107275840924702905670748560401363881018705148068074558919980073970544223463073727041313856546669140399068994188096943902960802228877078291803506264690736110958046374357179520039677424404576203842719655607991446655470209559750098624206903301182401576321737292794709939578174921437154804666816018350421516127251818905195792647372988144930260493815429473959923373094837512135205754729217467164700743109349130650672961180817731190264504935943373714952407236286188407909039553783642242256369134398086492121947296184825441052082763144182303200688257836512880741105546894132669773391626763720049986051875345692881588572605698479001187378270618317544844430099513154404404705857038330574745090697972563450525727885986911322073858295404026613866012604080069519722304188496575449919374211418688991333775264281141999459963050534796981673499099908889843252563120810732166569910828045968552221885663666678131877626932384144775175153497381722511005567758140128465187456562712603930724865601374098790241163761980608413938048666131838525201802394243354598340351464223686475776231596233651177138958186811867110224700508600721641849785257307583597699728302512250355829853942430584682769091038509786524648827645384638739765628030455820995508245651341688114803828834725444557047941144199413332830634611164406952758612723304155628124062557544921237533051519673015354778366598318726154154726569361484624291559611766970241996690020798417182460649848863466540718655057539457019143638719401528688542616565373508513240746096347786411211587144603241092632198249967884645704264473385874966161019452386648291335407827994085782681932646435090110810572925525391729735322988433154785854935194495150238646909329925549869916160258727940624760418789039206704280904158848754134379922374573498843785163975630668327984790123850890484339016599920850687801669857307671551031476277447167023099528796951153672817676944079319585783541730626331695242978639954792564227144934389235434828390630831457610498247069028629769578449618879106196297883215579913109737365359505367740645733418022748662157438923559408581440583037381913301040472232387409836973525129963559925179356487907981312565455827877804183484918786222822733543867269872980452266160810357337292949173322307684949022778158840952089366613302312685700241766082643153210398539715631388385057497137449541978080620349449099703217338587182915077003101987162864778515814151638558622016014118032878088212910933103858650605198077942077551285499203291985577417023259793713057176196772334434316013270111425407753019373368498507909656721396294683845182887369296267907554176194253362909188118205074353226735920733748803481558400481990461420975685031294137622153371349948256742029576370962404812926262624152050450815753520030366728058045732630755466770154337707498494901443655194026003242226153755051298365431955404829049483248038334561704808992640938698816415011255611975378933280089361544833905452451838769935830101022377686914702643279605578536651283258488305874178774648972664964192856399384583577439048845976607028160156232024674485529313930614786973622818834260983522523712424601089058681254241297668248017650900817320224793929317078570530082938655116760747679469762740600939804660014508617113619090242102256344561375752093429998680403242090655543877077705008224984763108525693727102289595101735153576959010359094301501562559206593638105668881441698154308113397124330648391940826986881003465693235065674399736907912962716114101212098461566990314329017757204747406406657605081532504959407711933888549462130519178023062714219493194213506990468233208763679823064709476294180113355335476004246378641406089292320951300957509777888825302180079304468514528326945408467871537518299386358838209850318415770017940479463442790538810541271783300748167165549431843130556752752663269078751933314891371765380084744710509940309425524812099667153336079210703781222193665464497851373182584319856108740709351922861779101403261959724231560562425008843291217053731277596499840050057854827935279282278159709505153047104386954763864180504553761076720320482028111847664177875003684093620550690234477562890107734026204009225733068337624353115971549494640955169369990674616564559561666072361452714846637415247222872180982325399034598475248325948489663910969142633250861313076069122343828569080236378620183807600562727158652537306294627776542932737307723121079575542443941030347400606525687831375842250333944340316032706217690011608793742285836232542166048720716938140456754917289053881757649349047188461328222018457282055881443134672389162832693500252238849732567232283217317233625402771428248125558524516076686081029792443778559106880086696134513226306531620670513974092327696375704074132435080067021498063118121776925254732606485053725984052142507716183317814232604071723178540899317604473882694496206447325530238518473699551164413728840919969332902539035258074314635574762976000619033304680572460409520959696508773176269825778352742319125844646809083597336405182752480852692439664355552552631137645204414910856765030541007073636346442922681589552344662403954870494256257596729277920466650561152704330334187760118228595545612931618599318392828338476993039209242200843380950388331551048756541646941926955353742930393150341338564000363778715276323428776487004937180995387577489849374665452761613305178075247782162262560017092478476089455224381381136304632763665246898989140740378583505862752982580014524104252649159151572930210544005593232531645341270160266724553862076930071878636277851567315447915469314188357199084600543489795094333880831573413260579614172993207972118005558843366612464586764595713546789965668560220909060344166017024288902183268653544978586506425729758697374408301990091109162209550553750640525921822399389084663744426524507783387752588918593642878442209945097890790143780527664618716214327681396000866915348399389200628071426715711701617534222967457497104207329664553120582047522011806986104716647150579658637062654410701104455854296902061112527651336491500463307083052648312489118713348348546388480175480122360746519190748535823908016248388466118995949388379626840783985587835044359489167831961041402723357643830382183756386347090197040766535395047217482522496023141574454910287649545888838156019247656380427308600208538589661902500481306641931291284505234344026619945198830583326252548759517894918079841742552382604400850879831320435204401379723508936181359824948320355290698077926915264985996110972436832369744645741919801857442318187305815842643622280496815493611369116895780039514117129911382034973746472474426530467350804456488009049782056760541325111373143881406762502044426059316997572840889134663607579232216518185949828884421327209847643190427662022436013133228197973406073807284270520021868807330907377637103045548761258621188834368130407884802349741623893769196021478810485245182446426566536172221822003111975606695055750666947113783811916655679414255481410515999298687143346026842250672192395271479559928553524819546497183200074370316158342172296899906004250527238116592145290862861526201267902489062803726000162758256902008902811471076865755375064103119763385477290398499084077150114297671909776213502344411738694244901777221402754346500439015727822557392168889235537629192511485195442411116611814005333741864594905389431701584369848054233035739581336047606454245889026401088312679950820506022565262742758614273339161557828909541366375263787100121860166765806786863041111002200975988817204512588139734638653748340214463402566749545675931075990423562808166744808826106680848124629669292657971598157813240002066656295399764685323952054990036349275832697007409579732571759708783298112284715672798291317373039769681876272185825630045734132784792577729188854771015049723773428178252067564390103169607513726325904353835836972829164943298458341813490637099625224598581736684290576410577252784280512787940887440855787983745586945213336344382299894487590499930946823012305520812019533398832129585209558491626457752682968061478800983995458018383763583784797008507391463156805012012131686151653681752761222768980451229195639081983575460536270175318073914111806400253007155821468158619417583780358948231933048322221475661576860649578083686104672374657199220295445881060959310905861785991286371270891460430537570481090753982216191872723758785828178418754232975269072341914575855150570934971060416639703675253514960563328702949025778698813811097592189937408582672028055041736038370273863118297755639993666659901207532122193355673483011973315974326185879151607654615929630356671504746097619021698871427205628383669188356773247579189615374781581879374400205686446323379539830096007264587919624699215212298263183771510193481202501085714585288155992673085347634927272449739199220968143190355624666166131700100690999494222894525676524903554544285319537030719306290725293958827450180497014200278966329576818090591301330934195285490617541908610931777588360885298372880762614263777859728756818219479696866697470484697256460506350332651194153667957218257710827620953038609543812965087618570798862889793031481383927400771108660353014708335243458273989980155523925201559002330553180993698730067773024067622452614202114338867583234207519659654947021556576273370384697891868652756333675478422134196016498698762323942353549593972833719935445544950546127100377448162411477162610951577286829820742196569940613213035607663683712273091259594801118558689746286051644388403611085485010324700396619854598371778466190893921502882030148230428204022523866430714768159539745867488047588737598905756408106187223868799043204855299862613568921445141824833337407206400291907598726712853837291209294945079522711576426156218491742834977712629906861800237168494080157750771538035866842520681346831737388923421457227746353475185584097330048249337861262366552201545887009667589847744094702786963496578636072040724113059316854027192602427039994164674463924140295745471493868265990095024916677518287779025956225662455521393856715646553392890090545251540738056260532088074462257868652497113563525029681472875569412991600071586078717683932575416489150854992061720636127561913996118186525751337955559254529664696294373870842416384509734182132250469303483527479617506592309765906798203952047155103482795477553670501971408660608662093686142274048047554116160491577168493926161683046488678592190914151456748414587669034035384853420975842920589613772671748248819401701216652539414787610031358762826802450156748323131664728126689087696941309541910547502530460973782735967688658522676719399121767945221174330540579792143271510751343913726996956797345783408358140568600609902555477211272395188399868501372302224753376307826445464662758660602009502928844978347360021266438705574389673657917138964128864792820478371499524544310959604551694975975002462899690646157774120440666433708495396277049942456458836172505382715059194036387061101304142820959081085702765119000363152988370562218383215562691636428332083345184529350898752464220992247282233425937469691053371727561402628170216554738637871195634085177590516486428695007786192043621880921273954697356144612011345498768416335121581680485471586105878975681505089205995916587722283555670837366738985577947674050942431819528650626830330723199001103950058652514548219779512249375234022881588818645639332715628955162825901601199826000536928398837969802812660604948838647095187089979900860663802272155251035663161355362266207541186126735052127865832860474093179144900075975353422489999643336446752035603552610823789126108277362104172013665070886594058060359363951972425694773089706031147873846912356827299490719293922506744942864428045382156910596488066460126260176891831841107632206024812102746473878493136064475573305042568599602213755975388070280940208986043854207820438617779322955217777702968584480472569699959503541839390451528607167153199880862550813006433053823206415896663071236049183797967441982550172293586206928292018698836399643741944301990711330222275471517319683823531948125522120533742541108439173194288805356715360191564506683180551301503969594448523571620316703126026812539001663631684748834048755657838814787318542425440280428766901457883292382670272207619954552904937818470112638187177189153538399322106356867439623630115569422779268276653271635204533450882445759363270088903823034170282606736262858608862360289604580388933273770759012390057142091014841013129134205862453943607564444109078388446164506225219598060687536578142246372736096825014493915208658644564392684231970480255169760865149490070869988597114969666421995415246286890666691144005738609292336503022286341677160947676732256768592651066701523970851764748106292053218873988179096199250293278392326567978249792817043296586757202873798886005654617085501863007381095003542770537322420316989124264968766463283043449883866417964723519979944295189461793892588232924341759717917793118494605363062637554446045621895001151190259736559166050414337583419098508204222425341522063947009162335795742566098686744098924082535823437716732512262551961063471538379816486372738693296314250556995900066095023640870130918615725066279582986876239854869521997173463448352330441730052881170550598319710493948039240051535600608250398855297421198287294450737782633523725195010190694359481824866885845605172975315005495863094533586957860538233026532703386588055765694087421919564162738894909449110893486567841759390867234449657155159960150538740726638520995887876978421801597611575954013787917819496042685088138421247482647904750565872366787364938088170581248671949946912087160700519949622040697549722728614554049866956224154892267103138388902042653840563381916120864603536899798328676562965966603570935515407808889032702272142780314532059002904178232145609293790475361648895114174542971825488762496067465820044873662787619048354008616840905731628675847006881758924546268494324852296501349818180985187917858377271213045326684506429352403601835693971690202680704853005987063350620382765386397535360612627131528697263661778300033594621996068887953931351096750566984460978756730724886091522732851036694138641341742869295944933562989998274778351330936067233169498510965911852643816702291706733321389803505551971260583145406800492699450127478872081367889156481345106718923360484596425651064729871128888783844827210638884721069197433059054543526057551569078982261949203630435314219732440197176863742056769826772917214966148609655777295402649929976655043037955695698928710431994316735525180322759406100663151884683857492745715566622528403573483928983334334518156706989355427097746616060089588185193912570804897284685468134462619202551420860400378466195263030122927810891393152243942599667139622205138776532966209228487054515789236005086975464618152241008680589780444499180160343988079148365777478990994933494027947662450378697589773624951126764994602794504977326464007674962200526910823442656459337530443985358501052001054948382834330815163807007321014799723911098857946633309566778886379987784558058532590970816484169029270806378152573019329040122353131931284471660530594944290331950384883916092006968724517512165166816004684351666063493419826298020517955024661939271786207903954336478441610898437329473808033400398852074166997873348987710849753305731085591692508285610344093549368031345329657344261475872283651449055506466457726977214649594071776195221000618939960104771197698658712615893988456966718662683023683890270863156721776448423388354733957476887836539503664333743333800709275967759738509487398775796982663453372611546005461879455036105503067430157726197640383466442242960681365063855860722737068828420690190259567878144856553623866781917109815815890186558327330429474284776365395572713595908551026659512582115696760353890096639430313656887690946649796814770146521434154147438586051089962426215240648921482372780439899459081156614617750106663447299482975120211606361805601436680440880315096528230775041514879998769481928162741308242186436016725048568891862598078409560052331748223865552917288799153761722361922985911974771147749017989581943544872005902945239698998932360526179234715039681006558742824523010285610500994721416094197908994228764574832305761282264618182749578479029555389936780255443235852034232843025461618925176629719924960848689538483992608868658483136584787602135488852190354227952999328000972119341430701281463885934078089905304568222968601310738373427521680384000669475932264292098311740268290741108027927794619898055829561239298260041599667559643108443673524619739482050932348181306062695325530618016051796200359284028763011495939167264370975116599345599262557478373968444947084670010104450586044254120499536984358646232231068044976321286068752215096926786284060657165422111759103561919740647616025514526583241209002270087409707804261567981486394406775645386906220072216837563645173163554217690172341945504313446795212771427191898454556890745227549146067143583118959002166553343228423017675871671969743654385785249336010412261215032789174718758087765823294263477847156621992442070924493482305534656476752632613841895565645178995160784424613736682145104649057099946642634995027573806547242362802058567326027583286073993621338684759961627005238979759048785590068222849935951109880107457593010866586478795699243734503992236916655297003688763200465898546943944645717692639571934456416167354209151626600905661275453719539596486707501178112200912650381938196346138935905750296935727870645154123965416446588572992868237046712871920533211714981969056166325144954928372352069627597985946886587106802386262560920613040625669879288733265697903297219629868298238268656880692738507094693183116219695647000685242724233922037958159320356468184130943713853912313475860225537842825765623866854520764651159290981225922046391451034739854243500147528542084047661802360411814842512306665527934931280722571635354598518675164978906701008569045487834050511599520753042291429028263361332248213011731929678270934057155850059687925830720010707172987563858464961481209329973063467582574751946927978550078291085208030872517803034671382173584362019142804414071237780954397771012051204529113891728869410706755477535524726297794580456932728086194917570452344150557468155135306505297755970503698032242598631295647979985866680822413091074743865445617690168949369188509227572068235895554897206599160482900402601307642303695401813342318774568566552369348777934591020324173216363520100581511495974165038691007717343473460498889476841780729465840330736746556949662951231907843358278701284472815830850097113103193661909306470015925030134370511936555837025199774761061309620723684789314163319114556778108719207635177402166208681966308963183819984174547392628081569489674206270600895769335223910185897832917846034384391120269137031175365939144645737410209282714690892396781425938578082370935394260999431853720182792473206765555359595359057784411191545712646108808196385036945352110298214042869564686271164893095238564632723356140103919025158903438775481486790941464013496147422051250580877992790803554669779662416556717100957316747998189168183919758664180473471053292038757015296725469325267648882492354519937450133043619184300023305693142275170514225345500683230859355068117910829185365433953897851405408733996380343361531688566904581082306346166056743660205464945264869409582271141107389848539892043653332871594763245456929314859202885538818464346740894546620442639503034727187034791327041005705254516039447658220178927604854841895106187534618288283277296469662285712078163442793886033227938627226756444036572850829869407428893308388474746157591452741747796913530646725249288981704316867930823435686579057518143310346190723163876185310155648753545070446207315776929813335869633656795221106475816680578015373665751296798207277425915892321734096058532440472622983959028076735773893106230645835213494861814696426941346765856646199332178666407741527632457172308195673951246413702238022799030722999124309476053081083125004555416733879099301389711804546681284118340831222090934865779664350141788388569155637503841667063555821100085843493387266014417499328460616923701200527824156322415449293456079989106446157308422661331080593951562515763814373636765008909098147631106691949025196580913313233676001674666284390817431400097698306712436161861024618369332340422520620167575907194477033363514876585438585314018688613655863203989040841781584426273511890472926032444454521357914518793831413275031387795799557229736510789642655258671915061542533108085196956606490033768668483485835570303094903500638468301890699529890630111034410099054086629046660679147401780806857364972199949619080184376491981879226730872471432238787041814049253382511433581570931128379248911153814134137297728403529725973076844701114482756940316882227121563032978093668341354360304980967640745290719421991153908240035035916641787362367022711629306661566356071998704874618984271056657047107025976577282248855242690611274117667084698791878173049946386041385159073748144585778824717734668879373495846613931311133350590253471311431036619266159295701442438918842035530344987255807039087953788341369632967852128168918362606049992152236685410604890255938688094881364575904482083111553916140898235323370450140634390695631172881163816575069220823941524492199103414407339739307226461206648980701829422225650744885345197107936121745140527240155491160616483609237104263839991913769523364859489314496544205279838148814619194546709519581163116346777327372185720653626148469291116842890234210637209741909184024027986474489157703499875599359377320863275012616635553564849349090015433509980233946195895110374342148517486429080472654231863471359161370988101305137231686528577891890905066082967312236740213389476341131247917613434888560964204334388512954877508710051482014764361661964611172018549682256498781094409980165702213069452028438532346223334198309186671733536908662058229259382227347566516304348221794661992418556906298676700212439423418993703038754284583349358417125702201924242024830276581220838333907701761837564428985593966555403306477833642921310171426056098447535533835584114708095433191201174751373332654812128022012196964540894234110570545754139532557448382293597931877884452126240879620205787504041694801204436823189217441030854866199664282259039492895565908294349841783873557555444902342830626223100273463714689174238267503702257695034284724512717834801940570071224594153750515654331758487075540116296752713337270091613526906363661133493370890551033261062049031142593752130344293253818260977745072799643242604337936330956607473524975495623452248877569882115942894564921680132983890875739177159934651007585205256667455055753000952720180670008877976522755932620528817579334158957955830782821634288351986548924938951715672294032405080629806916004940493323601193973288338009984717662369364284259900933891548649106447798284182881516045294684549977238167152855716680474569507797288053567927170859303881488599543960602880455893609124303459511205155457562374376732059578766634437982693908741320192826396642109261903773732657072085855714186925043897192595152786375613054939688108446696495388479983261257229135186068884694968945994107628207817887990149718516644793389402335994727491271381642462427395848243221834179805362467699178885731355168585540956341204314454349416989930770159293816815900710622844990435411068902554739244192738050623877683904903431111768179459712652550447857956787440781375517058236683536635870573535256746015258598380156073293192273811272855729062287604476086862570979170621105642945566040926307283714613195709180860458335496682347979241568086874192633582737563476817503527984544345897459003690570232863364245878361787477201685799448787760893546796909137966432328441749040157966406691643262828581894846868144139440091371954912148873647903841166816691588035309239303788108261846057382754256497672648694590358762432685336958432587704512808838323454477825599037175645600205640136634301182718186578719719484068874195115860166688745688027932246731230197299296691755779880714090886778055352249834592576521357016857815019923717380880600155848017534473995797069557066804660161079631205972061042826868468484188015615834319725048458987181085437144447429861015608096987882881635305264315530665767946979785206696604896430270385963344991813115537118283120071078397857671847213413405529822039336750912534671635328681545194082349276006296915483610402555951124413317747601277137230354543050021559083818013765636255547651173098314280976090968877494554996921443672961521694393693025286192997472687394805463676150603749539452078613078948808802797800205793004999486697275936822488335486807911908179282259223639591558088624331761951114965318492566165307365197381562565436404739431388681826450349398768900821623819953376110575559123661536705735355709551128773557583366830546083758828927794051202612547439679557271896982805704683442321547054977842532077599296205953016064507384938007240538423917173319398096835146877546033680926367041494763418258137861744831049937975189184240029139591843698020369330653313189485357496574565540658894361089657091819682322821402470340583965816553866758282853184480623339730817472637933958373256059652013447765077697643922399796609117590855939997910705173429279016283317054303155853292057747407554096822727557433329041736587400685772979904369295775610176493803777083934574932336974502387249676161976938187511287349070985109224995888957292909037042641932330823265476720896966448200773334698304678803404335491649067204513557718726274208476029707469298836133740613455076286829465008889974211882103273635078396597134721599513446572638426779441499082481421861710466119684810130267281267368592013026142191992740863554906405895726769565144395444129374355719128743745677995623420737589042840043105866061061933604626811189574199011521818106273243326011638784432618934871502579973577691526230583322835644726180489163426240928939779706797116651627066624365715835127238857687467734665567279504147403394487085348190460538787742852642970751355019672743670226934902597090873716658190437630217451441136478855215296844540536121174130255708543870703362585658371887264573134231082249959401771071449724319508063765436988424771619744029024982582584914340573430923492384994197275144867051915966694190786302486539112553853592085827568709756239039551264328889166377111536705123248495837686428083402071752925043867872613351359367119404469176409055656024488149259402605682741956937135452787208045540565142909138397941411682488648996664444600807340252711062716827443748983634265482723673471117106533639833417159137709568733048761081613092271806620238291058268065406365229557961116109837202784974118765508557124532151588627210372300029649443066157100381385044247773180393838348145577154730669655110513563063174480437563370390358831318855641331793015797633006113596949768615079410346426265182171486930323244731809013761023006232045488102838561126294155161933486731455402959016273377295711055198880494079396777766855212518518385967450427542346498215048760923848248335318292659519901338895260730557214841541543495102253086472538880779821793354698826295865134111978124712040390657868497450672235317949618501886007843073841199040714405944602887618276961211230012622080741525669825556503230634709151462931394743483643532581654321915324763557626086854918449014377385680237933247745873828032794326252127894510466238206099834722050596763787831751789255412403830857936862780075000060056686024341004436513632854212139654388886832322153420697397722433568688648709445745320385207394370096530962468801080640607076888356865004809935033304863373619598800738420941101916676327319117309324480895422042237332151826625680750083317007537033003181365709179537402663891100457057247616664597613519082130875173471640139837985908149542054126840392892244231152967109880689298149635807327149115922920342529706080800400454078932678399349736571563253671892191119990128175367702256918090288656368324494152670856477615375677440223827265846986534960025662966423151019166369611126612152044892210043358862202042925159922071526918991422289077483497122863072456981800825789264916391875947419649115759756410474625597488760419618372613816480029701382296971529616921995557934816376408887882553075484421204461772725233308284054795033994290098465985296426395525872638979549487339028013655267384615162715895825987825695459489232488828549260667031618953023781440732475793380190816416516172595290920171509383703304778487951243382832476109857693944051586692554417916376037068699099775018184862301432280744578854539884671026247013696875952736081079689288940652952439949586032754519495191949516376698678166179938097857039667277215045881841964039065380449289060634133103065072438386501896013132162690221742289894239513483035548533244738230459130851809906666100758458654412411619864865085344050513328738770786132409525051039634743680257838740952220440806277192729940088484702996183215786961343364029050967391471551553948802690437954864500676327671645993734193781596283887083579489131611413873504668001034818978703537620136238681047264366816116861061090669569384083100161804703260298093630243749743823710651371719626925805711578273179557344141143551324836478059546266885950964585022717426705967088491001770157165609355811349058759007423172154763740597909655790306370123002249735371420765752715161620256590676146913002169664413084980548927452316772930039713235658054827899269964939225151158896977395140503320747208464708798979579268893415313664025713921346152715884274242187038278058496206920117809375991115979018649374273765488187703680621779268447596638946848795756921592334377193200788224449453661388392736065437231713027665925808960634196480476414484205653992943449785966211922888697376201973291664779155300425664368501262083567137798338445697823466856235880094374740221948672590001913793950455639457330026955340129112529540213917965699483878754338894412216519675035130488060409610530396726714588816215234150505041151785772808395963897669641733254696291745432161928966756448712208031815669968472267799796666809002859594117195954661239237029086905632718603566673730215508411668700916961890491023502134529709666834848321377666187169811820975528509367957112386081894707674636899428684583759692736407691681075645946228518971158822369243368592738088651774441154482569598692436657484998727591511291903561803371603955737957568928952737396315894216171492839803099343432426906432208738225683785704926698582116081407961025255051121950871723322787246700878463751963566404619426052802802205252173076886723794249549661335607606983596817582454502453567655431148714597151803940796619592035209660660841224906474484095570864646939712334911586949239389440960753835563052342272723465879318215876985287468867098755912711159826932587016582162587789762499683657843794380007048091048236439800122656251379278199038576178493238042550070067467671017022803004838892615632143377816648016819001720624378899699043942381745840080194951267885240087343479619498637260812283264996821919387253699386235506519112779628700814604596755425365053950031029914335027925997251195087696997953178618237514861826724268448862816795375989242573839294252512014131537058505706488868362833314437169075295405539094261444960493606915558585527118151293449064705062925948240616905394857710659361352797688677983260159706901131303825148969752718692230982615165790842570878946376594317597759264207837748287328399167001919867916326898589224562583446029554886821016921575003184675750221304318092734323760874195139284155628774363016671688258262122154866423875040548270280482501737262965372407345868393215507820164310577265573995026772474933187449374444161786378993353542283673160517462785119316388647380803041707515109277787101078771359396079576785377449089495358946857465005872743639262238003291378196141492648614374790181009304701845881256794674789717361238760965252397789207261922978103339136393573444450423641022962425691618204907611366909252703817124394763073581217656449516728394082841799750724730068230842477452736296561250486802397336031642111140812192843078881897160583602653492613703613436717548289524870375672367822648235454660634782681334152112681147155926934603085609797767221557019140584054677890136412222038341009730252536091396591481151392102035579609127065621792464489209789513318664295627088040187535592192229512316433709813234113765286952712968677303865883728460025922565038129984324381060842451715906661503622542052891552459623563499788203503735418722767644902408132576064367766350267224457200470736968113978431648447420807594773904930099619583178154399944866996808092015640509136993298688888886957568277895366020705399622909713027372897846682323754665044486664853947067211489018962596677017210781044685011115324046463594014425301276884796814897236138097699035500625878257831796855178584649785104790780806203839096878614985690797342865729361880237091605453441527737453893714254656538717569302809440044387668242929748179377393410497948159249415008666561660071128244306064740428078690937864740858235247401624264505375476271650583814228688231113104535894196618950989912972807353948380953008942573941649608860379521723286707973822532837613151809833265028063170252742425922497833747653840415998817169444358808929152949309920272961472655256784516204631580566444007007903386523521414905148954898336213747187305001506558074674860709833569363755580125809914735493085565709291628137715384271688369246103694793926406078392752375923890853607132083746216197179795681509197498888516742760551336127865190534934279686232371238469600514837132015687978716019516791529541163139170290403153044388271326202691221579442444599355878328092790184724196383873286611039403300919769772232885255747629649317484491372728699288422132402170297245310945474194824153885829663594722805654510538734740683281935595980542680619648996800576182195968519113359430547195820445110091802021415131940959095818955700978908725652283830147665252054863690510512854875537555167250020634847271007252729326018538478998509088305103547593551905028198150198364504218876730091002659451428322544274750826855917226712175337098552227964344923703564357225911455117691256358900363036012932829241590995392232881291226519582049377940339979973855329820995277729249368497460828631140728884111582057438216655856259058595035059351894883314719185084371420834733119551408914223652588323959085846644925126600847518272095399059929928334613991173851012427437882024988125829422620613241769878171477465055200850781500361324090643136560498632935391368105820960887768534980808317593435128178201424742472753559749027538276807002388467748620197242729858767288007618706089810790411240847786055725137844586881082626598713702384584280407533344324588040940685299334081980128369148502585701164363223231993915894944392097578310104466339815058945545993991316032149903092675621573319745440021034463820900895956843028919640084041831412282428933997580273487907636844906213896738645700295289701125520690731929628929873712235114617296194784102463632732448514868887291011160420122358992257601217350753249245828805351963672400908129272497449538530710420802878252399949686365620137920924916883279955613453215761216008828079461398739042997397918671148419727993162404211728184446126630710047635281666012043409698807353451563963436767607254620177916375817703829923941848012229825648375930342562949708814194248959543868398629068359674044508498643423176287466354446514019116465815642055877421662848191593204695783152525842555979775266620854989014507466198335747749059808899737233458828461628535043499522606865281061937201702726804999822129238994423509813117047719252060329320152217904392460412176693573316463815826036723890429825224413685311589509943902166538570883465883563691188895799943518072459198075449416243794633311016031368383682120428727089612329163526775985544572080021017447780910878431772256102610771050845483127588225222000785299011176838334749494713563035342005418436598636218733496579317884781545234237775660430761784105070660576588781063716411756089033212689590654164160120374603871033204360240096777176803386424719014169335229342841901903327743739274199104780448845124607025271628858614867798381423663716058957100816910166970422963559891185213591528552791494782278903934512801613188061847111572115369083748008178610685481186062067188728676207591139132981600445055908305205072722398097061662793471161057082426583956473262114187293836565900382333171358270420241843532860391028849711898608306901334736384998164631767311786927690579089072617607636850154313989619553832288209514558875910965838937501118279005458490320213115784710042817070056130178357826442752698719610463786006950519812586739489228092178571468410022687745029247246705292886803690053175381984879798321664649783786431707676479626329920055579759722860348865376493193228114244523349483212472021270261668906168861217370340609414202739014145791922056947895097898504379669176945235964659725211945122033098616315291462145245254187002111335835592370830073398472444049249482034231400007664250675548780404146703777759703881294882296197520970578433184471946088996193639880640340516197018832007867881788589704759208963602259212691008773148860779086652348133933618715278238860050789877261842516302766249207780107121873224299612114731746879949515580192450357389030674160959529939215343463827422114698924389110181410524731637843174425871585698683554813216655943386739188815736033826997857876143420529432549569714964222690082286690801832179424952363840256464210302830940646324632931041841664906108194688305111253698842128385864749675731033868070851505014103205345636442728284041724316120481829552901843639057774699820244666307880049584463692511367414910684251790540899866709206157630112387631410595556876090662403129319902587850257951682711778678945914480124299398322771308677680314738581441896695928312798276001223484107808826060512881449038853939507629430074982896817921697175746218727075368210524061734153208936114603536339900795240073981940889625821274483145454401827640781727445289140868645763631319260869425452330510572900191150901612221444213991572329478498712221951011977658575418751282677279560149002637929877154130889552038503714504373393304569740555812097181517643386937947021351931426535629435773251400601094913904426512714767757240197927143403923729937240967037377616654746890667543580871895979007810733451151273911073742691138426096910089531462419876397791499341238175686482664310512549000106884196500882398309595115789439593716732957893412670323864075076695069430650379851151659649248122334814611484242551691940194485389015877090734023040112491205478636000065982763705568371950825756246028926344825147335034765871165687542779355960742390091233468390463490069227037304649562611541116473922028537102302381647514296579171315946068007065404323828715843503633809036948165717666660337065724293228498159840210957215768587283391210041756522020775241256878262577292623113923818701287540293656826562676518225892289703770616208273727780320568430857497182588604285649210801757789183278928220493876707784474744397918117413266763824522105621995452336120702891413645195143322365161451152409767367594057818171401409075892721020439625522863305123535972933305252785331240826085770931582822586303658457177864756834074713844486110222194044534548067706913641462771776255311742900056671706285724800682650302784452582390517806994764575088882904988747260664613550982032603144393289626024766108814221175791967936626998941879240241617001094279707361150250035040414672129248360293588076189556973547927688594639773772142336561305030825507597016730536363799408959069500071552160083926105853483317949125787984197471113799509486109958192877304284917187915839054418111210346030619841310130084480170885404673621041689683388775236466356922264305793282596358964379378960632087935569319012436052221174808774804535642758162366503864358778125311506016843692768805019692903517839941334082884078204642919178468473969890670450095656025577713605235936852472105995415827237893908219736482303882678782856086700886490966743044642705407862483273124517686824186583228595749022348436561317984631989755653052549131021586340559560852443348908311704202742589789543917965866819523220666687117879003386788159849209828939538218116683791202721967262265638986477533834223992909986001095054519685968260155288408807012939083375048693150110256242121256991750889707543788093701737325968207729020760477574410342208255882065726370297956542476970215342832086306730118276619873279684991067160821260276619567005759691911313998870093291185747856531802506679061565716078761410757283902542149210485531319442167974418122280700875722247506996632596646659646149539586914054259735399109619037202063192446836710444514147813890843927116832337427464696070211461940973637607002578078874848781159217034769763599960042266841184798292207065682164069036115877739224460109292539586079449705086091728660357047210002460279813554532303598707053658820167043999329523652134422487430638412684890940011287962293265235286629104121825365512523730607207252938371541611712580122327642994719478428992675534890043892368460426877600582270386628829619776753858788375236693351209317333614782528372556024728466234034298573910905338808716598443233303239298187714915103913237944616369985129639149722160577255279326927780478892589059271938885605232441500642676811008959920136527162271277872184154812993864904982145964003356485951425398834042090501841286110929753109332797389010259635132371526287928511160332514294433670541143360915484893979686260391765899610906465841365263122386567547694788998560363966636857945973684246979852666968241710436731873896736159643199861045781198150339194393942449708102311450785893895359415330552612660567879823380836271737242954539527205299296791218301517054301973931920011002076134690684043852877858258945896535613991988446194050625212487359042951411730000939843452188215947923220737386361617248417466862977979696793533644818084837571009404505795798956233748083767721364301278309958051349685462216776735929529606888186087486186365458767112034499426037407387106901438017836917359267211088424181024484142574007302822617576752532998042448891549244996368239421746090726740448966034660025379034737554561847833773143084687621939373391806625338604500490481372267704554483726690622988597253047929800079575544811242186111198369419652715316687130671343337743379923735078385308356223222236802620405238905412589015512642051780945663138465271454656649465074080756639427924494804425179495914517034689930005918507771190636124357079302304179879019366380576809433329819261355854106174719094891140661523475010324103557766304561417763523996287342723555902774715266330895572021692635280633704493778150010271023935070410417577289008495064799136063876400480578440473009383088872153258007200457733025750685686668935729222027599023481196413709381646026842917250632602880870675042601429207660759285024725854197996683307169446006649457985728023982664173356552248781417211633295429244320348995678368302605759763633845784578640419372331979363924576186686043458946850792247633889939908687638326882263107458570101366219618188437209474531680608483022989862778434480652764139897610735038104142108517977402508011158588351981742812010380930494907485250194663197014131412372057471339154996311746081355146258381554406733807918770883402179147948424700636116195691509909492433844846976640506697617299633801180826058197772920568458680485117664694791836237289418089181784902772964485536943577591627350121481284516434431443037040351764738525374899259146666640524180537706330517130288229758390684051281452969187071137694288933514073101021066559116537365737848572555728599566435998076662806062882542383802378517983480171020892249131347962140415900195577757030455149352898321697858205595579929774330110609693187111520725728018361291268849533660653670858310490763422682953165621048492422161410206004234279372516233376804478824550073718767571496071656199215413657835809463794007637308486844415298109366880116379752201267663538923808629451859104517926468248281423053854039581979182276310717360917546652160695776730394986467970540649901372167608304191988966765597302472642965936612130203675219842375333706844492733122366826763473934779621795081364429052504497369683009089104445520534733746910148353577754121498463738214213660269941631005643181884930552854095444770454788057957910009277872431007874670645921875240856732249417469806296717533073494867223919002862888858551124820507022226484197748533728827337036164789173274009221551898038724257962382488917433427013372275655853676013614689039636253353687549539446533323873182686302954153342948435088670656385050395884363462335065341279728798755110129020296122499081535431168093397684082833116759533511692594295191343966345666651449674774241577336864646926155534622124891318683319457466350501335057412537886806262412184530241166916618030905157213993863760143129901586770659578354933083038366062412637080341326197945514728913928114475520389053513882885486204193780075375096273509680480828179152962835975847952696477318669199392109436816427372171680477891953366467243202475725982162955575742013445829071215142673825223057571510327127833601284420773121598185888481331062157296079848858871747374448209296967495795416215093951630209647319111435682919597308430327342231414658792422338409242445186449966490654586117342621238228468945144769080996427090582326793297843478912323136768302635156440642236895307933779926014572008876936525197918174861867099798691731574643806330047818984124970094693577377681678083059354825856981029439204212279485781854639839248175380271248879688138779619243161186210006342752591636600396216980296496765655542332504864827181590767755682166006234212655511429036566400443915269893689195100364592850245942617111527080728228828909253010150158633594006123561778177621185671376143118367863134660432863894846694544319394626007929065992812815668748615744208159547725923971597190116937582184962402620294246441018474817360527148890012136809869953364319527844639995605972299482489894538821486285558570882125309059571175654066007426519924743030146591824747234531898367156557669689665807921452533721445304639798740821025816301495119285845117182182720293005942246949078873867623867724406527940306997850234627114529350389084817723845999860426427674617212397743885830682735649162917043372213642262399902072146858302368644731642007150427849773620171565427764111068039366080397863109770300298668934461381895875387496120734106664150142935899777986031014125135544538094822314790614929867079433156551887376092560687517269178732277526855177875141493562238902841908301452017174770406665029447961646038824924264119655997265777581875575433990037701338597792366825841716528080236182529379082380884853776770246712790836844254096622110346089891834935967872500274770167217533098618871891039318590875707102047690130086969225998790937577862361546987025351166526971375864641382363467495858505559622707126731137572698817273435726827303226974488586222875300341631425836879462139375458179124801946318139633197731213453975671882678122643495756698390402933823746537221885062288543411879519908432566014110599983377486517452718996549700068351235985977879160099013413689424102811617856341856944231687734697005855584164465828443025266464913192380889554086358499502942891017688314547867575666204887782857179951530576385803361086459804139344532499182780299467395786730898257627841411712084413343115599743334416458778502173086791635362956729744011244834656428655512051142474090494793333039190465319403871634248489583683616725973767881799480001543263328025449195251599669074605337971695773824072497898530026859356339614675511846425483850966743169606513874406719910412539301241691218161404085075357635791424707980595657040287110335749336962947922054841087574530693536261198439613578514497412997848602477189346408708342259111322692064025609826621066527857165726940611603030677025915800875783788207143213593125604742057868275648495101950157114090074897869133327556990039560536502161159158680207434663652896517857351802850798232028625712532245942796822521319695293393842173441540702264764548100727064407222336040748455406529387901686569035379052635355804487083531338075023522393341496981334322177618062591083052933189871651508856566864302652762237543544185687029111635512379660165237379697565447134505703833179926607307517189570819192164340080984414725051715181103759996728896646707308968735985699157790661354311433058017516964329895529347199709583467035861414165734646792566017171871128033159016621263389223922249755210971992104323225095101486023398587168076832615311492313744823954526230981460537450018440820746724774563511239882177343092087827959933030404014361773467319688269587868598350597022679220652269801181291152297960157321810131084893738419459434170358604512964087895770350184764054834914901433627523146439922694617145770376598328505683801744930370461996912408962559632982002942571927642057059581568968079291083356499521449611791354418868993310709367015189545906673017829127223327438178939145422042306840535994585205969749861180349838355054742926613703572178000637393687771100393333172225028738944214688820683220651430081139031355748383851494699823192466346938286320012438130683520086315101997727545777722303831049247807522699474580769283591466440598832106623915649015388287275561165207200642315000330289351511465268285266558542059498272189128122953069918673794400982275620349551792342884936674956283785805916304142446217698497587477789529620967418131841724654871781793486860084043129124765036258782323450858945891272315890544611027370041147568958708267271501100718737847818680526865386115177011911504233354820880654581462115249275327779047128898108205363393996520899828314931051311143111009276392298767774185153742174826919348830849251385871405968649872914621575392615693967141032141422562040026056534836020436958989317156426151770177015360675361179111944885902393389161949692852177996590676760290858610923658083111300033171647475852546407172722805783086959754667637908816931309045800446729959952702197814247635635324299426829753195666184046162873624568398853122285463446469940156622424045894447447665714864990177515568390697910965230789359944381866431363529419193187180662636312453927893110474326033695325513733546791169961652352485649990809946403027025972444330760346934723635139680205407835184838104377031683613757517963502325736791212834050338414845644859381792334214823659418079781678181190114777090489517929024099372926944143182480008939211008893760967383883772546704456277010353508837311401561338572183598094230020869781259815424763636709874777892624279022986900763284105064591723906254410052841737588323467961119915341620533896426176540524109675773122857136464812288125300819207532686149825711871038667158516230293757337686227715605769949980977756942441138714862963613041759493874999103516286534473302831703160862497574344835326048602983324063347597547955569941234369446908740215286734450080452370533817141789840170890742436334053882136937865636706770548039221866551038363219710465429638750647904182702424025424897359534695352953795082536036397886843392884373093638960755998130937524704234674531480427087135663018121079142807108954276267400395252079986081971606043311324805887710135261952766863326879138788282841640615532338499237718005112503049858575036674068301646740655346151645472043470891607985747061910535110238334306399180392068162394082801338005269033807920196880332648542633893231877769082559426775682898920789070964226265295958781567039402599356511736861537659853195373588430600508767948047154893320377826279725009171176020435682300245638484781525951834286177841648134565104878172798860392218514309224598270663979810843908826671297984710946394284125510360693033610564714394632961312716131413791625454256840257829567046476897976418632949674946724643835391568752589517468480769628952628047963526883551659000977092810811231495388498713706856584420993095736046690840708698748658060880156124924683005163759595977773001290311344215946629522127220504911185691211259683143679261315994337800375377863534267839449240147847097436366891233179985455244397432123109719204636590156577928683011306246635158742140590433392152209156717027275375094952754259675346589737290693365443864366693470864769230071769608889391780304285132796506089846396898619225235960441868794998323375878025256428924819430370944386937545496497543418617725277375605751051523578861701060805540393722030895679315225125891351755829507896076142001001720615385384006608292516655891814901362959089190595663727733613507783930267020972529241792725634125025244705149447921590215985357646400535939829824428490811110149523153686250758490424367616719358141659353849528321079833219067789007783004071371500084104154475072165757560280770435711817208228037013327340304704761147315366711676135240390244316667558279957112061773734155982680798195667248968771012437804928667705544239980178617619879886088968168527039423530872128255990250855836775527248573242054093288991315613744007467516116685156909479109310853201293423885453321885184583949119464620686450721112545135550995573184422217875513716596847388872657181960699079639479784374182403195646625254172670472014433729418007509653866442540360880866571529465137611348154621755005934119501929060031958293021573279171509700702491038996965154603979945808419573703488041665361088062231760866830762100404686663369047261882932346125477735440249932842706168309268957468452456109196417700980727944152768594479109050051723851981542400311847406989634107569677344926337543238964977033082449936260733004989386554551999309403208095979604020187526572665278055289642628860205974147575483116676639356421643090847617620539625014103141845491959461753231485810943450210291535603140831085386329141151346815790327412885870065180613762023772556495677851139503539699891074545371682766332505034081493099602511006008200642280237778377655630830139623913506916280172303198333377433225403976422371595477314409970649764692687481196094184937618250796947534967437125305648139167489314697854437132848490825032546317180681777194005606728045932628598781880017803636174170520978548561432466379713673412691921962536004167071406430006045527507648267696640014745940759340044012942669256299371979712820464917053039663703448647377404364521043379244622781141581857923325233474097441785039338088210637828612413071977225432458870154951559248260399263950130777929903488019226164227033986006009837403273290656122465366825793586947740805546977344048541840562595305792986471862796383534744523145845957196590373877298212884566318361896018713594549493557669956741273783185153210495329737146582440186559458995889424403165956504738046913076270911672535577206437000600204536386805775425822790182470166873753021025176731306568180246897503028063315883001233401311202490520881074767560456140110446276774326011287615596121565736657950444802633626595570720566314135339408569629847667606860511011359341495249510364174838765669125206501007240561887238894923209718639881389984464591467314916243223971313352938886757304833903273395391612002182850584242136071930530375744214078078918522777183935526130714993859653599650771057972586314496576480732571616946103509870387383583130687628285413942889422586485254155135075721438277724589543036340193659979022529248672041366925792396970882659188232330742644215961016759072939546725239371765822414381125445385445498641680540998748465753765842355394135782513370127971860324042083182836200897437144568291117294143726944192891631652251501008881150625656906933184026136113164671146606634629367191074364314120682772847059177549116146416883421067069420117159393867022370125416377814696837273706588792714589332357750832585133383173601638884782394730386083396771010884100995603010234011592975085612206127567775508960958747041100886338949919994448367968454339264565393845860241316791710910023559581366551473507726030220566116802647563754560607863896920937977690929496913266370049871783358610769305644267090207730362662414662481947134482948031628929638644046032367769688137070893204249430647569298255688863307575076691421507668497060557328229604416378246148352244860253397655968794715026760106206388145356111372300260666453675218855894586689005836548173826482292603823789648432083096477101606582611039365441686327044777586541009709334817957582661561401529846908052851951481453919805909284592067871224119377079649669880179781939655764714157155209286747337970960732911683306666450225370153849141661682767239909238039497700364648302241587849765045334215500394469821642953043083902597685723936666764400040311211729657436558290903311700784082366938016409409997306935750098355824194757824906177238459323254396324743455298271239810988788636860111858079064721814679280914368702095920209083723364973152314649770734941625462808948143286724279522822744745290982685426135598081405543217749919862873805227493935430666561630742248216218786747727478799697154862585526722497341603257877941986923286780894550922182678652915140282429884010981945738204106267189248091479306782246932066114635259272867776323470815262913317921044082871953079725365417112781355059424012596617093527751791114225447074726458539080389443496618011800203231799291616699141860178114865545965902174945222686050162442880394031014937938799708083046036489948400049230989592909957644472195235488583512799025754405091744877659782025825135056607791823971468354632385777050051280265707936978226718381199451818811312245347316264288256144363986810936622930869737100988950630079217422713070254089109351611523260057595537823339098153856670155831746315715880277883247424783794342793972816605358711861740641293519471005806046911202685957022150715993028460955718155926643077015985741939615644268895064080383667285073678945014010332463827177131454530686064635419189917421228580109466272065283401645333952242733793950569301051118343666362663990958522945967202159665534972104247104295293365257878533276572664333884988029734091673778230014958260523021063049531636852968374896137998424098657159228057979272343111683541750749809285241205482997293962886262081190184558635612039374000224409924338826806876447811958272287238283177513322783057921929932946252209198894756358718825044063861858364754649359476858775727593094690210124016310573659395547836738154603154228205441696554646875092441736888626686076408435804871638743711897546401084012302017174307059545268990256655062795673211797472345563756309410356156957363845747689161995490531125768254132788878284797198238892651062995248272296093220681834402143704242927219880936814567460497866821427309739646323388798518493328586002289157696743463771701696299767221992037605477143046031493995766708809436188145147304878060669396779049570128404868064165345165470180497243382448586038256153305778651811956565982886849418912705588868517950358214624673607834638723625681082996518854097951557487543122078152380277924866194179545947803409836209533434911839187427285793182416179959834554418749890170228844503085270638624410893043855025627841918068732353342055720112655069813785241362717273560234292073371319217305256507814945645755532322778111452599466191978080821680867295301688443016000179559007629090943479584701919112778604927084742281707937750638429503669592190036640408857200223339537614709424901495030201222549512588261333814414239063424869336718319713308786948224590955460901203084941063599985024809820382584801929177476086673119304639883000859628422893361087247530303416091122701445646409727144848802844910498298422582191329932738779726466631965678181054595871585814727705655415174536022025311327663189959909789409597436587310242535949036787852344749665732006741996640984046727728122607223929260768299704943835620836489825626387762480326999763634617775923465022703566196141425523474938416107715497515012656898557259978331219610338101602461439880454857785465838607393991848853201572065476239593438299641205772124391927736725274022770365925828716138505158326725122439138093854757553432874662085745020008656050694864180038209393076881218052408589660547009925255039812379820249635104047564915320466626558388162123018480460882588586365283832913831705847997137694707854040212673623782603684473476461286537333882904465207711091931518939171845018329826641596465388129936809583233773973542775422899585024990460166974501052857165467252700431148171082759632117684294394672931050992156766481478947892291030745501231577588604641036392443214931618558785159036714572206770130685155960238919648961808157412452938762581514269605183860172563045442807481290869378288300472432875894782064013146818973646891571772556378222986787671096261129910436834484042909723907438866516438851658429127775588031040614177404649888409446573435358331465229837350349179169146736501079880632775287771284898793586582246550875464738594307737038000011857855706686606802679739895831669484424125982418035840827093273807210270096419348152523780715267843887314162545223792788934457850190121323123349162999440616026877946807396303793997991892216114690677863229146602275188024776058578458411502182551920071848549054373741342716226711517837069898940596449201729187097900000455675514588527048092404338311607847138226086633922709724912528185635017797821834069692179677505223809371173002288726893067340464861954360478985030886618567722188518783938047877247857537628420738468395861748457655588574951387461183809956503281759717000247787409155978601888654892764996432117984087977274056727112203115629616632616696279037971891220766667935917905446620021321533106019261159222752394038829329610358821238192886884178007251386139715698860178900854098045194092117720962114431571472330476913521368614769665288961714766580324337183131402222093881270321775699554218749810084485091690445506621433481461156016343470148482677501578230745046261766208634152937649789302953626870730182358901471474514981882718201818832361375717701166589038237464135508353361581608005288429261751806331833046181949328427052022168266207503402250104553933442908776856279669002155666501106881428132539590370668433379803832501725350225330655931414280098888644094199686700027807435395634159142706544325985395728401456815188515870327255693815476099335616673910131811221651418692535806080444187633422801180815765913184782821718154254259012735876902324757053737854845104607971953468791237988219603747177278891833785182273417969877788068849500853125581313849563028283175039576852504042583231758378418486546047957955418516441098310356265839573769033053920605472191407940327794598249941410052681109020716861725231578583933793537802445302828833092770400287779415918863919710385746729408944383824655281553552779461379509596843365929415498837091488723966630012195994956370415279429634563302259031522934547434317889231219226344802362468485652428085407905317073841568618759323842137928267230240540602103768105210463331127274681804513723639273553010611904601960717753033700351004159738761820094644756577770771447753061509618687336250116364205639238839829279526012218337759461903139075499931081233759042838195606452659074083521003860559109681730349470026096294673426090468254428771798080477991852661254474168537522314172815822135037845068409562236379121736799470327801103399582457810027071050335698173038156919632842229347679260823028225080240817485412516162690695399454097915367937223223977469174062449061296864637293325761337599888905242718280270185920043376590035115526141599142603784285317941013527474977482009107204289657572381046530209123293305451563497503776699706605203567793692288206880023459644593993899441843284520143598476239354866518278802546930347045725494695679692746406511340338485900649086720872375984982082359549722657147553656180679511581608766587078073037068969793825186733177642677859303989506313213662652234561523260950343055452186361667149542007911610249729524582474424746145028712588637361331777259399049503044452738183980324740823233559784980240019705937737359221600572805926430845715670409104170917205283434505411032107954171309253644209209186830521668622681774096206109165252066192046469154101900681996706138140523094998153403215832536095660306403992355694908542275444836089480397448010245279075076324485070808234183809311926914289944349388379796034882372950206262546759693709234767700212635118025382753298801616519731125028501870221725011835655983315621496029966109662299309464871702186238795212941674950360088653001346896034242854889033431692088067805977995491756267940618175786115116372172313343387499013248261340686270290097203254080677439170304742020001360329906786288923339826978377380850004060817371227687638405270735395778624426875642621423228199682703073628157407295725339394152461228724898390951034104292873922878234951804801884491951945895299476008157645632698191568208382446129357536758319116696351648604159331868792137869005343540812603956132639406448454732711771015431878228579237970243544085322664521484930454658487829956332794190918723178283775301918893457456015716276793672136102135141960860586104163795063662921506039812156396275887709063963600414611291376774020653389131377332213750599617555521380447546682264435705070566015538737414944567342295707523441978252009564155073306671134271284482484680454756371732413425294107828107835114992594501375223791653403027861622956118458692359633372725862466200562147321810951457246091117810509463245286937145866610129974018848615676288840607223344766249151132112608380561689438477036516948129205399968482915757768031551437048316770593062356420003293618625892387664799618637762087526631418240015465188151611578304143992298735986239481301794063319563927309846225603955324620497998307157011078141366860218337806182752996816163016142167727052556464810951815984800304279275370377258256233856745449674068109430773195760581824902113904807087746617964651049870239532337388711421033616788551192150354235401288457231752951934874270709888226497867079084690277571030664491549640986001269073727768515237988013737383214355686252246194776266710792376489938881494001075956221655156278003546606626882156690124737232842693465215283857949279997635534655795217444057780305791605016036072607717659428087394009833195093228491008496428825621585874047803594925634712317948498801559868537884295469111396490811820663034538507830199002547587793113371801946468481090292606910475647205436697511078372833402761121067718515589519911490438191380504302656667078921317335488812675267365020361280000090853919489731669581147838645798197363441292239687239156469931533418227612716360257548625518096249471192586115561947393441516497864738223794293041493269471350389705568999552460728245273197246056272233095889593406938884253544683833951266334356440490123293905348023900009266158374056906961029880973563482192872708565210103019002514961073056068074226535961491383834297032303248517791972001573157532093384336275486191254393141927786896334482459843074753503614747229362483025639734368041728437961373243741689087209609766650690210226444919773124797922597601453931891058333934889667149290348097848065248356479913181692592214026551222544647532688098149668612512200530795767220863159174004262804172668371022704380354516075444278879235668285245991316549692728131255111428457991396924081110624023907851119927393847803213090444394076133271497330700303897199756677549908353344314061001561923846234784590269883840076671572063249932294641429374776915663569580233181023394500146586889107299964164610793400847858967190745205297522093663297735159218695934777705237178237583873730600649475636300579939316353365326070933832658713835035310103159479091122448055703100080754595471966390637987213720220982156193881343141769675441386839617871942034074543774749410918008544276017027285670175149592219968697020246259873276524730989708440684193713940207230701084591554185075771948104682672870269711680101460246900276733461463464848770417255607402671916141508358370790849848700912950929276917889614407898594165650334480107299976349889584844534685952368515150252918582116520491301107584376289925486277783677856987241944828600138578939862650184156364012481683828431465935880275698295843430418846289034152809504819757436976659453171684361010201330843272156897381892844349448374949867812446353653657416501260170565960294730689859219168758880689152556334797891444358560072788085808977822846968144413877630104874862373302246120254063977910100468137659984223778242249320703521817303433759547536066066440340709591262344296260552549828583987096912169296975821848406404434476445355945420341433801450905632849617892861731661749580200997268718525195573167831705102878037462294765042799602881568910668360715507345201715145472199681830673943024397122290015361487507768487454491269699520414842260293425002236172081131931084679172794743473736607788502459137244808603254592501261961372038222275362049080470641033453013534089201913091677749465611321713121437371058338321346484374560782839057753331666637986493832399075852116752444481391043328299468524917310925786068638801182339921103075469797772481450910118054728910299407599773918332936323546909022699071773987749401708198482386670893151272812052973315742599818178285606793732389040475821948662138139157058609426137695394075684473395525222044594952542728099205837048063696295560921600232620573702011504251112377430154887365837359040918226993932808761247531419171649958288940994766893636229270496118757110441628441846315194276371958807431364590101758297529679427165288247881502140652513407975020681826277219618149344545269797961413927308177610497806201723680515901439649034511482774638042454227115202716179522578001010850808559669340382666743388751467960845183067375007957027961000434159464920145372368774821551344709671265625238349269024458954078282363660903772919295183025314102233350810597648038071497292389926230168003388651250011290365670627559129721499476313412055293949926740123284792000237566804980974799363275538010856304027394968025989003045840291713500918193443597822046547565491573780609077302378644473536856450791384448876249516392313983723353144255618873052866688268991955103516938485859135933158786228233322683041403072112405920331203133564335899683009939683402958359231154286593988282677328967693368022913925647157367645068966747848983317648659746509732119379564878603029115047896301772026059139844663998860719244339327047788648714178816991397245138796228595339183640575834311051074974749382897651106683891644219668018314774548416960582137441686890928461527895698223624355861277631403808259331812150603441795961487239165404087704524881549706420010821817841505731239972931986361409125162838027923908518233117895578546355010235591860174958329988665904125511197972565409258347750524568115200243453215828359705694754273600563660818230026256107355409115910640050782565910217345189499691818512952646933132628078105846449923609968415127073207422970642318622319002015618479527542479416921046548320025130586587001665638793482470238652240477775898770342041334560375290400039469575464989429811749521752462290676378943825634983280675629725118942791853228580931150401188281375449366895389909739228944473405380859713105796912774005508170336586001526928706922994184223286836793299883442683657906276574449252168299500083477798459128702023788836477797778951480649036948836900459737785264337082650327205005728143526429788764452126505195861827902534922296105495869435895766838002217002307595464029107454066050234693629691977226048931614776414567569472855182913268033858015143094552480641671888682238854090577084058229489385648950752314352668669157962322629862682402758983432196501058099879506197018205156710329204944016468082087131214068480871556997917827139742990286485878647029743128341287966279327151972240722787357975241588840180584772549919070865387460291820636726583286221091100879668030153804723241795024323350848379651037232235938514267653716779439554353371471113306473561024142232654027706677058662201622141504537146845338151536130229089159792068724133527049888252794007676510921729984899509302336895714101860322955301611210628104733420657837474849046324543078625366702823169796336350623214642118651306225299781204129333398254264009390608083845074520559632001113476830982743487164150157878645221434708468651565738945930664177972788866443094898005570880181971194059879101069237425254465730333744589372882753844844921142621047745316866563625790021878804655437238550577763731457087980206713074781149585043501095344646177165110119773108397667270482852617898675542384997927658456968181845465641920893927798990112290051160254568988809549427535326338393409033538561248439995344149285313315932818347577886452799723824800170615164931947548189051578731198806189921168437105700974136104431001564166549276777748821557432840420156033929247590018533188670778697636761608521041015575646975137310605958111740441488122578538563468234324259954723393349590198753243140992906320521176186676834258829335242350299562840149292357972626784218021902168187493077932346787103522430377366736696662826694263105723795850396037027437789839498290804661035437318485718905471956425264504591119920201550159874332286443045735398867998404670986763390856145998938025473695728079054093186981718992930692798612322257131253948323768595695817128357814082145537449202382009567354654285069492799701122461671901708648863699287892943156865122506195359099835337815564481660484129179250034539666026039944437009532795954708736537394965225704118584131667188891060775895908059614759097340751298446183071106631490482790748518618222964471919470794149627511864878638675878015386109156275822205141586462023818469225360168314898513244096658623905523838085475026245494623840918622044276446417670263618361601614758794232682276593773400973749625744000394706070430208227679421251057601143870632827785611817914750976720140869239154560418242683934873987696533160488908630311303406565594227717144598185322523933243418689228262609405654922580681575824557222700609799837905698948197646181375876003535788116022595698345430646793216393260434504751967379281128004476529156108447380677634812994715096696395194454145339978451069191645410138178888144537718201049282485112232080110156066428503104896668357666528382830824559672762804586920571915151692947122245483704453866222999067937274987779682515773583677767016014693162792758636928892728877568709646991752162593842589344266935198856378192072886543535228183591696403295217665249518808392776230586357827691493491090199002204575737745286024177141309133074325698571697516742817816074934755035809579599252544502028084388779219811087145641567809475690176482170188076831676495160473813614811383940408041944679598559065746262739371586183497740376219681299287969824051028032937533060980208713376794811360639100388224257004557053729832724986470949047487813022244034622559653209642852495726145277643922151362782562069117174705977280102932253315396977204545116603313163741681559275192913590059706442854790418488191588226643101710161110716188894277614051856143986402759128230598499037405488293179997596676422362855572151339221703392345807928154375290998560006881992222000054568768473202417191295772784346613229096659880660925314951044166831464431425997570066680705302244920800397267964414757322474044674174513527308844904224337699193358842194986200099080093911020824356415635462169038927227194426458135524459791637921390176013627730283980078809102576622402462108849987858611732750807781959396492418441231672566152533797154575092045234581864945822745256602507680272443453954592633120541716005581674404175489779627564799796950257141958125134424562756311757535087523134819172209450591392727658238681518206641625776142406921336031824370423222484550216779668717954500198420696418292575729461496230172102865930555107743391244379825890127793176041741359829349071452571397430146082837809611679316468746331321503356294077496773720120495715613336246503738463428769227568529447159056074616990734458299937394359446142290558722624827391509072354009812132220071919635844400557740927856141020125532821613037935578850376820872709583008632159446169775345551091849325060818541274090273908536721989565027136017552676626763217887146603944359224144593133867219225366576884917668270191226347240420078318845065602479980105129560482920770085376764467667520535683202194976848757089731198477292161537286747201112314230586840153573214110829523420520935999506884355925542422722514988757293671487843694369251446284278543161015580195976520624542972716738082579287260515456153577504928951167665775608006354432840599349058881230888828773389590097426152412830350422261169118617949326853031299302272928595840357397198478455167766279399146551195295708713724989116166805131509088561721384518800081741053614377625894987200372368490716531376869061694386956407976147536444020774045371938536791637370857571652447980441024941052417254774932470035002139967848028530642383624932787962458705467258116395201111792826521178479717083564753834181619475254238086650260824186700708902771549609857429373631796212209372146256974245453190599042188002207375162774506724635188918882497186070272337415227314880683960369882490954582298850477393417013976703866062827004850281370847196344501517705883883762013805892027325952959397778214441703671898261647473894196760691308115256522633788716424583147427425285836452144881198844635602693141231714708700419340602860686682348297516493139362059178774256500293384885066621966888312961647893178774866037019557724684514031401931341998853714748510247301887583986764344937552597180443808355509552084021726815115804885957391505591633969682571007743821257312660294109817018406351519408126191913595765563501007349236231472743241599036247658531693989357619352977080415631587093847649880995776869560132403759522269954543803759226862103997359328847643237308551261482038528686317966939013491003410916983859909949680181564398573744060202163559248216615968264248614537544109354079730960525811318982123756215058625182744950271468807282628166267964473176993631630411284867262313700425018922679805293311504398564596818966465919458738005928372394798149469213457804911001412920342046809341360443438374025174440523428440976035638327567551457937034966013241952275649825360159205235457009887821148767950663663528442287761649448352914082058984007565993182142393980864296740685130488010147034912665665998219310372453454289839862270924685328980452438819752628639023634495160653134063957372801903150390259603170011516322636392058397150617834602388755876188450133670255381539118121789809290151788895648095931308420412231789301535738855019157365522374340204896990148568146835358574218325536869256400863303680455199661185921487013617919871492491336249192951655481827535695248953836510695442113055245893104916479406717308904461751861251512212256332670913701278597527575449737173894588969171764404688434359230585364445179236026771264923967110268341042692263002132538894412294127662535651625007184797040939700477440004648939303759983909138842178161657880781206546792618984591525471485870970703746467176287860938438631798078333700033652253982177286431622865113966878232259992425916227677693327395682350075370202854932118978473005997661772851235850116641673829694353608368862827372742973834443250932430061016104971872135199663825861010567555806288274171242630030016117799214060004484709283787485707154950534139188729602777972329942907488286119917347838391250127236514947202295130409138222924010920619826725511468031537437131147292663959048400632332066031557991609211459422437288142847130859762628959411767509389342110019313883844592156062257308923836587591712783584428652263228526679980540795342480667043852867903160529006832131236024384436011862346362134631563739911936017989841566792030673935189398183268638034382485503479557293343671131668305508144881315100145854009735607666188723318909454796904044642979355389718403714399995895913325822994330860970794831535508469423069865280358514102806974193741759111368860529049348866067146274303617143303784279296380807271734627423329627412926224044513975379015115104433692864869556257309937436845377756229028564897227717766027064921640393287493533294294750047479145125314911711085855502838330364485696646923985089432229968015920529164195946906738423282224655704415276367361177138413454871982049846871425423317910011695832721110090587915885716472660310297750563026998651074953114382479907206123583836828661098674895150221594788631867757516596832036252047929574100860287689459639680021074536434014297049510303576874537484192812483009987905497094447932150382560351361005093767879940406796120190847906885853921486852945196277023437360316804786915042487518722149211904831087137631007194217237073484926035002594398236749509244893801838382721149769422102184493319601264191448892153315906401945881464333132530101866560838747143139572942967565286327142206532901868694142593918570648031365889009076353532717472675648818038459317055529416779215937198450769786216004873553279755391076133326380826352564058936328129102035335325464489511702291149311228083206761520850750324264978545615588994311364870467720475788917220800865002084565091001202124179143740121949759518188576222295788338414143650396133757856754998343630886036879571962626069499905277782389348584538905432657783584843801880939960796411774677780757866816435789665256780768967060720259535961094155539107460704159536333728834908434192242548377941338743031142071703909519768320978145540673707820630218606763459789675769928680569086462905885955187546457914322227789961637476446444878154712298622169316879841504036622454825995690172463794755363949946494583304923951151681042065383662229187061380702483177578279404577909735658063999174836716538586495336214810359493353833880921240095905834546060728414338171898586776377711047447387879337357037992099207767371862600999142042194924980402034748826121679713629024151998571598151680204634329029868763848059769594313307375617627097273492579443327749649208496412861300304671649866132064467664012037702390244724859258366898224632236818054400848671535438435707230884070356807159316159468435347999553966057533371047959425139550818279042323371382490701039281088191490181258606356557251272146599690955292256461478593571869570444106847367278512812555708206667037919399404664208063242954364239744804178308621887856998734893082114394523133497531692733817576173424401511463672706364223533178766045053670922617218250917722191284486762580292156592201127127124765239434172983099939856210526084080076941293249819990858343736522159053228811293507072398458941822146417859304959571826863034570682597824554369697782836550500534224320335161696436306239786452118559447445041399716777736644007029060995759864187952429596603852742730878399068412387268990232561947259105253896730921145428658091094525533512928630976344873612192130967845919101525286266791640030269778283131145060343961271350663672517948379306714679709554913458609659780095352417764327175802081221988998242579760414708355631502959129022080635245219911374852661354148818149085019993497511308982890656526167809292666515912705712460876791344819451312837693599740664547843994599728211392036930421656072891962211111901661611628575954759994911724277542546568126242793614313857559624996957301704200410965778176212971513725968953102639645636367447068024155075492942507989095631534153603413584353932386831051658873382694193073588485604648311660400717203736363643580540604230556417134306500641906213114673579817040419942690231070676331788960085878538618273217418900685351519212578754523090577611457428995828322237207078904603837277225450045219901554503496894653635199689610675876632013306018067629815511075152797063330307130948242382672481946169544582613436034546783710146666029304861217817821900299276479332566371598399062718972372487668387086182703489137478557249048462248277613273095817282254565294280667912271612421524298881084804385258482395645362672608609219918869662029264120675682769521416863962270499595884131168229258770608914471899793874712506727709594357022374399348426998281351582112847572250422064260608102410715371832610818203941414145333734087634191792459844675743107753266592434809198785855428587524570404190167913862628810862534489200365715424564363131268224113118683984542052456756249703267664807408540426274899151799826739744025232322899505505711480305694487396855948522927607364464414084870272059648872117313139889805604836370530390448512042895961760505219519334726267224104295390749918170800428948156325176031353506457138851564354063165044760327286622465087237198065712823430670392568968157926673223483086173722144305356709929159734287747720149107273507568836241312974269958919398852256325725798226419380721218778104367684836085776520310705202431805140714907140407715055930259603468628027971648014257783021444908813191500433255694103818213635995533368010211149412385256619598633804424258267483119712069738860075801229569519097316909472248821318653862854284101334630742646865751993293062545200542735923919547568088976655683352520836922787392621622076664571023795225339056241625749939500637516315826607034895615491928346213977260186954778422611752035165523882365122303839725940617973068608347205657436586019242401562263924429863843866777647796263459015889758962948733600584980111438818736721274861389457216694831865364953182794138865435571566076317267385352085946024935010233796091308972288778016582796523391392317708886415994247640952525855463260266238167707760088800409802552726372727720630578248807669059271086277464602964354029892400254847110035381848723722543844202397579144419046337470762926903386244167910718297941446204365783385336640471984491361061651858402920055782003097930655867953005624289374131877803439250636750765708409872192915869781247020327378436469131260066680093986435066585913833058141030585492815899002664121546339417675205365332813491253329230339178420948994585591524043708278102386974809946675661356465738035643630049566171151476555503860048353471385345899941667746177997955316358050525230690353696691032529279020561271000057824169149842949480025785700962930682940496016040914091843699790103591710533200251698606869788384234119576191844360840675900862527099555779097915906145212279926155025058523992612190437409447539848498972363530476415542336953577589268848196460830429013133474421322471789419190755813733948363041547895758664024110210845022822159342675611314142199584097299712061351888363513521577106954126246219117073517561718091580443368199830918623308256743637376522727846469795259137457148936888712657561933466186740108969453439944942227231657516685010791819398369485077447380449656997987297471347396007786654664664083263909990535229904337533657064337903625637469659607045687193843893764760950387199880921355955088045732908774982277298571506851384569355344596141480378332190211125372319161148138733031141145517068323846872814126042570189552576889876509928495040974616521357498378705222656242584540579173348795020323045423300870862774944368958210881249914606504536845625380441037511677598115593699007983272718792809656634114789492698193185394938970252888091984229064887764299474820866203080348195913964181519042874441063480109394484366563076120184232950683179744037833210548764214223920866158604885144259496957868618261929981635503895972586113667277906480997960672993239435938285735228633091606992678919506997677277161965899124279633407584731315873641037090878477194931102455122615710735361750926973445037578181026136351339478070922126310138431666128895151883549875384080465077063997030588149616182715467720842468663967025328518320396013955156745915846067341795118409992616808320386312996355965872338193319622257046404869430154417780227486204231109474279370736545124242375941535686096883844146851989026517506925155046160462301093669123779296067339801410058431225428562445483491341028472648858965077184602548602199240947313044391161152426762887702322999097826628696198593102814117336643736782394207583963248503800718868502214654145525837226186117787294486474334885723627078826560934680680952007196519746655812309791371278508538395019280614809771637050112243692103755778569353979560625208997404189250640314160972564471075547761927409303015201655394747174060534423582326931255934987545206998216517069377276617924981154693203561628320473332244291676463408673711602280215645061140976641229347716345227684029655538344748380595108545108972780208322636777648672756522752223385417955650130481792929874438132972089656480000627687201025150696856462000436039686506306813797802456575826917318445844685932835620533381666575591258940738536575107213440144018082536651424400239653798365010184437236417911391923986300971234968795629297027840037523151740550460998145923318989767402885498519701249458690275800910940533791158245091834280397366713188268171699413847343407633904576891213621894301825214006219051065119108531527865063251536320377706106224586317190821873005266278914061545995491750154965320818203491510054247450364536690039295486717964943862204561254967597743516999738825770677937961644709165488507786728853529533215735726741431016288960778336027152260986738613563993189011053557572778106995983288956277699812377997593878807488877878688717072931661434675115247299299686488813839471739665073147023186226035732865039528567143527503942511412045798641551675968659830108161268616799101239659982478264499291705466456262665041298033043069123598370655441889734468392217155773292388730447823149831263088464637409392774328316137070108811749805319500756407010746381027221053440671319416123289354832260978379755643435695104429751154266064348285787460590714346897607093183893394265222662112938741450168209367862076451880877358280550562369473134602803916609872497095092994883822134768392316964063353607983422827406209574075617239665049361231132628668375499418241858812247057575850243720856199313755819118503843532672703227802374026748007511012243255018167006218251654116657028732112833023786116689452534886893987347548738559441569447276092972067090784597554034759290321595566040710723841809641058794621655715739582480965543400749335369886821085284365201843702876648382102049575788730727714060958235632328503132013040867517384511107490664110035955943882545256588573583167314572998128931028582848056827765277026691950191122522678967566348360484334623669720456458694012322721976104095993583424856244805650583811392930886685824133804106633020584379986713765526867320682259339547294855828946526498372480165879493031013276570277912594283314333882483112301165159156241467467148766020105145352837782291265804804210942938047072838844720510829702133977658843325923333049404734252798403127147978822849096186652858754180067305944841649610011130347854745523386954880354666742581299222678081940462747789566164432338706453345637147375344620632464087694651537771338033143250763879266614271801029802038109811706534120384167434808763187923693171558114772539413422846009117462818000266649168013053963689441212984715145872165982631281437670463601928762721724222287596602774447210567967084670840430401659451918347287120144722051501456699783069840373697374159616907431884395923251695199653356940282139637717518212069951825123797412637260826804251896323869216810181044345001084980857001619464489891156825094435489358826462225135010666419164501524514327382165839600914505746419932307725147438054167240324977018889590376637492695995106423768151455108322284703142689008431888796036902910867566818452792300291519300829858348789199645819000354668295884085370951589422624338518515793257164290830216699498996394566833229615196911819922601197413381386529550768544271630663683710418615796023617767516846788722826251299621129186762741183694015359157994790598571237171167732209105634565965352628034327412021492263447608983923249886156485849144883373819366445200673954041956493093069418825336028137656843883396568785480965061240184980398501297981975493567325596227099644338900071379960494430905761920334551624279552772126453486179671829123892650439620065011024029028816803029076421847642671232428991504184723475595281589659719695274534642989216537057023567796114018548372875558816528675230319868265437866094802676357290424247534944785034384955485937525639021740906039991592924477079965277279702611885622316403620061484253976874556344179665705684960469135062491658669509618117876113882076577196174866590251107677672856292309322158371155330614869605909280824101376154069777988753463793256840714365892905439483667617056178977048727753686061744036345811946407298056570081749154445660281476695830259856288367689443855392080955803674449677433347299149007397667258714703638044680643154254485810842843963147021272655333643630783129213133330462842580134934763337315650322073289020429780899334441220271429472570671552957107266229070843100457879660077481484167056049053740438154444289728675278696435761371919668732012760211878500551795775548026468465415938816940053265134440702564283645810071947607681904840112527046502763326223414279936768926570776720793157442429917750782206283200062693279231750212203147651618290178610068439621401720319476468891987614942025109549697961771686934387921698182632962146901244648771641705316899791337422971803748921586245749557347780014912272549469256884212900164707226948819525253504483353537864902724004136443253137792408786900468522521302885884440415606276474993397659938325044823744542401301287660806415907369255554342072818498903427736127204856769940798657531146066461568183144576273857512391682296422207056210926749897263909459742003420228574844514470635967844423363308699164026654790204417509291747529510167453889488164595014911911123944227520122695649748013334224316726765633379723928121183074525224384879300998603459049309288892094057534296068357269277509033083772409796679476875826285539344933351012465335912466623501902767213360535871563513888765117058115317220294200584170138591845950035756696327034849165955710070794236788718162234260187894324776588165701174610187060888478810916768457002538919727599988090189519747013174554097424599716676414250098087931708195928932918969359855711249949963018924967184887295755272044857973514189368074122728878839916960211480312288799882852546296958538985763082486512054230911324602991028922583216906824018248844865300321097351066841891655286599924862373087497347922790456079631867368694648204234717861601779202897627749058245488115302092927538838150398515356291458547569535677650392327897230106334258735125111152021522487903699074028920759659884768361471635530262309233467305237949761688130532594876908584455154136826441005486398868323373396090411086800365929727269398794060180024828449868210276504581163069436023012284229906091194940640461195683203747326093356748534150297719785004944163230470873569901075815695315005519991395475203894453432971912195771337186325431082254636984460559000853331888545249087742208084960120584153030272398269647611311551631180745254995548751151282081363777419295165983480382813404233648568720123770265105950521658175370747362037719065093596272224440424096102331435619775994666011192963674540404717148722612382828147597780644146479116809338096169899062383814213380581855015581583934871646813161928247241136363610358203286844698187956677874171514284892740328608687860627879829954552206589576853005832542278121064626706605489386190768676973035421353223174946813370042527866464656082030432239561067114727321714396559341998394821618044949467797301560879925805689342422354121138115636096305949033099923059633987246740147289615755210188219024674861081946174852034403583272369280310317664110908377424208452023767708423345325012745227521831841998603070841946392720558897520275154702976540620642155541563376780685122097350112087527799030591619757916034959557332087977704495673346897979726175509755128896003007436402363357664074092402184572529694452080719784960490862083550500013621564653911119734672383458993762777038551322892412043104371112268488712246700791924615073295249345161479451306906145411388715234501205787849489593840249519703385506710224261389606298053538470900453138153548407386998922176204938694437835813296537063346008538970459341419410494395585285578701093934770117180783961644142657030157659407717699091131905955348524815115016135772288651197006453470344858009058692841661792400209045116771275837339196897828459373594762624851081422232141685975304158327529907492104304211260877051513631875146652728294975519827185187571350279545012375497565708945264508221857601934358614352988082913265876278087490114458556068477768544165406943678950252736233883218327362947611377700375792105748672798662853893470737238242636482900285153195913218140282151437670943757741755193005092513246008380734026344648079720816732797522346094775627209112329112061878819990216476579373180428229915786702334755199700003442274779077939858311904978634664499263675307532107173096649297289876521609076849891179722627437210825987786167916001591925126206773335703618792963919540221605838258931812646592867215245513787703342679566079390095132971295406503946896727676754275099385324509709642263121080407776102147600918270603972561608012697031637906321242802051219955806242327756472355862932159056803670514825891158826130963157296437722360415504420646136578228468771593705108621585541176128244824286570737915264344033956808688409310267155426375252885972214129743181009798420762171257285190252590615468294454683974516811731273965494041120446600067842155597785794462877635915245418112820275168654176036346883088895119195568443208137588341404529530138375235097306105329410277625357026285879025805705776348233339928696201869997115905271744823631239820845267284622148425055837103301499732536656381615726530502504466167697676877937437987177892098764423199932346785771636011994592852588544644273648234374056556195272073905643667513592063726210147620019253242691022008074588615725249459813487771819305810374677447982669649064630320668254904383233262368077122002164290797039652667464949087696487824384709311959875381850871406085573569654483612796115642192170518503222393539220493117022781269450448441627179502015996555690419768505323706112572169169091509225269733658825501260114409165411014237582006834828465250941717866221152900915031479725271443116588584622870128053162479809882051639577815464575669682343103966725078823342852341665007298967408174347122931892530846576669534083664190895614153081902104547693354546245619788515903266855681836566249548376841228706443381384325648620590918393744413804942522897425518158666202754838576525116755849689488089047427796307968046052181286217041535307161576704497543800901504001630981444158724381654907404019532786007614619770301309193716213105602304978038984543561928768719837535381627074306142826871711108178194702197171281619409999686729641265015444616772044267474614988657363991941459389639491803765235847968785859233644029638889685096749130590679871996673912697134722177003298020248225852379185839155972920852002384308169799952606260297138084083349760516435480357525924946131690167432977013259107950073406196206725258676934385543436270299464930971384498536014238411425477679883357460295413477036768590617752260651678387445114837394424667271678805124731256790311647030011184156790762544965332994667696401786860633850546511993648215693201602070110381830521354472405576287386018770931487365059458269048811551693753819191562803030045768244882407947414132586475994998791950909025568308620291614354101388921747597945355636901158674308301867873617933037110290079919305883541629526814688512866927314301009964949223042333161124624127210603788519313878753305207614555730675064706354371477283831158647136653993695186056585068572888938141326557641465726092437925752003748443817085943535576096480706889480279243251265840600012023760953829908754082951718088614992551999828891654559926084064295398818014327326944178762349931542285009204108348924834081829357177270931442224433205795024129696905507276694207602824291173331365839546838550553191879555526251350352625500888469000194612030413300879482983398612048591405310854032152199912951751290064084885730056955475478740491393423972846702503480055495929507974946711458687506519049135629258826473227752611273456702071593300819888731474279189966474192209566299146121331376387414610871721571898788159613237597511775218544807216141823853738259061994134218860268663284989278557401559192288769409761425202283582379589512962801062916961446908316544379814889212205006092756165336306255578908229201127797701033710281645702963683241249340696960864261726429282457808277972016093878472167617634863671382067796482855266113268910628271786456750241931818685649738208779880973020084717837224548402285584121701505737797024489492390117842408518729008998053513228846402076786912060069880620132683218284735508002008320258527325135056421861937241504455460067097279718053362409860799383009112416874237165451535311348619973072413803939766993048429387727488606796562124932465764545569806634452427308272927333395029208025734621745710754743805335666874903143516909557000280241919419578290737537508956475888382401887578214092660148833681360905325900416472263364034101412247389756680458035161522405714674993425180038042289994369741610482679649171776436448244331620662584210060075997733085109363682099456893763214792295658896595038761111139272230375667348988753471677862022229620193139071043113940407723271097339337176389234054126146755145121279007829196159827918722878968248467871410957198188656259196766310027809557128313785222483262131502375720699910916472661539619271802301168865155067147817165401350258514499360554593757667660645531913232083215194286254000543752960720795902795725427971557541873905010563578726544523104881867812107586600465410607965412533517484748679379660784602627920999387803740669527151585212867132235488422764261154708699858400337765282389561306479245265843167270217621584272443013197389438379795457555842015174096412785189663716307970223782355882931289241491521787913363566837508471931703468708547330444813427646496711873162987326350815012064990684273723495132790189029452148110741482879728524179129419992203382680892849856173779670460399205497168814291962564230429027949386730572535483189242571751447152502864875460380947667379801179849213684425461564472781367516892755812373554736171632347447754411661841290721338252801976669426756084611516487390099036670937156657340370908148940190919467754310346088849688184333039180034619338904092230181451847236202538905111255360428478823161664974812479393151648962842978951429244579920193101062367864883460392600678047131554890040724108111964814826913155604084764847563172062188931619229049462266448904284449208799787221241715995872683423108089821958472290385629507667041206117187296075906365274688757703123685328033486175609842748323885369121480701515043760755285967389567357607344966563392231562734701543329828215245076529244610976628645868442055840366300987977511163221167430208786768972054464078041524910052643217375448115161297794507849593812100107414381638501697441275297681816794950707363529120051941864330404913128831399020111690567830914238362803954440059582704130757088184610890753699354257569372136624899190369746369033507850662185924689724015767406017343853842378281613137324767041425786968534360487204537610410097470212433860338561490426714261943873640085153016439127342084972956433047103553214770729454295293879289470842365321321010425770058200671071396081691511904596990493053664864351475238582735432798681953553037771507629714067881478520716077714439822289824151136726689180770441358814401835042797687005043401829582340393179030670035023086280872391210977538491832245080176198488793648792990869938145450579843580921756709789533520712338134388395263054243595483929374200520470572340526896739999717144367690300852362141705720790612993226074425105579747501389281878446770216620359946561941983230494121499181151843712204367956896339642356885844992849694560762245423639583290652108547633537588796582677037287470044019285729897917894428874593116803951590985117453247904350126388951533518523283932693078841501008582025403898193339192148377787114750357593023151782391148837808732750504802112176639511990381515045523717892428780498334298888830319925213776386192304299142766372386001785422648989470042496212935923071652601961516706414885474622759123398910946055048925813499330447071361810971652132512746871710792072831517087777559245226989438233854090899276879664429195130945409983661618955098208822174073974642009584280253435812323186494953785471633699527215145266817446689227077930530792823124441138194354551504472148501633758078546322808116032212909408717201308542932652622896437482900060498329499914079377404087339375815302161104117451511778270853013292569137748359101972603848078369250159188443235976996624779886346003396716366075802069146160977819222384995549321730989497161173232490932412001393986636689134004369042095668957739359743019988089271023285318308342517979308443908699515835659104457399896943760845854085209804357553126038426227510294614647301141587465797989186212827457272033517562628147657191736241690386463522062673676869979293537417500683703818398926933520229735859575399583156954933892387480047206175407275619792541826489486063807196011462147814491239630508352887791543225525935647696410084077233750543685978670729233995719534874642671736985618059750152756053048725858144561981851789813486815406806511401762217347440132888029028163914517905748048799918822714961932261802676041819156785026817184603918074375091925434099345279496167716499191347870281160736949286964132394468676484208057466393614152805576556211447954740529031895948072502772685540329488579357431086223102469157130078885704256951133390397065226553422083788750244079299551736389799970314924380970961626678820846628377670558053724088837670181681288750272276965480544231387520138359434211632022412419144556565610142465849341838241092283144805449887306047701887729979618952041054103451165662988066728904745304707569290471410436072171869639595039890572078570681916522897386655892996777369429735864868369458683521495314907696462869996153175202711495211600400550539658571389917282300845374948234990347565279938168006691866628994538905493247087466293493073122446171150469272822424308083993218671105035197133207324515817444402322261735882887786748290938492350737556121865929933841025554449428976870555091457862605993319827867288047091513003889445319969242700530194504571646621848582933310537706551704660433520125791138094948314439659068642637378692754634949471344634144149865468906705152095169207063383246429107982100490503291803900908767571998162284748120372557762841093164969975933321095056424409479065813649705591391642146221900488189907962100019144302798060509770374481488807012012842641950081131646845263922291774638578492987659679068829045513968959769491636229718682302117740369864685885744211955419792459498810602760389869124077473039451501831267028562946537694352515759217347242747975384991811934568491886460290783737593205371270780589819961222789767740000489098538993836149038324359705969733857922310867044279456441965180663033868689084087778580084584291257579902164405342894142629381789504205413286637637166422252636955099568342570005453903367646417544306202778892262991914569367200720595721859401541070531593827958772411551355596102884349954679892538096547605884678335712175323195104397496079416145605014455031334002571699863087799690535085352441375583635089922422706050580295933502129969145392996309592593507069943726077349110652078211954911070592366014641442298476934137117800085426879837596592288677727395280835148669527746388849252623147997946888136503032389221111112338399281661075868467403404112436435087614300122986249251697833591782165507800017385650669060885581998612757355943835521518627299954891204009938378302638862492402980652748143702284207749615695007347559651050491233654408939723558405614584372340242113725811616641224193474238668713600300747989626377247173691985007576963542210558931002190914633003465156431844390237245802252109085242893753515167540256240678372944417367310769057086171633923401071846135580778601783283420040033115157302470202530849426764559065271768375530691869330555846609435295846486752202196631581195738455254603102650284045037606586395903625447668736712193090645276865019242748601304161420371257442578812392454320409759920625176978729885729385004931587552549168693859479889738966834117122026757430929497092078627504725084388124687487152225741492947880212677078928764958035756509727541731114850659564086539722272238317735607697237186316363989393081857672300822524341167413372340767975264240779333790942517415622751755517961261133739142257568953743004049411286659923364270132213277720686538289850457478484090013910880896059712023133649735834455351617952535374704962609201945269830110291153056817076862844047839988514282341367553081631540629052647696707115792653847993478866369741037266412587752156310455493222720350058520578578355493202092271408744666519263674924796755727407401319317292374483099693252893662668424870061349880446473484973120355991012663351018366892308125380538433393565282686549676095858957753224138121821524294637208179360202001341338703900807705258086685763405256214671583231345018347679607368286077948803006539966058020629303010508832587279973189207837579622130315746354412666234607373884473461804812950638402964347811370179980821203183742639990396702624042896085433309923248524125620259486881241655479848404129975107511583855398095768262639677122137035806134705686783805784130751368237913554514905508286751251780075106728412418857040129340218511155365146955857694425103558670290683684082305154661327735805593739596203998461687831166259400227472615706730443218600342531548065660113730217524005613982854620678920278992748775389598024994579874402455245767573195191778547425476417802087709684538196868853775687454045202263026534389152624117236487482223020756650934516243515386460109328657232245173673868429656937617956836671422683450294431056283233112329425832703690552214472959794657139014712100858987910050420104040692585334780731323117855367744934758263464241949909739653463207791583052226696115994670270559205857641067550047187902811326673155869680250830207891929527051409319105665829041273236637494809518514989733529569483706510074107440342536168227814222120143885532544153658733183974523713028959220224369718647611247920806422947295207812235474054298273218895451046050921158464301999935879331673672302872613326810951018135946159872844157754734000446843679651954505495832309888223737512314210926851807596071292912710914709406235244049816700240754253503829625337230497249702789052084112049280540303152873101073769195737228872626790957882569448609114765954297262016494738821774375635621063861846847631882717589535266436409243817272574323163566894153278171134845539755115347467759025960023672014780016977646539039020661596454692542477121000455935337756542698423688103921367488494343580857675245495617685931220862368620918644705148015681734881505648760314274642057962489635705891560214056679607494574125178909000777665403810054160007166135308113405290818738883741209795068869707314525288339683290769646967715642574775661515797347232421826654471064868255074062599186368914236522053847776963041925292757367445663496727837297486482363733633288170140951736711813977486227364644790939391046604343354223128118144040470627921794111502593135629994195304497614305915412197330385836162111565312108103079191554095696514327845118715976053767728238795360136918283120097908243858016563140274122766755212256207583800495285892432821759633725222416294638253170661508382805376910263793011546913709503715279346407168249927908392522009271235160982921611468784181862016330112146692468774191429662485349084745036238633967016034273140437832749561929854031642177957029834545683065853413539230961880780445887576386268275715125947742005040973817943944700888743431391462695771112285096489022413618296589340054596529882708727944370443164560547193580237276312496588659231521821134828820012093762731454268244366983286544273335789632706769831695884245266859015297510177612168914020901675953535175024632480425434296159998921654760045064705378319044035321977081568447416169297135733602570578992919670139694759168150704661631978270554236592914625088848512479898864707830725307973727026840190803629881481364791522634739032934086931529732259888032924484508616276198915165790776981229674452572384453988394950229500017223535254308271787465724515073005941472654009451770789349730320983880893038878572677644036702143821058627725805684455131888423227116212941200620646025397759452454829484417074715649284024626447990502873607602200385212820694497702089029087982739581686087826883495811183823575563395517791728886192060076155738618479764316378824616023621793740563295592524076262937309631727850277194348265060768349229587055025521256345205807554858519590978912185412298241062601046975392904110864893714446660634720990029892233527746341866233937782304960626304972433621058077410884913166994489230285135485557103613320262669909456860647831218477337304977655702547855836197099555180476786168144199550835118893470830382427165324764554102102316635081999140939936450483392495581295295077590161966558043838717910273840812818764071326480157535697245418499025956023413805992182437889789105763964863178647781740298999455155651248977935768924471605458576775252745726425419516457935105038606018591983702368573823552813916793142042368126841311869277565072691992403843030292573338288372659849296212252417844786705783869365085829686338526081037884618025219489203403249968566691408037042524661780360619097184054858562625618959703499647333046314051831742913429813549737272707750107972391349286155041064786185580607052088163683947857750223275631172569253904668826860799821092129017875110462329452317973791884349045327410125376318382920860226735461469152050845414338166443143373263930672577001803390989257995693801973716787431037958410962456457772723192110016609725735011614779214116844075839755945604674903056850789205011420118136322659645589712970607054123808431257331933673414050679386656955118912626196471277614850357877444160817560869854468360535864180154292679968537846802529230295801410731331814735729971316403878153544674727622327789255169949228865903982297196804413954897620323291514214226562660337883096025845645357740702730455640226675828362855018672685866390810994986110501649581446548055865484265589215627898964673329070889928934563974685346602416973303012303238254593719232767126680780749663840159448517065797040558115814707604133986644193279610100279474144712869123024152179501152354828068439268466929599001181286415902330045921994466872281043753824900385222540540033613766548679268840353825637207586305069619342915718241567005897482795796815500277519333350386495912336089985354708807615143900276341205011060838777678372133296623623223920167904326793639890239060735186448129514427889175571014156635468183983582128765778504845772754787359466639646593075486414101471991484204799709687231463877805945934207700568121357146415676477939799601751328163698457078184393868073440454838355508815301424626139281293741194223187430696425148629496359735539024557587611512193532613857866947229285078974199460069776385828616708593862452694842931814435297138719569503754298110830170964010664351495201312853910289740837820186423961157280839576453341352871571595649205668982442393841228276251951631290477362761438518318465348017123699977363329753639301086425101933368998257774214389328979641171547267265744858112054253731071310347599193425619459528029864173604893755176297133728443160036581912877484014298687143021928107399012386132732483050036675362548475198278875410325202766199844820630679616335236233500652708449495688812505088754563199724011408226032936529186261253551458159297416201297799664610271446406020170291377262437115300736940278227875608443074429985778016285619884324394265931482874990064831292670151989739791180862715093869255912141220813714162048019410504159794178780072257319800343541385542294813109161024547865482395949941152436952655599521470151096111087598224394855560304244049324706498517894446692421092326489278645960008537628899626534066780465989773921310550744823390410420057805803722374953575142013946128593211073199826634756077952385628738936147912225453071991691271539022756418066415762388713143178865869508714033139627311474465562849431812459652925946137054552678680361365978056565260644729592051647629236017398371420716021962741746774696878168369764017118140604158705089733211689804259367912681375203592201090026633699867671428952388520081681815785731138831794621783034305536949239856926542673234939306949030749127815714308461979017788441173643186757245302591444928897966689164491170010664459400652409344226351173735395350303861663596988578455158047391959928230563009021261000338685397282915475209753323701626338364685698055108142507860831533195329284904134276228363530569317689088834482784365948922202830587641244003584843101228247847079537501534023290007007886913947356168630471220100511769771112119441993379939277198596323468304042529004432129336001800848365244325321898362648719821386758660221194348565907179781405168770988862763321002109442995853506521685163066669134818391239346221428877062080820750030061716458486659751164410821110774855246865450237402504770394566583470932550195323572853873855649724326926687482008021143409783588784398897158663725966211221409090578899861497076674242004051936109970041751682736042609222628339434909924275995154363414537995568049474845918397537834499492078136719375797056017853452098984677921061986439898915909073079918195757678802983288223786649907423510330390628757702365064617262522361417820516189438836090080609368363946011395811147756710330563330045167819897760802394764927764636177795428670653335780451485545960534200187669161278433706678066825619316190288798402105374482504828308295469409458709412486834220607146283471553479127757895313100536476224952963815228794965328668942420354781271020623276865989156692217426288239508899923717901757931485053231609869185517743651445111121167031552285821239980204522838093812415600752563219050614903656099017433405372271534213438123778281217914165137018448825390859503375117512048504222421162188816887275735510439899232506898380189559102402340972616638569501446620130155501126698504849212813900471750824663841810215461768258510082101656010045216663610777798274739232298750697379914629394383995944922835341027396214993756352845177745014186584165032230045953231127324638594211794935802371890605754710707118553456509570379626924728266238518216486458140272372493552725658731050946950953218772816157215060369374599787865461580018671922281266334445347126915870214143212385037324664308019775217725821540280868323617600809871461227999196114998780545966935081070194600820820377749245882170445371160435503430855552040906792133829384387418277154215057678159005197362173929297322370024679672915881750535338295635738384586232953713597514054886418599835364434354358968542614371886069892004761199431188866065650080331714587592349467298804507937675154115327758640150864721841285075047927108331461311727820909929999651349989496211806098977971745313046194968304313637497247879488378320455642203802979055923310678709223157219037361156321457518025167370671313675578192840628564889119501615367170228717127200928256217054325478257564631375668909582716617947918841675926165253664588935227607997098865147407344017793289154822190513373736854015802301923851457948482930435418181915403799246158918536031509946408118503384739108548023343496162844070421890132891725470591415345108839803531151955430158043823347804428671952951748878712334444517908594321093682194904466384801248574696180184998443424787103627845019870408084936144872742130468239384970507739549702409607825601426462887337047358411643145299233645661607613154332259167566146080723737231193805185647557875652911886962885213989945599581516262186588069263591653465869499721775076777650020348511619550593721348502293086449074195260593244025687230766492063409866462119294958019549766708059051090407770988413567099923037004004635802898160272113674179428084834939913698698276465794311657790502197317628740769719444518177884544208182079231518998544718795594467998061485023632063685008257307147089578796242129043653743061473083035503053140198058412141725786023274594849530145353854784652731585604628509683632827108938724856609870394434578084130309565412362472502814136072923855911577103321414732376481078103444538451497124133731809138461715080275001488120180205478322608360541085604552320965394116651105843416326229037913388360215151924059991531195882064610148242824603391682685098928068724399697649560336903939406900078554119822275872762640995177675389273984712346312804459624624454999795203062492102334365939882834852178983688253192425759380541195418717097822894826446509219741831995398688623724265455831250393074266909549724365054127517451119259881911181604095302708950428123847348455081691566091449634330860671574332037897036521370642670804713571157758059395178716580028875398378338441343677119001665438001488147136649442252509745736653938719829844266821901767524166176131263398370757260860112196401798176578092003675996336772604888749423848576227411814641443017213570079343330104593600274105579210468571608801758446548881042299264413683553691820488341008711440813142399925522694528659738903953925228738869394239060682363823688257269297871352268281399240895361890701422623559285603381977787566479436481123175778139727187354270289615922267465589975447955874594320787374393919371458510031455174017718286939261809019980308151487157822929215515678344960303732094653434763122861156423284769858190010713437504093631398521300093412492836121329411890971919827473047827041009958504959325445018436216621214685648792968416841319272496819645212336416643127295302817384478264689944120618450443746191012437591522117185958998374966050136150028781301800097818100224703755222864930919232070144757280862103364163886444196829693636156030297586892727759535752285610553674859997028239085355842234605345833406255187180913885212215414980475246272671831081385860571171034621973038272205040757992935812319594485632447648543696129759667154295711442861960380726566168882200450603409671511621040565201926624120982583041474922312101897939400776700331758063289607027473284797634761810851778319499682415369754670041309598310452462135083242512546290526056400568779317331342426228800838998413403729235933874249380694602814963158053895652968595593917367598721457893187181282119084073035902980179978697706405020885936548849921570997517393571246993566942162625013518360505327018162874433759381224781149261357073362170759490242415298893141929650537387839774870767820691412068728921794226226921356258119582722034513718135161887527726334011777610979712676883959837438028846035880253325399723829387266216232154967944845396652394417814761613436997788331403351999461999337805026460695383579611212531536969739221928590625058573966421158614232451476631197721197187185017034963200913319138039673636110074674396972628836033510519616019288824928244530753921569216973584010539716510049792519932495525851352095698086381819342833655053051092069244335523627545386147611888156432281477574122914343054356900572268218023565691068310673105331971289025931638807230373888662397670917378892989006620009571889558307398833210283479534680984002092119883414386039621389414630549041447656285397929519657996938370951266901331362043972463048560000148694710641645641571341042914204781757686913876040849815797204529786240374873293590940145691803331799552023848876486612187177861357675216309311144113991087746676033019899418727573134967228189670274069892960231540714161412745072993521998985674507743604906364497223091429180519060680654655496040869325901291508744116977087961871755132420025527196280862280551426748958793366488506459582173502085650580406498982140098112543802165118910459908330920239050679507313187714750192059656110159958175028058217897316879956431696642391255190129320989570145482828857575706985907228370593523311174399639874380194539872432311315754826459513166426107653199839763527363430721630632514757017702993953266962661656768920664570082805309522083565681714113741241487983907167943934774378725448739224144103402415399733571959685417544829637354429356786618753836394224686649533844476058789650627531388622629455284297043176077992372717990074017429971442946569173986871754180073795020771524135927650864816153493891786852939911378728761369945022423758627702450919945329424534609523570543068509674612397261348825383624050624879237349991250516553448874430769752880797543200643195210631016719692438394462151529746765073624134771718810294471937991923382497980016816831127253036887137689080445953684200912415959367651497874183252834067866897976706575223411739863259298517413402741866473745376642431040647821608530547808428933115719214267928533620864671441381682974553388159387570824068447379498741657517035026805546723326918524533812941254385333036410107350195878388065588505088269122355155300789459757230016376644193574658719311946852498286603500269712570678151996223329500204791344358360368212144308220383040176342090239897730778158263133997783722295455423336681291719968215838224720253232086258800197603429828420238371989486233096539750688794838700136451436761720784005438790598430604203761325885624403793917874746260469010742045045575455019177655232836635938202753942335930301971098717524590266446780323492503262673273365750430748812085887691232213797556746178787455535354652049903388951552423870950800026878550877966310212170302730498802565308306065758310101622327404447553649351180246838199391797052951746744804581930656929748142060844256381489263448015274468836716250154046412841582535690724636229563008702121393773597806710865638761653245007074317565988018266931569877130372161795255889072150429876026953658185401919176338857019217402078430039850499518131402740314565831808186203998141048847412636290650946532395097220540547895819235660782864879345702367215728445415557580614713041574898593576188465017996509213664597892901457672613301685607094042307545359927614721269196832019948774088320188523826649948151628143810698695226876789254425384072881576538324776805492486421165907610216598408138850865094801720548931321387011447104488047743129293768199244645181516001185501647492274509202536286605308756828321272388790381606256728747136897685042569307020088075431388416038565263972094485991254263579094614907086287606653504745129346805887151555736489384412887152422669426113549108666098178794000479193636297385465337954249476629004123418482308505946164721418818839392531476110915830891091836365677962424363617377717196895064114747676347095458343613765849717795825160491078590497504327862350429649401992070306973561270598082154483911202711337345284512561287675511549449464732905500532109710659429510920375995089681830049506511607784106624137390087020866695653869107855770110012905758921102894991814140645118900681135296183705009846958184788150184908683797268271526927671478948126897199730257018240029878079080310946674889356992483796214431654979802484689819780328621606493544078301021030629952046339539341683826498592874060186319064729351384144730457595377388546012243304027533686366239517898364434525196126872406440287420944476227002446715029921289813353902266685982640671317874638981742936098518025388552655438447981844186633448397037153217591358787043775159962239334299802740728174989979830020107968278944021085108755275830743392203661585765571287570607502692701994033468605447682829455417785755040657481075092540176099763786535117394100231045455736958517990557935847942069215261172343339881481516593131538168163785453860578304934775588109693171975798745164892993809710769767259933839333984806232230357381736008558893905775250218084050870842080977980145142282575146815321160780114992725044180039846899714673856026336531012477127104000770885103326327248461378461851147918321908136682486029017089052650693982677078258455675812720491156402102453477614938363321920928094700908625796369869022356696952954668709391787386919304990391025331324303908682529699570048684114145096234966230042136223077146565451908627586091671748820595404615235611726898276978477376720089340661484483116041466423296792616429552671737117633526923675385172643387138693460718922787399941658388239473117405308372164677130173636750548108658363805930976669624112593802550615271484436875290931032730020626856299491125958656718946089334651757193934812964401854775150356772734503743499252403816549548554417994948620098735805123776327761034545370236694578723110934224779623318781520507134066463767987566082871780628445599859847663007291418143926715315722036003448292425936044796780701389869396286823263152271989711897158092633209860803717725108383771923786303820236826451136273623193925990638762461985388555358538794561155664624350801080030184798214744003019089203176431051530561104011201282566364472544581217326228369517555004215206562764561773703581935144141184352678794150717514135932488142939535384999710325844285899707706216094270090769226389220564056101884894402774606451792411806156549418571783481311032374735798749204033090997024550601384486008395100886005279724322619664214963692134823045829415178703785939913286452412193642573743447536039292042939023049981271753933025599443196704723047274027815212733735101504893047053619867153318928795617438790622460971033993783055851929583135329667235258750579934566801421892987134177361591490973746527655053478169027279630228167363925598900361101985273544759541271384964960444753106172884051119768704670459460942268200618547875378452565851201448285917634990362921041692630090058557089350618336803236391218287689612830013874660042085004724150461176739325429414861896059860349330003450340320141669836556656677653369113539952037003879907964088342092647232338037045010857993902279723732110731161164302356822402101734700413629891343558128590203246250428474120023079282041158650552097395944933888839346848627753479427805999416928990213857333363150896446203192995690791755536136834952901565039930617418148679289923028366889581196048965283944096862226856922341152196392541924845647594779924100593583738211390951801396970132468148542625633289512061585606432737890287107964616445683529545300580936490809902774851525464247552489336484509621985534667221984408657579667696212821545483047508193504455331183268366370043834551351557172384875605827439592209963738814354135673057676944670203029581416720845396486249032917284332920868925153597014741058231630099167951500381050045990388121678034108773173132308834478477454396580130086196633843705346749503184783856396734440676012071184528848870405575579969069284911151349235256665779750911477536682406717698731024037077629955787941990817966481265485476363221708171551303455332507171954320257331009070571715460133704809381646273436525204622974051837348616723396344234661412333047368370897625197682071811168449207455221841602987292413644647040787884970974609338086610633465475779933360557399899397917137872037304730457444628697907172600771368680358147286601138497296895926502326224657935762509191017797082588480407103282860239439169902768487046229762596737056906959946228718575634969365988632977801717812122805514589220099034598077034210044201917750139231901256224908105550222134814677861498907736553562182451984962981487732996143809946062279468511398155005770428912583141261628568743827526232830544364272352126397493130986618393700180412845040562959061729455173086290588589938134115888297435908444170201630977528448676542987581357898321458651603183333199103289921146075765998919528450018657176288962039566828902080895194720821149063164425938456027841541544640013780794590363899860791771983719664453721216312907635148459982859101528442560510386698172358663150124590123864557938520914857939447943463001466912590498847407627976744279132260164617088187859930617581987221511958280748323495524370051933310508417557561389202553707974738162533379123353887226017020435830563703588419370757319613093059746666673316625579743514631897561756968667896112474075879904116190410001077785293381964701830280953456025536666703664575098719320756407456966464380301833545449031189115551362089492486498921263790108318356083667748169025547675494400947148714027691692875934660367477736718797354231848373486266400387137561261060067595143739303853970270918174787983136220535240626535387749530686300138261296568063892919493911352885675120613525815224637570307206453411371307401629466747542114101809260757427312894335067883634428086962983323013683432763086283264192969407283747023520053001632684588654433263348453963473059354262191902664861522074008148562067125564348172521991056738384447591607276899718021706741586288213125876073088000820761467915776875758394738053224373514809207133886645499532211290251958552049492991337653995192463092637698735580406882018713623731829526480641405376317939710210191871981092884430992200786374474811324071345274727227596094242839451419938488529442256977182558047017494091763189970491295831935709684850742796305042686734671009294046009703564188699777770095888353828342931903849327698975402828779915046213625073738797526442297012955193842319383857626797388848824116629354476746045404014145866598553038851770711531269193418674429391934277780310433742294871620796720149349611552787862734527707605236119304560317229335792315916627688695222739486423041401941483653847969791491891864791346497961122545907923190428079556346991941017947407731799105550774605694852718857673569018623246903122600703192878515749679038925836190640986914035377358491887113380072897672479188850505911853590875372335631828491470965372754496568734335093079805098094331212696618198555198726457460962859662611806071712449148126382030671979768425412095027415299002099091472732366457860721534053689340981031464966041174006547082361346020646342578253186400251883609695665461503369915441364569495234615080807391429050043125784667876895533388746193073605114563870536348995724351437087834226773660857273696700207419500179944932658858511328780168905263764764234819566750246245844352473331051096852840244670186063426756271554054116630375298173965009094408756715738527651826526283100781429976944966667492976977873118140147735265458800288923732133167291030419823587974890845576706094859619190042401650491943902231771186947589721247387266323457066984408176865468570074705558821799360601405326602699222781426659724882584962071978918412258620141324924805545454441513242900326421715649270421526691734501356439976696009246033788525114649628817051927510085109322379057258892085915465753199547904390244321746945494003619989535760465482814938138971560848310956872016281094698511031230509113407754334422571336606011825753167404594477603693694656524136215140846982310672994904107923889050919906684623024029119536710605924768328683858044787757977740228516829860116296343666729673593821529578578461386704078114008570526249037400735414220901273043738873195483773887462320466077282966660325461139162653872249617769942826025627516937243229581870746646987812174714050958164087862971780142628774162898167720723988346809451238461198916631464889740090188675597305917023545534743005901764351259145996272941721504318931107440663607909856760373646359529121389216606688015602679729037703680523845200107575254337169702944696438739634317056812432416195629774751793259709696962689908967331138220351269185928059030580288358267539190876196655117682412581396362743952788310357935110216689868038407622076344933384121233214747161467342846497829408960302193187207101854786105252251318017035482224898242604195672787752782534025137284269858598571429593256739059908619800977401002646903814497683355226483283111137954724469929575609183448979437659991463880665288557122117868228831338358107153137164383156030993299785385466700644780175374469265851424750759527279766776028926519241632475055339108596692660236384341408952632277075801024788978232749390111740173166237152099273976507118841285046163532756191177145301837048473454168919898266004254453605852883965174829247060106752251553401814374392320633501731995427107441228006772372889293930181845691349699743416509904243279695486651783607860209685254540473435261268302261973474192024158189754846362182403708085128386696839304391189565066937657839121824797530480597298752059624865589230557308092890491945994149242839461535456370970803072183510008032959004217904275499595112452002128901400457042092843365453734598187011043025750943631897506823075521076534938182281470697053919101931419288583062459318584230218435922041812592247796507730875382679973630787230126344921123833523688701488344087918178452622100127561894548747078634521899323301170626314689903585426858115935682267949330749642806326098488634696928869468951057151510269471988603422527061227511802591922351393647283957891307971391777627342457867872170269640169980175906724890886734359396424980876529533129901891466268439722011384303990766715940898215274169678460483913856942430887364674655538802949147814103930882996907950317894717586710918963301238626100871921938534099871179454190002396971148025337676261417583518795770656538682881892597964827215988809825130686140283618987726281845710880954324949856461212650559841610562075837608941978545066053474970544129856415534328193102290787158565557398776803924204089154244175674485477071799860715259534592463604384289740999604840537387050285908035464377208803445141387085377744288178603651773475787154067882143441200991448276595820587675626316831798216392543029143903679194373021924071618838032296890995862204468811793130441693903745035804372219904327533795163495358018206618180995718345484706809418665250402278826625424144100865502751388411267806524426335470400947797113941348746457685990170096210304337247618959786305634228148379888107168693951417918437867175183468619380448521723216482526548704913925487163485166259419187690813779460884063768932007736029248222486218219294588248458906235601518805299655642689766014309506175145481925825203883117435784891629090770878833884974298996956299261419268360401392398348198675527591362153620291109508050103746609764635200450837960071654845723149088208716863324245612118895548886088132211949269133837302970480270015794660789288279534606918248794083827063754088796038681177987582506340484520979395941938527062543107541029980102831646611985942100168313694796195588542048875344241474601110866070430628213072967615339647265923682010275098011343501962592571225949361397109849057822390891210716233864764866685198988978527466420742739106654908146883536855398379182999178319044635219179811097209668491027679555261895847567628291516131080670233305596606174373890212010127750425419826034915352478187904947038718139133084795607496725809726243875791371980263162355314230897080217905633534361555722419389556782090716449312120192213927873092220749657126971888944573559720828218914908839702858093790905143043660027368177552742396230805167233213856253275083806174638851036874888236382091924684749102999781312837814480082172910794773633150997591860783708104622064194779787955601438846048122808241477306054403000655181139146922425012320640007063624518253797264750808705208086032327725807390052093572190382500989721331766572981925432693122646898870965620515973648991825317624602163748917644528409678188804931248982300025626911797092906320463810717224497754162597272356083035824451439995837298715384478350272959976751673030075908857446050361297737870911002329294038526146927743437067457825642746979082981432426965862187594610598789582623043316374101929556040594204979369629189166407321132954134907720569286771236526266381756682739705961640618467610503241262204929082814009314043800528457481104384774714799920375702918569822371097838826385778120354389773032977483933930751803008851142736956384655394914348998647901293861939148495721175980573138434140213579509625971484899560439002030588330879571931562392317191651776851779369510080916704522457384179924323236577755379929998673495662790438394484793983177837055204880978021063554648110182432558617292764391393348561660166576991140068166053425318914979049266242594497435183576532051184753760582496238841046619155891646022712535697753059848866309056438862577601714431016726913743394128954836850361413359029348952551705018531164931564271678906263442356370816883154926941932367567197157109653490810016515539614856054793682438920438616352458075305945394944274503625209289811583064410931612000760745665533843265353112818765980960029870623840407764420564520688832967576344407137465682844515654000228333015274849328784469491864868990542265924555790772033803688384882245590657860364653903653933509772754002595293396147723801220399827049597819290181388112147977969545092035553946613383199619531127726233946438681241147879754645453044873093406589184520621204265209400462777656400336991096477523334255061596336572416004767227805816391104566337757612910194223785381377598666898325952006474593948991963165709078466653423889500759155522724821981015835742879647252752472943798651311767081439214471938886623523614110306419735297181888017627869169535582933661009776057950564939801866719157317860918042229911940143830969479508231159642327196894008640099413831524495815848180065834199291091697098385784432977482314914328657563524920063771203861539788059995379878650611982062719217493383843379846736908989421920607452756429922162290734434092371741800466300295201379404765165182415349768516709321925148211277273993396127980843849439559885784242242027684969491251647836050915831494254072162631994615825374701842455666159223936344009470125620956076444211857768716464613648635611740215853023084982770007668684310393958344176654050316567537583417328323601486364945386750405249289242943751847900993117376336493043333806656466587897320185462895850998510275620027051105859193782694801230329183916169485486335009551197410269907100169185012177074218571932770117269837963683898818347640519469670444417598191708753828346452783621206170930676786854433617285892134177031017318029469391749788542990611942785295289636186595313188278649286136472578579730968235640196023962166399678197891316336759414455330710965584508430380827376661796351879305060180972391220826336388414305440123614235343663011596436514326423704138757161243832860408599003389757317858391504869785455057850653303315356544690975605224551915055813145319299408290121072834494061219764301221417272480421465179689723337665628391771644970202474184584976744914356484261678706491107558463878745089552526359721162157274974961130008286676036737378330761864214627065841685681869851510303102279394435238549156312734258485907884947653732292960150497231625249490921340962514814282321559001918516216759728706829060558812621238414371060087465158932233471281080215553000201993656147397184445400391026650259208655058023877035899740318469780705129947438140592537994206242107803941665669902609605435683793932917614776863162962496719634582732851043226941167758619341391277468900812718702886112941584148115956533092713782867988309010795566264993035443097642011009977619672079202495543834088124796871989431698215273555951348343743943737989623684259393106033760621073450416344782779862681270242382377446106701335591674520059500882340662586141437537073186918119504870708340252402069712755998342717247644742580860807143876949742727111386278301202084385947975750542092018338982210914360763043187100976106638881932019646889265615643136193053051214078618684710988738741692330438385127467404050099620518678174904294023461724209174353970620868959438842558783196857714551578178494439862708061353605961078304136528141054135035440277610615290359357507377584730903114646673803678206689990828485557232836265157966932793187668193746215162028845905307563756270010943065667353224086940695096752533986823704210689479947436441234518551087027278681326524129425655073273294128214049329100391059450674972869171394876951848943995570059835376021510545213134365501458575829749680969920379958631124196762892760193520573291765633481701399740338384273238309047512658174114268956614412791506805055347186947343626434223586312050576200039338391863711368678224415897651800814482426928847923812207309034770147744758512740077548682170395914258256253133561024985623967313690557533842261877257986554129998112808847777555335025607250841860077511200553634338572426677466330737326779524540969521352244444777968067478250774000806104551358467153520340238806857257240701005300435998018513591769338437023668247480944691501667053254468374030941777049555866711467662290259096891962961205450716898208852425111629896444397512853986407513407097433523952805719534753946179381956598972198515756249270591757770540042832630634514179284551296278399060128403816094770978653860139390882766310313483681550461026630916206985511187460963978466990780326618353576846955173722339977702992001091420978253095532920476783958550424948131630103954528141526420932944208834421155347968132443630149120892322540056753051102076321535641385594664459170648369143614853185363805282960437160650047455521273497664404434250707986238909125284103388505547935294881410637314717795345680726936762758401690887280447653554020728257218165813138227891897353249939640609315393584771836351341043312512054365309395062360005348004131987408908160202819289290254816018882801795795374716394559754690928199570418965281664423456362636402858400737762457956218732128967462047687013693869760943272468641952209020764350693203931981171498469131315515572570056722483277491369658806185333065077789927530156799544132670103100569295227240448717645824038673066394446348478610360624321343346340642988454687957576307593682901367572324341450940082882189102338302662717504144762027644542780046018475389140609254608881815491342531517239930845255960968517756251178435954412598301267475953733834680935740184954685297809590798656324485849818609211520845175191370803403294549351812871409993365984089214966935224637964066995202412980782174187964550704006381259791626592901688319489874825805126362180123571511256028928429439995889513977625336054972298150313872671960211983336002367074575656270172835196371499658546996992978269682614053407122399742484345995027244218536572105418634976254584642077982273440706014993648294352818569034619784853916515662760363730649982736514813798724933334682447607315442075271991078114712470493388912945444505887949954384195188112135636764063536278509289881161405799650192336938592921859409693787393084318209282851839983260215073211298749217129283736250053816328149876814136526399194245899344787295592118186391176618376179059499612529481475324968045556881607993407099737193622034706549938086833136003003999139035146927850593051450386107575338538303980952234909992671057027465039592084234398765397181723029291980789076117770193281906446540671706285832642684144575100476458963955403544267304711905406771156401915590947380954568847853762735737391619779001297424989411342838494857238894382504297855424513459153961749913471168667027086453388917989032913818561731145125805429016640165970522278022489244531601771234750933432709668204019341881687967124324795259724682263277157399700508888567700909861198121929943644983246251700089028363446121670767745631823355171026884111229524949391211102599826627554269108765679476837051796149375744213064352680413204118788997969675028244823808671547875501131337134310668540795667932274491680985394910726884349375388653412565446622224262776931538819998606972765496609846181865014517388604091040704004189583717679802522941663008522446965266260985266748062469961674848335122950582068303509424196177858006100071132756228573811962725949996808949239662870838339903407427742912337864177591446355345606307344681326347274296357152912964807178110549281641421289735592067012246518263893129827594834629784070009747666802251675492693726031078212738589329946756529865076847593077666830172305547029530134850946101988503401551363986371063829457670018596151373419065868662713990907090863634002133560586856972492169800706548699761415453978905806641168941043468486436242984238301524798629568978357902649648910369083045803594728787482908180284932012769408249460419373741760100669294631113908201474873931947150671657764339285239314676327958816817280007252307524517393011426475456934696080572223774845118341252494787988888362285081320796834448249482632196726517238255351419485493486576568280031837493199238731220233284713084520477580769696328198149051301273387497721164410380821572768499301710357628830828035556950074370637769408031777888401192983193499927057345909543697598263985652162362676862941634547629555718474337289683298683133638676125399881354728752021676247909158556443148893271540308522815871529070343772779811425294260672768417593907858021990633495671174535562222136003212144021797205578979564802948519008795084656512949118463576464309556153817511245499543379795942060262159469517040301229129415515913661452565372626965153286687026019831222007053105313334410390280808128460306439263816339564487100400866991801080597377413202562896166865797550221118774744810667944590187095702306294244782696760710099187193392211480532574784216361046763150058356025462519341405237495044176588321294596730763702252545455000263943774846227955298874233483268977166260257532057077492431771868770935179508536430157038497640144546900288808838684544119434516480154732358071652941292743616400273378404891789338680147011505702669198974173877506937741639747519925598475783110357790627353101574466897616349825016741985595389840479546080828817889343308386655827915736830630907324800865675345064246679585704732992508868659794771397577091471586641852106866386138532984569077285773433681844834189021897806853105562023930297500468791799693602609986168834585172965663482396394513602300074478907440365293919978907276241609009630077685578426951721111993525902966723438332511098494949484961902954011798677172019902963394344213807593333263630691282089334450670145120717390350388102630502968156374734009400476597643342689068865291715681295071639301510348188337810933387424007846051225970331484752219967227005282893007524348397150256499343986390431007531952375301395948921500080883783406691052924097188857416609383356211548844042286637402441130743305125165331165754970908943312974670342246184779450089434199107043338825479756122450532378056741573619557855550648222782368079818954094595253362523193416345341292378797751162037618779748820101297734877099683771106284980000340543074382925157880282081206129336357985728735551588314377681320065132196952313467086102634094860527943378690261140420971963285672925068735368749353827555123161558341551587752735665659666313958924317300668552874301013739872262047778274564633380148209888278005010565702264513707008959819578434907048421101433864803618832671103538404886741398111347001349161160114981049361056143335579927097065483868246090103844118358788094027973459357497733132897218188458375808860014525976958170462602333035718226467363544221964925919570974016009298044419015694396979856833670323199966892300367175576548857055100829298145886468688346413050581704450169372196486477230903326378511640383078190398165230758025745128590860590826749337129200972838130895785856083107955021760012703997068790120340063320664745274782529893525647863849521430308191093107415839007236184451830219150902881999247890424568875842776678874412058008320067232396239574555169817705856767448378884666310976760672427835319015979494825843298419928436265102842910825819508504259563099747978386268955341840965919981707691218803693027083368005513492164859763280699398678291313963134249602377744249405586750265038611654342946672488375531248466320845259958082622383600917270586214326648703574075453707047358675605966805861298177888009237390939022639452909750766201393648405240823788687185253611505718185375322813217491411929955591152143728578893223154140736362230356766224344089120932212204048583700618904888821801966344915176243152768909564864574830429145735439618984667393293715695246567252901847606127220255387646371386065978610874290111813865008471745576605744097023429863192345730491627016134450855466953675129060837362899664336099030310591421257725919010204573747643245320147878876105754153517426856401313966871639906912641406274395971069809382977094406657960354465447510959921808148688627947481199136997260804223748844947342008759027517707173911448144253686558030741543928056008072553767794162907927466965365312991278262162207371029676562772087498701429797578509448663558376502892109224898549070077079021061008894154611613512926437071107165592824504769163566869844184672021449514995282941693003868608358601145590466616075215276865460042764303764121626993289740476642668639543249522379315440182676890823708625587701062984753085046306739931550888040924797904522543895975139021674025534364252699107647147490114095830316718988008309046399926290182912171711629424802027215888649396450331807945919723301167502772583310143961522485844979768539743851794757272635201412087084662248948157987226946149468618913554476421889569181327685395990475990303393593120044201896538260847675531861319749031175631453927194891520123957775455201544759380464066597071323814369166200922089097672668298750060631004173091757368789226906303000236016669785189887594850872390826851000919573654916326930291578698192818655217624137072638838491185704918537607803586224619407623619721761772566131289388688750668931353503184585282252757209948485143829679936890177549136811330066633301967504448739278066905450937978052771684042626943115483909171206979864920798677362288777347326367887527382574307058509639272094468194198194765910444971889625036148488519486021901484690050991835491660680567054434789141976428076200176538469556851059064213152766412372740551350078771342294004766644850964467264217045950132427291714271063024943453305837426520512051148295198829259469353979856539739685991469916899727688541112527482896167313430766341732399884844803719806006400597112403358204636358217098506589374622223002137516311761251245570044601869677416308159007562906899524564702854289213186123421496487120331635486248337051889642000460471946010710302384920310573157017958359548576680174266773195810247324992197055959274042299868188114372301968742970547218844981592013163032759370972621470085488545124484992832368833369370778363778805102766799416812462649362282378412023982305706003978483821563955037037568387656496841316808503425006020609493200366173428354894211363423778634139836397868323550267866706515447853357269294102863466902216610173699146933426750788157565701321863222934926138201328738250483446436889436166842030905393029047850908060713641046838138719057340858532064733128592064163265193940146732698408421763356026492079598430547671387306445086565802917774639399579910872572041083167211743089286335178004157834708985077328843693290269446955083989744251607086907105921930215574595264322381310149529954676300023264949538642385257359141517210750078439208421751936436634021786892013906595308884632148846243612425084207236641816534021277138549272956525602812121085187157573776818941901372747949644591852656287949194311108864872740368244361235490291135873581342462370935607065195079636136007325656749620550234316834469027681957761831681253974177009870011301906311857955893924291328579949127250433376097417895603198242771638563752727216240191042120634541398532651750018896269852674737624639873167619277348424683473107034462911981793082266625560753098160125348302101981768837782026282819661397050174652451641107072747875626522499696351211268609711401549729701424787757542107426841021197498760496767456815205617005054609714088886994131209478490597925863421958693573545048712988145672931001044909009338776622629605745962806569180687206371000899746766637174191553167796977211037397431735949623691614690843555612231433597592464174786950072103695143103651836480749059205761363622608605957697944320576546487547034292198891199542649657072965642742023328421493826830108871649770234823576146306417955068677745354625599265832199672108100816506282259740820472574523180661791874725678293410225935249680087574808703614549819431870582355878769101935639354196304702558346533201580855819135661493554143163801865525622881503355945708855137722600419898953511657951337116563398034062347101043360193725212886073673160478250365452363073368071540476556744139961891013406967387000104291227191549248633209702771237391628326632207025418335646269050315416500450553679810676351640538260542379207221286991111276419637184214718273479036436679475249766920277782523721936808172903599325115032041653201921393527592338766065995730291519029599819922961765058144859443109226675074418169941086523730846028199622006811140073114023476767998971111973443463339615662795533877812644303654880632149964899513625424195950478487146638155077741527576518412701275490812637131588555255075717542960369353120154594042662125563847339466925337208076282502140192931733241423060201369455562537317486398258057632214811751700294854472160764025517669649591651579123966145770586823082306858388674087710463584874006644235413243845938993872724873851201778769964469673521457467214267606122237601965976839616819946933852940967788661074984002751284392975408505241507539355877101107771607375605904275813720524640533849519706745058770096140617446712524162717315786718764826349154500806849226140894997382126332580211945936569096337752921801927521335045297434569217496395035716360375647030355444311510934805076714222981836922046718027565860370344917589934022974805548314825678477978960169284708546721655911497689388196478990174908012340071440062789764713776061119674965297553090509124523037123411702413020804706454136534927586148700794097557131557734622705748751976630183986655121914372684797691533349676491743716833595844867710103938670917526591228226554145817994800477676762285696248570577808577856356396465896664684392430686808962262501440305551379719827214761537838507807944666651183555864615880704709106870474961697243629072507349080954175416708758822666410093105734122409724530247465146855937490853837208866959854018616510410332869345309282002543072446594196257383036450723199430178818891891968459718100041299694950213027392567922915440551574512072505324028056437810375024438673319819054170476144683047925317234942875573062806453207254575312419023818877252143033684452390334244366679839563200339809939867867142409329632735567170563243738403456569906348652139306716536176404139053967435704465505260771566136466056699526005308527870174176601390860684172694102142921489716536562607482637949317015395360216771692128874859106775079326908113534261942429327009739805670627474345620177926631652431902138415937112582928926009551219271749759999288492681691567155701681457757446108765166191077537733581588066609885033467993258330278017203223040121389486262368025318644945163399895492414317170878508596232624947665337748116233691695706519279096716994496441132585860452608109815771342678339180227223729391247952250315319887167238338231198784145588822160750525219423771311874371732192190064552106655814678217425836530692396098906502610360766930848944000700520733526435923831019812363984226592492745262617603111893971192633227327151084155760957301616255349813952889634409887570341441046880657919197576529815823568255119442057236306801265180839724972291705683269601942790999996171210729837919734520051665272703511584159129935436754513414629312941537453774900508811631599224689258113679794348896804960872474783007061433032613602994669760295734798411367242392968963479798579667483231089172304213505152414963537431801746982064988179688945972534424378981138513420745703407440458976735206354120189093883985190284727937918829040163144596742251214975766668751406530078223780964592550907390259973613335993915290346143801317398411273088677880190097629975929841773810665380836888617197896632919147161433226765564334678547270829828842903887808553827545574229022440786926723327880952079296452349972712737412446700023593492041089813829283705375763649157542932786233354022952673666740106769246079875822203904600900959954302878051042123818715371817764932864590051749728055004625921215184772565877485656066056028282635755842988280935913978782700609590664272099877530656999299197512647578775355347641273588898560332524407636965003718503964078794364870408973932914907598562220239166904860831392072121648968076461401293493096437706779804146809548105229381091088805003224730793080070223929299906315765993096367065861410744275002478910785248461466551459794979125173862159108647159078205014297034440259974466154914442322735698094637033173030945124124530373495338807662449177571405032716138594364155645152673212157776452169831283913269150981086207584730970132999666590024087661407599488506366177297491540094920397470019164820684292110674339483810708663003723699878780484956404830232658149920437506152399899369461487939734411198270825682630295313050879174941006620654814189321706145728708391637082205269408218544483990895196720662727508971280543201681741183806320151184476379554543044033023024173194625636384134394798078576698152903169421850737529607524121251700561225158643234190181782401441356304394368587562873472679605010540056059417300713689339150206320930326054108420610032856824515962709790616772388294739781530947215734236840012445637822412822565778760172295131647569404219951452413157068622927061404521794894102742891295089169728130254032607771977088723672369355948743082518376107660719970253337283298738834429722513184439969047984194313212749254949022865989819071597125338378425048143057557091261882624846711089837401191650539079541505802487313380834935719308698064307127987219320272628348593033257257744904611373509273705388588407715172013175601847203716890003472840137602590990162924796458852763923960162942829212502371354694026665726524700853858117924794588127874216859645815360560515446018405075933552602046159597051093214783555742928736011847557950858048412727182796136610510042870763297392009568957778912076629757396701381033868803519779920906318366031332155853698719197325944811014535173937803249332939003828834724246990220857143265901843659270614994620236342009400958851990053606512071643746463076486616415622502720012614985922485947641756236139202653059153284300882444344434781593753089675667142979224074709427775458160605217093392391976551593707558794324630615844009658591636134582507219273233423275925282372792371940343187895542985633530097813120052132174956901808215003033666132883356218574464472394410022546345833621312784417316393661439728936062304974837673415386435024537464545586021542051803512448258875117978067060022509654656391788999266111783069067592598885050543470691360578862700707921530015228449621709276831907966038642321259129496375292480833557142226447770864586632740716801824238027050972169957639645965009417277990405150036841266807073579853062470647101795391409517693950356502751777038122082212165640043041691299222759035726417025966392406356735242854964862664265623097754445571955843159536391378377303433593463483596747488416776320269603459273995129710086822140757847412186013842277774601152331700575816070295111519018074115484201741916749974127195865316573246720763902979894759926283448926913832668360585986089233777671742442950832540384213018493777433273366645660903778600568368851570018438537379150020016242763407303138854170247868983985489540810068966298259552322864425543980886098773200647018898609771585913841572328807446556351320432287461073493360193186646644423219136170648378490448420594248767102727770563998154141373990913854612682075329750097173413472330034308730456528598285188095325377858531413229516384897805483701139118901436249132155376936936605415084857481139752130851089284617214971807047748720898643516164998939084473288143106188147823259644822735491998224052801428580155594603188957079495306394837099461953308895430552839979702243314290005285703434701537769750337154702414394520124899882082084277302544038607210874242086530135052459856342663639516685177154082337197384933929364913711633370162801504086826260492528801124988177303905228478898395987168743478486040164888526820079054682698576841356472714027321433333708411442643872247463636102462309670070078822480179848416194528015504203783987434302792439666085689139582710871376887850754170229592952228072009201722652499011643801161741204835452926295934022564897090923414745423857406382361670891492084742157469076454073417916237341648201011624100423086499990068618681707692040145042850277332618170172944618958516612116826257261527940282199648380764064029948838095048423530184936642517417409264540338932371454817964956723119791887079539073076517589782350631254084090281297154691936649983965961241147696222722660270841459800363861166644722681806821722841422972023234378331381979306856401060466431687350172742239314711699569794003593963757189521167379037708224067061406770000434961628708254787762353102474066805263771174508551758871669467154121104177106960342780403810600338028899409737455145474643550188375143757361614986533634903762898704568674376403352753525401392360067656953351552832901158621782728259708698523307367098705412840288361433226308748990117553805460502333378179043651085645334007498800869659803250224074184682942935804954342246336358635422582689832156065890412578755449903649705286973589845322898141380676547573531784623058438667274890972977654871459750568181488077776268612901248896994271053503480437341416659722324890505542777795925783668300173281858398836988284294538664680076889291779985123099850786828798057423404980782992433108776409941245264087245330716162078015288840518570599698080816630214233678900226609138184037015228218612960590432540736567000344567506231219872601060613375174583114810149721535840738925095648040732430298087798931798153180378118309473291746159174693866221740232645730877871157818992774868706278530064199601043082642791477202194476849692777242951788863982624307273452298176018228282369933060454154758503571693608799204988481874931656710372611202961466945276121293492396148462913622184123966146587966921618142446272470096355933444022435288790382202064467945324008698203352508703066997514640669162402693421871760366822042153566109235646213997401604831860267368631178626300153377837945954489472164812626250538316109010222632978918942299462310087284163824203811648663527818310525712707323231184724340465398228655390165888963144845862391658412726458241977681540058442545673078571796477747885478526356954968046579203074141779806914747642037260918289389674091471909287102601440757380708408459436861262906201094046993122370720708982019586066327444451303457162382571220158591820937110639849502863533381852319504782990627087545998717557972431338131491021256085602310021001836949770806466287200730180506710376350582367915834129253865740236406668772220173117867197597554682757102127256093361488165665493000384603280168224295551671764496376267325725490479609375254762290173268389764359056776569347926512004834571199763396321344152849653885262170644393076375324003634694348293120989459781154149086938022604944080642205969619606865400768237328478136403531411266456990393294279670935257875077998611454454721141515837973527386106957746359015139685741838674660695057682675980839921632577673493489152180851265517943936292755501281644691017753883443436113241183015663691342267857644252560649325456574074687818329531405462967077722603473657658979771026574166928268388580243874469207454511823828182412331006328213247800273417710513786809133164781766182914613433769358009891339809396527607950633189393975147646131761556364969404755187708286387437823775507472571691483300145216903542172624441206293496031630365590313879854402252641322164201338156356376692158612252249427130751094831467534906886398128838598690776373506643363399883703096838289653875349117310924260254269405436627524258475493414625051627156082732260496064389393534915409737418361870513482437935077808558368201543728537192573511616997903258614974269726649987921114185829938612836569050539960188001428592751552371939359426093679733555811219260325786316922290637648993233907810509323370777519432172668577135772072951594386922603902364629002459446722848916123678700644655255038486917172837289125865616979120172830936796033920659133233000997222237153843496126156350438999784809202350120421018138784309696583283493300230202485888795758715944417172736581851100365869872444160555582746724229442153808697877108892293067257985557323941800230663104031465626022739371913806240694345149659605241446210617361798473771299585800083171174682405555132038125016020557988754017011172443593032256624951468159145580488175403360182369013476002691606542700713356434090681580941690615856495439283539654046269455443640554419998501803099948847340207322097625388727675310181512382231213108195794425670864947503753179336746492051850627517146107394470450184723439730397799175025949047688319201052753524370816443819768910547899233350734113809223700656174467373949989350588299086835471244237604422233247325881327666968832129410389861955037612235874249419672991965492401171411740127571543460401560225003295751101302755786869763653575776135434854413259675084665413918987510979540507642169565410706009900527984126524418121226916494634038590093021119486690195410110296110081474281276362599643018811610699497042024100945843601173146365310243499399811772504965189956090961858629982358543466195678802519647117745721739433641995762085021725370614905074199026950748903273272824588559175473996457898126012031350165088553227029776632569802915535077543088156444232093989983609637350316091319151605476945713425066239011615972662706748705335093804110587634046743377385573751620206137378502574452549650568863789572922341271215898247295996542886755526608557258559769540051222327564638591843841644618084000527041627558260174964314672518307324428177867799424951371751394143658743444048193619713539305456551398571611433836145909286722577344830480872584415884693981290446361548547194234859105499381094529949978184552119355674010804507954923359379009081583927918576204611283939622518293414653807632750153518811465957530976226015485424784738119145926130581769968469228517820565987474630137446235373293502932279902720017243154340912072289231596083043211448931284633948478003988294538983830937107549747470913186063163476528610800206774019245957057694299043425822718088166176557672986493826320643803192575768734686493544785373724297571161480265032734535149683186265560095954994525333655442235647725284536569604414945500617399562983255422450369371607960904111172517513661562648860466499056998989605964826384091096097731128559622930629264905043759628355538516820727213291773693240675082715602135570859500689822674806499279199370704026208840642788166519247596247194229186625430308552881923792135627549179631991827652693495525185260897894299489171581309548245968742132861914138182757389535479934636039889302624504806699033002718209815020889404877673802494018634306132190636119284809635896329021166471411434094602288030408099756864672127590374938722145614474402100283609106537873934034321757324094444758283021331751565155520858129950873932291224026957259588269650619468974386740914776858134386570750648901682706019912613146813561119047931063930079424433270244206189787854864884578094572164126290772155722470557127954265085629047897460289499595086493506306327487224722235200309554138480724787166197792586254797863100870150098382364173836622956577578082025432002194174684123725049195058569563918265008746017678838012805128199015848533937046709115146551848289192170640998897922846840693329187342507500512667445294516500740284820527542944010241939202906226200553204201476562271436000465590205803481045933726423163166368223719991151419083176005564197312026987948565722679697146958544949913892885508860824844456882311101580012393081865026823940663091218118438666664467315179282543775141510005299053839875413047597951501966303303936454251715217278730271343848908351110510412810092392456614231992771534802947488399995851078057649909141367717630875572080631287619461598853377581415020393024102835074033167548588152041006133269014100026046136144579521830212795244551142089109582635597454991849249179903944475049935577962506423870353932503671322936000897436604677204619978145508336773394449277784863205644363495856831704833242534320160592673287022325145442729299610896136236125442443034959266666000467686922564144522386913617176547162010219213431727457588064196432141960364904122549106719174721407974793292941195031632200596054896190822146220743560277833844159143626121473649109135602565131067287698595163979448397958152880017719191533563242506623837802619735918674611151329468670343724305028464717289922145146048342207739815256694830875255014112720779275829278082424253410811067266646578450421563925953297745191770620687567800228775400567309536665959818500294336320081496995119377361537565785389365119704633614307021316272575804979163833040557799772278942754053046957338515057038943369039945748129019900566722664216250566589073942572434400697734274267392337670268304141015511669612996730929683428382620814732208264342135747326234948042688345508591212585568269287327700053627579161374897675307737202004714999954866890559794331847620747851250631393956548405838890429831510294054878549632308631194050741074923920932728036435551137126300811401481855215512748803379302797607527135695309191741477026940629252730097662206933965795206908528089329228685515944252034376766467828204343631350091580047680404284349680954450598579063716226181170379003193475327319002360096059087480519310032829367631626234801512683807801021246561956344797253294425233362418645866064744705808106005751074981050587576471167750875656809681299051617877766352566125494286122386510278408573223251117177747843541026052635188577568988707408874938290012785561412881154957222954716022101324727039968587843851548802830746272727561354261114569635913390443514320790258848126220025223407674372209494601394103046025123557889381445182620097266299228968312886621054591088347621168077633177588667047225785927992458210680571275490248881328848017896898501702859566382232069343001376302741843395224697147045690642570447840500043759110367925141375226384509265824790748552105167716601741853782872692510796934532243378177647032055092893878366815408218381624605064636685160154537779294501723919510908536723666467517178411682862016978809676917193695934500781616176434519791527543472592510060521024878984500091930582217194781985430322019282562846368985050308864461357353373558534894813824392807320606606925227000686484449324911110951826183929098064946683860666004521358664265281959144946129436080497537481455469774743636596760745859986595580081459248987686013863439002579818328152821023956700249955040773453980135237962149860083017665778982500389473579984176862379235893246058025601439832887669319752151071930890209637870228325395332428538617651012360197879620672807244901978672160533673037031064804853738875042899344880063553297381275701981933353792037382425055253629950048148198247354095718200936957826932982610671933860638403764156189104544190920219837946049451716010513607456554894096042851377299602353764677764905011457186894926249660747855581997532249765307367310391557933071456803147122772616638355816348348393603286479164243512652653652805279438995432148693976047828191154489601596215713406658104063458147623430354376947693421569964811343408632411410681588965833621275713105163843488065412421231769596229514226892844721412302797131518091244251125673651086715529902246687232091891705836901499036137480610657127439121007909986809933377395205676444676771637257187954065733803814667918631654845027108860504130016974818181979646909068546023660415308026981437101140498340202507282285072480486246377032389165484496679272749969953216576171324249512444694603001925634248397618857783375005242054000470220916976808646081322730517270819247612864936604878938578531381990755681856348448678198745329506894042251167552999068847997860711196070296767254086380916416210842100960487842678678735695702972871593645982731159124587856448223468195130651456789633648055368910467160858386564655815541902782180739243510027679891024750465364440106076400646567579360743268168599925656793203991019545660387627318344129196505309803623135502557405837113539458192399669508074723989854867087166526612260628137784126795200528425036511075671059211319116879661661899042256982345289674638165431188076719781761729196849050153567706524222293549470955376290468319781979124179244962175725435266773710361339047618046696682874853085700603412708733617748907661496368980165848978522177790564432690778651484821187806336465521403928166296848080069939589591980931565220123034368091395079741175443771495561871914494110437476620707296990633040574709927890474103831789154151010376840815172798855382336043151421049810040773967141311088060549267769748242683045452526047718683463911933525003595565349842912736191856824462161585525740731187386052112784773991667210065053817429488140290953140447114986574810206579219237346918762830425801964372565939564344859277503081257023996303598328457614967689640940923350880044182456422007296878704951506013938814559742464256897593434905878219672990463416308542275664581217730829370334691464670662601796053550207129147234275896972013265129470380838245454405290415692530759444029609381840281169635018705224523122704333131591151750513886844351625450591524373045217720955202234335868343478036695370406456484559590391548355734466645659581086935890681519940505528115870122254882825043024612532251153334675310120185886479235925316006362442374959369953525257503994103826605442619315427546726977103855272050177643823121352816157828730950626252258799078377524637640534756051379839925973824391363718152075591112043909160400024395112677805307052954051730749961510997262058591976382612446992989324371162002905280546878859336639905361157595036008163574628810145521138603296919254008152617878135475198229351693437719328800476930018196878882838252907626461830273243492582198643573510053663447114482100025566311526648231106877597358455943707236509567160780443228654495365727220883051265308683304643854139469217342289026714687627851282051842514266093570470926488859031882969179007494067368544176372981333101902564679202225400467458458491745807470835161502771937957131459029778154700056875959581119015139239810581215935861289290730723878796631216494167648756386962177991760183822951164020471752561307281073881720008876211310253490036853521583479620961203659900412677626966472448221804699570909233122835643039357359947110422743263626440981939065374972439757782345018010977345425503935937097299726849165947862012391828819789953556558488245357640900580760929800725020804375816039799720520013032608474203809058301980633566619549466365585384875886407087802983311449977462109605468819159787893403146381410342561538212219179191749796699761401025577400735238333884018339373215384046810464687406064506802681321448420576867224515305854531173048816126507221756208493812542537300789060710344483580056545510943967290365578688951402192003171930706549855616465085255354274224640200613102848772186396384965349771988994777316941065828038026814363028704584838565842333503826091208712635078413219753331817761396727254184846686535057527279095733013973812547949452914440093956901464157348734976519211415724781050932802122843522275012824212920208423041801089858775824244332330608630049035735437647400184742020976258099134107384897037329876950852700693752123410528923542825792649078815868707338317948976896134655722215587758522697568907139553017170663595913709789728068299015973313210422983179835623233588107556062531046387353008273351450638786780477065929014338758860669542934586104805270108350259343123924580906657686982048897940873579389139381454367665368739584429354137419948673838899739766195804306548046361815870538528299551629988077044226189988300443086462463308378026176678968267092433256129546302191316525773514333288948499988014526441352380636643041267461248345980156523616275209446498554930097305783951232130874262208063934389739517065674391286365047037869718507491221627465705356990444854146315648007293524238904426139639444548129820094409344660684790874077542431564147329277056496081845720925887661966199465204302927585463551000117416209607202524799880538809775507244023853111239560265690437908248678777344366455827884796470376343172091686405545838360234289542531163110161081658803313236471100703989878966162875915912978806876428188598828595921463551840922447502155151670894772597345691192089444656298570164089590830596884052391487914785655982042010130811578112376692267175663604560999431345364546870398344736652511423662298830978950812732199627842794873807396509887061071421324927980805761491062591383605515271421255785974195830811041426326210010579094952794588237163929818228343282797181896863296856045153028180763145445593633339404522604830271031198010994764470288395274360060513201405097907771734078253520406647374384960170038230158287583775102522317698189241688412679183515128382376604000506216167495352053866371992942350734387472166929240103481680221671251811867329178292353722050991924266151815962172811597936108675095782293386719314092837173777288456031210570243000897419616605371329870926666526036833190322144679046118679056729661098997603078486955756049903345416204490404392192444564982037386033823074146986801469338665329308909362746321056506040322544263468749709057420777640120163332201569938252757516115716841791894750130284999152033652582683617830454053124585392028542816639571294531361100129919470717490528120941700514146155641191639399636754092906331146983913337193364197270733987525165412586824019855736480839624261198257957513392599832820848400572723388727413888147976564687561807394732774373930971267654040416150140142626561440438318932689644325925151748478449215296382907605976676835823854628562891412705101838265825642666178383719410213692241886060349882387534148287299982398835726756872507713133025900460638791676865461760996181191565024315245994737625108817101991473969226011239705786112277337570813314200485968119325295383188077650826509356225344905077067052289253990598250400260275232370951996603117443842924535663179562826393757318306475073713669751973030469491864440039071232503620696325119941630406118318615904208010007099642791630290984831803010879362808795801208013942052352650737232342561047440792621309107176874056207547229763805108180587586588911677889377168589068484610423202911344716921883576631048487750575999842642122766818530887923846994653899994500233858281735305299165259256840149667829369369162508713992788454529052045094426992139444091908186661187775839105718325449067029952056657097222752733858863221938553131759909894564834110440608288737630873463420571578764110231540788369469809326941235128614614477589804717033988856426016664745860787032473049430282832000677640401455704597487659343195823895577411015110960545059339532069821503934835672737778910955794915334278492856062688490281374668936847420193677706740847447181836894803985754570290125980278295554461598105451676764986310214650023675664199666410266164886068724399699701896627410223989641877995491104708516766652275697247185541278620158844030143756600787027964513752573023935291623935414990032646607996868184553539741939527305340100792894840885098816907942150105780442509208554508634558137985722926327416492558843939852649976714768246929428333267290194943223220226739666320784227082487080933226227204929084622973672300000426148170850561793979801550261564671610194005240551683866703891912353051626797039673199243892503414869049297549321251432947426609754760849250902050431626779917695036757876675780312212912140404517976964055347762721678197697032457064277247361175641083575291285294116418079355277578329121324821848927649553355331890311894429400736145383364648459504543361317801520675538045145230430413842731979359498033740889290216690389819552405612255319748146232511932283759231895134544618899014712604640601512818345002326311698374733735956931142572694104942865108730367549975896871047855662023850187151486102838647081542712546465381468188148551606047853988325053948090753645170827942884584401153656867770103478238993304811904891201588828597745147111710714503081977813061665961000052682193441563490486445975693392034949120243058579720686330044798716438091482579989500043072620471185133168532847707295493225067941901908327055118020530021293972644447398182815703387306303432268258704249800347081458789396701523228592042319461522726532956444458837925386328630693229983460364769714366122703047903958557140866558213365877286869014712019045812922703669739621111083720908873964670422383986846906175430359134209723393914313104862811182355701543605441412265074254936973049171995624636716491037894271356204394574362997655623504066023337038698163723872884878204493551165290067583764267192657942389478684755984008204225605989303482822557110452808488935617420914238513680341004788311097351272195216107002217210351641572370491033251619367237889864862181412314104073488544758258397391351310644307359399122996758171474121467882081786237893511635786584051193820472884154741268344103266573563502766842284048217485519760076091094094308638554789993752467032540123181259004366027532969334694366139658697539918283031798838714919298084298703550434653520390916256774594151829367801561811991561945550161458675036696584819227419857487764084521109808207625267233435743603808574481582401909122682110053127009412670230336065407594242087135422116400162304896098274459529482673485983543471250362093406980567663651027602727744527815236894233345659919980002212815765510676695135288622771326867330190992027296654555789954993884012601485706877238365347887333506666771758076559658722827070194081947858035302685623929457471433794463702070648284345399735674272906711147336786201065065916368860920765359246720704595311080486561156984958547460671607415699205863505621190354774574409686996083785681382554863098041703779819527655898795896634562588452171019499122326626520752171214076428587291339188582120468220927641551200606147801850832880774077356568899292387086550241833517131907018231825273158949456158118963968243505375336997334063421583569509013898440228653628678561151791339414522150837379324469209062091920455451727707962324625553935887213674103754330354592172922029491851843981137166353432640416748654164779362886829901712057377188858119087525794462082877463504036576079928069764832474585404209073515368523345693437940805953910270263180300617072969303959259467225937172817603555400239972166447512829991405433468621173968032032447168463371472329273802561684608826078343697643721645964734492895957310816994076388729271512711136862886602921227174131822848157876273413620673969151178851264769537673251700011611790962294182271659020322335682860895227423738729981539459493585845496910156092629406981685807134696608089393250556178518686962170559870404392281780293445280994842125320706003991107391395789041769583261610201867416861829591170572621197187108963994247443167629304801021735094804424854712010204280009027407949139318017640747082124384124789089417941833285540258867159146989259448888643067291450455116062484045788531936252387481805878237294997548017806537473144845809800973081345185464820267587321007069814988243533346910381675334983107919664175837644162884902363771481798942664563264869660323688185697880377166857821916604406985674308105632511882761858671586938724828289551142608018433927781912782996005437280079281389076450212644121483317025578440123891419983809774616768431166003820229078099264814601024324329168395062066103969470899136547176475472039744439695733248664664204633623517887081786211171406517994616786748891078823915482334929881417435876213682228493603201084728632452016758425651963900413414920767485995479539386018338351799824112542213784647457378580658331283505475595692138303798336173311378213674208204402493101083659998702995752617219767127345017161112491905048075232885221321752497574440672482745742703864521470428443709225169484684896540350441560814499132920824310182297780903382931114883714538331345068033508900668858469222750679615778670730722147900143339506105775858225138083519482275494262915213201193309385418354605722647276430877677498792734479226393195478514179123117656861850167694601762974943024198791048772946295513322520876693543015208342984982490615102246966039918451340706253769231889060075105455864500201932284115837639882983207267380677560354334180378002297208268720791329051359945644526175097083840698394310239737865529411560420745330965580003961544418925757350577517735170164246319011810798169854717010724197452434862593819793943094719875945188354661902296143573407058768718511162470574362118791147632155855145415841512780578003432065850166259045545069595451401961428805829843017586031992241174617170735315674004552993908704424440228941280853081835364779844667417190400021091879172002708439017241102598878208682414999726858449786666689959210415044848896949792310818731132047439078946512379702282106453123458105353119137702082523228331255441863006452096989930780748965661448227949358164841596401465531300829817418490681988786270698192927889892857657839728168295647410803830163570837847171488628999782398613299714281535302348142626740806399787896168199266733722246039811208397470459729764189376043628321987614834649186076563001955892688798678808316006424509198245674228550274071320815556145074703268504577211643421914051920820718204676297167162211242914998210349827679261127760198193808614495010026690976128140597598601007196585615845021149849389745919314510352995066822565060476889186017345172430939674914585117886728560025094876041761570612988162908672844375263842707592709983462681866205148551305433864160237661988428510710541907989415284511383250458960373974142854031688995638678466584953146824038482166425658719696090343381157631951311160842731582570801739195902804684010518732835010480025801916472877413202367892210217476217770710365390082798594648526185697728064368152625934853400885321025587220093388963017964496791737216080574314353216189991245139590916890097753886671564896676765427192285699108856729590577680865692862275419235051717214431412349693280329706859279944814380746740589959190321167272289997112479059480652115445498373662167985140862516971910724595980143394410556369057615994898170634781160356891925697086759509689869798994411039966054454065529897943137048927984996501623783627053457927717622528966713791148540120219485083531714983785510212993800405305831396221521931265508180283416091036577907653116439544266140469695736094815661622484217614573604025470586451311377169402651641205944128214977196347867366646277824783858879201178698314406703750456020493690678487304361354200650534689221776141472013317071008940963649145893283277886375467644440803929324964057518888111922315953373266699672064914557180746198660140522147961184383716797859522635958236396200178859386978724480222935713892100716883819399217798998813098539470932577060199184638817385406625636607687541066531716736976105930849443325921256460690000652572624589057111478393652421528383078226252591540100372650291128556985889460399521023844547408740062198564813287777308167392368236011421062276253597276858742595388225547791245844115087596386628777529627158565978175943508490680158793972542831041906257023473211588483021257991081769651965988662013079288279021587384012929526336709868231083061901795496820576654451115164564867858150257094099728746974175125320809659225819672639830092738168820503356035493909070003842986072528896581339928449378837407436536376806422254544996987335705912122725112244905937081726707359843565422231421056834386170692579764169298731324141350603784047227564283088159331678869009125354003266018166717139260863161768552147047306645323400223753649527657923344984772611642188431074778551133913313056795623588444891561701541882573966557383307913060395099182183825969192946151334330456817446900926705126274907603263573180870642180406339311511888345012112617413968118709290993543420708164318062727951046836904025740310298297335019525331869845322824585202111581550571051482091629766536588826235570463617125389999511437157957435974456871566824045862233246177025649236379385642816872673443998030431036631359266422159832560511772914996112297382793601318181218233302644330142409143433408012755028615723413886640992401831821612961788249776127753349700365933908844121331618878866927439381350937488655499935684312840816007734456640705080313370648196669419095360980508278684469529588248965920047531727592270478779229494286672451073710071831330415832877612147631232353239404068833350000054307839431842275410328204040208415070361765285645155009499061597048282696347454988598711047984574732632885066761956766385011714050492830877000133798611064586690439382958215947883616194214626720412078979430027337842866287849656838886911914086140392959599454666038896214782455176504029573004048763480066438187927112905051299105245314426623180646978381514216970252667397401565521678961781783522344694315414079197299105216925511391465364698957129375876764807621793901730663127965731006380815284871213129112490098591155655794340464096257093559980753811167483408348159823770770264186275929201429659225984461556541728556215738881832269617316579425335066520315689898507689659808721228566202043298837971473825382044948658823605109716917213258238699587506116179562967833275201944500239964382057836659855860529544399424037502381994995569650586034055708868340388085719958550839790948930825328984993051420055375026551512989802037716688642725456876083356022134143700869032932671428440475980571559598315269629811991274120848616099571211718524111834024054056682890882589353737267393159037471021517897482969675107261291192355834963163968703672131487265523816293057794153407772060387040492080057490855249096309090048943433678191851341742823179230406907882229335932492292442095600675382735222448909428030484361896420891057179244413066879497624204964881246935000000799865649541161610439648465867182327194494633102316767990357729734495255086009354364988573699109472617357368029072645790632606138745576777673695613821307427339363986081304316814900170180051804581873490291865655967905960251229881433804086406614185962851803007750563367767341981770643919233116447314584756778867946792162573451558682142168958459547939969203448151661025714805322344497899602371898154619815679749447672855723907307285859706624125772410508191763179304660759766515490872391927016051205630137121427579381760521894629822030771111838672512359823116928007036724895609453677154725613696185809352860880717546572326333631486173477543787825853772079847776988961804439781673094946245053677450776343683900803221532325750371990728511308684600323566300427959226570045313735443501262437972068831654340850275038639302114447858604121436751463088521263194453223213381584262487871311030150058778927903224553820862295591992582579619578573456620103585007352168409669711867966748056855696208454181203314048291661558360406295128451420702136049339638899635767006347740414917371341562927509322888796981564913924207132047800957196595906197596752527965089456203424947236485202679783358031173998507613386691874750608158816771208853669857096230798077159592440944165289472183918146756090024188188903268231628116349331458278369393156290393938139483719481613051959289619712687661528975023242332015642277329657139709764634639139093305939318638747944356177082775574941527604578169152807864076241387380755902148287527056397371064174498113605910538061715386816386506682926552788691630004685770799621843005158973951158515712897483375714568544618105899054654684036663640158501644210366300567434766790745884874986156975713932670682784642394844517813845298919865180129439474191817591125080178240010110360621715371163317178017552624541440741372907295639655761069958935973919691866035953676531385877342654588088578114635462612712567748453914348114089240962375529394308257850803434101525321577771843916579342220031718245184367967591338905414789926776191951805815586104546485989383439097070931891548173003183042035960048349516795744204489777870780773869624496832291422432959738080480208083407716982786835090703497910174145479084503020638075491346442313187846868310384918070929986492495087186575732353427454896911269970138238216284328291325205897628864358477141724158395545278605932266983812716763908054385984793039122040060546496441189029178765365665870847934207983173301600619034621966984425636257182119869682733434016437352385813819180448200429441454604651540391250771868462960750455362355254737047462775588422040821646417994179549895012491153075336144334974962408172750332847893449221987994558799966685202497790875073228977509162858661986453373692087056447582440333261182211282233036182071728855658628546483563426815478130011420754451050873803118807507115167123884859432685568180575754916576173171774758981077571160591348397466476291214014921207018413937093169369076599666802724053258998573941305613572757503855669082793531611649627690210047652224591978974480613209050919261412947597395482835350986432495280695058030413802572350163883610182208253803429616070685618269321331449578398962025976203319157825541772463068369415416476077413653455202186829257605841836586897100824925219447091118608059755794041038171665477655189286721249950278654283029714531473299733262611106421649704529578683765526558400921116887257429281710727563706140134350790972315392721112424928304763416716412786075936927120246097362523787909305286944686813995620754324884946597794710102602787374282484816989017579575921663713815087067783703082187893060284973255026049331780102586026883680854967368379098957962198851606638303319650769708121379052955331799601259453352913359540467471505290784323502288141009370331709743057544341223912922374883574451456124567785852702520761722659989681708673856872238054564763821565053770590038104939380127419178004737486437283121668519071503924258297963023945528168686484265591917844999627209677425375567752041347496411259267801897553350144420105361166562931469169855720416543379578827563414403850826364557285174872821732388140300060864082720603928663023636302865184236471050148334783058059880931760091399408977296216586415383168897585526377323115771696453650736946430487648963514825945047031893675888513059858084528369088350406818276634018117280993135079898594784016519766838330506316547438013612713791506766919952363077635058776958221624776840289396422531264316225271350100232921080685259328406249017933195666297333359114538891598459264895860197936070303077642283974953739817851075290242981687202421473512314572571479428947517067645333348518892104928507153498567565082683610103701574779887603337675115225982082469789180654876170714251208989613963132548873772091089476208045702757862607447531818760996407457788147385562177930744871123128356222301625889173730597984299384521575379038651548169699227000151931268227415856494415183086601140365649970643232472925229636225711532851762734592157057915664114463593815344332595260616627219233977607945695948303785329405115283358587007094194981396954425836077340644573387833681934243086036515212816012025046074292682382074953109046123717426061845275788730503122208604591468394737500118197350381281223111992086725010095719237527857046942077524007498478424302449903987056390349061630728812695740561087856279546200805008644675580527247485386405520074263611816145077759381019827375139122744015750734706542488532574990690214558115698744097238812000938583506280799470823300463279919939678932117830430690059235282944725991834257707492396602489006435447097919746634011713645338927352467635263737665967796620714536219801284327369351125685746474454464934486328554812796304160975595632402122182787582534656796379150834581262522561182558713660114043850592334600343952120851762758683274537441290168456791990284545729545797775728957249464610972578163680539002928839036818075044792236735964142406332134925943975296713960022102716254666593092249057232124870178717314742816574425034737994374522798875808694573580409723060316510965116834570479828805408249648403051018132640323548516817066946363323922001801228118058951514166317451229091070344340463949242775020872854388669105593705013870217735741801282128822162126049127911008884569106921805724094955861349618548112883932103731727064352009631460755038194113226437408835011756360088783415223158435149932544733390159537599039644456877289538229516825278471503051588715583902096682603388477958145921104178182122477267639583976465823217139521391143113708159583048457888933474558074640131934265250027774190695443442694049813692490399335490572750998004264584176094148130201015001383977260518595793254500301650305946127449253203132796781557846999181230202824579965659389785726004877018658709430835660553363705288932714162318400948795537925558806475594925615531786380446187046573107164683955568171740210686843764268006102962541207003120021832809791413456521013180279786252973919118290159390655965563738107521664901633175483659547565966736920597437474779623802469755917115463713845036014766518497472886045596464195931751211781734350675509284889443491580994349301742866067894696403589778118498799617463963742882296080845358068696886268222083784454045059937315225247001778198631220833754900948342477357323178263899526172430927693569624282770235223163353189501293261239372823616303355179437336530711275425875070666589217217297086227758765922968006214764998186487648713857296221461396542263566289575417750571845043391433342990039154038975770370141120661882669326713501408425354175736286335567786138620115850848237574397051498565042944414494492498899082368125717699958309560316136809476620851738696963290707997997538857942957749283158553934976847498720838817898637798413850626369258699969015000354326422291721937826261209133501526573356874924889763092025249732800030745902215802116635345572798611397290635466787600903861271465646059474799446217470503565042478848236682517561729507866207558047755971944608531949619850344196518367344911731253517177467191271732088404532741430976236064642785100591165746425263312537739517082590870530683649726485327456631577884859623798539656337997504778661082923835118469221680247964709198349710980972993511273653494187123197000432468950419643809428299952123661061763543712386020922562425120556813832121510878840850244352469969308173038820401298354298804020275271163605901378624873755993590529423921281293970327663218830435034545074125362945024586365075395808757057247837526049022690499626241241767954433436524798214778001642188326298679547573911148198390095950533849771107945762785275598095077639326722068623412741952350441369739877336109500351785638924579147523746798872601169061443670449729171573686761771362121202239416048352806530529230584925727415934699668011199956924546039165407542833395242649911931820325392219878379298544779834941792800967673070065803854036300074078146569781389173207923049085099045043792681575620947758326289387537263004228521667408038156201477606610300876203524518004221309769215911719180223550534383287927415870097871762461961489125868006573691824787889566753665248957552396509441125031595219919522497602529799042307099920777077400378778068554739785273608928727636112017932170566981232718039361831049186236253217807979544787557873446373160836430398325535798360160411974845536046171922897212240682255749332711512686522187607873948634234227513209708915492842300426920928028174209074963682201291617718530962790631687056590052033517898099394181625733863909497326447956731629975631224610553141526467869273236806050828742765694811928261470165117548360317720688261124842448149196595723519690645833068252170612528571371934304118380563134817911645801542855138282023620493306412649401252521443227008075315537787799584758871254853097443643591719535997011523687331372422126716229577626128162793182864222732256571250675050749068014315569449727660665261682035472606505316788152674308890682893965935823794226207804822123831167602224620699246854178105820433572268352985766459913737138268561524320526986866925834197754330963880080827808335202717308992512607134150067052330092248764511021208091764920444391460422949313624973183326166588723228955671856441455872525536209335953597167519520077517091924501468390845967524242612104083766821663265004675616190178050984088701903840334679156151973479792690367820157413100183575073608784501181174361991925782621746047002051668234877185096729642140203334326461038600303444923848882147936749296514318891686644104262943604769109579872071813044277800316279316673711936224692556075158444506051708134219609969136366903941687380683087671178577705991013872117399918242920900083005222934167569856814817125756029309763329051281825494304479181208490621395442488969940337428776430569561542044778453333767084323781317797564579028468980242490416484116297376335017486839397005926781159864457140709751344702673380555986487475619146979396350251401209838116442100145822324645337542390149979328402732075975941026310904741408197346592846727095390689491295857011063026816695013456619150172922427531162719836879066585375943270701387054278569704723158865071400578581603617732475062236936071244325646309543943325909065380748747641970118160677615406924575245374851469392991299202177753347137096821934641126375275489376425710557891609374470728426808957326267263872590697339595642724679636613793245206954726436952043196581847257897735999521424558482782737165864568957417026239968703277360159389400382890699194818020572454968403935754184371443051241762648638275401163793269309474490651386504253095369330698796256814628731605761088587882609747579085545555813618850307872760803995459470784505861255729681111736257608424346445069015303954850777273253459436838811118833733417046068152475053597557963844342234178073415521942212845532745228965713312261174351666310854187428854778625756194906251643083182537229109890780692176807296710918335661032325554870395230041749021595233858457804056774906932418665970403472968486619959910659038967618621264785160771076843988912860730167661985683949583466981530148214555329300778861758800192866327070414625691372295739977866498627653790247359348597069747207830258551679312629562811518463377480240494731598076860687270579401163991711091454995997501596735405944918162232926877038138142671851163244499750254599209906456028782949098063290762331974072346990446640351860719538374353694114923013427288626568534400322211826216477792197719642525403490959573772172926731559627946171946173550057310225737064983448473026205299851653484145482157772602018459956204357565853975439560551799219630828382588983990415537724553177374323604932339410313852074759588072175615733216148380833027996194846760709533691031742315751533281189705874955766150400218892468027726126374020577807092624786897327852761460525260973383951859571235168655090219388501081924726189069037386827244403309143810142514262356292518772070571723755532328920460805248429722282877798362499446573079124321712926776413734900404316474393985824882919626282428360657063229072071126873008337952889603982846793367099685845234103444843627521222160512799431828229716487088495482317484880633381828424725880453424691952539301731007666214817587264991944979823739894387908097663863938092527592496902131476252399368506533119581925429644103852621175357068758510432309473006843212083964301583612864524218984492544091607219476092976353213704166921558485462092480464745359426712081388832170366539757784236745108779420693374671426750813220707519519447534183098749233640421939038566924779166142927347159183776813417602366337767867144333385682201676158508205854128180715198451631995278384054496560263361122188958441168381917760702263834490120926775188421985196717375257967615572096161315418936725773924760219261148721858324655350257080780521735854413950829083169786254267238353897047385319034625478698593043814642879316742760461533042453875860388451738527198860740700550342534271884672594395010554421917453827645789886512803511653391477489241381548100900287360797607071005999838640813507485394124631384960537508238569397859234636179187646123049467125336679880161053594521808263234028322047204776184528551615401190217261667058280331103705411797537894524109835819786263519951790693240912324189014524989047643179824400861172459269487024632755863475307584171156477598458542101565781752557977826888139882585015248558180548194184824952327065427277170217688152446008428170101753886584112528596346726754931246905735425033346043520633178928491170398129913453001184727600508154576884501041003823693845207301560849272667957937799187578577551386676352487393390889355309324824433921527230423143857620006792053926190073764304349516389207836589965731515900776631720025055504613193265103637243174902939924774514396640098972612266111994739083243080820476591063752828298513922592411223697208537680718819987167674767722748926721672521416384299024396883090292325338880297038422621548328631132306595665443497238554858462951107807607098372274747314690108779375169261561956597405635255969866144832863555307058808357159839971498538004141797782452669514013791084031765524315812148716409992150861912055762876135608169848232218325209836110570072396303260861902034176676595497774941431934829181599437013078412428134787505100728174998864508986082813607564676916712419604714101336776641362219890974085903793333791636621171547665729541842646373831771997873057709224398570087680767891051184529021941699514316773907483454688425256724301965798675655974983789984683210601285501799264214323304614137902558813536350149155128105798998333882054006694842059781699248227554404840654268547378960076797417511043528307197302904307508850758469671785042940629145397693287756784849401717494686427828949857779680853650006791467722180435755317051619806165312973183400929568375036420415379181634017351172190227796333007974630936362193750233204028326812989924127170361133013330392399693259339592104669372414974797296678184341102661429879115412228906285255522199840173848473967591698050785070333865559211147274152618976756440859013847196448523331422105006881080293628440059890277205534029152094564552745986201060385128817255376939953677372878145300213042786762733258602230817078256617538235128710089328583982468294193790414583282741874576080750460765601967802122027040909995360411849290383166019763153984634618956049790635538733719468606796262339329099547728004227901985209148396578145207702384661370187636296290530089645131742330280157603492480416492568457667070024151458665499776546112438669159029043817757808690170057378634873222844215315966430158560122838767530512505532235439498090376694797444622719689413767120255248917828427776196473699639105602940399076120610937943728368378984929186466907291035070525099573061580728479998409689432889086345039142459881573282763202446323521033140945165554319328208650623601131323193416710599288565345857635931898260304887559285648919797241455770752215447965176409970949800072606507615303730589849018515255430907909698344581207139008689869255334976387637299052833226616047629194697753721487588040800898517981606230659290398233335620124152194745975248262991077941367083605490205149790469625894874323977432941745881931200121201977846786624158741590400295519616410866426813924556377908459212973437648073052387617565953060592124263696773631391413137908447746810621983867922747687047258060480763035204470129026194466877599702980430955981458579963481211196558123720123404702153749310987500006506703019099789386158529068366052370947324540617999995190478394859947382120454483175912946970336330838728576112380198550076400732488054425044230503902506220761622772941188551881200933150672265250837524401131865203423978328341320203086745020834017370527776713708021517812830811597159509258135372254269024494373757580171098506500140360933997303523613289339091660690535427267598303698493023351919987891855691864844849541672233227323391098399161449304190325759293477601398198844588122893478105148285474141945239774803616076518061279402281093330985077367203814121736987752676256665780148340632340242439890645932264753166328204987779015029144993278180365369141098735056639243005797729920106536616477293238855654048900066108133291891792878818040185567722115471502751517557384943860344873820671679686804368929553401643832094158129149957478815999814794542694933907513107831527372853868822156506743429867509328803875882944779532422989809683667851695306531555367074971227412063073835670428778528682533885708908609429900095215175062383098549521877924906203514487976330482405044131711086880089005573728799444491423161960291501655296307153168084737626321139222146959999489602509684604788572916421953685496461356538334455564338863491707269041537247454184284492139482163348875188617752118020812771641217764233835567704861877792015865750238142453122974100395989308722186418983861022221370076280447470865994975239790941313777817854773250694558057911286936908983294053628227479125965722384052876207342683660254694349074215444939477062750126294074201370088813547452891838775767475366288559749222808048358231044475463197548772100872557937331930542038297681680827410241156663879956538643658045304814351959100715230333811151255748177131862808364197181946519276171544590214008438318388982196744283641169580830592452447612950053083037944230471071095854147021861797004022109977535143694620048585281483171865822548763657016663597028302482920480277474675267720369135682005174947963363922784977630281149102995016588730662525431727412202534615970161170314429219064580346795444008198037669522262970129703093981751321448171023620886427193811670843764621693284513890404773614269895809099247785100129421434493862666928139261599773615896937808995440513396931667548417088001184137978821104261826408691583959430313009291149384887398708317671420445400138351766482651790345886640487877282810478118260090697552310324808469488866084101515117215062088886727874044185222310328378007619517562205260577585043171116212010926205578801560196623852135459040056963266926967806764209091004768758909859535955692464049119191803847976960715776678344034486358646046132063619495235645208983654213946431430075297709570439782430932186094259037093589312587824572525895003211956498067732615796073378651715785289116255289191485581173682254419630545979553153359828463163465316766386365929844460690833049145615252549972815089839950721175288941455876888556299493501532551399171883776281918421725678898564536916217714439259049445049594330808196578104971737218101357357683714687351729579764355083241923957039630036090939498812117983859333028543901914878926865722525015999798898811845469876666297065033201323375949821135626545464397286048225174691479779917063070931103219608482196416816222074779804536521341850839875309963113428568701128069468396006772543136544873657448176858666076040981578743834382346512677547460872419869755909235707557037977831360078050961317102336568161647234597110633299362187946027421291415257524145634307450833725112106836268603390237387708072388571974042254160675138837105903706396650213427653555292647065232519528417195778710575892491731399158277771981444394865298050591267735986070035855420714636782235211040314673161124595178652410748502303186938825734522870815723764078519746144417376113789545177340418883705968507054547048037655576851563888401953300777293259418376734814321602796223263472531408114941914494780104542611804320289859478356489096545283858209951424940490414570259193356080774911015596448637799138940831371158985736346640935934774534319642377704554325054457094523590961562008588647594993038854337280084601506334005996034319646820736066798209110592228260658177005226214324636964965593987558529475896743597222231458837879983950067114463756195636222252598300239626814681434219942712776116410532298725324370675735475758468303233220437075828956467337973912855166594231784615998849074818844827137503745828518850252388447820289227815859203432503043015379559743986157456510958148397599909288942135660944735267460133328867034713622835550945024724993458689661140544203953292991383025025621461544614561812492830546915201070957495024114608847697805211632636055414431566812061385409624351173302283119395861353227570086262224965157836350074270842072840957053620772523209712841949210627059143764498022556121249219058226637000883004888428385804469341807008051020458455113932224900335184253060504979168235354526236253008778894306422780209268288281776065141004015087399156350378822749183915929001977835135802406239816694951720494690091462145269486468536161113715397481714553968777265792566026082883596422823305191369693084858926457436147647674914244759595073331388264718207540711439972668202791974384142982828795341096849612766181726633776071111136642662382575104607398496062737123470270725744834533275379083140105118968994127973740181834495038777806210026771557966940118127214625610636514265585136420458166068485525251472751838484893028751430660464621657489401349550072756682562080744367821687559573459742554029836600358652718477480861354820227160584366690442465843946569014996427990176939417652043329505787052920153239802391059259207610916575563094653424191121948545747513028792490380722115769885839406187833723901659229576235086485383746327685304558002924439854916862893275651484231447049286791799407923837878332770302109170940154847408057223442956780397065970917354994433286149759033474444435867943834061010303095344251289075262764563965076308889601409486581915253290207841504099656631619104928176559010559701430078851320306109736944725652985906648624254298858667400489363279888920186456472225505240797014304026667924535477530908241021890489199174910708937190293150916330302047546660639555830207514603934109708210199822198658614297097692834786918778357205571110667898341143583129608191844238027094091967438201420146103386327950626427801648138814672227588696782638164678662113124992183541205661550015618611086468549810354020293929686421914402323429918379558106322240131208519991189129291296553497071591213131965426372549588285132174328491544558376111545120236904432726702303096806052588440960201398447401609821741716131342428295314301669131280950327816259950353119039169739986253511977980352310243179406392177749426975821437344130597269150794332199220388643410176270072817982052274736045978614953470345136570058208860218972969985131522923529034356086731451149133742263329192983606851327051185390068098657392684232264604090078730770246410488153778098611620777148816760369451769489057838476047593278561471834371367246094662396458402402519994499809782317047953876789047331081281107579371768082085512773669559282681889059552696822878772391199402300579104826816345569901879633705175811601398619103027033316314377734071868851710852685753991347880655745590092700429860778413416124807068599000582022902192734162192254581402243358696232429279452831281305521102965573566046346294752953114513743561324906090703954447208327765705857622141749050232877476633573116305506051430235766836276384104165570482705550924234534494305306574957589906925584403927182132187767612078274354396355843905287697532627697163756546568550329510900843827898944051716902650616842014409897294641438790333478213627193146945391108181149895594064066693066459371820666174598673993330906778083261336111752287718586618696999393437667259853625231327996219785438465038405786328684876489319758334225116344860022446000746876380211061251281197093604162501567250434016978038545808213073660766332773932138931874223885205203389345951524856258538012153667162394635371350100529434596328380094329830681883594660482905608940916376613428440940717905826748751096183999945206707482575625448891141636086973668553942479124957727671622329375735476048041359703757967947418810637744901785515344470739565045336625769421140355313100885774156539981073595459745043846456021870590843949273316014674616251489923200119844168651527316738190295261501760903617235800021437354551393832208203618590842226931496983629658425227549087745997762355455749118769561653960358006575113049463596521541890947811360417210234631810097842580620866564356921811337967156441117321413901780795916178279538585723352978768719728839555222186250919436274948445702843377067588680943870100506874524296656115099545773462357549880873377090354544959564573913159062399511376648618250787783976852284814398452674683100098600765490742747325027357924770922088617667528775684479226201774776175170840672870124858659210228817562444581613510211474147935419759208388535254932642971770790291789375673553164781457343576475206704832881871672593625359047539729537845145351262755133817810293169736736839182092489936214896025125684998487437994249678230617511010392855084078732452799895034052913242513264593039531142590804461459027115565578634005613412928074119529020436940695183744151725279880310561757479327190344977295985965894298477308752336745866584358179104952346940135912439820366721017922356587256622299900929022084217032005034470608223622889644408930450504799678056021207621862122691523004598778750253032041218232966807358858620194617660315231851918468383316029290393230948989425754626153853219713043173923542618351064106145693517119659254098728129797117213101762796254352644479558583337023649766198949110725804029585900007464397737094767627534735924053076127611108009943313184721386149748330136173118946400948868710531828054966080476311209467917254751989091347382263771295339256841199535994708263728103484930431382364089346522533988014598590091420556809612082977921901505102483714112402968730768895473536091833062536240960697901640798442187075538724033102199860239225562997240237016598047294352054543229688976364466825591061331509252706781577344489579359821196146047495672461120490991365377108330525654931873955575251935711823878747491647205938156967883424081637731574091501618228781725188363878293070921611224197480450799239505356588388328002030314635535873438549282261051419592294281991420154119627072391572770901631319637246391370089359066475112923120556578219512307305851501160127227535631196355957840728924586651333577132873338808280653508021126681693825020743269384055266211286732835937271492584641707965519640863496252256012022597885363693184122102379522182715922705411146517065162988442640261644208046635587751282312592790906695475386750786022124174765317974680143179552491754618525375523371146684593302984747086027165639570139909899715502699579701156547779945825100581372220309083435531490997583853084003169804802806182057029764288020717311613495305622930033495707434609826782860331748465791998960399720812784635950325145812228600480592406079893024351881427402152881755661699992554204787063883098478274604380140159996635806962128304231450625782111187671835001429335934217672931264842783993709321735789173279944211872021469126774923783125846736779056773444907903652283190421459331070995985877105029608236827189884139499706071728140200012874332267342877540053508456847507583382170695820205126922054724697112598760218599826528008229926273213907421860091405199409600308275943192945933469806302761203353305888095299692642661211401884642196642825498996855105921142882390110467495118324024602962950214577032173204127932056705587170963977511098067308800977182258555660620168979607740111408426051979948610186778165636434368753617559319007982091963166947214665739240233461358795926745331218945898081719903837090859642430826051692215769016459188593028505638810053292182313971238860261858418187062172055877591489547894380553377646398578980974820975530884404700128655532259365959971211493963613072592803831526070285426131844334540291398251670829109375920005900898584738339993848325628290714099888805077502168935274112842383618404824439200964673643162083352684490564287259923525269568108119842594591850841649723007399013768408665364195028873064177151517198198068688917436760076049811642474501175467781003918111987634322618922438918651250486311929602926454652227666884749053141632500962263636554258074819688271151324125381672118831134225656331354163392930412615069033562642498964552491301678095917311444574151482088108212915886584425597058577161533608603287526460439855515847228530475064240486477037264992474853240733248863387025416091495138140527561846537694481120093040838577590343209151963117069918896699873743141753432984914186816170026095696511794168807968241491964329485633036449428463119098464897036954983094961838972124514031593313024855846123350807275927204135760488699051729816145340933420738854371598556052038456199733110787429956117389719108857480347250213013584626487494928273139081420239857401809394368007024529555382391531675244871223662901986441549775501721907951612352190767913402087194039511651657021175561758223005910592845937721877488957748154824235950307033040304890518642147082195470790765698793177344737480192259054501141195701541825908257200455761494676877265478725680107783411010044336753887911358560542680116183963313254218914765215157204918221075127591548337288635342517708713000303217555004498113884679924949141816291261250748240123650101732541933182545163478832464230264152356588737157283665394738910634245598993255905351512347430885262808153325004828552113888348054137044183655173501366491583453037470254217917678438052336886305047624835446974595782311566495639831758597434848302095674909556508587527764968290548214143500166134889952532894842301955986729161608086466597654201200766302287699911904485343857106522603997459942229824591358671611559132568237814126879132387150908507970702490106109755393340644055830447272924369176214816479926798082912336369562630499744148932930962428256248671249798699695503541550738352639935695951328452955772157499649888395128240796895478789516832046789389517861232513676011407831601941428911907605786095072090344344253092254801716368479705166876491546277778715950541160107285094504939294759210528114364031085658755990544130715091129315760850483981344157439838383713075798693238065939591206421364013887178341353185499801902402717195642201276791999727563652362859152344992472510510638946387293646384221171875087171796403135321120513259775443181904716662854073549438108539672928435309258913233098960192362283447522042338083286816897821824208288096570303691062770826111369523614753478140874308274323247575202398986410651956747339507693365386895320755151693564982734314371779042142888110729244775271299335182693579664313655484181364548199310016175696872832012029960481344497205029810740312385744852562904882119942186361723303587399055044102171850492114004242116676262075328380715617194107519099162560714765308305941722469409021695211611868525125465422508133279346873943349004308899844574340621493437985326434055235505532841557838505438401995937324762087875486613421825284572708521052105114176423677593370978861199351239479179699463295076390499291607763727821314150654784772415278874921538033073644485308801059162101510667352389312757674555121385589090101651285609504384645720216029064165077910833147093396180889490785156560729790558298878205847690590816611992634602014812618590830730751183274978685468833280446159576844077736604739415535812057938900677194680003815269261718645135938125997729514356596972088945167466071371750460702760608686841865428058242978507097879285185428850408394474991957314201665671291934966315181852479921183463168095052383840929542503077353357155446142538561229779728618454908733913617628977411871966873591168111482982502840510702067604488531854903151304169915098699764392311628698445552746069679230395893423976630328621860063167749019658007695445672245688288668145844481229148029952897611386392508098311820265249393475415114820094898482588836013448779538580690719945640514549453620237583663676487242888471033868034397370918789598683890987047026230293192495222747736822014653863784760335671757958186688701751711138492359024798783138042096080236231051413374365845938680814375999720689622712731506049642032537750593521313136143305073863100691155070439370647069186092791053288966736828359937950225496443649377924072106923232856123119540907212662960799837192277339775935599685306283226726311567042794785020924921740222344764142881250926154420443119561145876314812416359912111540820638825464811460826360967688115474706244781996281968854564971964200647468378093727795829234533125126515654873650979090494978837990321201592187059881699437329580954708868204324190695750122611119009641671239828952265169401472129976535383993296316059260781647972024049541074354923912983800879770128695544816501553947338758902878700070562797249847908121869293675075007156287926972947103433044588405154061361148478451782095936900261537235268437013230578763068184280710515878535272968893543004091190486784842443593674841016404935702458797322231721130256170848046360566330178770723780852204456812653872043932449954246990921644748782549377633418254858998000517435604472977408594127960245084939963744818028882877727891161753840928978031364462150482010658418318393669338907233404940596773787490412139413774003404875337352259518356824265071442401215563377674993198975299375691162426649895599847472689214539298165826708485962620698643317414511890196057722860096066446379951021767100383908859547913888730856094037394344178892616518608555548937032198215532862327494575145818593229056357297638742436204833924442625883395452947274405118325545780310685125442827617164906743176232517089773414268838404540289672314820507610621289654633343715383716432323722485714398747240008833326097168867785462606841171144041832344217409096425184462058853794888576847811020189804372680754477919870089971338369923886965458186194331508351209968129073600793512956442736893841419160873383611258221172559767728971154351553322825160662828466811869163169582897801153721793724042436423931620913649244767736558179944378581253219120265358827426485785983081679323051202158588420693406438651950589474848164782665765829062316033547518249861558834703989625410702416713476817372790834995431908156346709390155651002125400170034355014847784888246657262955040800644328440401083527713153656491928398290427340618330615327416888632761876526532493336969006031292130315501728236964708435639045230275925874771447100345876108492831772039224178752560881179212900699343915200085242214543052886989317995359922519724147417541135584517374551310241457739188287784818609185809817800519561209987209305177582462991095789030382824866730117739468748485120945176591607643261114732350160417471237516775453895369503792960369299743039839211936330645164136933130166627971728702795551848962787674864703964982411184591681289727512292931352106216247708650344348655432879612456724027816059160109019996979602488585612224572058090716063014400623088388960993780322765913254464646046448672234772715047968927931886281276964640600995398677809314848556163468549393609299886646962966885556506984611933455389113806997471902726790091624210175195378105599272709524221978617102137759484292928561571287915045937758163189828941683217326170836109229810590240229936788516153373948826087997280312493817709095971677076022106089626811714013377116789536290351657998197306014899257312244257879062227466136725955374219822885948005773215454095293668274161186353803176579850062612748626766925158542913834250630573031102629743771007868372172646953722585717597951022317739002864943669738174646767796671991193592724283602776891811610674553202540990232151912888770928051656525411821330904993375647668843014291367340367852044898563331729507181389629163136766781052677858366596659658393168517950741450322187234547008862533913142309706902377154560349058572009697901070771640460715627967511376926766170748875618788044105621550598634472312190691507128898000308723610465835495060119988226766765032193579602320466664461134568819094065172648721082704804622986811040839251061701435309678799217757583472190430167524675308315201529843438004497615976272177238274989372050854266890085571690846275680062824856267050120223544665739461718732186019700190391042946563289196690823527566184690869467813010977802264329020288465708938951062930337320335096082408748511018414324793303926306808485645278986978927753150859277430095493774212767755764496331073495271377054901960708804272404679173574882778019565594262700592905423031208897680832457826214068801990433991842192907021446537515562260239407148832895646731909161452611569303034813880675422724494382828442014509300953184217128816214729307084500492295250753909906774039289774729110848152152437050259192614352794558749388635801425432108336217015472076574621812601145115746461938426497774693840629920461331087074524031931237700997157023636037228047535354293217360017290640082472393606895325798604473396585385377914698700029132095271441101852267259478184695321032119758893957035264392426896981701620426506152579568027653601459377788753121476009588446111437807257809529304143635980895096798703470653701407523064755505432674811892332054329731320464129167872888870506642206850478657789362287891250572721504058359919061427269470171723550255110173622794581781245662443447215341674904799084105240502033156982657717986727170588770071583595588947122242037437770226097333139839404304294268771881601357704731827151200316811787088040713071296806302819642418389878842313122784815945330507496483914119762071010578399641254354017261370851420825202501933135308247149844707938044045495731830875441165442469276035976103220119657673928913959315219010283971439436145367670562899187687585480346950427061440470210884349267283010766599252320459773413813829817614904482167511429750321152575012736398684123439606679612271552123687870605419581793266820992714306407092287085760190916923862262309504136809768167663258386906982985797272598781224130602103348195463503721287340376054254575935439941729046883051705771369114937307576077154675574617577548269208654535469857382028057700132459068519182696826606689231464768073021251327220805477523689371804114653055052533197973519095164915820008183875928126446270336694810471685744692105045483586404628511861805928061156250949698173196992974438786839826393708531483677191766696411716197025770561508367858236402246297033667081537580576681627660948229362996251147243112335107297475039261109175945619920904161212664406345249561543140410136888079406316658247138221807266175144592114717028763973391722095281976862058246630235951557004506297086072201474312116202486242840617859918707901473799449380799995928881605524510873729458202178838214430165503389855915505204014473591222891609025860669321899984689713999179693205317487477468564176122027162183924183594444723475204733078291408591418083392284571751234133005913496004857495170118012334214803707430857753216075139065084223729247828324008033014565040102245916787939343320063221773435764108713138971155094990947466357062131944497347317678018581652969929992369324630847323357478642078552275538559776427121289340348283921288690180677725741798119569798732356983953993767765992199591722807200423817984991867164823447892194416712233912243802461706503079845961645324097460010052639298310119849504420382499686187367571143391037448825627880196946493268896295602969903431094737824053471083484472578045076815108302515246852186293847406914714750232012152763972155140652182143496497616734197961645578250245507822120932892915840362724639687528854867135438713436504817392822790342112404783310327207285136947276957867108311645178738099905520643200039035461277840253161185340947641989222547649063210191468501320977906973008664881174674676907855946975595058520307050083854087137291190144026276631307795028583911874701916836326060063481286921735223029238042259284673658786707201736050550902953944191230526520190253777521463613779169881490947005264364313518117468811180580743540025899280251822895728560729099629873629838762554496657343705586022437916390795778864220975091651749908303181484230759178634229943224472932193323897733531648368699667694649158201685112981517133310034782688524329973331183711741774865271142754770337214682434376077489409336912024158467404188119609445652674671781926358463727689732277640574418673453965331277779297389941791093153579650654117762809993668477497136574820987696418162604567122991893632740358422661410839565169325708801788056952243249644323909371049750379888662645339862684044864080238753707722089167341622485430796533887637728988186403040527237966689219589654206083447582485330492864236654510875370656564866242216863250500767511901413336046139970719238034544290575509811994171988415379312685304332782103425025319466389252328968372593705767975093643642388194426654462140556498731983813883086109738044454669835555810759254629587739587823064595162494242045202126328182680096571137727606047217771231184930496528976512976288061617088715640010047996126483280253833524249933599378047676048711067894824789604281935535515204734365736050119584989296386491803121659546528382409717048166690149105155453043104984708957834364280427774986184668202985441807986469279904729171570421552551225186989860105161974713088592080820068983295340637687028847735929223117317233904697731453057039408537061192641686836039124140290341321176213074588527503758632150590404395846922956014837367123048212632084337963376661266863716606488705344580130318991607559649269542685050354712660673911348353330603947437628534431174136072122568025807025321689026390639801622164330266062029640975165302636317864681095825863331710160476822698764351343310031658074683469089153533540041819863781580205281732543963645614461334783493948285468618690841585091518903320629777184302597964652583631145097499313545991398785240441155071509345554423258039406526293911834624030303011740554091887816634117662527613785535313662221055402739494514557119683400020167920124783586264311546986940604897837961037326948431933764209203798650866860953601936982070785494239312962133094397251217508092547601013308552748223721608042775593854195195711748052535086945929745426891408588802649739861064912168182362794093383410559723718635312000014885908757992666237622981265638953477229659253326084315183250071743837953374221660974710228621830818221741537585267336231325468068885560039650871153698394704896624918284491454903200555172292117855888402481999510814302107940235507788114636427469516571990397994776373543599392526040705424002940867137396634809978229418084446339999118562989778952571208210238419389017505746327671515171321688173656826981828257934402969999239421993762918044819139514680930370752757284200847663548129454537734442705372992115854541227884697447915682274483030563329061388372925906115283388977174427296949485697377756508037053196021409208638288690812128271234262791095461941356325795214350117378445786495801772265005591275394557718563857110666708700186622873800331608056101795383604546855291239249469333816493906517817156648266590944553086867072412238930868259124399152746828414455688191613206460919489157328310754901998369533784056953572569036116803168064269615978498862468507032292880565887201690403212686674655128407521124470537120118779307004017974622588574074378153021606264718056342933481784698949875957759934202443755563292816275414543812697421688728551325573968250491336624319485280894448030477891004836869974840757121133257030771094870937179879694302432459621634719373969941273275987434112193278808615106320794212598024445007329633187107858499728119656972174674236720406033645591977034869232147666964954503349635827066443551590536777267249292053455770763026480029660789337118635047182253503220531246793955729284315017922225550610073958608640829156597927570306315515243715505205577604712306332934604385277658811961630284291120171125764706145048617793242512782080155455622815885718647013681040943218241719145069352406631571603990578908088116965683315298060590322954969398340657539923604698984323616558030873791393486475701334779171353273834316107893222405555831599914933785697113253321574047201262742518643611316149018006178670887035220855593286568939584852785950949467319136457068172381771042584719286627619921516297413213551096458130533771258647866319842289512161080466633405927630489398833419850573146890254457063006538667416427609071859317328741096346314866006278903099299964826070740823322294493330287707841425042511672645014033576814198816256051981565549400606400874899271511198274166622738731520131811092461370138034023852296474283370805988624560728026052609337174464183379799573177101257258778255897540879543632970466769356620070250298506170083911904475907164756208741302691900373710847259560896946583124807041694498851577805859490353789317936251838478992677106680272639904669061156171300123652559021995625018586888433574880974453666991635953597550724932986716113008977620255895004635519776789176697874512758563807842620790633151181401892983815125445467609161841603846929524671093306380412257859337490777389825204954559278984486501660005583119582296374544057811815500881410499482140866175488336624821140510707649128550451511846108907672765987574209855801229755049046396159982655230121946374805230037040923606620889142064360103953926198358870041114203082970056282910478439699766707454593730821821261870285308173984019340079525957343711149538715060285745668620989100090577802411176517739344638143623879705706910388375681416690664706465101856782216665612948394620035070113387287067293936462757171919663157629130823649228101869231140220212794066718515447403554031634736881206484605242748703329413243968715602269690053758638220763914678808317349203917823963937182949468282432392296454728692363588668297265951943701924744673886065574964382790488661537135563335982931329086429089398227058444385615822851257365289564571439508192177535255653090833724076117933292192445689000911094241737949146542423827928242635874663207395638853227516310431249997612077713911127914681688007228543765286153306384595823388208773891034934891742170141707862971492328570912204509049381407718551415799067783433229243665842512266439965905856315647414284589991978404562909136996700348399523841374516437521352286805386648858216010500272496308121542262985657093555443171386557500613782664577444024896257464860284996285517362678369627633340981880003252916035624858523229563460504574254158011028000343276789616024680101716406187528398337730932891472723755098890397034297429802923403404886238220839809437517255484109484443284322887313690318549337698561737713084136193710053619852183068481291618341774843263208858144347350201203436777356011836880438020505947566258601601235550249111224990280692803848331253762264830071908455347370971757354553537403410506516871303425556436833212668836502212565368223189355839207564719855683694225107344831398063701176113043684630544208784909179319720736574991716158224944701709743960145138048061210531282802726075650735830713468130623095214049968840339087962560611713736406546644432125305305372694833688463463700657238672714276698109991791872783637180556883469577764590398848544388244484526978492977098888628490371382194392593431564750793124056744235707797037346445396362263694899141698453381903757228906593986627457361486355810108737891408175168191588378051575398052040954978726892865342492565100875429590363340635601802781516527318406696483305490099623281062619969490771641647358712912521453309468742423832673673671898440532986145276487139892054178738325789147724060073844509276937042187217516954470032924868348639338426683242939419547719089514780514308348833962614512298696182880483929969614043521179238713847823652592496030290645748067655039333260615290796019427341024224247207072317630491444950269806593796989971753787062170118831948939464329073743041127614993503994532204450371444283158533729597711029313071912777526876475194229902160199017671205589577897563256300225960501101581651813214519557077961007243675032188307967040813109116572142622445416301382646532690765160504908227204533541136530371616176831857381151873723645771914873282669189280383840474461002931011532116321138491350230238175493315083896567177030827842670001657770183116740461394214346645024346681598736325527759921696892756764215111899748364527036208806099950497319585645658564582866462845389638566975731965832990513525482140254634227496941722746743741614042873636810619211223851152876979048886227625848876906273849050811784747815565198451953748789298775670922986744362453358575522814761142861420141709858194430472929447603732330095326462964725887308999982614372134621855746879478649662812581766802241962975170243905336343570541807704386637583253286673847598034447956521356839004573420353709027058279881778310351704209831149594323011209265553778715665974317985238177545996697823501729509165087654122705290685432462925418410852699388785984852111741334963180411923774323068427116764318315621757872178136587545944423585082224276976810881855139293089573801263987735938164142715706387897811269659520003251083428021717422621325996038603022453396279278727013735121792151283136566232935900746409114187133685881909689577737414928407229656789705359352319489578855556434139694516575938619013909166003081157995639112540356449689859880064962542063628961548362749976876441978178612151807319183283907970682376560161730485362657265377010126152955225417446338748185596160727349472607268811497682973088354171740365648659891424830252416915474644789021868836746247746276097690746996732710017292145249166059121562977219180400518105028810826616435825357114817233170926282275483746916409230169351516737750598816748784899915590548523887822312868356158044985819177378838267006233080624968584164600020644927629341376203466770355090368990575657094744714703770948279861509589355241864731262870964833485826983779894400451168366192652353017005677261419138920309306267042104904940768491502084942164925425687217282374408644824412033739343246739700096106631251158894820597751047202260018908001799650815228847892877084298440463053126190071027696132700234843495685943052024928499089410272851181874820611095271188775767994065089741574414839400741188299418014986477618772062353627746824584120298287291433603146856709352500817831978124047977108989093913089432494837437033354519995148276744773362322257795973532888874848270201633839316405174646683765812168392465162108993581598279206080002625254198086185243262671054987551872905675068935191661871427589299200797795755266953954452042810334195295568428733063652489825377244760022224058327017842728019761044513690014116507552347374061509710456780481591793781254847831962951517487708933859422761807264234421932591048753116235889534028349212536310617598286445906079797141151947792732055903052757894768026965445880451710045844052555110837473351119201641682985846632487113006456049592884684749665544403702320883413141370771592765561965665492237192140136759660680878380975323182510119791732202049650321081030064052428816582810357932955411004817279692552622735281139328533404359596915349539628273910682001216946123243651158510784840760598793164690455530367131022644398380072015313563695473783543305462012566749594355160397088789040569903132028971778094497213265764863100569374437162629084753848649202788490312531341843127968504879335308630272365966611733467289051912838217448240636552760950275514883630914254338207154751762840888844393367951837221296011911993020085869554647200651328414298095039129257041548243492816476007693541532143802294230778171155728041250524661688354915271302690743324927101760319285398622487640913592547232515751401818108008432264706694439864706629757071250342862139536789032204315001233610400083792615725359419009268751739157534472780955244789306815920874946254111983722561886593417997767168973933897211760683817430004823842553494643602012600579590400376293851386456745677543788869918535105822666745941440944951765112155910373085322929011329903385480614637859460397746575929755521402282071670003729049390568391495127199066265119010865074436818061202388933817105994448421680348745737842441936942196934633060660041832647447847911299651187880106778628972122144702325636548941521838248980948419956830023591362078498192854916693000960828430550193277441236714154268566905294576310255386313566093515820153635925802671816469663174758935824772946080458550452746438790752890555898317064446867527757356998871563536245211138498883145804828860528292218224552765594496925413942130932843320056124292951193910565923340752230473710343539323489337024418721756473288599134122529214497390792834403919631218168380952354505820513221367021348964770132981575123458379242801659542062331151668930174441425188929449133518198146746770173265728365122046363069023505948969869336920163678955517590247314380436451771031441318907941926666818948114813282217471649469794614519164104115312080895614541880891311473335117006094050622612654882994413958737450704940827212766516095969149761851605789105226944317921278062194815285190720398427327678331307777015101023052018466400718065766381534493406651493214917773873061492303004530652937077625159289949428000208584344560990654673526686545811568459972782700910761411756527331938138775318832034632066023000123802963445623369840698546273769066517877433806882454479324945062921426558666870242033910666932126854455118809122566952126935707734100075708931409044612833444701843704369538312411536082429488872246359803039515198013349046178074640977334946552456509627259460220082811559833948355391353534268726207135737770720495546999779133823769263895998843376070684864293889841487296985009720539663629289162366176924505010260747769264251997248745025798460898341229553711302452641630853416986141427256376411446465115660729306517990707086860533449805386295710575475082090403942387589604303864010204012295370703369539108361184789454850809704053259281293402860768554527479438443447053160504482094172735895571580740822210603107215392332422144538017234549135951508176627847837119183351721706348660845708200470819608064350470450576041582224260714728855446741192425998259804779114141221420844101008904333173690471303217032927574701999874093625752079125325902835498207938515781729148529917206044761587040006879507339637974725296113486301161294977111756179060783616263713355161324950802911384017634218690928746477545295931469001019573994700478467534779379715899989908047922740181618299110333053014248825901419216348793831161893840193987147378267659169950450163416945972661379539588107606063556107634865577696025172672284835374585348429849532602838989889661022922038964148555710006619921589858734118039361428917572259173057379814413480519453074176022755125289726081211146990004512662718923432732809535502811257658559790790573350496162184733592238617533160806228663011961433991234646271097880795325632779589396578429371027279834930936769616034677769750094709128321382348611598497502044205936628119434014403548928357403627552582149388458901611233031546013848762080063324344772710277957859044877872376954055407617144426040586393170490780743936471822389002325743850996991677404225026360357383484194046051115143688482331363087036591368442014496977643815556112493018877345008215281404789183186814085756533334580899867740641596708219378011609238480812110885453340436307608201756241839329319589651824885335904617632645036919286219864992601488251484301599667198968669792340033794635178372671242931405898898712263014357313064789391036596061591901882543638778721372985815476212496608175043540254658982743806136937937460639409007939003844423347764974256041230363817073626585327103986540575971208346206588532374007337496642566665952175532640600023519754653378973188072088103195897908942999509209732240925950341990785554229580805587767475923557760461138261952440005798648103431510338944853611913063804740807951234886997630464184050371435956138717024516910335934299245861838217754919507910196258884356727754359688318295244234255597134318931363797546088593229722863685127390541416058630894512648625895180825493795002715549712143428922090782505633991112949437277511952122451403260850413729461732840383048883085553716845026364437281986050273482902989406775530930415039324991421048498607942826487351578859575106783172492493442435267024871198175782244537543012988116998541652446003701672557876995749365106457693722963971340137255046176760092401219487897150391338544151122643781693308876701471734588714341507634549938749978048804503886211109303330325298226111728077666222164494494191332498617071284910312993216868035225601591949661035129765387570407452491746109427791722936872313056359566277826005189814971393546412664629326116865126990108663249421073242322689064398701268193433510876117389360660986858004563788849635458657046001683004621744948605961273904971399549584168375126939193072137154391874294774959412175923318287282760500311670322766228873801833619083202067545733159277301174688965824709519477795993522598050520111447316930875332547774065643805738033426178543215287052180561288627185061226757993067599000704545594628637204115667028948317644756636616755685674461246479333987971780344877610472108306503627855459570029073499827642353073660727583424527804723276430298351905082116609111939004918144266300293761208902426828427721963723691572427292753356140762107867744585694962098806884408515998652971332815845944940725346545277274364028813122814618883567684878785461139749393523391838034409210149100833955014623310584319576538085783824675957596070601704776525254360256908846303292486230817086215923181430729341849268394063850114798179169221506164897325421353897863915662863928030811183839714603711555537330330783933955753975950657314681511728078632577642475920147101483771432455727934574672781297389532165601833992858754610004396370852149010040856612529132232077842732382503930666781572078603111519309086339956766254610991921604900065625305201992433012142679856296502380094824211763167481950494937034217200955504573334471115436736782682718043653772988172290411607130159951923407853787534755062747231864208344016500811552152559098586378960841210668507843373324122576927065548131130987396829969754042938573783361920127877177177771758633935826806985848449949600675937590647730378631293684196205811371037415973483218292581950431780584197903036017403352013528778334580684321816681187293252681407139330119430240395381817818432622838550438574247631984482093186244545801675878458473311614736682603148077507750601569594644018648985285199330252538189542736774685154979434704849733080196316728417535350194016830078276807137256969392594992436319128660313806623035706867588163538896427098165027353820385870439264667173118876863461270922884808842320959745505647253038101821199022357154376747760861262755057107212801961424543300234255684306605336482234077404809301407206731866260872757795696704849100937388461539152284991311341481595838793873761049162115887173245813937740264308760741322418099896888867740951613947133437400523241713198824618184050112021378630985534583895623267817308547551176249990543387469601984926767789373877583994408070661574442814641032145012382949698489919705383975344822844775594668394968317669254963405413859300732651677967670220013434190197364640518263473737325859562543439728258325321537334418679328105786136670000886582419889938770477611866516743572960527932224906910745381917597434515652690340289111763127254234123518810893256675578518450319691743316116592176293095089936000954609264828280954639294903026789619356213488782643703066800655729500769778415851239272058870904052430325316781399150793517742822849013716840762350954273344421596906919894483339487233773580424317522664667041831056388223664768529136907918628734093820759059564569482427283215908813530252263631985537923364233626650133281481841311278474337451681306566388146647033860957091658106107283185018354993639769649862215048206305689759624755650833241567746275695081337632454203540808890269492897030028101328370352494343641982812031339832947531789985029290752707260154451923396952911148934103202943110950064832593987315286811441457439413779615722379066932208059254548533909266816515441264181148788704554026440797805610020410862055101074035398131161905782595874450149756073666131928063383140376535077685287689077833181745941536161963882290634480053285511313990908893745953622693229821944434407996661132056759846101306172228857910502988429197015302511590718110458867962466116405207851596588821628990243245384757958771411798884044115240002039411487356872252693436152714305161148676478397827281375812343569435735919172443380433215838487050650742204515455936043960408903593405317824374882982932961560564052465695420397034015040927172323590009287928345357450924418756391606216492547481654452621727948501071583599640534139828814043320222047252863922832166211780069956913079191095906349201742815946277457298343726641819146931823017587332901485264137486150044954796633922420456503357262907422759945078715265726825333376528359957433685110963014467335392532132134344698236885942195564209371820620701333448379901775083813290908338183725435788487921346487558738232104319839152833760913543367515793787203992882773252979835856026451752900602932796888214439096806433071491210165898110761425270845693864559675277962481223780661506267583309110591443996937702463648464180625920753550110285159086428677711020958363409673054300390737201380846417943015090444969289990534650941786135612728480644111503538350419026283765165373154043757963488911157259498362951880757162527335715498944656263407473677264203786644946153988242512524642183907875950266083143119651127532993300149957807669556828500245071960237655009004014494419556974363907326510468277676172913323936754733189318170232508044798615742997359797530957300930070228155992615278664864930734203147563116334537446953240287428856029738343277753942362741222807903496200726718800414739142585575735569041579514417819248287641438895882371670226939710977406565254448062013932563088726624864449774938107525362347557461394182719438782574303507174202934207558806471013179128923400987694320492713040027702904246902145166806657516540983506623875990686527075099433325542556081110885447793397751264110369607939427681306915030724664893705171242463680938919285622937259557599669192307557564588186251720350706990110749407018246161821198908922060850350702541717567187029236546623687589171328688950511088559392895522088978646482781160124244802957381308503000352795960407438979800861212589280947090711795069023147621866321946109902139632666096140054513603272692805939226092160036252152183353514450945815540325070482805131479120416789411224524616093627384285375391034707461564150739446538552921572234159678787906748542772296960644883869953331235215073827822594207413651975346740397851548973917440941064699962649978018265949656096955578714969774412749511880473201445014284940395336637728072182723356480835083269210591704532711928794444215584579963125859384338846620828254917775171740542927612231390926787835619771256151548206192872242568954264721847376742659094558272145509605408751948466583454777925590886184273943637233366626367358191291055568717118342099254062155115587269423411796400487163178197331528870631095894831629230504734163862397982135466059402459809278561105911022648620589634621695935236109276253781090270689635971258482028623982597066290191152906725413348340161286339237892609724344711218886314679233973289348986628480273536852083892134870172941813169139850906045907214404843172725487874220652929554840316637156919392830759183638553849967716494557229914445974195103693170203260141946404333855681399328976030352885162760511697557368112439340532094922526028635079917013064735085120058233127899048217448857068781312061037795396954182387899804557365107206494444838238282686770261235501655528509910935244274177361629678400121987578687778607442733003181960796439061896220316059454833648043290158904588671029063197970687990522251552150729109600293377998083119313206058287264323631910619856089334516946912931642813670160233899184105590572601638421203593797623943464854464574358286623298152140397165900108715332898055354981279523490017483914269932830602568105425047026991965437515446173887750712562087427204495332109754134013958502454880581156820590863288786094941248965042466021452325404015765207404994498073771255530923269110814346527428370417089369807559500732325456165710461018788022148131318868458577993003426103120540335859833780945793559385554653428266957033722692211108970564115896184589613129540907080027279953350272595830276308021743541807095584689159205626183449083268906319312510005116417829411903455472181661338654630180596001748673332867483543080829762849750357763618589029763652428938844504649136624334395262144125631430866529150460803177253370768377203142707582666819816303998669539977934122803488594060999202858800072336406007940911288856204013327269841965098705854006497213407576545627629164913416775361423772960554056103860571912120340454818387132392684987678029303101890953360202554633323330615347633327112400761268172611537588156458464600093945873795677850657276785466630510955506854125476066781227849557395203852623691154233685224741081743968225452746864444940017929958789376066223164788508341994134182043495253407833942534490618816070859411238345591827183804317725849598039855953872490793862801681911503015395961999677053602466735104400917644228267032060667346570769060152024565754558321832274309332193183517524202948736243806160371216785657952860332862230073050189678082740253111904795858658537985570730588142698192530391265068364413156645780937221607037940956280810436228177606223604239274815820568030578034305216868507638216522693069241184102207803533356600615068531578265797066539361188133229883685830944882673377293732133110499464662382932721239878160617966614162387156584978513592667374256757485137590209488702238190208947173041086556186690050417119556740334530932313097399109371955554620018400258342831737142460919364054342106818194795401833091014996607272419403578839584771419906569619574583259025158044554301446115887212921322903391806776949348907179009648533242599199660834183836619236889541986743485579902691157522038218590621166115668831446016356514220530878952077631224018605691880205618532865806530540144128042851323180846803435938821935726661428757668489988067255113904755638271896487012176301621651239097231358822747063556781194468360236999656411951278278872898311574357545062424674840701643476142247269608644300606049909724413299777364509232132852554339127821130774519503711477711209220901242840988331043802313283931330763490662265226233730034299825848966802643708831898465410287243453904224035262086339474039113889056773383770099649376218290495513913167858090740806415066552530154760088973136250136299977573288836815371654913269351739887071179129498321877201641295980020410730236596912535285574866721613237348184097812301517281366766459228589962082257317655072235887835587347511293747542553236540869629438291942343674272386034951544080579378360906937254211007122997893960323100484766012334036966639067184848336146512936646706564357771935252266930655549121120751930893617296070541411940838702059393164018328539114356203891491671415091034529927836634356445708907042744409991612597633553284398717674415181604005878425134195306513515585026383993728961721202008751126799044177179670673288153390866808145183051961467892174773703994667441979181465077900493423813900244055444841218105392480396127723770220820266631363349357477347110755252506779652124224133524404877000726356345146675681186648824772694080598659882829034762606700922576011865389811207643337321067348871199608290599226499170094598979621964849193505257849148268100764511731330644908616119287956773501373219805994027836198630500084588507666802507632642207543521179527639628071629827224278080918545963901394890116535106035518695280347468774157785787758573881849702526614260622256947714231569839609081487330481067082347970393025005370034011236992785936990076299802332200456156616376027296822129586878788585996553930773522725751274932775806037788215112118647363299778774163612107059764883675708263605019420858897514946774281301377577779101888307667705140146352428597968878909762125053991109580210620823532393489756878834282939175196859791524889248623766603693979484949888704332240360033389183366161846188823745999148628043875309012147917266898136230201160467554274917383434303195053151698243332606785505341621404097854162818393657889146731666900189491789936431751288376790389024927238185687570304454029653062004665437070213979596031302493774843024933129575441362854435892185916208930362111266837833439417875240697850811673102527728295296758589400104700931039421565740267656123914829772685971648213067425868833788791141521886727513768116917999697002167174861798363994610799775105012573093182766645388299770636821471121020572018009549243301603648740250508180896802459184429682803992879338024868347999064662944062622153577232954068816950966631760599770302198573322974287883261016650476563129664026070133378574215541455201048097335968554869749316794112981092832729277225267300299331422716107388056443514720556967296196656476013135660006568279521863798190736730357559145033660727919871430507349586726811670167230136643532907536552170936342895770507963715466766844555720178713110187541916600280911655445003990581664664856068344476140369555049969392348716543199877192903247556240507031126172415593183000653344619659176913695245097753348891932276543396546986892725738306612091318298343329349106279200693240362137925621795005058594399461090588515536828276481617818645111847868378042987910379221205634994147727269905324442814363462985014809091218393018562601011652533730313262738265560454084714838349581514330672081168795963344643581811665806105907507206374521098312522310110536456404552592111032374601496623316778222634158468947029697599160948611872447536929080858942931964395198774762830895774391922019490775437014125416830972947778682476685090869115569673817119063991682331919300865737979148603396098707398994897598359788675523074372532504857788323293310414042398807494747085804176719862715330841290316752083265960919691707797932190370832487598691907846156550518136694925065924348482337080542073073006145289293652169116920599088978688859739668444152246550738314747875140297709640875945131789212772903320714483732904879256727240759357135833585601243424592403072990073539982008680707493117562173183528184563283685041719016866118590124105862626713749598186097496701809483101181422001572953710488207896454208407722981229502585639941449482648824317993372268525937861310504112956805857169540541186472636988939163809271042710633442407693278949345405566504930960618781608712118470801786895525767538134864626297353741920729370058127716817945154226223707209247813324391385477963020710766799656330441574618279452663565351899393307102024331999179541622181019235140352535616805805558163710476194723588915940996112304728259836706155916060727224323140205376174284829041348799669208837754766921263090035203963589655106249864060902743718497081131357242777446314986600276131470298062259849801082363103481923676056303480289737920127041510529004539146844905040974853581071127812835959737024821330695294361728493184434010113019034645607514865144757225253795270270304010361505827664586891769388729718894172664542362039240551960920648771371202587829674590851333487774973129400490080549133175569589136413985686262805160045032724859684376565246869971653091066593992298635944009247400505794637225208610484479245308014678794165097638918164285676968467442160313782872465773566280611133762366690475252556675637892597446827068864514972424053473570550931169519712667087545639594840009386430533763528163183353376543732034755423907169695383722570416012047567408198004217198898025917295216285464532115951285740975294979801812869247774780084687087686164587956946664130709441051425349807778998148841485097491289123707462531971261498605451773226821937049569974677916807436193619704323860147899829404805431419746668467650251777460074772381349251752011054776856400747413572938956742780249804775275621842923336684639507450332430601784107197878665339579343391079959701737606894917909608955611246807911083126659043335000154387509179137683468568207242000198271187303529866878184819461466358777735582243658879873990670096605411690704875910009452750016427450473268128349807905839720267973735905486568926991889923739863134513486571823407671600070194565885616512119866636994660244144948239163895484756703952179736944952363117780016256828130972034581047639181549822838655520505138410959307610948033150804323626704121064810426296003859992608273689053748836976043117756728230654570407801840751333949652532331336332593362488412454037904398912692741799526459745929003638472973899039314582248416468132185838938112680010635669895537714924681610966150779398416335804594528881836540347583283032991940531262874617243460378926227438462900516430781418135658487247704545945105356102616438388239028015175731829358421713631234071928087193404138748587351698444226597544348213961013212436538362184506674050038211283048533152414033311895253030583360828508957317706464634544862230753326033248649029984100728409424019205331236511496298569948610654946115311159246587725608395404285548857694621359737355266352479791638785965137438781299420703661548133901365615346073065064220766777683270230126147377878902997556027807603858631415892901443479761499115735365913342647124836746957124765269849421052759818483106040974762409134041661175366402363417692646207016078524560989362783972828556027502565766428158444681930918300761632411986467691933549380471238046098304002112596490654892370220513580402608488697969531425793278351107843493918682159674615061478457845138492423868275822377389365741626714614955632427149266889220631861170905592185475436645533063202775621060667716603296516431663855607425445967868240772250753558810381227108442538706640693100856786499215793292057640458885025360636891386120066293697459112795035619559032231073185747937806364244272174921327291502086503884321216308472831421016489924608797804364365205202740488332680358897141139567156800201107342974969076397902635331185951552745612766539925773379979739282885750161109423272172447194381979259675656064549316090009150390127701440040296305977067482869687895076968028939663464238069206100032010045001398738436987168953683536705245611068906187495516264572995240790413774105175028409482773443017468660079424858970485619341555744466755376086433939274699760261775205945983858302553725687732179846675242951932576006737985520350618578844148274755967783930134741357369844422971621417308331462960200333293195240042089865479900561783417424263141180189567357640936106686429698884878900350601603599965796832507054099835994460601272946399064883619248896303759905716354040664594117302160808002186239999645261627244520302868462195474608519503659512058877085902351807899463228319788252054753936027182117555488961465530317662003880694937652834627987303412104133047007313578910455402839310737278944916486754270955508904167394318249483017307607242141377993168693977277527005567416039613016740026712825257920314180996179124813855340911821052134311866807464002810263443281529416225191873988055929533692026347057243036238619493433532301159256048005054493030378658653957819275902931529253048831454912225863193718271273975904061039325546224787557798725901671467763055909902431523033546891776726874044465569619285346636520746317716374597064265398571879751658829848202237308880886347830373817849132228016657260319373752693118297436835905077029859910187541144925100883264511144643317437974767721567783656076111017698569677096335397668513250603454651574515057659647327592698986001044396278814605374190396623703905588909096462593400552841353460980039696134888329139165048316043536132769505653492946891287413809391830848099652236729353988747747981102867872108898166078685544128471028677069344106884397315300072499622622942351048215679010056686217345544998986065538120600287175909923478360029213559701087119850529385332209716724760790750648249335826774333387294602334115537731556733980057639653866009226782040113526356278990354794948909275439482397120657800631375835646568132116371385687707388590067521447964885105277038459931249292001188080350610751506963465480677912355981640837861676951569663607408597904070648248361432427861602486273307313203767480963600665202874124787691263682278434008520666012708443580907531007276095628894943817333428182846169675955553137457154602808399111442537999975183937804336329815043908539066039621450079392122020523180883286078777973620230969419541115954305536983113807454652497339678376745745005733401198504968204837763296612894186076624392979011981472243905166256290836938578285852337755829987857125064299071149159974972789752594620463504558145620499900991761371622628235218447007013225650181824022047728125806444215894494099728589406364046074543385092776098532472905049462474293683545409529738030037513480239143662670541798148848263809529860408044396702499528346830706253579313990595004321341516163257521426980585929277116586806725776317785189098578982389382396424112886887798651618393348940448811915729309244434820276903425249921530754329474196096137505499936834496737944343490753081380724830272753293092831481274623714311415617207182696544633059087969685697802204784666123130132500531555735146976575504993926764246586330799837233969894031720391740041998405950078780398267226263527050962748566775122023933165027264850504204974146573874324676966075457005100202702520846434782684618837642327777681600818395140929824785955176130512602478839317215803283544977213267390662398547772425948243437386445044087695462185015383432984994820080364460054723549376387038974562464602531154401447199584476936374723162356860151557441329300590754376444199709719591438492233900628099743545886975509655693076229021211077721743411650423776214085520502324438560487569811864838314049843000082651076999188404500876459138284942731801914517921154355098301152066504082244240917757908720566830442475464685855709448933590455634964309955143419503698885571206607886722238685388832051662988393552405783929420268025902473982292082283734680199292211574445767356335082099023189341345417669505769374621388185142400190536846992949018683563799910943172731981813967366055514478944040158221067156511759773198658118025441720684673662586948049325203684784822542828547928563457296199326036232821646145112556454179787921649752331951034452393729644988036042529953232005305164556799111750464864771414561970892689506885720929833700654945209510268846432684213521108809731125066765798861036600240953083349128636958422435456385836314623236564520474105408676816338365708067885117321124499158079527292929611334522480434103930626218066500535287467187738004355307028169567942669623278095703014668754630776460808735362798252258420059977065331799294113589070988228701569699993872428968464892834435565370388997280549812567308398975488888307318242940950680367340633136911606309435215445837298872854929847996547854278714197986323299570171346513651058966129723655284046581532180205451093748764529683030955805228000933034399888905323007771555062576878219247979071225220923437072933213821446371300143437689180241120605049649389742610661962860556161533359993542868604178501997559241281809396973457504459771338676102083831979733950421476339327782488899951024595645596624167148335205818178997439277362563206209472994985266906800091618884157151470361607744774812617281338115836295183312798643515829140916013493474049047165009032170723165198746560758041255967221390958888414680844778628795210340302036498600101826157613134177815660225160098826918432064266677727613706481803842025445152681866065539318934641449219396599332968412435138665183658363542460345892858253438660005488159135893838323009220710973492165898687271482298219898827140272950885013119893779272917134568059497225604595963825002316933973206258287117483385402010551917498431315808240010094025412295608430353311838244204540815352758736096182282467603883868107075143930190503396879274376011573888583524000631340196484529169691325161942458872242145915685828438128362077749648927349131290317832936766302077114222692641238409313629690053397487095888445670643744524483395897708214098727773187546962005716465452663100928959602026039307617216666942098424073396813119305922343373622486136493071253710062023520335507870436550425406017072010322396712594158060602045338197991515205569488348728489572332229700417066506222912035900419695492053075567967642830587695004916901946139233303371668632873495365283682584350301298036897223765951406006209537352906338220517215130141225637238181502638054504932269872273355997876843792405063643997293703986107770880164807485479873505356346487919202406733363167658378816682264234900209182931673545363397743401158629817738426787856311670005649091414960430955901063886013205925851015430183512935100769588581647340891186859339120269792685202772283246199327180174302939621758533511064917691402977287491483217691618697044296025043384223095404452847458534715233803943365542324896184377975090298224668456254679858152057753748143679967785568070543346796792519771418693165495995551615680941976490624009897595909953695154418398232546777452300448736354665331542205453596633081504272116898889931509017117381610042020779655823463128907380304275358952311744470467421114279184151844269259546926488307540919212758510231477412602561110600226145997336260928719664828938634391525193688515410959948215250663159817731216531722955387123462044735649467683932352360271645166789759123291803512766039643070218788046093092604579775169111603157303489155424408129872785104434514318543773508668338247388622478113320727853344724197293299062296538040550201861151096309000818362887226578993037046818018001867802112371063559784534402648884776665929340956525908945894887334286864873399958342289163231583841884829007784458698890189678740023537923061387570063470150371171067785581192464275065783648033116843695850752195769431312074548321870857840412681974727680398284347288638519572569211342940032584546823701035375051825498513640818149621771119436333822746641876298729484726492494974381887273104783784356512183703859570259603429760378428009698273708395846077600282176220533940145589801806079328882742595191829105573230037787917515312708160994002815245699841283810873298137082404582930297469670686063168859553261309317408442034586665239743360615043547181082142051632122603491699120141865620826364734807157556373653072396073754910528398557699521762651474626946703370499763757203113879665471541390464526225928936513596691905752291293450363480321648550268505667578867620552625754337349654750930327141714622710755283736701157261217424195649032676228302602691826952091011406608938531960005979065297867963048768366939984646729551824366817807193294751222730276264013408532734200471613698901992967194552578153810869558216271747733432369233757614397126569994197182100232425738935100583185440984057137251211243482166125822358993944465836215240429339731807879557619594241747805184763978307981709720791087489371376310667288024524995043121088167890960156867394468971091448570644373223369433941197946095390478652721004482101950107465466231380370674726575553866000928717380144218407397038105017030995081526412018926546331887534141195416500403437213330978621113552920792182420148586827977024004678377618928440630059768572092725904165993084978660016289004677703651421423114125429872801248438226413464932754804868923116211399797428272084549386066725400878754478273403542905147118736737171118269921876891087920716377792079998342814316353731264583375360088175681125239270428820425695325422022536773578228434419302728197540907445489103768355411255570464203296932373292247172342489983475366599683298697349565248243158894382901940490773189238531627923398224035939872307106299354737242012503214009958259492431598736717670016446694002174301588869929527209936229125439329658606697062450476714376599815487497059502083877507326949835984962460357425617274848527385479746491724194826713149431969374872539359480105921165733087571671735561153853346801583156664953970317817163302792015878554123079222298547480278053899408070466291538874605621905495449503691584039518394404468668328600227567527818846393935708385349939212053584582392373737033805441529706713882964039326395582453255080473782535187677395899281578181049323457443390391488904599385254600502925037462840140541370413785490375435586569414241836757183991144197726591257416482125233620451418071903093089773243631480839706078904867481870146607629457112576698805093848837553371317459519156256906576758987364041274948771428901427750932417230333654140845019466803725890280080921044809849291363065896117021326789059258937386584908846154436229344443484803820007745375146089930085086116266277609018083749308700835832815770568280592209242081803047493401503121920660996481476782877794742700076463398953719823904405658036469569666336115810429606021241643193013294120628480748067850129208961565209753701220005186263806608231203665307531786862970318360882737477965061850221546141309302461897032659723651196248968464194602967777120272120133151581187735486502308232913420016924732199250219253873444183568323454699421346325562439322246019595195001671961751680202644827459391138076626116203603625216229118391614645657435721260262213513301939525913942393453174295214937653231773849030085574666105519943794476830434599072681071206761999828186362325796375387088362419892495182483487870719814491005054319214078193442426388222502282280260481479506546930929488148010531223182678016859616536779022665369993825908582590385592664009022731821398667469633801722829107073473588027744658062060290398457354284714577023407216492498802579658084411993869597710236568230451378805211994725382508256852377261670223099630257507007173003200983607856211831140697324742010498638920902289517927954802519372030971133705801969782196682613960557088360103683728172045868885781360824235626501802628407980944044636264261018660980304905485242197827125386626787892415782916059373027662823546879338635880699674689177211247800928890471034156277519461804462108204015122759168978560636974747014894047528601859627669989187292903881051939227799693022929705523693382428920286809029036769436595784821695193457599077167050815453590974628694907929998224621728482581032474265755690896086006491455478007895018683741749578750788732609852493249695121026943736031036512667663333896741480828104854333247295258713255549388964305986233862083719646217914584726940789496854686575687061177303902281433063417677530293459356116698508002539932663129405808796624214306156543614385954801844923569943362386629175606952844945957282363960126970212159686116354481816425370726191191958645248881744537464289138293005551115568583145790126952956266335889889873025754747313941956644290981446114439063906484633306726911661723824362289710893756140781657842986923551714723977696149417887317379464849364578244477854269708822059919458503295891607646025156147232301979403823844784319138752834911401236880595587884147902718613463391033848610023411884740228940703424711552920406319880401638599296619358663255349868241647231164225687051976505414627292703117539035737845948020569468023910697451646524166162771284735398844909644231918065148966443204389162215817622661638135361238466124467649078154839783795281039611847800219734445221507598641977501812440864383460265635014430815749479449861901117642980630771379516658879365950436834736408793072048283623959081869420310332543010900576753077469937178709232690585415209876649271296324018073652382770864507421656066255509765113559685983587016734799839885980085233600959070415296970640265298170300067622903865163425371637573086099398172701297422687886037057565815504368131740037000499016245571025997964278473240497229806023989001923497880890443165512359624620782260196527346047983219155706787684493142152229365983276207371156214954870330216116802500934823089576634083242765437126566276177624398364929832510693541648360073738352048397982435748882380660895545546727445996568371982594454005745110988041247079331341865255879614368975296923724680992747804299443925845324593775853261544760089007620131839930199633291099650904685596929669220265206429997401808636543799749149649440727714643921710297438036881768331082221555670915922095335705651045603686530715729429984741741928733849015949914418187173902809725171931289798585788317425245630066199340720167396666005392834004640302039102962795464703880189496528375049489203740951480943836913530495487141824089890997532384196019108528671435018509407423655107726943342980120634809950304552752896766211314658335219989038766546428038196316240856368096371812725293697710316987258157819017313887862829838048967341180928224389559992658089008769031802433326636950532911703137370896633688755366505122655373810506207756070528253188949614052684351444479816815290695842296316724655661464715321477290856682475324919247436041899561916645555424580676341738691846846847202239383760945051241948407833455974999888904975760384202079824031348332967693828208544899329144036652344447616901250093022709935731686050094270910614022955242236716051853657804552619713464827664557278524205463455897741903711165693447302063161206494854103077764963112989858959938309872038197152001369261430226250143571122635131771956037677585740778922458519869950071958804417689789708470844377313231388113008516040029798014051454550772807558286125346000039719560888928616995794190534758818409979740897149161645806124379647981233327937911336874833585799714080109200665413973946987697615219127023034039229112169105986426695494274874623321471617578194464516779050576156251783460860427829822724352943010390009721334969142704913271447406675567809362434367318024468134714397011444370962641337599005206407475646803914820671937114151673133811328194340464819821811365585080826234844952660176143001304409200778398009009260659286981893627800667899877128476202353210377558245763473816838742203783771041095963654283351199324189287296949020688253497357198292938813270557379369107309535558416135540927757483775647810147402103877516010473327880132780282193779450318748292064784929508815972891778247213884895518299767216136895947447675611236548026024916398593295945387105015197032816359580703035260396280785476134153698311684630193305141629722089358167224984495676182695380917030218306242129508209949299191553970820012774037910751613896262811899885118464055393224142045966604894737630467503266774319011485197548996353087467026245997368323135295699927315798433329661821313511285545831753028816552660702299777182577223060802836414200665049821060965165825015506780162612879904558789619040784022601773913736114279010022097487065373876848788863699523110200477309843412468478213268473467157389919191025394048826822921214685798090646925327580258994208733875479988471829450127076803453058711293895000469010614982947159523279791243829223183612112488982407519966762206802038050861297308902714472003911089884816234418890504447923476299220471835630858698014818158501916130258442939221418719149328367554109360243696087509854887109718253431811003084086345039600627882629694828650256141499237539980542119453169057591336222790784966225208873234912925324986230952259655709440810232243799212412457411024828146062989114105802581387590366943441995951873315831328067279256435598741044303816883235785595183191821295486185609615553837458479597322551774746566160982500313362949883774107171044891300207720772435505129251266264186680760559154388753514774585006588460411796990500174242773611483292526692588159449813068994268213550030748925137919155859325063222898303890783266907484799467282924761214063909312591166342050675659781524666178686876737392150140129656776124989534610183554514415347954379717761561419395564913569376188888517606191463211881875395100308677694316307618037970929397935910479497694217510136542502376915400072460819279960381637051271541332275332209001076664962532079228503881361427862991069357802681195865107780674441267072437992655887925291105142846944707913147515401829692331811081710318573450677284494857342350529482889487065676386766979426820881619453866466913025481333297697343870721034594253853596671409528721334171784911109190816287903342496878168388416845822278421149735125803635540995671891034519615619102925177675090975583108978709386413520015746532566797694627632270067145031927301196754245695565592971536491995458599530689534942363100571366720702744877533269774109285810181320898874161815429002513075646791572147773052568867482901157994938337393770967959304076298065927126511952745826200231014965079522375980574947682256369562970258356134844933086918467569673137727893948143065444548296672772197560685014589294554188347851297398427005189951844372384053405509800976786896733522300053447063399515702831498681731777145531396607445385722483701306924979097124786619605924594267059485774500677029668580059915570458119196769272819938159124072632739893695204143388635508687455655258891400771010674711674530768140309946946552150390515263153896718703654633070655793470432304832435229397874177030293346906151015372479815328435706273344336566216173914104400782104603807239867858696760912413206851631258198069627568434896162034285888161478487978420519825252740437815317877631734510270871455804520064115166471514474418445945910739173147586063507947350380412720809945578267398553401340223632015145301926232802479423633072053267406819059603668582393936378439300751745970080201756778215357147226683904753844307884225605445438199337031085158153783327494575270226959826835809134741023687645346090079959920541575252530296677683432748000396651526563556735430336867240206747631721510311126650884415138450853878355456636716583108436920475496146642792011561473404058623832859950081034756356353826894203180500895383038244318432228082939285304892932963532653993842176720866839891939073453226803824867201935475882982890945922123581040151824380799329490475441102757480304486091345276391704741388192856531977705111771267078945350781225105885373943396664155787165488829362537264089687420908492939639809467536510494717460424372778052883070883246122371281571713942817234926259862681436870444167002657304486531428449456834554640202824052353377986130737888598270765908984492019085631829494573992765390209440116776191988272887591211456332735240429731018717089114738220579195271557136530946020023120866186869042752123930594531837862013727497432898668145823494191938408809508463696774178626471277792347350291649517735007172254562377337486756771881027768386596441960274593632612023580369366089455643368763225020611164173394298900247131143757466826616243108599598264326297338250120467406087169750918171485264379390187973006910809860769382860032016029553978897615607038393748301103715146254606919087303733066541393478524414925610764233827512480965849259033728237178969913442614944847277790991356692212930870996679536930814387279445115900547423094701629552611353050953286913890884869584328451665076727393920681269555653203102779923226228656832294705154681557221052882712646230380839797143354528910888462767576286080069523948766232408712617758885199132443648468113511908556377763163212265522700668020522244912033354584506750241834578597933563799792114599400521871358330993389455094499326376522201883624862055269668391564077586913611489614683406048169130586992543527933722380755206888947120669132567683583462896969516901443381576858108904227292891400772995814848486133074747528385928540297083524233268035294840619065327490701616500999619133358023134175193758239990402289831815472400287165068344461189447707956426204139936979483232616186568465559666367600699557707075637910156285307402203030913974517493788657555069308855909707930814618827449932010675054491390340704253518603328144845108463914238065509724527597822086323418537492297885809705942648643669541480755577598814287878302026111781496119114161935938633861053742098457240335401921886522305563150520034662205147737890998712462223761280303544335350797335897434776307117954050843549231921825478649122702804762100892773757985770934479341306817589506190614507523743645435379532268315481741080925018770275171067229665396570118282729868436762593231840717332213027493435462763789930853523607299908198962087673188779480841727006963568708303883447257749042483374208374226293879631051804591711290431426479800315543907212045201053515948305372025811994044522642708272557808880038338182256507200569833840419953452215861382487717455954660416899744661980988881824760889074264085530790452682102799667183203645143001063767773747431853837686578742483608248614659024167931660712831930405911633277146745460867016457274160217098167649702618950966935224897790235030190662901773994295314078769549109347332761128627263362838302081881902229879707726026494576410532903968581919075468397068025281813143669908868093822285240333459628842557754610713367211123390848597215643295477605321177683086828847593511028932449993044012836935542810717847670131551521575306505896304272166217808428526256776702385982323688127244649090021848205463088529868978019877867073293402189847017543612806664676550354360971940645728146773248492636082592251387321826308118703959155665192775080100914470012566877284814976954405943555448576340539621446806900133654303912976078394590912877246026032491904863166997427503983602076069162512355777341889881794163217294180386628991238846392520069157599667436286559444162429969771926066704513578921306710369367453105763651675468802502811889550377331160892041666613165329190669270417741426483191790523169066048485035124234574555395856766985949144528535172420918274362680880988344853657169811374881083761463717423126355369410122347048933286928856236871166942496681620167008572189639828170694445101152345834902042227765441437132610540744258411723366224737824136158680012153678907256527974768920556985869831623477192074454138496355090745248007348148667692912153907168757232030993415213609679257993946598418277016817475198871037892367962616587064481674817986477221426157779024584985089122763353729668832134670887732651246217294416079242795830203278280843262760216823776603342115838506408954800780229802861692869199669774585890096731036904293755174595547883607933445047867027468375134200155721741047886267040589902874408635425340041827066677940208752583227568742259791542092994084011948162273888778057049892237682994862773837851027672431615702362273215472097214810302644231007773186558744794294481258198696158939126575445711950275677173230617421106094134815857983922527367303382911645834724728296599591998361913437979625924949447605526154846280227502095388435693711003344446880449891600825499435191302411205297494256958413265574759918230024220170220554809998032713746557996429657356632019023236909146882750576151018476592952885071700203030481439732451121620775947977642036050585527255593046240764372880147570892066590289949720707539443903415869185940043472140891641678524571961494975446902174016961785152149381984386907048579076846095697919669779007087383584246904805323227300352945883890870348144912045713759858213470947759049363844353069520402292193816507329155543070777752809902980419883543040048912999124363208049459791822084445443314927810273795575021807029688608450205238675118965737931686735950159961722879483888631316303689247922964145326805493453594066470098441700739469077964025731534744904479587832607888975628219631810563770916194707261369207056530730794898289901884806561245328414728104003685668946485675133002424435357556438824627853018344337025058493650787404490180652848299823636221187337959625233717406165841458893436069496726863279818126133609089891244280169389775509692953431459488638830283588496712365491700007765847972100679724345563191898020163614532253157976459386404872044298465177789453616707272520070901133128796715274866533726855871277505318083145579339654119954031155038669500244664107308300837582782216284902288086831670076827397376977384934935454874694601902117331998657491389467346550037325718466409184708820858369464288322838875237620342706956243238039451252763619640661116790666504795877192195496148602565509654072083131335387062265325341974040318468996235983024345676166884373069830279835744671655128943533652954886266204419794718352591453162643288071123576374553311228932191228327251524292824051431215509799124121112591449156680574813106099528886128824994517684827591922712144841260434004930211245261527446028938624601527808553021175519942650379173286331008021391094423331196957292259330830897627309118742480150679904207953317842968050591178110739681988572754425621476981680558397636388325969897114507152468595012861392627568674286485703495580156183473176174525652903115033417093156303879865508534286973824560581423287183656348032046067688309946524076536510646604614999357479240882252038449626376367900622225068236855664715740016825105714138306428691453173779550915398015047377117961352128758827323924284691183153515281403403496282621151669979235118004121075205916821589095453878747947785705389551994810740437609283720135515497625354853785913073788338643818966067398693538110027514308548331381317880260290569054763598145937392144400053430547639651235947936535311625010067991164708446150820007108113590987162599215807714937053693831358129721490883887341429505134727324222286799535015340367064525701911371156723717411103407088269422319773575294864675299451210970750355992610428237798219206418868287986059482785197673706254078427811065583248312733549746169120856144375337100384912368115194153432550907440638548217500540858652597461794821897487613045458638376191413914105693097284630084269511242612570639417680428436457266557406121603952731733923730597083071428197012928772134135901470826397722244997699309573736019888958144235895593329324601355555808261667337507849116486665856383574680861180598054195671415567137467465804024862825305981741366088155863444526549115069351878396710472619183292912968531284125565826161019319778949471315435319689459971248805465821472145698989820540421646606449847364862205970906337351489083704265111962695805472458732025315080075899354379671453898782922459079910053473408783292142328947769857434269099978526609942429204366752649704119120515826977877721547842785987412553694925080151979376319609138523770173495403078379782176468404799047411243598388927388577795873863846272449782553101154094145039936151374225878311005816782122023549564473626052270839434104360688239424823163942777549998511718072512135366455526398157036512297513962396207914971123440165680707843416540997350924239285727201838470008968704831795458005884866881937696471202323592739507932051322659864382295653205943173324847377932498311396776407842546332326653249812152135597018075992662091935549405593938382825640091978638834548325407429296759782474359368094957629218202820677657956486600492063773431422322264304057450373161857830790120170134338726169647615473408448190151672572669475591002512325367338184707391296344358237544075076343983922887729908821564831519871339800936673863289596871627192777248635392206436291680449219801888645428287029424187718942890491261835527756929252435869586178249200717418211570091191178447361537833947036698872733882961011334802490179611720116706123736632083299305903631739256703643813158682948661423669454506179443364101567822297143756470773023463370471224532639808047866761100908513934084638409578249591362026419953744201127736308838885397405653894151277636504948752440509114175540823081618255145965311331485397065790942579539457498186148569104927753105635074464307145521281623819814399586463777939597402018265103176409872958376348041948811970868865613418494297687979397246800550091253679689422815933419891877216880774119896019602197211123565289020806189632836336772499304816850030388433260568796686684362601437630289077622994077002508961699750261411488880077619629030334163766180272400181898611014955610377904396682889246566424091433538746410565950745035968154582302777204398135143934625998501445682006665573360789627817988237237206022714233854221582383025798628392258244619737550008620548287993633674355678572043612506654546096136979818508871210084694297915243058864906685513866495197422594743108922435729506744914210773734375100511101768904171545355353715244785576207532577910433770591259839357341115515074836030838741536413164284916390425228903482355729918458588490077568585657370500911954964466203294442276113737856419331972259210824137433164862622017802715094919447245558559264550242438596140330056718851842809353077493961677974613072243867316939928887217925700761710450126093543867063693165117376569617783239687059044263005725002278240943729065066143491669114591497179865592006854991210740582194856425471996937539280642260271057354259818684744342461745398789778989322944099186700200739567001775238619588245710115457399388073531845155604925658215111232283601637626324485823634327546490031854455596888550934847867518254139351059135742892861793761268276479419272847948782833363832348436700375509835139637166272198605581368841538232147057494021592187083287033967660582413717272995653842451170211753144208394651073965229234456841047763643397482650693507293523987340952168645074625354651817109028986531594979182865102957508708323733701157509787880174119580615526103290795014456470234167839381374846501663544889962790609123656782661915328397621099424204874769283223513131299017812079693879628043084309962058024589128624912599616107816769136733820819349225485992781680253643979051142257992463288374915532161431439314880997576127498478490968883848104575619904038918136784778242797602409712932221028552645389791267248126578592735765140591494317652894901385210255656775748791701943906718537346870967665933614521058618183448802190669062623575752608951492992105574753330336281067448812574830455844980140731666576208435015038789211759419039707072529965837008489873100801463298447634909236174253431204875724306702713514854750500350730852739105726940130607827991290287241709146545873281013882120323845744993825474906570305823486500597188542434252624564038920282665578725019289984672611810368031404883281269709992802468768294295657594946989616693456378343680411523401675874218060828027109026606933540805847356040323220047849857351388643950641898104276347809093798175101857995350041689040320422501803729340928226008549670512957921162194437878326781273464891345110296660974309679427110099807731010358784940645972354989058385170496927231403698829737392898918891275135410882126448849608898688328850061329879928549880067587047611925557433030408537074565939312635518394025923884658343697744488919245609006040265118504871795755344256602950619470358279924139530915441509761371045337191405760433915546762251882554436580206300953725267377288991930006442914517714478214612632716551634477072995787441174053389517074758956884692735264814139518581287146854130772193830102286612022684645166347864159648907336503804440377843532155887183352011066338495632004863413514468080458946806234101112388087293708523440396542711507905314863323141319883048979346047130454339562641672545491089610583328351447246896501866849519116038095418084251293492283957209330966603618238523833252562628716499470924803567865780003008308930644076498658001798211629666237490806366561795897898389846498814045405566501086030410620297000179531406527889921274028920628218679213343428418891060789917635804834929475800371863302852504571760735364849139441512007392225711997232174979793464492426894762782605917334919198238441120221675831043826996323888753215267584147027407414293972365566134802495598980803025297908515063513764309585577464209644725902585482871179718910580768350099971484538846503271624474594770678855102498982572983601177683378305558795464361518854765057898786558761113138596615073527028356504278270800171323288134845410741686851583584807741712026190196943279660232891567177312007692981549919626841434485262433010060296208926049636780128248547446311071476933354858930382171523257851539450334963087410014352803404753298902140071243465844131587350921395937862133961758244120972213150714503192489193112432479477648787293726729412624953079230542314281277913470914623255351084473102267062763294094676434779462425213639862944979151090876652698378020244106192504121254924039727889262185499384333595244201316129809233295786851938940451967210460875066073393186608537616245941950058464706352497048180110307636965322493802295788896214805574456061341101299759452513932039697578515683396102788814091802961238182492934836208215745270361772455726400992613309729481250356068044659154653096134970675729567504102467661216067025018082896213874493525595813178412987419372239020063410280429119864622758021326671600848229784727661880404378695578037009030448033778416082452085715690488908982642060331257852393226128274405380228325117761714711390293128730264451298237367332959490963054363956334469512898769415035404161190004133792673754689932186767457348860253206555565167985382214282477424263348939834519579637406837612828208227287599024127093848304858443426666747122777538648565619211694581459223536996526661719390864099203907753191815349432692208194348383943952787354594841129498612725276682845599889270101208780189987159770009119772560129506402195494018287090509877743736595969422635902955169638313485629166150393513236106339373417998495118002676052012482325294010993306204794769955487175303283683312168364498955922781376443643757455853803587962852487301782626701896070032888217468508218646301767583735538275934855124972969019502498656581756919896207631987835928047084150160316292618573106371533967663947885273761940688208546682243940619532415176280324162809157762716656448291813539430777935885781014857140611991162995947219100477425362536684898841973129520307216803109171092257773775571570143925708489326383396973940422593138317347403672396818732294207424907503330572192859748273134170169864512922381595566083039796070394133528624295787423621762227009289273189233825860911127305463830740474912542982810708570028490934745109734788247495664079550248226025608796331143796005364706959050127604470995095244443700476004054353334056855599444347159798120454147441636796139579131847957672719461146263144092629241314764455069127943541313120763439886427709329496932212055944449266681454457457785431221488969827064246473188377565591384120709722182238109790476416678592405328185087814599022325955597920871476169653988075622364574786799523162330726457649884167011851840063684787103138492912815765658603469884090984648784974959200824149829442333801131465624918479318563169438015293462842942702625406842897552441978249897074487586543855995336271447026388176331929991185419480706895428903347668352522871913735743537517451006053433208440380838734893863103651774120564531534597278598772824676767692192520830993430232237663325555864112948629912147540878966262340487453258429909557354376948073954629405807201286401939621458110558820121987270380146908037097248223311195421004519208327406464867551043839748622540664353958991779770066443839635294034184919183077585244375375637072209064974113637364047313554580071879659874688848536592095661263332463810597945956039054365432496712754125679134217267034455375697104097474973026940880726672564648916515291774735877362585262310445805944584711449160996710160434661250220766522961466457706363404227806967511343855892490939458251204965262594140694135696725956127966838643680718502586640462348502152734462415401515472081808220080142989367406785851894070073258247608462464452173532340761146087745533572845674126970457403866587375145672394303845384095720697364337775337552912676186018668057941722147244420616745878345980085423331943482329803257032629720682381760192240430464320072541572006739901655005160828160925432235765378916146213903895310080135051904451501761009222252572019285701143857847188072735119720104068518464355775823784410885632040004918524563367190426615124843525692419730341392665921552992729465214454949128918814495452442933775543443245643258665520797751515621191138749982514571019626909504111082392791345613217990473955812542901290524429902075511963543541091204528338219639139324433473210306463283926401711446182235760965376346000126045733143104120194827773431484116938572146632190418651931477509058784592679885611008752452325291117881339278292041148343648090444314020176118846239623995504845408397316637430627973228424861833539068575738688481868764174148929591361840803889445322022892619123106069696726077462750002918036095625580146571494046088011819962874510163721458397472289254298357098717721994190586068317166309300065134249191695454100474085540237109498723351357588449630180380203263101916785736976046617996072781719378693128318853251964140559572798575957147411681439748525099972194615351770978504201548370130217161820434113770516064055005601484085819227171417882391396058302916152178228492149321611728918150723591820909242158471996396693478938439805696681391089663283138602034054098928130480960517620463126969873700393703183122018505152354349700791472790319865072362809864315524005110916993439894107395806093105131260318601234443935818547457912890739051446290128323047778531609601938958382701322257587533561077916661634609539872440278647804353070822929441563088970415485478577729624951947176379295569203293997252683443991306670590061429363331244123066549615641716494401198515190132584505567622229574551263654218586177614536056520166398046226691437488415450748008891071866432328482099413158496199064743244248158146744742162654182353103044893964213178142558095507266444094293803739569983320046885467689233696354222023235753781598854517863185236711941422513632138945222609998773891926395956509165734315366951881535523665137543032375430867529884655747715428693530648742058947040092226228421967350364311546361508341891460923107274313126571638517179909514656847042470926375240006214376655180668961312095352819562422541484778518110726221955906342624154639825374978057437663308085673161849823041389905852711150360702788046286699322882350501576036807929004076317567009034843837596560117454317055618184017921316748091535786986333744789485734525045595555789367291093798050967426456892438031001144071804501006841096520006079085204026957114747582839334864715060311563846837112432341928743076990550569877286425511423195119276727801138929707804911036067243909848975531597162159384834176403012922450912711538186601954892577244946758155412580229030305623516238404574993312075692690585055901871802754799724502368197339839351706488103810488500166516688113180563276248680851578091743085730202649499268715850885591420125291906581620719092713308008368042295728157002742346156374811473276586974028789982598945848302176139408695467372638632227413091069082016279879816038520237937651618407199429140395768805972912801279318011258873740725324785868375179484886007439445916142344535142597769802084088851152513786290226725767677014468368065552753316614125808540501316881364746758313040896643652034578750110753760014601245402461811686526896430613100341354616551851340195395327966939903426348972838276434689570004269644672729444303644725396106503991818392211091691658274982903382351568173921059617270555613230569110677580773765527761133235650599176563305562544975924409234379779702231237842302746883049742191455525658908840807333205580108163924947354494085703575133780965066748184854412285749462304763296243463522183978409186626403541404996834230608078038445282461025462064619959805503013748417726865013916537518347898675446124507351902163075634154085759905798170951118936042630150155327203740031994644371841541808747149826239223784923299224187739107029475443373388196436032207232239026068884336941669240288158513352353643939811397146340913319488597101526576766555666015843706952698786673648336349410881192195132790793527178451549934777466324957136797694210989587791121404254825877996626265431230205616105945870284409876334859664014387627363494505462914286191842230366243047760064425609047312436896016675290855214094475511151200415829025001822151626396437415491996373419277335092117252834625762255033559498149147162286938084088679420932023560788556725957331110248175145151117036157181048466279648647852972977966064063613448656022263063918987083045864768331021384985964193804658875230769947247970474308919459081286298371647741699292584378983530485148739419419071493741827319360834459367180075846920632655824239820014766287538708438900928347330489653108244507463207100202841403291668868385421442726953343676509346052599249888778080290424545609727431484317808859069788539588328092999972833318248461671606136540203522938093753265698719563114934729914886989637433503692281487955876201501225869377046289656736004801605669319747929740894724556403562132215277159766640559164808469654207457108995285871809765002877147271381683524806742919890867350855060822218545230889160532123591175507593838026142709587838016459492520577792231955034615171898184453690969659024074695052677327228621958724813304340916669773542195438985588576585165550598614582227754339477537319531149966812577724914687824906280347934932477352149245102582079343780532298988963550592067424367371990815046196237676371402195206499413874119188849601579755924265562481018805650778307074350626480703803289380533541346486662638182957745490211665335702619194432455599332031954244988749982661499008491785457026042791766394184242938130016064909158800286974366559041872831645187187392990378909730233503420713840362454848243712365342419372210986352905973988421919579777733563329254861272045304237879795719565140292693902238354118265696185091527136282925870362923971004432341055514435701564283639209807117596111979366951776118046728599925456173763887194885896944941762544659574239717849576640047710557985026088356167639960252887532419497357768483385162294091880387286677005550943383709764731672827052618388109755072305687693998270855230897437787134688172798492182048743900604725949750666339186533600970129618449515487590186159227334667743240497174808230006587171641152657119988082644807789593218136819650344173279131275976629837061649966600278020250646536117657992583464408436131109483112771037107225552743771757700322684923745145818672307983938172792806932790349832728848141164647979402931521303533220475774419884069764555389379214037456296175240563050340953408247623686926558928744705009856663389710035343651747544925821756761933714159360996659390202987974980424265834185157951898199661383467740438870341371877061055904061849714356389373106486228741514076422084333878250898624015797698969818925414824590367543579214552334684027181891402454510040929355140018918356301520767141586762790909913361285652718783475416604975177020575078874851066501819688003683321093853971923886339740419273325189897149594727711268145247401977230575934945528609062509976906498854888514713692930017941941543299410409613436219153416246130458826959113025119008776345020199606402565521859041736758771747395936431400033840772957778044749046680325079434388665065813914466601998838502141612768432504346034965372099982348568311104408845635056016762964367452110232793253965207411092582329691578516397093094158471416441445595074332530138254211866752953392727669222214288498236739920434964808331556071947627123818276089649284059402142718691232972645330323164462249403448377196029234969082525031750666135797219084030877235624737572384012572017567281064346874921791909167131574813038628626861999084220943935196794084409836522997239049574239950882178427619192350645613135398883005783708870455154013881861559209454415510311289429633962361067836867351616748890661301614905962211170156073570175222268698805373125273378200776539076239846659862413983082294684017644899778884573502785356965947798829558969851211901705221703050569148709307555234710370006201705530909805553395700353248427753012052863646005329338213159124427401879147789493089953032269102844990153412795105843138032910731506823240720582048029124582545227763485475449706347258325115969541017135723477641068549216795908426369131891703709886644024404053922534548693039740110111532514420043268891971821834308960803193693020775083990046443629425984590448732734714125901193791858092112152276750338486000557833430606003972790690642514820271035579923524897385230189166608545974561320681605700229704926124264955506566462282039753264457089021592413558959707749562828730983646568012775812731180485039019142669399967029032169321998604690367073826160961698940604906455940587776249484406209805501642035097925097992829200742426490820069965520564420994918935158954076590710794126748129331996983405918214857747011691257096828482737033350108186074809595369464546301286026287803056376022475854063498222939721754404804942948952648322923387958491877280614956573348536010761139738680327086419031020903794485260127616964481357560494278738748628026180939174427111351051941703691951171106200708575162828283074534331816381281062932423491571699130811884178520997242847141865683389817774926225988716375939181079888405262052136483752121330600030537975612998687042585270408167616717725161902124654340817163203491765215169218275021844204065305037792780440674164323499349681779968064036890850229850334171670480135982026139899868575567459131296757328909080770932564756908470655639702597364135028955156085950378732426750368833578212653288698811285537343131813852214916065401997335760221108728796548450126837158919690502906878243662955010928912051551037243725851252324786105112880542740873995388012330620605010589287923273436954885165994460315004502752877175662563041476961250658397269636238750875632930560443374148818510770524146199042555962229553777054936689706972463957108121160565427696223172687964068725337862523632709431302715402847304418716176338930309097055874771337109000935722948390339042622734099184985519015807022023239940221678746935320420523275881275000400126327406331851178368777080212114901280536424462162758083908746126041339022464023057241607366642923018649365194851607504436204340179202622100090970888736178208885959779832685993385428938845351292005980453401381715988063929004481775657171075659381198157327555987662724400689462102638697924592574865211885319267418931169026794055253138181074053402524514611575636346510865288972284749708006343226588614797837871515608430370276246466683397816418454972027438634746776462707950764706261730975921727674052085511844975506556573424090123059021051401868764058117027722923312913635006722697939844154106077097766021440228578992407496491589139700920484555031910132671691157956271325913145686612517402029141415760447621093401005944223495474883391424391641915066437214569324594732129831402923589276515474963994172712401600957971222124056095945044382707515152612128586032583888724966653995619281998237880598838836746761351414634090709963082828469213919346215930000545845046658913590896044764016519199385051899863170445914445346659948353614282133211056860539349970192032363354059685692768059511110828423188621581807586383044908474363567042280968616040158670174268332618945299948294784909197157197171304349931843664037882600841897019626018784669657969266096551092747794471236793420331145681295190537073299041595954337414550015286033928310140197225510715799950227851092035629675585620165564492971302466332715571359312446665249185785610186503528033721705943610887859937467063851553806513318442908490719886703648529604792571010322167427540779559154781180244782796234784883847191950327508024200989573896088810615014920558693511920620282364229946947289938338156323939073665570184723915156635951096753759210303486476877657158788548120257516550598520291201039207153786040396845451612734718685260962950860900760472356872466253122671835589486364442614160829487140200942744378529193009021072546575969564949856436789331537197983167603806486286627869323077367917927542587028893608169674005702770282659235171023583818369198193301579016091095399230144623662625503289817536434716119859172255284622301473576541775716874517840510390379307389678171320344891750816241535246881718066362929637808017855203522179928898754613721531316199171320832286512359924446147965563909012501371623119615269596594811877346414638481475707395309467250860058620908462663849945610653410911534661912467122551640584971061179543131503064134063294748114239592068459052969820547170639720683004678653009328481563700596173433783982470658162958335772211611855169456827370107467815223807688125171362742572243344404084814257413144195591475126930483785702260017072849958181889334768275576519775125043059629640575996535440600046431993605725847862926302470186100379726398407738445784032271001826224376362532018505196182379186115535193885967884314553906738897369528982109106696572002822612895535862542439489433040043569728180269169398236882671808401134931183775651824576792783427151165941620917081582080464364294411463885945667485233082160521586052443176930013065504493225069489159333969815927847827844998642559911408831355241880081107719740011963137284815031051555842549042705845379407700598713603915817794477439102998892208081069014836417311399104961555443063185501256099526984069015858471719904604923545069590546014489380908447376291968606980666332239298535097991397926455094232939356219779944870111928116341085709380568700968865480245571418109863814363226134229602864971235658491942715445739460217953800945546695804813481751462177230907147438805547925786704666307431648538865166339421247604948113244745511237724618517038460374868282507478739587741760288129243830177898872558136178876824801301257157054094058820206802311043995224670294352470407885594111983581104056503954707177641045572532501175171720608170284449376856329574728143449866427885860859895886838491683305612705853347304190854844205632089367954471119304294908270313027157947127861387013905111963237781697324371702908214196397483526022303514217180112122268475621987603842145918602978433168059455280579937924015392213781234076929721178047308730973326669686757188592547912626139752127532983340038384472528932972899141967282858316837877043981577884155681321250029169832833898700102821216446605872659021187890026958482758395599359273039356805500210514739942649908330048985131909587515155769913492181990504533972921049777814532299695554324681677953289259335520904381623422655674509425830936018920584885289349910057462241925294241159298590694946045538999251989063681701737183860299763937462429243361359673390129046314397197265877758236132190387161707448847520869620703473871128155407642747975822828405601810685056373725473163647132114927137200317124956098234685245318268012770964966119607248358976943047604312161915184882477778719169506684138131454071013429255659277759442964299166241315508015345250327960731248485650699022928920835964574356490388621654315022771566655886006637842161589852315395710559765460508847154638392625755937747664959549319986762888160255261625440620257404197123593928819713103257834852312830314734800519324114594018590143420120616056662183419739273567730314576260888700373663398721591469190179089211014360149273805197782374815924258164312412850177517032003609732756456564217593318923612428769954935354411755414828290156258095479628923863998088281450461503348474883868315896858222723463867925219864232263569390528513420551432206992273625739692810575068207281350410243626833409855072646924558771549548732085156499714031473013865495296400566105032669295095295808402957049294377110766398987799428330049014943992469841956414662800573300301474531411711792347795205013807843724280058061387284585360828904354813191547782824621530658401775684115751074478361432811257835307576483665110077363062623535510567967224952506968727414835769933535054122247002333331031269890090229360800779783962094848336895120540887881984125545723807175540124374778762016703959692488640374885827178170139997376344452528198152093628062913619817109070261119714450902650264908589227719325418716871781903589251725956541188326067883330311493246779253659477725889400187271203712387869172251119697562163488827846061971968686193612949635009499568949180946508057821415190630754751342436618227033349480485248019925886186024559925772540353361709759955757583821016706149632301913335880733695845570394764238944097709732971227685021168431548115023115303625554045600579876066490914695893828854474752794896227627458345683784318599877952444729948354912199448855378228624488492774681536913424742155698177303237439081073709878382301288113637481440270922123792699560701818722004737761250782284448918710315234251785023670266802115925523744361528713988895254034828201059426491903415825705969912796875460439793617259346409366394095729822330310767908649836479433248829710461365225540668692995051115283796398229988204279586163043729673503578627952453458679710449785953024936517669561723717159602299373380188595078450804966444617754371583041802630097826553117574109951144554405230802805277180902150038396566123926239669166231203268481149491182156453728550171943165337386322269123529529421049648463770969371790924809015668169073735570276036878583204201780014761808150851599135248201023209355421222969280144879436889975943856472977379490229875197125387850150709223855684107236011111446143721731200130758932657012102173161674842290020965176200978232017809527014812850885462170298954156581172778576670868257281195186109794895056725368875837939840592920782408241267758580134567632938453662304855901749696904051178204059465045339805847208747796450565540113575560717203142720314647956024897490322508994881343659670903587903736892498164493964720066212864312989639267093022800807972659095977013169235236660296030852498825521666930139447281621351409312141086837753976663138975046963038340348321496055795869343031322020764405835515138359494184256871037909571637841131032797393779732394734424375189559978476809629692924744653509845634156029603306047545472493026405957229585736643269443453219694796568460111980525419295540944505488445136818848969995763426900538991744617602507324708458697797731036071865785161898254735263622320121601766778823649493093697048578110416006435763783966853260178314502951634270923928152881518088112160147082695943811007796925281004880046975765385683238381794626794375438419170555398604463337031476461927972853459450201606746003628337570869428889435677736342717304003545845550307202152509546380945236162329351207774884707152606172058941760504713948517187467515808768266247220171603433095819195902522709291477561111494391885872139415120904616077913261039540279724128753253401388843656823120114484395798222665992794072242965800025516358561816074358201298858581756802707037670862885371892882219531151085628026301731506050976752866743572327346341450050398632257850410975743894132952794822712054342135492646198613870202022811119559174633982928704688960661138252327482169451531535927642498679818420319678895102396949692986565333353991074780991200176942078746690273123288290143859272721890740250629958611145929006984020494124235288412294914097219516630358320744963683906146816167910825401106730260067171163735750435686297275169735940679111418611871894348025694356397958984997030269978731026530400312656628212951778260088067392608538871236308257322733740665991819559879331817824006643645900170489762219294184488807382498497025097202768967388565791619935327436276382065325812589431125740646613902755739140120854447870610720803318323664133760147614822015858026092992183484881164339030602962628835475248460086681825091730883443024004987408584389989943064048133657666857337444073102720106133293929775273961856543347856869539808618197996422545455650535292101933993507646328000640965139094903382589633358085877140320312547259641854267475566377936062695271881048635986220467118758650720960646277001868872869807401190235044047341563700385439399488191103509560454494090950591932718128583165002574594599294269099329929499916575444241830998905299029954108042306889850677924430464842016433513038144558199225996860744772916873926040162595096255751424262793594857599443756333967005408775798296051071520755270700444504866536502557771246061462770537514745520026629803018375147527777963682959699201236432431246782026004900113150921929436082129521522357628375411874811717996852554830320664795443432135980132141325439157187549936537981526637168252307302853801858177028938872983289055440069533719429358963458116598295794118973598337362366149058498205719604573833159789515444488519143953302084503681179818509273990019696547510435177977838355352255895777115473177997043049060207933552946190715977655093551990376760594640946995789918395045163533766547396250727649669660204380650257337994382113009088830510764209054896943960015607268785284385359528231645471720689396895023193516960435492132169115764171854699926768636888738039639790087051421956739344702635242304227112661608214125207104981330232369040927343079772813583876798508656702568987735587400004527283616305840138917212925158722665505189983967599182708439362742878943011790454076761520090480865461315689421411667473799481830582342615358240368672330701671360154471319293291848889779273832954600682400868072229472753358693237305535373715925581597530814872075135093843016138533169103875004031750346173606112883986231739623463316204507243533389117090932242988949823319863615302216257910230800046497727142201145966010389247585681237080536473618265026812385358401604069725405702924730139548057220236694603502574764157875202454827417107576439267289496914399950847879148388298405367482850339573190572432398323707491201847310309773919994241652520044096678750275343911789128385735561744015399845328552596752925424131433401353771107552552367792969345694782614967256550964989279372998068598029391779934207513014091822730821548309053435318525152085979540553248926115836461749806168004864122976163013494302458674700472775600624533531059635699467629895653521042186786201331418425665009691537828382635286895405753309893401894195620689313055118703520770137138979004100671293548086497898065307688350804919962711422386009005543427439069137079365186852982264207438260890058036369973441675905193282392085389928484592319428712472295331739568482545990371731132742963758410035105790529455558755023948699341235759767522850916877556877823082733512012318885297768252620877221913302148162940038809588813846072174676089592594190042972887488066898096724808484837165602110159602924074298349529481975236616062688815805582573736542443490741460520392026962040631900129123520396467392277262011030413800349009721628157265200007982552482897583216114249361649932201554546423288908440903640081878433342465902956679200803781411273916238916730422590320667827234977300816435004363387708360137764082503737523475679392166210625416094856420081968039272293778274758862990466556139486731501532153490016049048637371253579675030015013379550033218492711772941471434950339484862096477198296471684496700602885545911617287619066796173379370297863156462336790831620771859333875775518291774477531201888210651328135083837139949037427313515983977804407439700790868735975435853883850285008812808985685825524372706229436819345601121299626500406800277487020095999976473843089899266447783291410239179779491211034850344288407396969775164224368685167861873711078470864165906484255258301564263103518858910376530823648292349713033139974108806891054420453796689379108046154524616563420452335839541925952824595200285832310313071828651501137776250847555345272368993672735054229843268283264058580823739497336362827497125642362020614807192632872142236234173939634716346339857328722404339896680520462661935736772745600582495582282303586948800817390183278205570610988752661301662260496970968385027010998511256981341142349307101059560506927351767628523890342307351313910317594244181482315691712507840835747618202218411419982494990271662852207016876789769440482100549367495984919393401832961146584045957743847457982629978693194870672688482912018844940893153708040517445075019368561227560188543594208672806446287154862879669114201781231529949332966623436287574189136227977276465026384917380102232922416938666999952908080015577849688273381567545475784264824066296540290392878489769957317222008344706270009370721658366515042885651202947730500096682591453013475165771405855257554949939086886812894800384535270925579786708449327551413961707661059785567598065179606978186654777071531678909170012082707370240442107385288063404883216838427103969659726557654172224365017961701176512468766208825339256046780657392374596160126903120479804003733963450482765222792081850678853232398001959151674386818133132627815269764739823599533997626494774415570871210964565005312929270381041274176992205284265841551676733490103759439176668351644675269056010123313988218259976855624806224009828384127430860282895964854417197218566104930445505134307156549975245100399429770414253944317784265440356390146196698489134918843651880412406477872568249272454956784689634612324173884381270063561151675381430715398052795744256644426836936307279364971827318927150292802529447725464396999054244242169892664223353060910969602029759788744482842924457463860140379864161914060376340264979978489401460574091828906340581894388185695920043648003470941142439295885565786586440164427991262352249015866861879108420873310769883184665628610692135793220832322371013624055854614651728232834240838901923895901777975140097226484493727991644026655350412395377269209380452223517219581844017996607129066340907214344658087918981043671780290157005734763792706429709590294573594058051000522806514573124163917719661833955019058340922166632776182283190559646725376923256983526433017949426937572819193614293424693041929480085114375126819584428130391366303500857740039597276575192405500428615577544679354376739098978193555454996473684065550562418433383988120690098321684727062848235786419347682892369176502184347457815970826060030219504497551172871401827324274693814617045023963059919040994250849580635981491429980808207368766341037137949448384501137938947578638465224591385269688031117494743309639389986080171999482356870030631948950710582107309380082934653235137824144120887924871400088727732405358140475181558973829456523012818623775400697744953135206635203753745081095478233181048122794209279603208335844964986765288154271324176434521843649627965202935550694234441322133499377654961697619577780364463052128739846160602475985631332188923280542657780626939845915489137780263598035648138230583471441179332984085553904566624965977502293738573070821012800360854413152856917318103078330961035859974123563340139688563318997360606688225172094439651121575630951511701202718204217914903723285741319232403603601510313939758424133047709070490718701961292972270658001006639154279394569404953811477246696163067368258110016798759964813979880117674535346505508445724541699064404862451271835023907112944706144478831695880102935254899782980264205004757381931194264092262845416825394112131644219073772141019276728259609360937634267403155712125653803048546306637350479552049449569117292108513778306027297529232612611422574378180279213775178732753681705201371910840864677616220375842625130639353285459659070249132090555273706086862978977599720896684702557258707004199676353011417441025755721718471221224120070015035048373944134873903469654194735041839885071449834780210558458444490561384351705938464519016025058536183769259489730701919059701072385178955722046232812733799546141185395379501816769126814764628452769372142052408071982554623772462310049774497455055676694495453111757850230029548861713669969286529921619657647128350276372411615957572734626559217037824243801930063203541699351305475273950413803789049916644800563406463118716034017635692663196401375878071666735925999348774635031114090297814580689607649572620636015078684273107843826102127590731919644476948331772938331776619144381708666918679266713168631401758565836498829607092734568723824333868664621864344587691800162367544946072148671534963179352860463065469637921556681527065484585462190937485048596990317286103330132591960437047811333961354748495704492931237111211921367248770329734563138604514749431827766258928343850272324182213241106359824500969731657598880801424132978417748248598075012017056872770722847355091293762781448293218777240459588834101385779850175108737155509094697903149505638175577591712677738075108071470598609320457489300975867982735431169909361317253544668181869236308511714706669489188040035139615900511758371058727659472330515778618524029511786665873788437886758217959977911755681585421730996276001315489615002341290972456053856410575295984010563026458330277235360759926676352649824193491742024931033870583201456280889487188831980932295105234842821208049065746678251653705063819070172197944466790754705133303520563001497513422998442306439611136318178347444493967308990733336497707695959542764961245480839817146583500520873371929246952931538077931364607500187495213826233551883154832337256309628586112226180061568571373273332169145785847221130842816050670375483650117206190241788699387843170510627468124454643412504534308230928254953028779994582971636366034138835200681026394840130821885711503201038624097876900619411445781136180452196775348336343190299335698847947224700702617775127764687498197659771592993329182515879413513806706606339981731679018463501677253007257044641919255311468176213120374587145450524217604598962983600151058109302836018319820632837279147592245928450451692546999816784995697139797186293831138556482006614241250611816975416745140118946536852906563796525642917975819283730322022604608426363584727686170256371202268869030780354609118659102997983763453254267365526169405579858525165508950801123758423001429033972073427710025255409934120796238719099769342176090989702582422648881356020541629760316002505854064434188354245006079470341281596312777137508770831656530172257473395181984632489790013904225377367694977435248733255531022667371388221100196882337313130948321840724087963175418441297919806247838603191645706242527369809686035257268229389022751903746422998535079883215387895027842996741190292552197270295435018256526824358230450920096208629935220724960075576394354882078540077844531915716983361098139572161095347150143570661145877799028492112566146427899712247632397241077550114862695545409611605777539514499006271765450009624571621480735911202962512850563974729958306306383164180978491351295083749139982896242873856519663287905909551472884014596349555133471730691508270157030144080966929338838027785618795015157306637539048620161001669193701249576667129794855623463250452480667525982690139683068074995781196252896539965039746766917180073439996749641964968222025803061391815194321283347891715234799842476149391352578577683770460177022079608817198928162423956988702824854338220036892320570936073485460498022229001487005912087620444175842576389675063912994063998328867699960725110342086961998650289909699287229192195311475079482417594158859455242496383691186629334653074955255228418369235167180737263791489465436471993358045152595740872680540159205896718659739821186807867120384962642528247271764163729993318532311066364709990866499483031867900459377250318050038763008666922974337602423500544754923819938600950940242902071822244967887976564829860342507193757035706828077974246000114174621564835475510948847358068460339412521736061537098170188153639412972835231504296483670597759471842832151924234522724805216450929699956939707724028348561829656978482341917980610650377774409651840233895982963755810028606772338455261272426278771836830620852587059574265048324003946144096980547945715462138646589907999657388099152426185946549257089912002929853481902461429313134814074429938075865047385735165179577556101834395495556180147463952199285786555414707160293242802898872566584105247719333187181060927272842378217799962586399995224477729388302794249796442717387065954672723407256263474475347541749172013976848789509200805704252345538034564115400144787016024513335924744252793050818707419292839752993588414260410425464582198568638638147424496912461525550801365922623144336475311759494642221673842871205815895227256413797082670418834325953777720641295170819966336494615316844395425820922297131662916393298355872798533953911016751694434166870909869024970144701475638263274695453442395013964647298307537602320145756126852210404473912965574576548777709895157491007357221240202252861705785788345227864721091686597156422214841779160581965699233859245553643115551031281282689539600579657829437034876850989532280944821429929612769807026720329883886225919527100154434608815342243871880158413267249162010679195420974338154481887223724149010328064773065435984568865270193974016023581774536207363985606282894262899407299418113672774126745941444684540259383835835705113363023587896800197928841677251441813740341437549880737593716235349681653569828290061975674108468777222873190557101087634464805808422630852564865625193441943437218869929030094413324573644672482841052832566330992488269279259438730823350314391805833313842192590373601046986688456486218827499671251223934351269468295475158748547650293326482433414733474666868932105279341796459010356606082955900021193800234903241278799077809159375231799415495934069948610049254768350562047437793650431778132666486276276076242824185606258148425692054966025643623213493272866262515435025285360546158211374754535850286788173094896094191915404790267715175700088017712109326533753943682885900498287775754187157722517115715946205589684788129381005533888266760999657621753518335093695601368989299956019046434411715492910371729946821089496156450592707381480245227187989586588948988929046334168005851190671728419952372585049924313526259504144238813084296282612238377215307710945571507864299902652212354870435208230578105728991627998186351039364634187335262787702311979194543573106634256844597271543485867150474552761769012565631123127064602104661691320653242453146499871081174380184914220421056515579200988278907209526418258765412221894664074247648681578802668746941073905864556073837414469950190508860333441398716640205080313840097928517770355138622626486119000041529262136248133266083344154208936540644241830772027494708540533895843965521778948974502973907499444325071635773990533640383122805868301116294429289448396559002446229515698971776555436228780265128877149933688155277057474729391781463244331464572321079459191207084279203056535977918839031219572972325780647323483849923159157939724500954363293097053795039689960446184894068083015666990860061656265291678455468114013140622973354228905046290913757726979762873585564193443455225943295999365591773855264465460952287905339535809713240877021547535650344429206926891485094551199085970966818015728942742868310175000220640715681861775889932994554748191663999837534725435207931457717387604653189091129087418398636847225848676522350208148279570432947861268061596266405769847044664460484929347634853771497169752708404939734885424414787048236315876419328171517401329378293401907206125574249593387042450840644692395927999532815884233491469881057159847298695584652181614710677859937050004301711598023718908175753480008546867096959592841579714379580470101068293372212171121355004014253944473448557300101296741000362709975889329098318527603600242631105985370161833006688207009971531036971330182477228221103219956583062155983976013991027446895309025198029036378719020295951387233658180475453876913786486961073027762485489438344914847732351661097777031101465990148477597592869573713750897848642893009118108384905796973099520948038603602159630608687435579110031430020622947120710211620025260610147324623592195578426379925347036999598770138966694294485540358318095550982651449317173386019008222000744635293872760837035866754885832392948955117281498548106181913230934664429810520330135099096247568323502931480586704625019107440000644916627091128868101679388996941480531534830990016094919352306306117504328173314335007229108115485785357986574724972278758996220340213558230355821463436346655153737160190362934940435763429448511963354077926836216419849009835254860228711161914101682338340547348831845043677654606219645074914955188424892553156728947802439590176586370051166413526580901367513586480608342900285484525286709907728253001821952601841084741511735467252896105973823802581192242487499479374944828255136442121613561037419157841830540739339163339286025714199166667156314381773131772194953851388366827769618191756428303661831297137308141769631205185894050610727898467876841887198504793728617686669934114050590325740295835061063882016895763460622457477327800506903633464042292591000896403962241137753960309829883740003718948698072243692579758820444988149410782105284961147323207477980548369127289011108053703128120247729905181604065563651399635569582893638934662183702273630598453240451684518355587302311197825891409080274427980128638708454591644665988527113662615951222250066882969499569601371180539602992704056450207779089602563158672301080482763065928259732880973071843968265222591961878702036381774950687926286556024102085527104798546241390581278544361479928732338487290439872360181324341795784944684642745507535330255190330155301576450332929828782923410625085954971056830200768118649301696521928913461909209772719280125203989838205567844292693595081658518820457537083241958428291093076570864501413326731215127821356056640209527972444082851011186795588737122107060954777901441301989354467884736681646729559865404356730878947934864403627040367837863502916168027646295873350453386827067922267050828189728679879856324105218953352214342502604929425079733637291399489445792900621681206381596555965310418598387196585252723423521915650089038529569598183803060089982283956518603524681838575512763710006421472100135667898504564470030610630946384534354288906526968910286498762938629124760828504328124821003140394495565698316793164596432906074671638302322798976891929725012577509928970562286982550009315390796481246606218352184943595946927112932125315045805572176303654033512521191158047111949072527640519521318630897456213826400533861210156458027824454463769177537143348869560258748455480333641676814286668105899662835019140298064544089678660444073690685807975511073583797348719709761266959822697852693329343990177849248858963287397091935039242143408696606486519984088633727331520939140061439155341538651751773623178402030300186855485226260122339378363724586590332155175728775320147248637553666466199070663174454167638192564084491821547310571686839976830219355595220826756842913547941399410648971930903777123330022067685398978736194788732488552721604019461641911434761853448010023644576072733787421233033533792083928643878420278585201426854421446325679927319994024955846939570194535785522325252865602690533778438481899621533682636944338577099473379763149757525291658934907793144132637117061440938754468059406102770489709603200523091758803000886494516572004968306649316042742349861404699516913134287851151817028527887074215140946955781381228615174734430227931783489152115855852843546559178642969598445410609862247645687130718766556413217219040294526944772088950921220578454122493689465376587272774810876428775128020353757028972934113998951865473944025406202492258296506189988630648269050310836903642892067276207437647319786708527369971373477561054167314085954323110513801645916103427887877812291134139118381605443525928728663745428614735868534329762489599034228719238434093854044821848936906147317123472979341153429779776023203936002486308981952996163960248925645133323645688235454541660394620517806790728752269203586260641417432469193319881032169549186026039192728588219588088435175625260346490885491477164371327778156405665042448208914323181176181494215989226064869434102714955572657905394667158414373910715660345472284583262400017817176075409837633430084105173375200267015764028460345389770531079468163783232752251137396678733978623673368078715515505893275186795364310308596742034217536548719270358288740906450628033387586178914443795465872488418292892782783223321520263366499419380525970735562375304884641466890641438838647988979429200360046300653133216845643002662601023473409685883227382394224677025385217796781386713704880360116844140859715208626636676111156455505893333031172475798206654696589648822157598617561348119945263639529348505977780549257890297316643077182958183009369274846461071896289678314641357796891077885796292077829619423331859039829183653227005173588384962665217108996194685817075182545042372190004065002752115114952932490596653463448489493368125728543021994413771772602014419703547845243137765407627398173924192177155324303754515010616628455165977654147458396200666707992031799052638378374060830745073631517090663854887597108028632214146571121097097392610102194803902734724026669348986084034738526077216268621071544209071649730809009976437098355389713741202887340796795307464778430676118721459443158653862125715161101675687809788311783884259802675493037341208098105209891584720627551985577740984336805793834001180528560884461919382911098001010790249542453933788763232679258722519710479062659213058628228820045917315963011986108675568934055739897438314874298133922272481551810746334332099672521474288469881913812414124965463900492393301468622338386782470744777379912162144619011163754696219421176345928832841907794793624502641311484680275921596644236829379093510016384654395089244186973538847755912981457012992072716559072926084798382713644231605955968833321515708565829407341195786340956904188447139281518575854505247977805751977338488708972688504470764443250663219591689775512178966980634381125966185761632762661507732008391697954787830728287932222236963214085260027373414014910854027525321771292501062090832442010541866462258419303809452468801172945792803488051036467388925737202169823226594409144273119817401007212550142378522586278964534045334792361374893708934794286973511832501315597016109750138873676799908687074356863020497304967761159670254797085045948378453164414018112684456013544450300804045596153270521321888190694533844486656743013314926038188978310357126411787882766568011013458413779399775449879517961211579037934460618137189482669455753297338340071568345945506957891533856995518629599425615809511318907210869527880749802456945163505590446439202526196255607355204539983425299075611943392612492978371430578507315527749491948152592842864759411681275280436055261928521764509671299920389084669107835240842535020789426528224717416073438269001121197766416229321914343041766857035639677678347718569927848210367325651912127866502218947174131985160883583565720265887021263543056502707671545757922051171218483629853074606779383327308928676876070521688754190930465580917211364891083245560504959957845500459710326499491302472718623813356956429102698921011276378973839366989755469422594302966485417640306569318037415650660192953068818294342533524473192019077001831733727302722121875529589705275146162939580333406523784623921693891619303203214074716262082335248782814682826802081244135344987292316909441033295351809936366398895109218703234835054251352213733652419292446098077515571350632284540232970548029091346907952516825326291405165624142000599938592376600310648472618366251421503886797733309686228150431586165741753358213703073683432436526364024611353168189803950186445021783891681130685848046538748836724215338275859766659913639814664100908231196991661385584432977201367764365359098213876727988847340658396865804179318505072859756674565852321538493493533609485073593556642129060411314593838641771279262411223238538825768899278890461132615906054655000361383120278410398610064080695190705961320665488749770252908327145646744123756547368651766288041933295347158900928373661323335723214240581990388362255395937954056461750639099804487415400902294195640488446314439270688278653425082057219878042305122970787356840158936792093727142910431283383416416784198747197797015932867887001876538069460830174949345200323693727683353206929153470649753239985662160582468190282055119161288978761796530538971427513799401513432762756742686972971066331933058565235485667909774618298712189050190413588562633154283101906032348734198100762395874552235223383153761908103529612111432360623302501247038261620158153459253511617484748755863101618094717706348500721208733949977573549238371581826605817259714736826177957823582838492274247046586910258148288424378873176796713301328990963045585200086731419680837619238343274492485486236728040427496690833659970493658954203646516867692378608385828065666894747982785257000397918047405997286347789242691947934232743030835378717540128956334547973536589098699143559251189019655158857613082819242573488926770911037627125140667417058599390650867694673662932161754132831705485428462480813459361311997031385939688931268093544394089184247756984576423304984543739673209760149513582148525488815494759936133164210811860861305715923410159161335752342388555690071694221642137127749185693928523699680235837768829915648360007296245015148843670334724434050525086252437680255812227846955789263229797673857313869586030924321245901556362056899891681307847260603254987051624909302807965928702719869976823654178928512133294734094592488370803434944632971694588480964858632494156319802591345983567558326062238795549199465886500683150580067421812869445802898583861340799392447657571019115205995896526358876894611942825778125970440207170726246608857656607288093858605765773179533534030388159004176835136027869690713430459536361325510399033398049767189903665832283176817501435158294756255595886285469946776930758526865953717503933875749017257514543701134850024628487039661475344072489390140544198338895552359257241862128048615322954482984686606776570104052577158149965832154919744438258145708394769836492109940779490332623973727372740787695748311177294343478686804187493369728264401670271102839585139034005475830762399030127794883024913226951962465021367850356063694410630158029706583103506658757176665884603107308590456000227375284855620942665886200934400460665800616445711563654845938126892493894346230498883170176577928867478204510989668788998857313016535045807320334921008001793043643348110810919158648245787502908693764675605122446656353595523000840707031321711789695322741133449878409982444756255875702320301166553443317444913215065108609032287503135240390411440670831730420937055468712419213378542469109790107515477020249867124607873910569584361913144019695935194463568420557124203595509559846541463332168791940613894885864810083894057916097275105995351323678878591138320093320143141225738438480179936515019388308714115616044179133608471598981877157164484716417672246906248737681386834702717305103116784080581932063213324218479469432450673569668353627391993809850459799188488600814977395613321479864703660663049139969930576091533554399590339513135373210855639189018603602420290346407500942989616141102820900890393652680418066502802412733342591234787725892337747701204522902269674427568258474686751360026437027563917604626451716060057661954004970196520010665910221685189700497938893656733972836493103850264266005413083974327288374776322871369346955887242894074125339409902128003517711437387217174431847807096570906035348533638356534520848319570066732159857539434791108874566549445093524390462601303336335297850231172311246451063623694694857397681022381888543287987795928836351684479583262681925533123337348344339657318108724806413547546661692529756783828733911748636481268400846306842734631473682044566161001842529104204989168873190350659415805814742345026516089618409951986743647281856079689632220981753903779008753005094289989557281225549752393322507849263055872875648055238310861947939900917458411980966164375121835915350999380230056579429238955197695186052501818976202905537611879858385401732834852579090376236694820657804771298018401864174899277316964761550539850916836453481098436480446089866602189458139058779418603786063843554671941329180355456318306471749049060441396004473763492083488682266161669700476504059023554930439416599254702216750507789272207686043460174419972626416788719543040942615857925062105177563079660599226144557481911782333103514253916284984254017306932975767416949197269490582287580231659626419441422862931956482882023796057427088644954472435208166467971394287054673319863001161462750316972407915683504658261848746545850162574436928218943537640330977065846910724087372157975054642388481541118985680179101017483791632801689395737876197416388099605525643629652034289963674139166241281838030461897728135200310928026061533466504305714187319432608997635300302510841555358431231122150476996389492003396914592377597641762235412278349309684560132120558912058755147494151323182223551308060481551077768845207827477121556365062284557907371879207089550417521247135809410508881259512219986784652317893562868040027399339865311262512868841289650980043088778501828594033691297210017743469819808222656544623079809032597357627619456840609731854266662875599862105729223126578658598649838185036737287407749259733978376726075600344790612907606458415908897940277444230795166916735807084777478208746942159943691020527242148000622288283907699657275577729844308845953873666978792399599212061190828065286728841764143999607744908746868459391959253895461760756697438437743607556101932385397105704981143462288231629994580851579051671374172284030580154276938476696152489631128435509424965353961716706578369630416030643971060623493053050178419876762755496023081953788054511411200067330795417429166548232612673865473226062610111968969151275083853105909925441631170588181922385898489009880648517896233356491163371241995511844734096464197202034856253511427008682445998089319696213328951716046898325568611828838505244200802758169321461777023466594943971870768178329621185040061674172808589153098715283792515100775269014268969555269625729383385721557143636514249225161574643735238303678930482598121782449414278808001610791154306431788305974866714919192999667784000383969808072734599177847073594113855109745444541635827186740313841202216827307014622459786300804178637511244419895888816585851184599275908343494303565037665106697207507067674473202966110198888410843702711470486088668960916217728580523803147969414773746308670108216505622675283441877636293501892204568912480893535266260533457653706526462884303574688497201293647748442489404615413109414056126904472869025650037751837853269051969825417519902769956611288394669254481980246485722539356787997555709666589771993866828992426591471979221030552129891388123860660365814792255356877807514010332426174464387836252347499922635861602011787009117478520604809962910345246374635650864332825622252122929820232442588276206138638180548592606782191071875151897415931844665159780281469408548541530032587089885964349637459502794369163459650761463298567518102340836647406644345346405622727599422095458084751052262522178562872525299050448649119564273874306629007981445972697994293476463064845916419110455826646688950980189830433047139014877985144737671427525077767951629363544104540480334023243481142208116889208705157615372523471437540965680194211579877442778625882714804029220187415189316611245126106622013373078987840022397692001397292576720769813827397599070560038311465435215889692678672021893472485585805712373391637690785183320463764045737598481518676874539458052177868010678931402284011427104968740014580205750313463708511717495338795481540987602671513076823961212616133906834044171042018523068326338346746904303075506534739514034060249466398876665011633210986724104948428376596383914076898763458544755782419417801351516841207048135859714401373102631942031995510227569771664286862558714792527666853572758708798052438200664990034170874273218218065150117060408192689914281799908863702937957814204884902138142289006375655629991086701498286605200431032039645526870409579553160654322953395014093715127808091503400046973242224958757784495166476500462997502410383109451860050192582715289190343056757086321036360149047496489321251116502187082806776191693614292392836756512975826202583906207676438640699809520405482974284334698627782982566635311091251698981720335182990142558435976787062921519544687906341046450208078166235096392109424429131772985287820686454146657433326894088545161302561997922328463375531521074760307653145675878449184244027601837309559011098364782374632866712767761627924314288368902385873478141180141739309375658049634832118755725529970272345976185078022842869438166403315171421173390081185432854863238200080885511793789244021442629796271141312307070831191980450711825596766543170686684350324131235048052855354382106772896543086834231824600713750973351755640032127065904336804324383645413584731229860115539823743675365177000695611303681850610563339811083244113944714155912415611781491281195698811522287205833802297434898823542187856222045724690173158286427668555547626576629389534743055495946865843418251192354917305931084427862144405363609709113564836780096445344118639395792144478926518652654716775228196715085038929299407067352204494353378928743996947637110128171526803674200878556146909515369579161549518866014678504996318251349131646817314134750903187909701837576856574517368770664711684472647248459887138881407957214459742558607019812574146308228700297773352626054146775399463446558905916606619801250417638641183311557451278064934930420289205226294692447796573169674566696551101211161127360655836593253190067785102422068132131572554830623402468590727193798497494119837829334881061615788340542921931057724181133419570444233422317990947802673424428696674182916971493998377348152969539050906417821584894474208593853409998368112039174745030696654646105185409450989922859513472470287973766980562097526937318974766817445392903237978329450558442069879792299882252102863776599685698113078064281963115235120943297736069522005022911987923604790945590681874838280814219057954447172330344123018654556914226749175019531358294404963498293383803472931063164999985438547230940335643618453687359994344187733774506546706862957191222952279184885957310520583778016096005888563890428379215626123108417054719499860077514676578145293463147050225739425358120457832720055937230832243717499654796995035691489435351477675872523070384346195983039238732964128567923891056549778210827924561721391587984306422394695789291361549517494770912181565784520057528777348001716034061836994850287527418811021864644907838833871297041761892029539814576871550867528361926580474621384619378248147603296229774423144490186117906092882599410642763433605587605102990879343762948717378883164570486364706731251845883899417012964335312946923085094678544212442446522910198800820041263975294058197357805019657449823555814236182163750721332390781730014589419465461180090751531246472014928367999792395970670898833629060388151093020762157076676082547187604082815470783031457466507136655025908078676048597669406480331138820983756113834517193168764835846320971927573408034587051108231519837631545521322287466316179211218198077103658149741726071809474461046983099346502694385834892014414039916422550746048278058513730103110538350159316655285266954402057682324642918387115852820282319928812697902931589757819456721764035398266412670070494163944688034340331973056981765054535975038063644635495659694107864674377998216965365487887865480852894556269261714815965092570251376681622778498300252619992756577303179489665161396899834704080973988532941308627967887450770205480478005933832318843082100019956106672737065613974288022091819399594985871310071940011559545973228625551810336994097210064839344319359909599027847513647359460252786235316609958000995420997144160835096674719248691225800818329228731508376998949799477630419133976539828260791389629363247370040239196179958720742115858599609568467169474733514941827591357411909841062517369448713917759602432374559633321737925511601915867863035280360771283351196843327095264927726819359832895285901834598872657005285864616774537180314110710939452244744876318843914115733608840760263094469043002657176740717579761705394114517331855396853474804894120158813783066201024687585927772012348708168312255450850512623435498626677814293847849201407388504117779990580126737973893543965587295291736468438004264114222616125983970710305072018950961533896571617534095397068024316763832378033826791784979548280444977284550542513429370124783463334346102809921961882789982693285744439956214521631834323611097433930028540129267597401422939289869529361936876867114059590855542400767865261342949012291395057559551345137932877964362135990007111304546111933679224040674505129391210026725271146084267708595724149328782467122834180357994758396709209240392070463610741465841894572749481827237475062335022727789573840607161690229432583464683206605424982472982205186776205254945957633860977904637133789913243389683346143425873507862232348788736912412354984581463378835002699092798216483051045745121591119939406394706777921306974699400411652206118963106094954366343736062509318055196223456865283566383992349812670680049009077880110745767865354845128448404845799820212609332192277599467780680933817916318088152614979366968831774770648579152510856997837846477421035557957082835513558250782279332875192867987465366740837345638435499211665778201459008329932406542344853086843731659611485186667834448511986492367740226452063363314326942158478414554961008375880199659398197676971156060927885527181650655218807128089615564113139551160136438033572004973655866894499803311879980390672949454683910273013070191825689612644239332477396273775318040643001541487086489678638518772262171288406002968274530552425053469854149062983689983311215861654188837152604070558895099305185611381934881667000006599322858053145326600142228696793189471588111421534743957987596676235179019341744965080141614055178870128913561714130301738350592212062796688173752321059117318067514512847737531642732800504800339422645397151187486302605159266854390820441384653605024770159391369110726588107402398182107099160983009661698438760413258461786872737192790274295634194201508541778290934344943340098724531276585506985132302411022296480142632481414641214371254352330508370073837379259198685214126722648613925758017798776040641935639820496285909638406178095271717798976131951681132979699605750670843653676500251691345410877348020674504674763198143462769298298552110626413211274401937159239850653247108556241053683611916272620142143605518098838566845927596827969232923269537766785407127930855223339076330063005453385730418036338522217385795225007052335119333827446023560712459742038040123007061005712845452562627861268951607371863011583728914555173669776040567199294632429064709492796899187136252920363301089172243270587949043789762558761666316561144584036228320394193914537308239852782173571178588663734145241224183723732040178112775859406975873680702872228494737805291763851673868005242232963619254650327134557121913868440522768053274171833390591482081190146956429775547042193587474812847125307745467206763194771894271754180869313071467948773417641235054160319697880663295082130801087534791610223692545942712022538404364767154766119926653903199444898974609278557457386538302402626042989168859964947404762188174114503502036626478820710099139748421261690847889387771259612012610349160315693060543584088838502430212971654075121832068728937280822855101779234622743175144656454387326831815691681823781641083057340940279203905613654470394483376346736977878272264895683667275700208272813860213060029534344623487384154576891888691746455521428414856067239838186936175622204218158885419714549000168482245442343431687781396015089376244919072764047793172322034675943387540546542748883843313252623919730082760397802392537489596800310154042656915364377160372513295211298758437254401133488370352255868831836161351607496394389616285757827188896034780310103012275223181056626895616406112240536629172167488936369713946661260304532029259252185078687637039256061950678463443446784131816970415019276786411488434961935559418729110142289662748965273804194857927475227493141851303893629163864283850276116503670588220766386467919677491091721945832496182270246971484838337074600189685376742889378117402777094173815454896660888343104674328493417081903713670826687977551135811422170367921641184635095380161549703291141811641964034541671516575736159216406445685329461177352399919803403732744992268760414771479875550338953981129358494577517320404731938951459482093346641443463850532352132617269102183502058509412509722194916186244810129484118708850033426513935736222357440206230436916681775648972427317447726794957192723663677363276089629188129880047085477388783231337265101093030926909243457255065160562580276373107849278984213455728074273194004153266265269997377128027188156596634208022524226034952801333545063225095400542052268181108592585304478464034001404692655611167766140880575605132526607970066624330072089341725339206033429893010035128043398037072035558873800489752083932438852925475913297930078873849342770079048797793083441664662902123598319762710732358860574558140431866078208814783006869568841903323673140978824702163675402938754011118318866535978804932072563028825316520531986787277350282716660151213603899952282383802363021139968491177162590459316020294254051403336372808035871288741290315398164469487777086970024978945355744622654379694084299420687249082107388146876310253594882820175986860219855887419218335096097663643314821023971633789581586025055909479550704641398948249086216068737789976539721665691625033115223775788140660518225988889073331635019812025163200078291374748255262640359542909920394809523279552307428822270554699954549034699732186230765475610258958356096486957245508469243734541788661854470253716792242707319376186616155474445471693496677041086270997618122816642747658788646150509690894513803756987569458422493140999097912351570002659928739768015672215374438655093231129346375181617014860208649726650630319829180637200355320815906507110220806582785409132022880385732936723540661032022374300208452735700609814780303436284997509691349039805399114371539940222584174102802430826541906643080964390997783277139223265215648286551968503052268292304369627693659118062031485380309522212634255653953813854387627613110431878924152430981665692441183698668101820133481912975657610452239247817991719201503951772374559459905662819051702257152569680061787455533221418316404984952474357484787455392506075769810182786620501516866646269025487585468375370591947156406461484407800237052985056679243734211799463825785264812168935001091662401459179153108495844972418569613391360984251585621087700196229664778933316550364851677117735377794324166193839841812197629868997001255434124613330390294129713068462398986679350734961279009001110622322850688755774861187209525948353777575866337909596153993587104946223631321857616007722478657998922775596732579455197262704438764646237984877251399776691851293826111192246666786283411627313812275662553526467253874036176860544142434609490118649377029303609292552506686701736059550424417100583914043012632180227228655110361314178972554073546665321922876618724125487681277457556327608439855562945459507810153227814289907998221844177521531964514244817146687249628832830559709081462962154703227908773519867689465758141477279940662048724247563590609134580696928226040548487126686843831569465388465619233214838553369690900988742838611875838198492837278850365640535642963137564079385677076508579353666145838493663331780379355724111547617857004876136209420564232067547042857964973575604973339342984423108318024220128745028247366199346902506687654671211497430270739934897509104607065571370727369654995702153603752231474892383471414970734460170683915591281683963986181252370810846821297365589383316899232026753127214483201539223140932203532751468201283906063183952054857367436001865597326717370796365722395605972509781549690827295212171725861042674619738820891713605724172522730149119186860535011992450154051230741933293409726148250445544006356341246861046542962597290018254377354404927148719426485109242562389498294837186109963422665005250275547628040425363445074652215139124446372800868835508399702693667386261174433509831495448780781901284755188862220142074840219066019401487322083483077049179111725180752254221751882061346615211645510054102911302733897543324062700994179849789871688719832114432263630145595828346627892271567179904230025879123830922121489535390793378032237624328282461033544696650235152845312558820451948778394468785939531493052066971167398880774313985848930266733620952351819159611337737772691770876540482526588993952597590079163693243514148262403359862787869219288722579168876769974864887469825058795843507877351385337139969211160878111517571934932330390718351656807806054941069180994524428108941637971449388213838535915693442910277615432874409428348882423027488530105089851117282771068656987309468933451997687031080872781116673777071308280374778149343495436552406136171045444035759747780864447433001497318375364544002188118695474806216261821634258474947002205460119600182248893402860879247035500498455165800423523789299264941911000760289288077737452884079673662998678131975873386458323501934098938235665067660040666798530063547686653860152830120252200246136297954897755514246410354560005857919661571058154717128408608950798526292634944558320790160254832731845603283511989439339018895462133254344836667500368827822163166626358568901169165742905643081190824709125519819682100835146629583593771675771781861392693760867120650307518484598101980004731868610960800355993956389153835358121020288576085794140502413618488353785770989176751250516310078893831094806390329399475884578181997217002653125883877784056340627270151839108535224934497278661369238595941996187158293291927810179206721489734085457674138249145492179678861060347638027134333106218184726321742582685842067610163038988507711664241871846006698642591715626031778082601851114856869059916927416945474745905673089131879251847384009582861244018553476475757608722514670758010038316008278215812152286830256527398826213529859007499145183780676935505513735725958519307723643183963978294785375321904169324524548421530168539063969627611203292949794066061085147642516584557153021957965578285105209657458838715071437607260212797134256016502431440117788338411616284811611352654474575879550444881911474386895494484573636136990523699490460603995914440152538563311781344122369619630445161894330163390261013782732039472895909756067388766819699779448373049309374977321236828734675312941085133472000751201308063531649846377025914856229198862670822085467560059122698816765827559300577744689652274367094585334567295812706938807602780766966465657574144558275478637664463745065003860776441804470174568957511011680964505673459584824223066087799119599218529744361419570000951008201446219338819995694775110526012687659432082423060705018818277530775042121955055465936090937506016893677432675628873292753314027178638396765003111145088820794242861675403706682035371074572426450173924283828747067596895527655845655368146753934571495065338954046341459249057945409460465949640203034779109582857102647675298224985168101105242582665283362187977642920540941677116129523534843112700421628893609392072136771795423481939371224249169492952012153741088511761123279340476945253154389527974306332403237328640652610151391194026432395569804795539504780859118103100141757204926937387003479765852098912151079205608612074022670804420797444684086056772161627236988536962773241492614033484574968474981988255574244813170519338701153184911007659200777234048068885815012179209083069326576962193755224373042005289835889970985294440871544111028205118749749480938566219036833141552450871266345961725613350043438882972665601670167819857699217884699649843800336360557762017362781597050234502216374750038974497699276911243644935410499359150021514062037037900152664772920795478903149495331110133120172258095243030264496588155287058801704717974732385300633106671309342838764052259856828074570186371974423125959392929347574906746082974065850490680073525854886097468719800079976949849589917263389314583473489158389493115199612309953800806343154833225828208703891611592006580497425572473644908855872302169124201877857817539741690630110211638928242126348800755892695223144283920350382493403856875340590580077226088297942551462990666633648000338434981344588382555393381126386820886628842636655390984970730864499650257714066105270497532206674881365649717926575715283716618458107005932453280936383198098473242527367985860728542462750873640561558046571547834974930349675416855325706706065255284415747969309687520248484469967523748549704433620324361535790010750599436005202125522836269365014063679446898754613754244973300274957645247405007480601736783927603009504361302787382744090943459997247061873442627916508947525595872413334893406889008232350245367180234788060263912190279890710348930057590512185940575961792121078847065533222080862006650840783574392752833407580178061659190415430834456558027207582849453768950236610528026541368523502624875551671935332879238016971199432058291403690771282946324542686874046056414007210707502138616455981476229057309781185642599286144373444311026566124103847190982544612302932669323804934850620300801542730973197501311343375771796579167118112354662688476240513848999604297659001464887937187658446333706947636808050705251128946217955851534031215717353887046373547718900765214812670372782232404252599178225909417423812760379412250869201682020540622740348307358849126914862736983274803704082657212455976268328661789428007068682600468211143585991071161684121346399666813438616196639751718762454461056961177667510019229357412635466175216906164223100824068442010266217655033797005769805505320327426082733051357500712690256579039027372999642500428069377653426386579732499983254374760524480443711573453588523222968276960278244587570647588555220658912551889742913143400485930662157632043336103047226649231467511152910916149702805803550347894120540830400851082971909870482933662164859821568383249239417265112393510205316653670036479118952582170521089549926101698222438723256961694918561527055756764442627475246748438011732067562457232333340023709669278847183922153635139792772800431135962969512734320158834773251947198601486063032226657959576307187630821893335543633720206511250600601561087591158350763300672383470613865673651365540297332189412241419468009987220481853539568634215883617964972579982232840374340011579918580604758494533880454003820807295149771145320587018943402533670502477445721964653736725882932801055965874321522140943135310445239878815204354093029216655151824822998992804175152364792287831821573346131109277392833926109637176919243873787972452300203812578872661841294939431329943597666594110395848558277811779286485636435203364649745697386087418248472425168627683384042216089508657598697839833963639886371106944050169875230821144979018430413052323438076671841428050405285281812077163115776554978164389675635545289588025065986053524108233215095021022180951035380777613059039808250437483030550613152524382489398263910410060205997521619753237248991565226424859397520314621407234446634025545808655579814178567976317549452607904075509510231031934824057380932820662985754269280853468909914039557842367950056250239158999244709686159174211550743920942318724908971555577067706920641304478297299816034828113746651719896670756831206626320954426737575499873209073335153087033794305981473601588483567674331181032821451207296423285602522772187337423287222998176914192863449451883498799189615929684000927821209946061477425368115910522273813389472763670395538642696454118285393873432830321758028890901445128049953293297563827578868812418765355251551413139932559742930224671895597596737588795910998339569622758823351695488641210800753193668066420716393902781763713514261236765424016384847106977129732650887223680430343774605347613660665739497626647457313893811898973730672559482180296971058518411180780038663375392805159453872331368753982281796243059408070718049905935020522999927550057055982434189910360893775476203594240244286213462040565174044479722905828115802640034825432440070714271177286790435063244165821892909566619874012471323330512273812739268955597901023019233097049142744061360545137537217739346900230584843076066490566898606698661074558604780363379044344283813146177900737455293398493993034271558160208481609037009276634182416635545759142043383617862375581436689715694551948855514885917575509991997552120246204288542639119609831813911106101415005741892469055622458291488500490113088369498444712662632494321301695968382947098923595487891435181506725665967804526944977832124284213506160462742591253253779097973791932575978969992474497368398850535134278568053230458210200673611353486384861486297716487263078531228850569256807355866785230235933208804574476375604052476767936525707374361438476717379343162919646218601224435885504399591437254292840164498947378981687990293086258490523496418404833838449228594670586146768245943682306513866710305265907393803443075519110035770207261356100859436620948003978330567503240712929754975803203158427649502345766302022165761516222425129006278313735333398866137755801565580101670566290750866915698290743050628026619831092345290999009124343017771251263137504377659375031525959109707370752883309865116278722037329364020293209070152756280309250636942197308256723636906886305760510000291826113915912499303053868205305907320186338416154165774271287822648951043793953851818306692056677192403803288349175584382455224520895734291119752786621694831348094654669826574924736174613165759002520931019840511425830944087355458900404822993051704160963716862260371703350996515571392351250569806532334078271208813529743534248483326306106204343574656651544046316779145001524052508677333862519986370571590329312288429321267698338862844668833997908857967454257770224634285897300677732771652918106547679349267972115732259479986690488784483204530799879542856401257216620161637914281869619614885404309755330016537122854895793304958099904688815658814150274664748276404796105231008168792886872941976534080314018939891034820524118515455317294571198918497211014264079912772843915551217214136352951701673593355649948592565058615429443140538525714668349505213133106159684797453575820472740662353037719712483845128958548198692367470499743951852043757836902705441872032520238523386623077033925806040846331950190558590642739167810295481621687023866343332468718494628389111855963606217640489816338843610720402233326328146152983681558061165057870242321013955050349595985780230165580569818503911959655616288438885159801494111967658083583524068283752664011520847315383612185921652196232413560599646504680023625875266687697793535503893895816090738201186617154476080703581204554551784653996990195073779658333350610712366804744652170030275099646370578563864051705405527935426401714936976903396177907951420738142957383089621961551035661575354654196292112332025240772073771319786446415130442356844563856426787227367038931292057916527806066447482877810664122368423212388494662171828076903512472541793402300967040125171729327449041898124138254784656624360293767323065577254703771559230980488700593119513865100781183900410291840023926760754728865840630762277353266629191893498525648899825556869386658551979121444404511414064359334682639277133665833860923675567091469884571606327494533722732925737112196954933279355425932118020210037817025159546139185503509469667076696962484697739470506371569388007984094415838104029314526022169799720905676974340124332866532099257254377941988607971400634793496625174547940886262421310518576036787936946794498583045469613490026260267479140833646408228356946428705294156178777679418613594725283957453457363945687987775104655820924938456275150254437241525913347796968505295625818406259799964146793493249524623671580851792974515096750522101307933960368321791069941962038041639644651043778776623383161603920298996590913235301455651477806480068894611194979228996184020339538274658109010215591077538111026327971754405199672039675853599294083485846068390111741694320054497514522880983315697632104780911096698355377382980636562753850577856994543200470039892998100434673449500793252174250956301647012736842590169422743235135056896944269081665250930912536196760738528400315200479365463277948704884354335127465290290092345990792335183226830404729381735908014724426724674940437505782010861791241702052283857241558140141323750809557373260834447700980818750770490793028574435637759464514681835913518359783398976703322882638730201041026693122234203769321410504378363740669828352879809932924992861683343696003489747975345563410183525206013343735040307370691098883068852416333975053266515939355760592236296861409005619849819490321187189277004912648291031276527442395800604380843492492515227473286006580520454232885756696101587320153955854697835272828391719491619232564391524469366724243818328884743353786686277220284319227510617921959236411355104739693418806955103281022311628011547183069371470722478522386000417919816923050385770053423136134566649420476756380998062749700039129996908329573056989444252724929133110822303908671741055860057528786843948584912350221982342965139143945965124750051040142391231800134021586237132894195591609713150373127664872725530549619670534740072499904646788398041075437809920852298515235281115333270023209346131734424597128931895695686226545080448578917847594580740208165913982460607108292134492656322239127922358083516786248998960572560334689063521600778678874436876357427205204402239267996119691005701197958590568872221606355999409769737782722747294087072081574109354335852355017003816526879565644305180929192517781585745930589231077218415449331164844668590082747460678959681583968440567305632486070085966814585433911955832920235883018777118789413649658740050195163671061674143961423949753025905039341776584050783049922991520772735584908786018672238962134733953870688390034449962513779912045882655727341006141567246321616709205537646273094493003717450508391860687348133991032976777571825469963346813705402849036763917522441837179691255269577877097137478572803858143889179931755004417054756630091003942316809605593750295836597495233407544379886241467991635789507626299808420697991773994224708248482367169254280988996198321560232550988562833146466571583065522954285777007575106502383291598302178675214197259093053312024079638926857946854610568969347231018554124495298421675125351226666375228161311865391901114565629995976813243740924909049606133931034380299592614458083990216816385526123915277531171722898380298568991297106928773630627956448536790112684282095571029302003755325328959927599732029628730515161091792281150688623504564220049220569073872259548057791245837949799354894039401527009725365962397925229286285198685068826451599567079106880346812502109879139386307902921448087275514016891776347913361366804309602462487928004883073934671406272543108095979872334947916471082407158223737610935276197245883369768623445235353609668202614567189948776697902609634512339673728141416295464716362325860554581679631857568194273703722843169715505726843241477604781553260087967504388860648381608409975607787364921497595403263108364960339338197493619555266345503408002471049437952203683891777268305964802764229477877698344716096657689475936325658835356270668296315152406140001439909416307042496423361935939296757224337090921874543919328192642850236232144561979632729459081303248320794176792907612118378498427924801621835885530283222629813730645690175899070838344858326189026093432825575242582084247036094298907245643395909500526666045205616900097613814169303781590368982175115632201719386817230699189155213182631120905604703403621415844900837733528185233825887520110224464578252264676789154902108150914056997208164924914195011454724438111853201313422112183971456726684888981489621295489371564575717717391608554704534006242778185884724576595261222278229757361613024835265857565967398789837205945122710028242495105412649150109024234588592286291873032010149834803961618163419349654140851780043392850533272153355734753907617977509062330552280932109653612897360313651398870210956817465687109139355967031625520471395700651775602574249908493572700939762286184878349086567836809628837151046179083623365706699706100939853181556136972646818869141170880132516528497987789711370730836065288180340519384684426187432402805340414402277084351912296076003159525945906884981135572716459985257312990960799661006413631453417035228584654259842913739417874377380192223361098393708547355932335082549738725933206764371390592903954799919844870769761271164297855163768905209548297979434762917233363162478709468725949855204334384022154580720877321779411039229091126407434438380610112002629197333185125437449591940611120554361972439225883971386539082007101272831646939454014903700997483219689910441841839573232995239146834699971910911196289676607122318478872879084517746581498148222243274809165554472025673076222318600591342318595583883855743967208991147248836172237560899387756987116029914009043958781185438912278018117059098355791795656477930004089216158504310387057437699492322731703254697381345574020780542822692552772864534393722132780521583945484996244318603087872443477840082569629688708192159120473907205322844672211861144815770920675698863767021483628210328004297453416455988237602223312456056825585690584260918026790014402731535398263539656406462287690615741487966648537519997978860450856131968637616327368781595700734230709671386875466204149734341618299552666286008133933886749630574609338950355845880568650097426584284234128820674996117838567329188451882467343016441758997898919552667755766851875942895323814232036521767545253520757759001704427038144078472313975884902933610548448490032296314750579430890263208655076991059238065682309758719179756327408685194667883518204733422289357115122233869385554124891853282643879927940729055849321690157914445070523373337648593639610872549532937966874777281962803155854996688006212959463011964694116616885396731859879156579076187304995186926494612734515114075990585485751137903666688689697076275877558598955364596642756850546954791111888546587029747283364278658707969807984962793387355935995206819005095566672227283530466700804611001282204355050202504931963351845761714202902500944382185990799495794766310686933939038058484518123278945623184024197414832127249424358559391278561201915894555613497262936773868530450831359609843146043528010295563896761218809866505838817153837760216578940163226405833926416105509582811086228319320838231229313975158001015456855809999539414308366427469141206184504727482296028991843209081504061183654978353994743736949910820277578732588104233325670391556250055320095371294733617106427280859869783009452945119339901945893216739873673237683066282456436720535909189448693718447619701534239839906974240566878197521895810850138784399695433266743474293096508059160345433177135077289714243558714428203554399014851015791588722596786937290092200769138332158027949362113398434929749784284217573947155293961727892064359770576638277114778213062052188544318265844828214374162946510967617855867578451298967292042876610207354909646013973839170701788755773471842587955082520481908757988690879969570474361262156572100581638677412912202086949927839594957829217606544655275004350342379136376914479807703097156662113160142628360978668704651080167814569944475355092475732117671975090797685977500550462186627449417763191104896630178645297334391869071302581989225481408033449568516098863764821283145877393275510902983217342057672710874967529263702362579882220151186729899684421797613106480376019384946884525376569091459904041614093944956248816178400204825772998954079852209770183604860047103981234527877381993034333223002833719062501380237800169840978790577920788577705770499990184574730495814948366525416307751896658609829956520481607661321447279168278018005926900812194180134361996753352833807256438365240943822602271119642545684941378945801237583996839729172701363437025076501855391135361348161994002241321345830155332465933471339634847043409959918854852298283898422834342042897505445796610105452035039110737727633314223507032977275619212218848952255494218738820591814234283715361985630636829484345202185124591059469433919843304702781937357151105926754298398966764631539384053641173210316798217450190800617675182295859353567853149299303982835225733059446782958584997665565346667985944305331754146708463819262208405634709427240024813750506456825172645839078493442852614454708402714994136063295072350859644243596399981860312797341816301184638059926163795313533178825266528176657873419647792495176447582320824930215393670742093812738307591284671039528602564370444616009939411168258280351995702527774086897709738376824900545512299214212135086161021905951134544850715176843035832094547916636003705097433397941658377419167065553940510295202861954782533960234674659515381872966944387917894420264223913012779392051770497251828091761055069519547011109838330428680517078931936127069152310614243797529301353003311268985307941397917583702961340164561459065700678566331818502243084661106176602103412295810886654903180962703175952808212329422184008452152114398526185455871315498192128043851782947516591996437129889223573020546486648927670836740390660803583557986070169864605381441710736302735976805707741226782425186094807801266969427847141776026814840678563688678954704121994840887097720959932642146419647777593430480918949716542359452505214674849880757017381140915316087951601295367179420365890282048594759629780666732809156278295889419357563334092420506775562844335900841614094418082307775308342468485518323156229245482547015293755045153938559396330939192967280257849862319780548632038383708947612063025486295448680450748593743938233814555349508240870033649869023309238930584929480101915606000406879664564990829758665972588124874234093832225646355376699053446225083913136693845996973282710869627056084865594134368983184711273666194818521502652103401735041771339743017839327505588531258957226721101965931031192693817671523387688745546503384494659065257578149744488212671133531269832293819123303254927558065799086512995198352087464047381436845140846394241274955132785127966182702560266598775402475019416925379222464913798785242909513301131298366877739824590628795103133318542625346144293004805036595898014521309979526398785400714779412972521021231778873488576854143073062182672347868047601188705889594062433618710529106986030697849583098157524894252064419377353887304147594608269366078920673021033489626073398003986459193188048496306434412803008099201126653595023019223040510213476417300739699902182413375147222751579919357051697500847633036428891309427834212145525267976351596902020472249000137007614107498439505922675263688405559413168000610389230008191705316718629107581194730614628105895152467730938024788497313795343311866528745475032762399475034128107925382719905012532604308969996320950934372429339864582114727760561745733587190613103757448237361867245290398165747299399196402914307429067146352222326792714401220470776513474589898397371885119931717256588040569026952196738282768681624893105480215642464120693433042325214452417308986781620253964142414114806751650111531579173054984652789222995838203751902673528277609428472866967362321201705305274693216770766615998698952091522950456757034347853246689610000698230606447159353115069253502390591451281600475543573404094667674172300440900893508420361932774715560606532635274255680343613624723117058188589936345306568288713964478587247829667337736737384185881952138484931702509228193627158267046827380112615323129264766881273231937671265554989117799586393074155332105444562410214677087313681883730517159655176016443265913853265903423051113676780530600068060800098351520720138426711827695317470321628588369195287720458490407221660525229719849996916039377427858378280970604597466873973305115037935012768888979642179287608782215014211008973633735245765650241609074006001014190444457512741654778336341081077036301477769382127222834863412212193402205319134322848096340456511717818306082779687989396293747763690164905934310241648880108695195717193586253237981830962213443339628776388417088621052366505206439541937702878788262592264246284713905388856592237558415882529097225387495462372558207265448007305376280964188927895665495386649655994112203175505147119266696259136260602327668686999034997091129003151358393890450067374326678088117763085654235266515122507712903249220060290514465200646669937315973345247693399120660465161077977922300907374630217345893031537198122598771774746713822481187008756626219017202789099967513447188569706199616902929441512814047144032791406891370829828997857047723008586345376120894941644404861123603845327479041058617791287209548487700714634380345113321235575000830602548665165016419359575893086687480943651294760232209503595775802482305581122924127675008175336831720171215528657492859835545786244697549167915769906724600859313664020694823231133497841324633446578762487593145817667360077353362537897506932021035375804065342745030540872208716177738399325908389086975283738302712029959561929009465958163321700600528596558274523524439816648967452018741528489516712435565240723601941154700747720971751340988024713545621492181057546958691061336234177298241006546751473671999159273949332609206971355339254863937285424473984467959262555322177326773098268130108870535985040569489571977880494442403879377886761684803319906623307779064943846028124017668599543455627746378629374766243826277475572047660993531071256855632008776571102657919547763517466061135340412015311865711798498728646697621919676580124536476964573009260623196935284567349279755039405980805670419902940751861870434887085538524230517694148163471515835714480619645550822918782943803522764643475014858276466492865948409041335616503192722417326817660913498893624884229341295849488547308340464839927606713049182014463900256018151879410900977111938178553345014972920914157637630425493142590351548007203505934096073950324993362898736132184623649168998039832537763739051207240983982358801232356817193390653564369716915621373001268311835840359444628366512668604956557262495013697984149521419595125639106553533838620738054714721093339322927928416794178859259720649013935724970682912811879490917079320215144850050088093861702301075541885704911770369042030666639012789839798646367695209688076344438585410600035136017467550362230972076823855692180476093007889605658913121336636524111242064273035210626547262259211643368067398288143014198293812591968509513155590347165348414518010155698932316023107980071851656427797915017599371782770856743712791271088066456304923027274074855332496734284279676018996354172781717690246485849182799476561556509127177230825715871513570008869434410226243192795471609700869860612815804003959950879556016737870704539108144989423073164700735854949090877898941992108183957285432000337309281128264813680323388771152532919881674268569644883157519591498134431249261063981107844369741722245071988807487731866861028180598728011793332560794625624415769940458034122481971355872475830841974863162680158370025391532520665063562143713869720304957987510689107555706185096100762149453964484471207139695001200300374947720754285153291249404553156532740573302183770611419005103173113138364336209726018611113263100292813182316776928164108325514851890002154704374588453099686562289884811085750393714900775981654705944232583444256702848272000794320932250327428846693159157948209453239434101469329836246232230088084362837935158246146458915987585744565247754335429001607428701463507900498530155440671242048374022358465435886297483404036351948618674331625933618743014732344750770860484982806262924872552670847511976529942652255114448574422292252113987908943872407880869150995787229550001121259796878438704687037938759073380247207815915320152933423974045652115051237158980200369841491352879076782321384799640154412787285366496019185220532968982834171163420932933424684963512899677840328696614421542627156190285073411200248916905463994542040886354025660226803253914082042092936516584421186694447120014908261559011883320614917578069972894705482635610714777763877117564581981748112455290058639710247536591289848414888943000023137806062780823154846580378911269433264777129513932241550948804428872777388402647049957043460799492041472732044459470093558924896099509837461287758710187228315351921203045724961029742713785898836099685463893751233810346211209504640963929378147220301476263910632494494731757942846593239803857293469976075179497733950370885804811839821138200074807497611484086663682541798678637255257751628539604299617130322268220702930876773263972721020143335235750636403181243748084618449859217251153653602568000083162476821612686609022857343757730535712728332073957484364382246346491460301918602826268779266157608801664345837540702044349440696039904242565525306994055900258378487004996410291054667479315414908110072355720846579609367706123737537547610249218797739818518917259502876206432437130566395951220334709362717519073577780532485069497842712273787875426659082326653171066370719779244042807432263204901821090353625090861509106409140228825186723470797414057652156688009978526925793751554655227382347130508946039093137975839501654693214712020538226907465092069991305998310503261146304526553220531375314776560182640843764857987919255333734965301516542663723577925067874220580900615770469483924022825549423566160191725497722445901993870702232737738918444689565763610967095769333885817046829024023204109953074705899944651465979107392587684606218824137642390109715834087776820975693920394960355298396543729938922769866028129511971219804056661777763759509886170769550325645743621986815147546040843957437840392857062703929706556482131080579793114671759267619642079905810862159066272541704973743145759113217221590082783068661903811562148773612952323615855428060241178400975029761451556807103754069612439968616580422083138004631707476274409272054047035705917008620660940333092428516105085267288186671244286615482058917653571529156251088332604505361678259978061747472870683013893318321103432349107149412045299164888995718135461397332843912681235214097950011846151983550998413575310697744151722529227682130181765584605604979422787101159298477543545481373407282558741147375492534943393193580406223759933837278812268640926782432843473128376833399460066193108965187781078481633559091537548825407885471483509631278524301548706649666681314813151982205937129900455336467265811391086615586090167149408085233062928236905134310572168354895694362223390039125852048066432517357084506355259270727974827933940157103680916111156951444453534286459156627607860637719449447105503050796485355900810770695601020471589297041888699033454369736448974344299281223755474234415563625429561722531116200015542556018438294503725785068785242372007198820320951651098913193982842057363857761205543029742948068034516020566232571916103627079509880609736122172657018589713394494689802158331556062549622048810662171495997085521710011188435146221129655255717131016302314576809456201898351689938617857568750437348649260574490323094761061367887892580305893228000420905036302525948840040102807496441044574694049352991171423634380406930286974727011871438273220866815727540505037195917152378739924866743716542421761899262572914242995780837298931950334167462961737843415683368791383321389057330525427334532442431940637509147702202308814083098758801165340546139459079284248492477987609514036151727462346642131287693914808407876326938185001223777100214137943477352224755239160764027597163483923324360859054832424990925441331194930831071079519806132869085726717353760998707117740037585817307126760572878138959949103092752161925551596785703268987517096893441281648937629347270709335287818243689214560359734987541530015024468582326198860614204926414991023804664418165719679118977236845351014880085574690260524988840528068761795577870087477051582194681416189672457197233026614660830410544183450415527678532473841516921389416875877116058586854106057768605859563964400979275596479775728225820985488212224883275796616195722094323817163657429618790866238378459785844844950034406477380929248512791078898662858957929001032259570269917721648450321852430288829002649815389868400186944306017086963039289505103884175480769824734897538796568809917142741340080798835442676541855588687099812191063060236886680442530668750493181597115288368317879881324339276832296168944922680521517793659221793020893642354786303284855551066545528520283813900188341971345609489204754225709156796367839758457154541666512541099382430872173763879925447117326058586569215627527568227368939972482547978810465135329802687582494227476127913424575525465829279623350206462549752362985706182268725850837487634891272009822578648137207439641180237735536962286085190901802065099464912226308612986468029252834631976608437534142379052869749522212124393092998295832563805401025078525340669770270933182740996600406853326094693451257259098556167653789373037891954461200910164353962856552754933733369647946803500357863857489452378216248968531623156912477548015407248277838462545010902756733190910115644526783137570148175947641989612166428478191852687198725649995651835088523434883078051733421698900991060789620885178491377135477400946059361533566889621566210706532442318420954999565946095414433079033685567129418677481606994917303961776401142279788990004015287931391667843327117475671282448183444503164311583872564012078577061067836243589601404114763758886992583103057716737057304147070885589900573783743829646357268994022964494217637198906452223750983015431130070615763771264556888099780136214437476888951198520358646003407776298390781949219789152181545595177873167099501865452696664046315153638072691131788861569430149202306817358002663317885794960182312049044726769197673278681132414814566935312712009321814776664017124677217712349656194833482607264820996105019431535722253409865319693613845762029772904203689452844221373950968929974707575110606554253767257970728760884605919274232720906405895330090599416904506823015057463642386756885252472057390317898811618664456154484805648694699346510740054551036359151370038067741668246693723586733834277455992299309697057883694062852998135262163383305399693561164725167913819389438518982504859366625199906887080490016091973325159558705756036792703519571445887963338100273016835934762054833333867736596086515178867625156809192331992962067489257745585426137547531693297127782759018622703126619131374493425080454681275718617483186410119333713605158896084947195167404108541257308060896874952748354371121008318339470134682906404591377892890479539947039077460698575144948016832670471518607371801480367558501063026458836618672880794400795459207776121996854473420936340825371038968734533596617033023872113454366181387215296410862810651179346206022281722933259623668526203762523741961984257318095268171516420906396927112317169678286882279664907270864725134737765162119512702272869200509013235990540538994516180903453987325223640906807672170655356747823913649455597333216194795200676509451436650333814301011097940777359566219911812767662849419340396762380448870295478662413711714252080654726541134048374612782872111956187381312988392602627061973035916849477923530258391686414050507877103379306584549075573500958088522474119783366886910406208706567205233817378218677608783854588540226415620712720870793273712203108464758624949364779054970694135157767097177052474339247015208194664810668456534407833882568901340152586463820449835258895952303765815038295866623823001321349841632038558568109225510641765295789743290853923510033676621589086784429995156240028030711116024225448312808649679480902680919693153024993973587379135730653716082748085772930069542139592991631071225960423677874941493798677448924581327221434757434465683922178356522508912193872857931104976729810702695199115889803107150718756614708435303049881757280821637456766502459021226261490940582794734656573664226833277335276443825842183354011024530252463120729489327094803647002316925306150648338704278185151080299199047226710157155867889606623600500517005423986233194553326401006700075805641615752588480096486237759724929048257007872814970647772181342520120824331019237967384059888180506059243338250073926737853856746854691433731323974708072673531261427900843007358549440886166989581501889781254549428802919922014554403045390770726600022845876617892392043404796767810917767581690774379626160268348456601804244465283236925702169391539200549295218089906983511302204789388143573827132504103633083518229005849311089387446230912053163808797014548819846491181192072267270160822492611277484609866783153303395722914870099015812708648828733963371833310725611251962721406992166335269914781535219052732231383997319573921284962473439481716727689592641902728533291392809736314476859719010593644058044476154550370177011803973384207885191613765295346792755337936848088729610402193385648167693204657494876192402760803913329925672495750048962779976868093906483014634160865931797435848798547814685770538952295300748192216170165085308278666108776031896158187452591574507217617852519956850711187222768074653178657465841427489215346681603468096833873363560159371145071635228740968338986754450235352745985250504025141041227054210357958462147139195982723078915158425240282601447642722817720058106257304264093126608415094180094580508994902990448910347022754374574697371938664671370462239498091337135004873934926929986154210419356631971556606710394565220087773678446348142541765957732942410638791466190429215448503556617702147712740243002403382789052698449475748110527991784012644134859525996951583276232856576614818107263905197722419198156411566094398925899305812219466610496520423854990294993705442829278336336421796510590116282698410311392620920741506124882150199320163870977354732488071329279456485711326560953611601240443899885368350110042215343346296136449136054883055419611800438897849871164497991797149047322956555006119643649535030432863294971008142885325476078038077824025728515684740997405940555069841853744510760585467240543326132177378491562940717304677019603906873898907121851457698131333836311875344040446493609855678598431168298688203875136637945724997085886308504792817114969579198228195390032981549173681558357447146708915580811701321370557204033457125866596534614390089019557483424732242577590917496373345464727464240964773757256989668759182942710377184532574217212089692755081787770416306870383259466759593759019119365024016185778743232113861788901583183015873891974810243385825290465724727691824110535100834755197607496757475641268856738554273275899503207980533904974789776138841590300444755323682524626980069613629023923038885185190575814326955048377749907557869805423077890906851432882860843891988665729415211353830329030226185385266051496848238749927236996424371802304567124153124715101823750753964105236578576247052249994791109348731119264183338784807761916955601748007002522559320776638549345951915656951117956773329271981927122202371609252273572593500927890406382914412849164582253216301891161064576836973240494586142616963198152716388736749702736050407509786370694305977515576080167319134068592385905433418300137559666569752846186682020747691946283009306963661342996042499214827504093723771271076317173329322170374920788155896368027799647029451403338948276855775952357633908439221491758063542835793092749171168598556108478657337681927275865052025676423350020212090380644720194916161644823861146247376100525694306224495947072810733804259747147038112050149807194595811831875468958350037083849310075616783340908612743047669213508120722826071253101960418689873646456820846287848347333704280738168213696899878825868427334800158287864623190592521660483667970160854929578604998277423793652328407908142946501457621285266340867735625672295384914493816678379361604184643832627945752227870098093153220513694284943489930397903370293413852019854541226808316233457956202301041138603181088024136771830243499319505183430901800247829833048374016622139182182881157696226285351824888379233889004667736067175379323422465464129690510080314438256590921240325048156713375443964207339898902377673981336166706134994045888671168351403913740214467420844539624486908480089240788191884997381368471837499267224545247079992971467670530406054626202339156666861188993465676929335165162175200274593758322281943426014495756643094200823687392445928074323042728856882286738009111978376115286102229231088924547472602703940519326996346731134360668793673500716858399072768450878565036573468415475551763092291082000295529049636757891475923697492882223075074065919941539123592329729854402467500325817006909617411679679558417243808934350216000392786741637012252241551189234766903413589817603763641182313574458464801400464659221178315140899955499951236980208054793495340175797919178410252859605908838727457898365840123765088341250131401033600070187300645936527624187833616783958958754482510768776300119008215096536912236525922048329345673248346438675299965685150119305796792294327951903532823464417198391525540513626436030796304989341506804640055339046225008170799197955640355564682961068197695389526235376658014775074040559174319474596801473305031079925732961815950450655767600851260522663088185912339950246261707137746308462928075251427027899728126883807736744786087736961827119347437381882207761523262235976459125012997914777469336956089829634293761820823480374279283458401376742645856361783480602499042658236918027780463711573023326585998753305136708653099418031509572026304451837256644320171002630800910465225728739771096855421064512583303997500425120203190752853927805118870331714258983587171189624381510265083537454153119343672626335446617920180014377546145643507877214304823072433888089423279386297267488259612345050946731934479877739417205553503474250830426195076369856986607406914819958458804146327870327790065003456300992618719998336966857868965898692517822576783491429896332002335760396820321948690192210138070748160264673100058690226804240843734852676916907332887201576254255845991823760736654498584374464801590194591809795112734458116528831722513800970890740316168364867963585267799607434137457651164206672030986395145857992535814741298576099492228500503466102473347661750784273090595570166590793760228325115726562100177204827249442171579497947541995249293849306093561775735316759131466387835678357583369603158728869805584076939620479459925283591278695588435273218519285610596105390080650517339598773720468138329110582527033332527919397567910308859289450192860475273932236269969928079748517544187768269118418261771243089587374000605236074199495584841901750394556230607243037070831825965183242143141648226027920020209758428784213730923423078266167912223974225064213185747258285441690870969253333434052989592809531645828605892813343082535665132594733388319215406143087703282295651120246801996691897790238549215631138527432418925068815703365989567382557118065795540006376498197844591110038993226157018056401394107274738436835421894038713349892064859481628117966401633374986796463201054961141516172291405802469318000182109264823647945132202683045217847936262433435107213522732697518149939784704856139836241617042146286303975552616596429911475807894274916726512979070027895655154676544961669634937084637075553836771647228155056574342978913749783463671510833723009537624279500263564870039496676385150455472849438954508025620972374628415089585274737154797493963668178199525926118588838996670738380898925664165363967035048489964774099698360526213630933910475102433693461743896790601990687095200242760782201584437130820418165792101238808038173837605453256861726112528096847379360005061810760278136885959792300488843640141076797239315409866218943516459728947954562000464073550631907757375317915192296816562015822161292036225686576330322584265791301417387719779251666300782973361652095737937325988876599420989755477818328536748054706218643524144373729391502518906221382152564191045784142179634406906717824263071710576142458057595265629903600705988084086322153875603596360482337651935025456315806472878244918626130531784144673187218651103871212031722870108190938109871205700944118481038564266350055284749358636717539403386790040157749603056570719200844884634801849396329849868288216166560173703578855921936272083408498151609366347258552953603610640129745790838181602046733049641998716530449402081203671809911915498698245758209985134482267482728069735931283439467702415576135746913952752712200808452480362273273338825277689514753192564493311993141383060599607595401220948083801497610455498249738906835795315311645367840415341865267926995186573674989679717155431003269244766822489521171336895498481326980947934974055418545627893803340616870109364268223662562211289339120604463701104217378908390176145178540519532529993229798055191081499830678055098625328212662453754815937256774815711786679178644852055572598809145559254502341038508175753116538360339096950342474737842588938307093798769416067064633257546099104524397999333429614481518798885517611691324321815328098372550903092099042978121182343841509167665738547254808495660432430700772852943965735766342391568983864263359989378830584263966471307615106416405870644769017473182105073875845826285148926985005313827705719852651947359083837840191986472565667034472242311754193145691652030275646980663027184521535589620167122223473741023367730410518597251505930787470259018528428830385061190454750956429520491694243648519722961626512593735406038469371128901672731089409959815566495504352924061638206552874329268277162224598736836019890198594837036820937731251982647652677111304710380181976858753846438314296544051377334083628713326384977843089440111287255906983951116285939972192755109680558640684365927123354346289462506608383541656917122942090354267893832541752102270289852184503089580202017517484065889769026506801672700603348574243817037773248969290240752856105231377051677755424858968723164016132651184274845150137999874413378574753321925516478106332151690901586200336951470429067176917883308220343151942995334244559660313556341750659468264066933478482035180011191245763829189936770514956309134765385651708146495566521645346666346665313918396954342947527088418331053042947250214484299997950069337675585868833917828104217815917910418954171133608027514450089032592269208100984623898037243899797730758706063755462473995123133611561752218101380918134206255676197947685308195257428899695724876202050321796214985439522264818491443498596568601717300600869211245627494328466678428466442312927886587840181677346125782329381760800965579632871924597975342883945954909063153819806084220532819840278932104680886053526606335058773172397828129896222335575526795122810438535887244679023298797452883597629255465746465520750330770015627033736562186108968311709415688475581362873605815090920220723088943677806292589615260250945192046014580702847062346880900904849189198090334362616712075065304064565977749687915746492467705420094712448004506501535183127760430315570368011609567823274319710109451348086131197182519949009197403881510051381705656784899016221080228768333557396651376995793013716795966807850544080729818448541089626031409839917816952423705698770039266567104861996800082257547950122055194285275146130749816481324413568463849005527966858729913082450018499442459801751265158670069545582921366068083090596876645409709159314527430456544691496185463334595740760091259799650172132673362419663379827026810760301427217022596547936005965993848726784262059990737398381125577619698618711398400086790634627280094631179932469359612404305135577692109779257709948855203482413483382454394225017755896788007836458428805838954304725960209265426168108423411183570983283700299346246121412358006203857334013004822977706906587242316185819452453133579637058866266225973265929442752438611119318109700387921648650432334661301359057536378336379736389987919968885438336951091392437607518676471286473947459246106030381183704603176158810690893175737019906136036227361647736665527927235969560846400766972302983553459164803109412393095366299824243397412856050662021586343589486587187270302725649385412573913336142118574033514998438550795652480515031236131852503842623845847640841576418567528130239504973189049458419211606434676048770627564154227854359118696788905733174948764019673711117105597900773631649405098075885585631490819702626691655584992428177913513052057201135590706530318493127989857212598137868207210384097345801821651116153713737470031337824878617676101714176915753368089000618306975436180036171473030813647481709170432229007631961414558569437680877244164321516959711858331597112700702141895791444804645482285661676031209917074775960601025004317111906374122478511799306804988178489413762808899890669814253812381314744388501223832456620151197469981813247568500519438284613110139401044714971711465281949493347913498842844413277389815906401484190769852104426146195720790721866902301146988335500219355898603318661878947585916089488490533777096067426909129378131096202926989496282227523303196015917534470340690281053966509531055078534684706264035319692098455418582135835968134455714856673815989057022047454968784181590216075118838080115066320462366073747846893387035381091777129149626454862173671296611839927820366405454305820505189846288195670234989763359444074909710344603769601221221364937710120629234044764249398776354009526785769772357474817433525183611594199222896189927478587056052657061909973673299393285931045467718508972922217881400812834048632590385823427850958297292069306175869872642993519167046565910789034272019177690551903102716487468541154834514903901787275547145274515363087831899221187717645527638681221047355601148673556390314935064227010399362823998929374325276810808634337458303099318133760218834471797422041107174036194990901450716748064389265521177481656812357725603345878734700713450097909295725976563153252583232478336034225319928190397423854756048609803265897211996082731152519038471537598453893788969633868446422344356138230813426327090753736930489081722473666914319016459366328183431630998775485766426638291574710154768854623453761641786308439577318058912275256148654207068739282843362086397219482230306069358376223203194321326904341490390734171199094388724428066647718860112678945585284428605261606670340693013080568657165849651371702208007206578626707237026616092485558041387913527358647008438842544890219840992977121631515146447138612234368664651354932172597953977537204905936281247748592382953125086504348928756362668818796389496123240314480401710912504636392206363973152778510574144863441482903117862825616665142994744455283302316519510956114217346403776581257898449966192117081718081279526576302313753440307646375793847831581033669865202918807556161034258985162151701099660538866600737879131989463867478821726174118189155846063579783212051880770845793600403834111423232351071631924456994933981414420064358146836966605778689980726825335706836510584839142939957630474463598996156398561216603291951949485048963416591549022134942021265426561857156109269051807024942618973382049917422571139263452150635628915718971624397709575015231191694813917569901744335504304457090464281533058913331090847706288592048561095023187661894429906881501609299395035631200158441641652924991496241108841358816945215970610195527810815879569758622109227033344855169774505531540830308831488985090269489311462256967300783332972750703962150777681064753576725661129843576384284470846552178603034732201852411177160723352519986449561862285566801638018207758723681235027853458867855458635566915997545125420655887787925635317561318230824345423650463671848019424137087582741453499032355846065323920976366216382439596700835453478364119105877466294261917989942561741083282114623132905438712349407700564607665707043202752255293676773813245543152761930525713356677725827710446501682324099827921920543375292973231161218250951950231497200270065744035000865733870443858972977377405136019053195315004757780303621212000607275211602002724480306258965613161793412896719539240229666560591054476025657319329302003744883630433656629597430844260667206526453745358735708040386664980578262219184588404017163806166958841964893078281620550787072557916099189060832725595802464264918647485910516282246376330822290903987346892350722411118303647188118184401747499241718462521996791962259447634059116614145594809296669390815250700088564898151377068577728001842022956315042055622086168553915981735841543895839243151043275412824423046309876103299668713158282424720222029767635499891735877122723818676421879197051263986597799373023474322497502605557420086121153523348592202105644079122348750284623035903754057155154741949462191412791758722165366384877251840880840043137775956095312515997796808531540954196448869359292860647931915116293443850070807826046311327284386946623313641195160238377986443882827801491410342147632796832113481199826153718378027808583538490867409332544688249598757060929920144838765886455829141613420256388009791201951674555171853168197795000312785931037977509319774574193044102231597224758726310083891409577774341869225053474698914064125101801917079046896555667118262625961472968016446649670879774275628046885225211579008628066807472197320914055577464362430170257050336310539022591668674922634647835937884041087085210224151954148401554029106899391488485988081622493897378463235117204891809957741452147835459282292198549641304580464484139206136608674159642878749295902152135746976300749052088553917279040618177214395275388327728521937853743078662961504731519966133751497907755529581985495957657297515039526399829777296323302531836289025863845127311943015007780271529309382356506860244548544905996034880684630935220391005039033266178931271065763668865241422202385142882236020070844697673034365297639309673990390446641878703890609448908533397697294421888465182031287843148529897408131295802090640995108151817297125205245740909200736058087663357939337416831549695907309025465448979471372606999366661075629879678462318481352855767926810994567219683867008561751863093784451153526047314158951904407038706204635013028917732248907172631076181663599199037227329077881038870049216928707508053745002532828563949946370531760427737549537918000175904254101561707996511649822195546924985677532503826897310980529967834156208950111947972816074315286594528464741683379745240213781760177324510544612743003696444346720004053541376710555363334344346744206396227692723065557837126578550064814040653411000639237295465654532237388152217183577888974448032698670726657189638045304703735703826854531530299448365545220284601091165652035517450973814439934673269078410509873521815250624928224900690679647473566325055282753447529383497062136864826138997614943492406021102019115266280672946889271027022455549368872046250439325709645811044852723315177555152788603927277071835948743001719079516787860138159130917300219423972975425622541462108565635427036219794156518412655953218566151619629797724963183254170123815275426804427993591856656276643892341711247087281674625358834790397204050334222299363385290447082305697714761177917916269229739149850598527237709026873596964328898208767173672747932943294597319873293743009200893257792151267358950121839840711969047611703168036768267769578117141887577933735918882713388388590352613235370001349561205437839324963565666501976467510214622077686801847984246526084643949497563700535533834274286964279527873352325676876244552825946335617232772510296513067623105216680726332536839909944017718475146094223654020377906250232800316569500501040210230723172111322870749253722127177928540341003920341438135999905856609557435372575997131409188653267318673417147914304264970408329575497333553956156915624828806484497675911950848800966891737038392774718846223477579669365351130147847464800788757066778050797357045306381264598223189576951242272913186939365242843045867901492889130250310193902218040031216844332697291745061237444525778932405397479568895364007002333590013869040827613039153904838334176593306427470566237535180590052595334051942171959298197897817727772379314166978078920140143805080538544723452725900334188123989090997903059425949257257596057536287081525224514529281841015182437167063357207921716226938943427692684892584649281728217210751058884070581947756611126050037794217682170437863410934643454221725786919487448296849360038393015222569218904194984030851851949201744949164032451493839708994392623040822320992435219767538050890222167838936589280358689499989009099574670824106001357022797904201123492618524349177747092656031958039946499061613490150245694573714728861872770135900139703025419350081484396397641295960391678701236605698742463826156791078384043553703464108716646445376947104135483168532157431302838818064340503215097885080363278515456184162442054352769361559806705433295750508544812630031536899054794557217402762530120110490535565624013048754333862323299135209741511311180513320477085163773269324827603992252501336301081875546321986850469242104033378433370454271977942626656766185262477202224437655576652779744601182256446141402791798748864085501089089353582257502872747067450266191158116994497470846191009560606470543805320606787650031513946392184394484030400691836296548059742734655261692145793615822053219767536941310688448145661669879429018450038582893324420897001859029184242012586510466344326363052363453972241736473044670129319947623738127879780349367805245098922446708867803017673376354322335469404782395235226598172381111237808580906189715216672021860876519988473170049574206282655817569583922222890931199321280939158052997980659329278174091603967712662218025972251653266566321866006486147354033095799755714714551229317459328462407311206768033769740014122536409729615897285844401908137814209574155178937742668746219744670862541466699923732774993586283386823628624875811281710653979245283496965990171774283723123799968327757742827498711362623027639211998320522076860839999823448811107956139717199750144419490149015371732815847065451141494183135545760575913466652751428198918395441381018307727533824172561117352634026461553841258245737771775810382065140893257564176768538828342495928243209657359236913927615874061192357329896014879434969533895591609483892701620404153501369531471655083967273627096453117113653089591183129426743696340692510615238215772361899803784472682945258585411800148294861302908604159998560755300329670099533182718658503383225025402619176380775295463385381342367467975513303400158924481675665562869148964614158224566646960562520754283968041274049909504056416572612845995656681090153977874413301706613885710002970067920096409989271445092796053497448335691469553339530566405215266698289948463348126901037503186809124232418463488280003773912573458514850711080314611344571038182664948465857458154065932657827793452494129160078851502057607159090207751956052913794505776695551172913682428722823360602005408543943275651097926355523502199801237259874797855312268722299476144777762954676430185432915161953657438353219977068160655777120175323475644136228212924948001909106441719711159595317218564867261884597149161977921643525133428494906632215586792918361407037424445949178182785710577082730957036992699961920579547788017951620817935435020360343300821722240664694960618742698868849521009410379306630223982338443954433829246814831407066922686184218092008963413827916260737420498333462142215955360540505684392148675051528525887062352545906310308805120855648260719335347917569622797119115100383584218162685365989409161204554292415376305278358939367207639942905697479941110110620666493766081946537271659635382719573909317973486906411891814792856985864553146951011077492746561686283191214568345997288061827619564509560278055160121526323297986869170168094942326967320498847868830572501272563108415104999604100139815943340859371454348098868722217436919743580902366998661517727165151348534570890168833772741940671758833805048026562410596841811572901367952831621608205836259777305515971879283699341454238088489890125243784203244506412567182551709050623934708476178925853795519375170312290807764636239235124065391737365705000256923967292055788271016392394261347262749996060106566258734855777435849355853976199233834748868292671110453414184505320348567650234533380271122689831903898236406439952730855919999980307666417597696359103008683034278411872608719309841433845297690241629050894532919260127392725971356221955779596972394193135372787459657460984239482822800509336806763466539681470872560481797862039767592666959541343459491151526268684969782641886361117665231855026673857181515460054130585547132928039214545520994859738491698098725332298097061332782450294295578515370865755012891828875898664609858504552191830546951710674138226708109088715029733025860980118219377889023484432636651395338319310550435809159667797319474614096365023920154015564964794007947706993938168818841426579202236374235907801472172742423476373842812680490745354310329753789135929075164748517906149636628867806370585641717365899623809614591264879861833255421998154951236097610739871654272804994855093119164500484169558357954696926109488259841412242165713706463452486291348897821061848835725029794068266795517883619072144359608512238735858265239955873296352762466569732096417218390286164128495921878280739753113616807805039445596913051442928731810466430008162189427937868625091102733661983883964297665069002042951107484895415099016459708510149884665686406727653658552012704227462425833505008600467799260349796442740492359640211607920385679702350747724271084119561734718297674198982667887428722961973522563947140187742485383912379162252015088463793009772131407813811619309121685459086097972748239940323096484567072894664367708597091667685601918095850088824778494731340589915088130922084442631190387800579563118421420793742033843088270876924832445973451088057731530366716870053368726660018846270558326990025194716718654157672403498497435350997206059080395365210054465760165030251571252905456867234934430950200134116920058287264244467843185571139117717640678837523172289234398477664725723876131794960201596301178320864922437152893262180476871313414544212126239268281775637240773558346671140770892441228091002200677172422141974177036676253125060237888199004532514033852556261629191767895845219439177739346879178811840658619500864635654228053596678140060590244393028686644990112059642841049905780787609535462291338752700139993754519499209798070164489961005213249635646337054880242741846172661220899483269617589289084803923983573121469908895346648459389982342268601641777035382706719461873427320653537594600398787597692672562499354738488617691073333415891531108224466156133665666041116045708399187645482494298659698072496757737748575860151173406474760690574141107526644728408318663245312960759087300295531723106448764610906253599103768988053264421555384990386442009181988486410676098087091179341984127234031631053392544865674148552361547679493970693299972196683709062340666369271221395826705442719880399803068205528929458344314445142995036886143471304101963817746750679439092764666623184697966222156744764031675892380197487889468973540930794729195298577851720723506046217729554855074015510906809459241316000547877639699036785948477620385433404734740971683184321691694558820040404444972703164827645010533002570551050198576296521456962346835791281214428691354861195193646763410021922580838812929964341726069794750660833481612930336775327886759250036827635662105786179706790847527022126063092401078195558909083325953850976623923040963303382960846262947947664176709121496615272049857906863999269924606504002165326054301185099847649082310507720395622773213245717691835085155116883156566618018864867343771296699469827289761116937138855733410300759798381622193011231190805451370029199000268572508743566159809461120451696580112733420585100619381338429720869470810078120052321803445262333653094354734970254539075994829840358938872541570653964325378528717836084633560973447319447736114632079831449625047888145022353626968572724150309142589315472255962000492575410220505078659377993856117045527928395117287379300357068112441329757996789469502822542445515477442389614542219413942405150379331006834143989697535715045783408990238496548785377886881737687830682223422704878658668087523076818082162885984468877643666743113651718716236460280264434371068292590979297703972346107950909362401659940924959642461577819903546918572672457443273736955325722549119050565893504479812408533312050929491027606913295408855448613089650113645378004707854492752592385129030160010393218015230017462367265342618616646667371546770167549363227866992565031237397457305132435462023047513792740670959898303452805353460293214430055434424875929018664339006863529155150638799483703681338405730114629069208231588125089858725976919652876579384588921708428474114577500722512902270942195872638831003007035984449399407467643262266295189597941750622681195195344006663750182815249611593119428152519633097609667522596495121654113949299296840693548125000851692975112830571333030896317733326394021775533610650044702916276012786629387963042419428213118020559663003007480642853907014932688508146624399962649804329508128259269549198832100946043998865052057019531643551129158825657177266179579467197141698469648557217429751530133932237357028816068888099809952220058050327639994189837364787516822521180079471936487429915991567246459801262331620893064612123721916080149019063714136241869380925197883154466473609315861516532997018423266917749597434525522622220179040392835019008359806978279419686725214116197552767237910405688011716166098250960079857572632008505630831350392187814006945358503993717712941308086700795486224152209961826601347197892932509284373516348955373760422956684451452153611785937576575012423073326683833281378837743637826548021580121189829950029027368674378448604391497924933629444878280644374485266610165766992665334968501250628480402301005600487843449584104494660753752806407717216130444142502713950760841239778867988881714449189735425268018953533570179748951026228395939729489749685446234915740573484042969375021884290376369151885945948788681877116480058717512995637281401574211692820635526633533076048943967342403643500257578991482887078656479724900023000528845273877890802350026330648048584627968259330380994576759980816976580907762405550793186243762262357890117061844052876288990581183118340812914334682332884153823636639189093767544833460750529285836601096021508921518521305301952572025881039716043350569931328010157106477037219092214736004021080847465950004191421993660132610622892710754065913496485652926574190252790440044736369528068135457633356750128677488769283981499616042277116389751922716524666541442429065716241013629896227752626737070184572578963265669195176811486334786649912260801614556680388477516757437169033200796759530206796869688347975879201481287142693129438798866950048369194905158507774033903391159123982488222281315790205738393376694828331780450819045253386659669202428039966226431840710900162898197709767397739613262492345758953532193310962330600991444121318515890526658165446127660917161659861565862591141962825792433859708872196277812132420193385308493266256954988595318718166349927795209714925233852784889236118844072017433188840144965280573644288238305442249049238063326302910455799247125314343346984819954039134089419309840240530257131686120159223728119412541474638768590108323110547201649748187052336728288860847348988130464599075766486877513793396889785538691616851697328217163729891022850559052872887746174527035816570367028399552418961003713976206401323022418456075138005468594944893197374547966160031141645043497740075317449397369224121966594341986033380607392215748512185162674344289321067260460147305033741919300421109847016807440625237930589474820197712408880046447673601285456601041521213332925260495069029092543797658548932339861950124479707580325455986448105254351814601810421104917316590714338553082564080422645650148166799870165842003390616405345984251613147033915391286986359787981535025460724683641144117659080569813373100989548099491077060122070984404858578700350427807660759412772435638854785487127357959905899179584148232840910501658181416227297237812327335188151003026343080955966095130075395504923661104642195097906664818154233957141152786748850047441363873886734603992857448719225134022351888496572479144876879063884379474807995807501105920231030997730288829633888391232194380308781903142896381398011134837385015926997940064596356592876061193892106571029482993237876967977016379495304642637460007818443977514448596158537433644310777465390287566420434002948817579614765260406598938121130016882410452617832693866964377154692347291904890830390930350271873413808636278219362820519464831813918543538060868930994496409080529177357318665411661245788983230693568245525581938195165091124803375644681992630493348614613982263141125494226315516532509941413942841365331760167246138386057229705249378980954116566238368331493432233913272896867596904116017094768208416866300233030809081957259999071583189300642198292833465861421560170643306098324295095103865134179976403382810965930528656862273086851300802977593958182482065268112354836362835858242180213870242120333985141471821232962903121939503359955206522114765675945840540336338306967003939746812677145905699773419587518133190888247447171247190972226839752601461429906828727434461605942782533806490225498801460822036047048289660474608181369464016402739357003861462143025503990015419423579815272113493681704158675266244286608315790597067432383163779885676757153785996150957646271682122801882797825775958035624836696612684958815380619528761152449110932655757318234101703651163128867433166814694656018923833381671210896008822517011507005844742072986428631675953798151303949743740389143683477719129712157117751437023034613662013865113829518307062409103317478723907615642505633166256825902020468366839041453327727791455079046350451297643755618664440382231152910382770098375854363525122242050085978834942153766629484154066900090612894068761222588778710719725400349077012242567337795702931665625489572836741409220842525155598354817408447499122116735968752509147921302201567127041682488142062320695458525606147508614816834355774612211583271800034411266363024354239700602385656838910180611103483807134994978736449341475481062266171328426338229281822526773726368439844691596429686826203337352843367874029902896338650476168884863651263162246637641274868966568679253642219163090028119987266409373571557832859881711136426569761191368392362647463460910979918363677575155582619782372056333979193148682131225040190752835995698003576191609775443178134636940689966320749346981813827138957051552558623378544768243876314902846790504882187079720975868928058961309451521972903291253836529652444217163409624932086729394240901608146755520628197168252609040995397967098064323138004753120393249436146123943357871051221450978515189114399977004279520484609827789888980024253745923185373519893319544475882228071178357829302100652947836550177526547119165948432099167788758097026634923471716682969690253422047268691971400016983561465764584062728831852669640157899020953268763959604400297902948718568514617546300021606103609504901267172640997235948616669209391523166168286334906820302363244669216588458171247384916518338159092646575241618635202704102738217507040419112468319846293599423585903211382093492481890672561926152104752678498829859109222975550405330450113675049328438901914507636004218482117056538368576553727424480288443751234491644037639514692455569912607439650876826858821238325251653206231571405132281135562016741219291565567659517438072201634912949528906773540621636103252892147862883993174781019646084891402089451690457232773459442667482141968256515334092847925208408674512248776681228886712333572154947729791763055831799581549014593456249976187111307190141006746412829914493727986269795160147870397661174050945852896507320773517183322741854883051393363714364945220647207162056984089853460406659772619220263053478851477602252512125906843844779132682793564705947117852229394086024118304163721035851443975957918513620431197281071415146096172619164687473059219385055214448629940233695708195473445855395186284059087703449611123798412872555476407130919124247659965658051373453111322038368900980109140917312793507557626853872392035632654031977255319044889128441362228133604858610392731177354214573423368035684755107518811421781234276581584462213371520292909963956048909881204603379359364555086591147286822082113536072483532699213835769975564108737796804161180980922806351879083208069526996117648895209043293421541780578240027960566824091665148292266836066487325876445993274060215178495113545154791379815452262780748262892892952618693614936057698033665105365597717659557816115659424874532358457818745475920922315397908262888118614078613763538933990949682032109491995236087841166304594799966228529541424526263874330439982476804875767957826333139783668572390531444673179864069056581280621111240932472443973753415853329396920460686908624878472793254180028479311605392738215433027295620412585713532165369317985163063744566046925890777774733391214774926240686035027687108590759612811283732372690657708896272809641721968446110049659186300896819146947986833505429091689748800237610664276327548722984868292054038025035265065576952388863069030769947918580947157780376053577973773546903112377943671025382226964115712197030797364698754453365617511609495283178916864032059740281589054922583266150305616650959280025887862080043198589631979327096377134103072536013863526390369865780070176484142757567641386427645870907734679970181060415493405085371166986351359514710959148480444020428720347355971668409494414765699689989147442240179801670874465169308279138058727300412322719975069389668770222065306282367832226499625219372106369386822025199361831932197667968150487014369905493443805251310090781242642381783100035635607827061823596336385662812112077819463290369455997145038186457691405729142153861570615001101147391699406009358575362415953057933636311499871602960348116149766160880923097806604775476955329261470526945494625754802549758396386433873699603099339662318722864639522234098978244142450517188903297300164555328246172101774749255901585125510214543375705009918062097143197949904178423611518521325952963632832131779117027410642226142576984645369558491560410084709777411039144911888636838137630800989940422567981464051421494170086940304906855104118147511891755956184587108927288791793252043946244755764747771439287196828392346945449069546304481815534023725319979961934521647829827502199619820621178820865636382217712139787536594002200593817641905917668612748176409869704459040055152882552894992437347633394518040461017126854162105545134387315686727709964438804336456240968657591659563481066676631471950810802897636227771715249754028086460672981237462702404205858471880789463684050076456383657015221107288100705859223209118693974959426253595019233843652984656695201287652922973750307139429453907382914604103914454798180228246563976574066576361574964747515587658884489275952570653902192231622452022688164310388416993676011819375490773242959612263724004657972144637944122707136316278325647484121830279836973188776598180024638391124585480077572405156864982013110876745490604706853041568115554683867450739755740494458228534906743502212893623544683656624041408048153969512494215423281137331264874801249414923670417166125724229557452466429879547891870502832052479373839693679846172743199827125793760866767612587143176830612421207105087585502661579827707527925489799414190540476544058503827029852878954210456380123369417678103235909007433783946116021044121742300428033294809041764310586888753223563404731319082589517158216164041202208062064060772670381188472783913647482165298606914161580482997081266433814446284691480995907995237399504833564567047079127041967784819328749325496038071007615320686975509118950844695848175633111604621367925444468264173430295312901316188692301567783619981762327170190196843600801074573150083966871273147249910249816989588050630033014646070951574053041308297792596345509116164134057661857265187011221568178976443527963607696841197005383531888970133034832946744855465262567121358254412969302126709442253440556305611030485322490036396304100718131164226683849378071967486104777929616702598609905882022624940412685039039663207528064884773067339449521789707047873117567860031324178875959169147461697751321488785249552170270761030316988914471940041525725767171574104194810763820482903642169109082816179210595867000401571028159347821229118136320878140197043837433262153712746993777410586696925033920168534226879955172643210545034568825337663334295333483835583107977928392308801126569010583583723011364822040762431283932604747222941820731341218199727283642345315488146779839936553539514203581786303474750082894262747828685961310441567070016703456368762727532022954242405652852446529620707485730611373257997757582095993435395082798399869592281848812434028689684730720035681834386404955503801925342504795293697951537026974682619700992725212792097790735921262544764823027696315765980358008486336386605074077039080319338843078303382727204191733814530494610878982979101061242689974093593566119615351195301230519406427161552902780224077255640791989050308876005460112109179520026324664881450154295286750321780199525600074779620899850925672017884613856602388502480712872339265138861083045694415188377491701542562558791842684206465036258943338384004554546838840760466951044771521812939561148502896261701411308030700558223497399201210304244663402403606784868910742918611141292017008385756890598675141542095577674426399661291011584817875612983004356120653940940696017275630699869776014554801563435548354015177449614979456482807676015810691712694458961131897371819805259794774850763469016543367741725018050018267153818480347894697421694845145334248229885843997798165484064406526960765649838871150851233258687501174792297117523428487174720303764680358452561272832739848307407096657168696264144089772093648934911535585960349698509058995227417179066617305885876067811478651087262104898269387056394122334139911998604526595413286997258013563701493423917300398240857529458178973353082018780877450453022099125653699931379797405501167672689706851115534928557235864142573794981868649452199567699654911268571864407947223198736064702716884693183423733759154386918507270550733174878939113331751615614685973488353818898525919420978025703370838671787868803341758185399165033512031233059978728690579227649414109653663214263455486194094703490514514379991989200464856670141788355021177915546449836992937646064697251338014290285869513063559212013062223248646167160148533302364107182709836670741446107672785156628787218565309400408729020844885891209898865485664567847523387965145934906499284786914039752006861408172102675316872599984175067808431179605172826462634669980654597190418759021497506156337883635494320043348115500024958616133749431943439048684500342484756647309746911519636915539077744468360361330448539862465751619725891401998423931141698560564757292254495623594597043354289523952039971840286206429853545423298526112397779705926161753740689406554879910749133660863947437232253706439424947943484424450782787980404362473342401616252191802757346013303552104186423009293188983158398725013595200908749638362755039736794203768009870786721138522462096397449403788217482406559934792645520951887716242486137897493692147326852892959757028174778291268267768404286736692231233010095415736314586152682532873916130726496960086133430687607516442236580127193625599448117754400923719697001160071999454306785539880672551509366138247985571462582243584089483573388374995583054210765069305307329662390540399023880059722912877308677039225054693768355396742362545534695584805891100368074644602932065195584430371563116857984760606962840936155650588572727595905929896413642989972182818559734051275328731450245622951888731264091305669587738588403781584165082234017274422315843960461735997884074446701149679310238201201659542223855055580086475068487119779956119601658793822546995016241406340204807112583885868172108063239808872757311924358943754269425302391327143936192588191385254387243885421800662010803524774336492082822110342615085994591786403148445463777742043486430709571606415295617088953608647051532069939921010738670399868223150706505036272032962438013119998511103558405786206147646314304376081913385148889911417484454369684251081568186803071774367058149749766009090206713596742784247752351841656584308863166634161947863608776748441504457932885815623238393818589210844035717422050986618683103568906889324810286196701835532298782677337438696089251379149047543049111179249284219797021291929454943648300636922559401383866155105660860665350345112737952137921766308332064845477940096599565115417455451849837034100910353554662922547330967600653574785084987706310865749061820649249251992980011741248767329746644611278764131640418657057270742844316944978287197351153843103661858506243921832060664862860407812854436897558309043994722185527136957752996005940854063706641462265043356878486609457032076133237727926679067999197857742933556813349049788154045683881187208480451160812408043511783623009352120943497481326521022185215177733483822869122096587412308406619806216220272828240076335161426687356131809385836438578408880458381714914160006280067114649740241709160455739875194890416695043540599055072323760983594035586598893555025137839319064288677994311325105976496608922678792213816909763997766911423883279571927541484714260315156460587880587553888788226735908644714497581370911301460050916240821766092848774444876397353432244898886680312456218493785714590935494098737309892766138531984010444750795725486750964300150986283009076630212315576249008953516537444665775691531587817792700734808351162972864312220118697402796048819361043473546387156482625762748413693491254725478582735860565708309252790798808837573779324476708071268605931266603184056439481133635709621726553590657913448247182383967552662786609573345268281242518510156896467680658493662715216204588575165836074584374592348745036378977206759798141915158048510935535938538104639327076339130737386554121470077791722172303386318101038606997268308747593731744824005415572928278158719719068422251047284600848959577073964400913673506827254007685623128220993578005535196344577017144052807102881634012408441333465711662199740616312149119690199554589448047392070984063781807022989011422188586963505683167469609248756864425060376376175254854980122029923728886227939633682967042223001093706733812413833344546459394702954362331019317770431446603647220665564859459785689157895485477585217411472214935450385370636730899296432035256863097796616856916233811013230042128403528387996377477086006328092489795861763614084129282768177656755825848269685142567524271797561666035202324709266409881279641984742220509651214723539818637229721503988987661785426134665107761709548508229037755940809931277798448110929070152328126676792143997270965991807772710844940316132694582640459837630144219169643646796519815313175982434853980202550721209946367144457919767336838799806044421117043710857259162692670940458536791157339076671771341947701186436071580552042884613549018106736140115464351857961295680913070975856895047673221827163059108230051064814109879215938029707993524483890201368290180657673171613441880534891988471868498200149584642721112177425775509124481530693239112233732176224148819668117584231411384308751658179444532510713349386721263324658642344700237100872819298376187840831273669675343033170250098680180737044207035074474897862538042038710907856960858682039377291834450583899536941108955917154364182460162139060996431563687309820735069532566794074935835587877232524630421805419737509901898760834261033994802604853280789062229822293908833574960876126282985975492349562443120386621711764275037122593539337532028933609036091225671300826376439857908028780631978612539611503528619163370371015699724120700842756363509073670803510426919500175438230308677074765623580737578747157394559120781637014829196656790765061420969049523657734146660598618332496784922940694637874422697987317277140681586788098834559293038076556989104038065908021228375759020428712637180680757608882689707072639159660470381480820295658861392740278401904500524079496544930603309498711399842484914349585811949851483743437911009167615486570418202706199963331521725997140646111739926801648403254101276012214692987510577726061616879192297773953264636396705955991733083880747108853261246684813773992651389876165918657957908959029060752671209556773338873932168042088418669844304659472983355369586540002790078847772486883500760520248266835815501257109846252685088548687580061038944602317436816082079160479962846723427417836489227992480563949526617843075863577521253348145042028976207453931520366110249928208763188528209292720787757934802392017421138320829370857502385824011188414200267276540994724361700300819618098173457400897201523597787104478601938139079978925808909922956268707142985511437533900441733402003799557037147526315311684419953900267284815772453309739260200878481856335044002155639360830095050090458273327921423324986220373946896675078594734828138515452017290998175553852502851582421934581733804093176459979217727928332893455688764299962380077448708977750847661630770767475768590638060761619673265306374267086456865058516897961664773471070599576786082108535879938478015522267279754337290657136833722077614870823008791908518568799167531651138737018874995618386814578253185652242363256239495920197755153280348016027884553663874145534841058174477240751128775421628930158307398514034236290573282733036919375903502662964281128423928531458919383386973569579607478308705451784064598910605558598807031048003451532151971969842462916409369778832044666056063154093612387465540128219547847121793118246957940264995061438841107128904162546472890608405863149188039442901371333323382646947757850750362209734407615534304441441176167130754657896992916080493650848019897192931699374642255972120390103660048722060525184555822258664649846456689048485509507694174402563541883497133299832893788711971939318868927764405756553037182441276877971969997872651771721991651769840322718222355363245046474201465774809142780424158808274737546750879793024376294269372098151687238292521202546593122995957537880074480791851361953429147789967388929349373684225039171599942477306085476410102921580651185394063079222316911168812121662243455469084816399867157623232714526650188210537289312999520073071223048403526723288334297962518267700725148301120896146132912800290989057208406705872035542777661263377947619151585086530867945519302289188410243763968350706251094364794968877579498422705427249771555070016422349611273797693304592955819184750544172142377936819840458701043474852306491245910132551296066886004686355852049674637161385808551983796014130214451244379674714916202983348188419020812175883105053756626900304060066206821406814371257200382189784299769184505028979459004569408065012825161660652405712967908620959665645020033177479782682726330807023918183884239364186924132858036162722164608592189463130421026625346469470669476622902208903793490169835533174399621083985701200490580411880254089465155315227366284638886063624536824068604714588299901720686010275924171828836449562505151742136842262292992446553644945291711508467176960980099720512294509397659679292821837496074089454792446398396828959627687946556241626017099480512677852181307229588278161645750787304707358218121248263012336163326406375201783301022426898192562692050841640753377850498072118117393824769931416086166606874632152029487219325373235495142862770473320661236552632423871837213259956106553444051586522283551265384339846600297817481631758337772156442325586616719198686224315680859177514049411455243330244288504073220787017601714163753954221521359602852696775080189720846751444343318612268234935996919824005675127284056253611938617600200211768315924191062391589744249392719182568966898518118545435532982736561248340424731424963107472513598954492439788325785794562316560741358202118136617795232731566503420644290996993805633478999627435417574666663573283605479003378711496437953214781459954206216582460310357113924344865744241605267874424098351598290376853775229113593933311547881855608062831906975817425894068044389261902118667947562623175827393909022914752528826876077643963579665286487509711705262396482365325992417693571070699426598712818991624615696785612655256098908912860292167891370562273119899366007592540774622110750280338168842622341927792670846933944048309594918399375346747713780537832858941793561291625018719945073956466860585298914184189390352932365064737031814803441695341142804580754779571271836194468328390991273129291720821662581504281873201833113976821974007547020793295499498580890618479682884257272548759696158118273951188901438261939991160258404172488334125485987631327640111998145196182681157783513810704362006652839501744159009202325936086934383151139338127491176762190295609134314123412390514196654638815948122396279302699502067361505541092113562419347347185146273233402025670019040696349376468565288906560594027215298410244443206000028760191968454889362633684084435393355849497255320267718247207903242425590392359960595434863469957953911524150483640612267286268029338854227689051165343315429115128813818151210159925428489046327699547321169478870716867242481338954011346769955993047806343570574730375993338390787008746841834809607354548229702258919966896331099149157388877896527218844871301711426873678521010061610804482555204911788006264422385133680818639872197339965701004757034839192679562540787415026419300419301446863591872334154544458938954042473049374154834726745868077645531512905648441463815378958837551736085138919751334862384437048892978606255014641223636356746709168081191846615225387523685710708271038649471111773533097237733110605747691043282434302150629705548610663084318342306005777012669772237181080926673640489457935106853327542595078528559579842970730405584293985761342956363033797175104364700713999184372149781958581287394595706355463725805674729852633267655954175287542038514074339712557974814200235205117809864644680054815511761126379427405680282990261180034140679499834216312361184545384107445364483257751393508288461158198423634951716597355973763201868641630383130808021907448911172095727196714103338657765870973696114863441608985299714774703853777035217324216996314685910318116678346029136747151521188445577878965426691428231846328378089116502296210619301795653870573774104945348049457196418409352726511392361050896484175777766350367602552126790187170507924361448154040589674664617681725263957793281490245902837468082386484032282272569288680454363143190341928473110470126881860551136523586081660050086417361907453544648540333931952842586137680039322133388726946259354553755208977339623577042388706545172663502890020955634782560575992398584310933915015337397140857768269452717873021073969285847611884360243051538821504034999275792672067600720884940815502824971832655512900334184049275712827578371482921111809485215387787232549376600375104271815151833541265705078998186726697583070883322428735234440493261252284483365117123485196415148181181913474380259038795778521751883334634095008946928481911897137421863630694710925884399190855612148616677885382626473967698868971763226992317523094790389058891431542978209097747231548443802991043169929256443768307484082851071327811735435739187773147642325807213658710520806937667350099881184044602041844942814679761069290779563750284607370022328437391187298510457262902265195280322685120548905463324789758122832354180778997874913864921404789702788074188586203259540734794397735989066133209112584223237045115862955554300398562139488161474919049903531298545781648068298736200706883526067045235540759688050023315419504416403311270439526068026737304583684941479537946456932576358794223244178728603772749874720710534549507146996695212433043504338971368714323099826768080075689862744258230169721334613296671792312674390787325796203211009365558086892767180108621198704219486488505670878614227509986346103798896564632517285901264698590269565135134919415892234109073302752140465175665721025253401559008016837942932000083646159097775385554464177603384004870944681428704091643712803239505592988775778538991849277148444355741211462738777667639971385314902215216558675951172150858215084811837007629836151294325402608078990072852023562475570497352208863152263516536505969049946715471622056377595494556408308160850285935405866156231941801901603496253581690618592839377610643184512751351711787575941047586899765712567324822328811366122375295237475065928229587125280796167809213757829694602700819255380176260325747075566462387325464954371919506393481996062087479101216641929166753561210863628253277655672511243418718520228662208572255060495178742434864266603133665116823593768022494624560736303267224459329057613563281719105379418700763917807962481498215043693719502088366146043832986375120106583219132222453731740342239991165917873746774145778605467653215470282008375359413532446204058638629661873050127461597277757840111526050571190259289916455784288768642599058949140143695493014872047276749366989416724253453815587691434253889080439769475915249936682443478800492501998292645193249525228205174112291804007130210262178446568791605019350202742173380462042208148092343486399316532547153717042771540228827981404787779657635610468479886917119131642355166733912778457612409870227384319452994870466065135605398419519071310844029501499378404851952631401849529845384685783663752096814298070523234400694187089757536968139669483919234521239443040308268341473173373635415707226489685452396617951987537128246573610802994447537872968125692781223142075522581661999626241588310274216116495033147794718595649731981738070119851049683728472051234229985757948702958623986966249120377759349862071413454201806645563798557370186188550261625382178625837241407323129401881598303918904109647676227859062220291051578349011495212727040613779381274612635340559443817892302197435642809667266182697791568675052250108400214540653745972946970591688174095111024461841177427264069380624956004146712705980593110398874866694725110745608334646824613755801050334693570269836199717804104551619606932103497806616555101141209278244879018030697833162293277218051581718925321835829435983407801251148579788688585971844707482540955757080206915367138908126076630247417984264045202371306299953039513899851639677888788816974579118217973514689254444136306778881606660349488032497981460897743907604796633605312322138727345651947065022012954386081731863292977033088828465935127568265790574355473136635504851849809350029037756172993221707198448140366359196250899114510884866438790893855552673695094724032498688424863415621869634670298343788440759058883056073367703095735068268118862324233538400631453599089488376424589886911201989509085177026271823553079174009628971646361867918411825268789258930983016786688636331741030905913773473145202932966414874455614890548444065187005546347722310604873935151215704717414774471548516847009144767278221898893910107928275637057255860844742999787172458073751777149479153307195021289300164642391484284003708222261387436515501170084928303003357073188159723220190972012014270354809409401944538033467590037703772066782987686917526231782373543529816230082875142036554186804252669991969074931369197143826883478454799206760860870820363121022170671967589021824470850513113331964823395843001743188256726609669507601795157091325998881114032152980462888140759194408116321536634295594190174337970435579162968369082360897351738703268935563849827724831291578951001051792576427632149754259833560742776692528058388282540819442825601308874593922492709989721458639503451668688337832210402546551819936980209123460534039768534630160891434889979192199927688600387556206538880477038478282525033950526619018509096974247134389890586028037162723918651625437888052475054107800360963904214480355985660581182010468380330337283501445009107361532727911273280292561015223072333661361439094923995189846852993788257986665669843696808883417516505739471378535330223974773254418206928285704846691488376546925685301031489073303250520707323852922777205886098018461958015315173037600691981717570592318583749426466388414376824836565177622887689290981689827064345089312573419399161934703009102407110494046418444790949427261425154251798673445429286621296060334224231936591007046539652527470076750511849897390580700961735565568875783392717232720678982070739867455681586478068051495326795385336863981163437249570922814125156484937327866207822143115212702219725564039588769983820505907527554573237625259192959947082265480785888275394851303537588800919225576240971980862667614601426645715937510234920148259300698632710975603770568390829381512712784824066290111392491114974146310668127877388352027240556172614239396548414632398665700300856232424509705953104444019486104458383185973221067798251183155183260352961034159219735751652273242487237062596387607813604114711170456992772232761503925374957958201276697536659688413244192227723509268282063333896828552003341126275154792155152310594346148256741022661537879038990861090642006615843083425518273039347965616018561217174527926239052009545052044223146895104125566228581078810611221719841318094508297029300659522920575510593670999807888096713870791906575516685475633938090105729701209618611940145429669235643719565204487554361258021249587268635215491782240824034691085570639592329070653652666770987382440418561908158213879503488340549107384319554550361993927163297154998551478358757000723533924441746514416743336457421969657720996233965352525756834276796798632297913809381236780062114641518508187798445909095477134155856894389043201878369738888120265888556044857754124059410771056741111421857088004058991332357638341210244949497182830900493959829866604927970230006071121679353348150579918889987204395370836508405226099479878201317970537944948669116208609229386497270720966581524786013680280604031093520348144773077585518367291509023491126323430615858734030216668034906592146624589689275520676926730537509660564758891143975657337951919460810153374320807429683936588824797118597440150587398862290064887548307464872389396636467218289794338033223093083356798417732647085277360121903719433476266355151503927927840338676832589675250020082015467209093534474503286887600516777654372006828820812060917744416067823446559336119091063697019728757958503103897202525995042360436776227888013603945764507710163208494655454862898337061722515624614219737058399668912938635371772532843899630249094460933006224977352106439285705652059323111900984756186850642019512685428636305289659366126783618345233515175130264861861165841807146305011560923108832670352583075768130080503415460581678447039476818183160877534243329321260397554605178086049016216084838355296011768574821101620682872715811071535030417986857482335481574964672194764931337111488080551281839285263813824339353064295070548840476740579113133534364674664232146502023398298080337816585449382163645786182028445017268702196901360951428138515494364342814211288440653346981263115463818801846056898058448197060971033570091941030826823618779245955842890426234861798584372288250667251499685484523200245437914431857853608424845523717755283567945284864044207330788308329386451391931293367537444954637634540123886036481023031999109081626671695295901230520575968308258649540967202284770419022499171681849832765157672297432221575072520550879533080575237680153482370341434771457635735507846273889835716014252120418350905820616992771799988263315827669665301766071037652373728354457000223923938552437191153957808974222637503202122832005821625578579588746876477969387224989726066451029383806140431830118486078620940610009642034370744747154265581449813807975809554361048355775258303330534179468600148250392768998735642191553337099211153209441412280829548208476219763676063201915908769195700594039487590313167699292175518775865105386928929667616320150547992476008359755897883529234551209765420914255072248483144850464055946215372160231769031895930180270731155002687255917713557099625618434645940638519645717981906440696608995941701685077551981139397322630729750725878960890161789762969698757588477484395414780501452572232952984910453877183744331223429370009741188139911278185661748714680789305926835765266992624272744317178581379880571489933577093999409732076401528499875956598852606358607373223246296955916993563018600430360437432748418311595996399164481635581729929996351585568224944074970231879414011527253429483118729281447278967766970540037356456615223243632656501041676173315385131463083672844541442819956753655184867466170166027663979199308454265292011351517609390840910022413184545034966376142299443180581067021004339316868598716994767426136940412667624360264385082811496761049465659213116582217585887532388129436499589572514128734101266616284606290630233934325171057859975667339389910405870291582793391511179508658892458127446274491167602567253916776228161677064258880764635883247930854939185725338710259449892248351125547292127044346073721004373436385116897615961411378758163373068080289311776243642922835762346333131473802353718895378241915013741725985526644346284385427242207721641317593180493747447327135463065143224371885250602881847301751811547692568492614953333126590846857401958400983675529363714761190361640905186885140935270435875268684742895022925136165005574214882775110287289124715233339115284494382261073246430412057685465737418863862044894727457327647456684160744468332623252165188430571630511950223046824660253255923308876262090918358936312344634268137929475211916405187068778658442169878062624317375105788511079920345663806181926348213428469311442971854750830781729229983530268052525751898661424604980338961882774386470096663488208073872731156506560113969112789655563671367942761050252071288771284931327238054160776154029229098086890693205530547056939336812677187339108334388625268534793458891241866034644813113648857493845685139322550615152426275795881969343607813637340937726206193454546871240013469950440880920012438548737648927290643102223053732887463984627033720985566770847475430483417641116019425359829006582767752411698418384209911869339780029582275489086242657186948224655682320726802924622745881178001122135736744616237590529141314783171956635548571507222437848139306512013126645581946397042636992019408837810771289773803936117284136643898623015727007098956990100735013636587699218019435716246743651008367556191012964786576753601418406548547358464680350783195822775919031827830573500266781097338003187630860469667669828729539971300696650577455841083302104253254115681655736592196279930782640852812525611239316395568009366169059206065686186285669329733449526374758652197224701522943428865381425772576011864664630350897707228608528071655573390518516941106588970718384256926839056119784419174611346103027070320835144205895821548728588149008017227818908727600343532610949641456074571470475044086495692971681730887480998291647657786726136995452973475104109072650290719511313542509312188974966423477084779034912056052332770638333952891562750483920775876500564249708385039950561836480179212786004170529570065640592449541060197236439120320267470253500297536438425504252424570372175512689418195146757648329070509096586695841093123829329353960038887443580718080761093957661154124357074642456087240452601907276256119990289667337938195184174434112573997987732776798238641612007433390661814106603254757546341002122321608487937950769027906534136865533351052168293635181040525175339021603077253723882838646637672243883313393619977364386327576399961273382012931443654444210671037762392409040258104253527096316703857388210727644923256044082641927038561897886850562569845426523587856160007444592061816283738595452832563444609992112402558690046604437326052425987029333083772408422816066328225956839498692283938524464938176735369985438645331660675979903695578320552533688239457090259838206068474114200645090375199524512644935054368228977672366724157583225555872568067102213346640903876729034200307392572215686205719695850525486629193467403227216058110849358419657807282246329963141219021023848306117157636551449572017219291779963560458657605566770922438961446893764956849143093310774959715927650061587307106367251052727662472295113347501559657654100748600911493619895856922421166995771310183992518740568952752503013340497062076392195853245405009047463534167306716161927892203437019823921532221150947919483855338800842809628666720048928797539335259367130984966979715119828773920190279979319905617955562965963425537380628636679687769225370076944759239483213316446973094877484080859274062429329220837416696344741176360560854853036486566567743676019223284605821684110649454011039292817454204393229449111098181699826680186891175587515518553225457414566841316281553609086011496825151482853505099520793752810195853212657959748233076135505163792976267857882425122606621950763245614292319479301322320466419100735315753870414183992619904094917578089414383161938260891148713908132447164038893807197040756681900175861394315715388070248632606655243079717419210428446789657903142832295608275933977380508604253114523769920764075049990636387693377157696540618622002923627867585532506334867900246778617950846047097826975962080507656618067512575541371681101528685711785387250778520415606843154743829391875526415699490170434169143858943158621816502143351270625340485316982523199828728451663362607951559685549744705279061338434760863347354081762281019678654251005220553717352311789469729114388470900456660706687535893121281799179457479977942545510762363133919436959393276587846409242997707326017526966521280350355304923722779378824461094337208838448509959811579648163287057370263579449247484939271877650814643285519073000997362529720411722783345165831656503889026961533339397669717516096354201016518317861522169935782832586918764385750332827337723125462706145607404218489550470187163831006732935629215178633972437147263321664872616091920800143086746353470734643152914509244581818731103701916573152466534236641914824635681642720019268690208888357279456187214604367472929417334774474294860092275498994545928783028652350627771577278776809152957988756288853480029998957426500315021682355456221567810235365929515652063557484584037772023271278033149714511400218266793575953595686413632122081114648675511642699552389387740713491386946270831592564478046218021209742469834988129185879235085361530769966599554675211498043386376684809968551088711254598636821084306392189471042176510706927849786182749887819994127656112686883027890514941386417277736248689263523630915071320150237749923766109536470963515822165453332933649923085422308140552333958796590620240047144662075803973931560094477342416891535799762166842632004653817176474296363382130795955998404996486227803665237031246691456773483902760997251802127070697543697271164082770891751969746206059507413978873077285303531974169980985693922688444231371420739964254826004225356496636139227358832809257980963351330969514280065396610940071968346787538367940051088485202493147992460572958164565758047902854535803356909514770621970081081316031088056856107542202943094663343886624914179480361206177340969957292909822015824753118612975281870860961597228374377300295747758215166006327144111704221168068874503770134466217818608978119693086093854966073183458462679409613111371407331202867626344117060500189715638227188417508876802684474480745110043706470347240615671569842803206546737849412877369754034350717136232979783198228456882423090461766592296704528405980001531114257542252785037874025029078889660445230197383159160226668162282472716059821632510959675062781454588232501502679132569000888135601724939616977509459230506689671354357277393180162921620712824941835739016168222573532287942272095555764572418871235525293056651025848072264878765805856403004793588338202360491427760339459915546894799120346216927111353771498388174421428887709804365110539021079995272199054489479714478994977726149257065891996004520433683960183422091694569214860372520934638617774385006178662759026717410128478507732350465948115309751062591279361622494552291187821844596097708540648922982561129134505730310080259319719286194998830232829385150926455720069558749568488690549651841202331300570176697899762945230599943413085991077751671436426561498738402899035875647490157215771550833531036864443834275932953503385299756849690740223481977095769809903401070191061329078562224519159611571768438030576116810588910167799596265805767823484210748428861286574179086626115729206683661308056362321062825753702832478732928915318446484403253120005668734400458087957956451576064374147382280242510027360906982393053679855457116856265665652907648979686055290215425575004392957298044022279409266852259835120430957400680024561291942095181197302975819536116208169390447492181000709122806020917319984895706885960869212149606404163987135677555595606038485723177522038519446269022105646157849795939649608684246412651074084160982105303427767197906421067938337897127273876354781040752103000536120080524214769989237689103694482263404914264130065058661349739042556329933375150156966685930673430448246123005043294457570388748933827643361683940789594485362607346651466582953331323471201635724872763232919380418112913516327672584404497783690461037660916672090602757300864568977752540903850098605652157324189919597787669547488669683450489286156597117499208861366112147543077094599012218576503941642761305788772307818919284068009330405415652938183826085042649795167230766648565667469302642314813442724308730251316368290931263472366132840745628125087270466183248494635875719896599978996041897271337154405304437294491158499648555433899268868812793482980039470780677150993849027457253206341448983661794166412681952157429010013337659517574469546533158366292613101190306732250151549237305594972575355521019487952303433748826317273140198008253038404298954795969418980341404998597643453717479930309000974522832417031095254665186417061776322921815105727255636058085309391690182493705863589908206770140262019970643276708248240707935429068682826885236282223813680264308045789788455172622780098861679850909506865162194382025668773554575682081354078530612891782813344060220782658674178816753633354895817281659150915381462436342238875093544726458774231766054707139840948611102821391716084618425716192832418782964307079838462548434175336531418861436362700778403456501742167397427339974586786305387030425076257058523195008731063099647125080564089260869536267745976768553556848280894866025521664074620710832895256252602951511026655291410414205607591639790985255899675012318546787075719113272849103165880656412115396511450513643453731878810136484596994023607637879418053745383353739511741900274545601523989548759453800119470760192822953221724881556873798354238971542730719205714212346210423260568156862939632897602797367124941297067308318669788068409793386240249869605042785906189122132947834242815139060847652468391748925852896939010899999087292340754947251515897211079853853116163375811552924112100478508509892432023102902365131431383752886677936222947342702396405013699577108728690345806414699097047230929524575830011574291461554823035160706744562479036539216538969865968484379822938822415197667003834966582750450198054874423458464348767011601914302919808884051726725271202330636889623054465108417268779685281415710717138580087334678674853287881680681627987315316720172378722189184969933168194187691865298313970916972515314635297931867959068075711281499968108197927659555290119240035058279168179399986281866905313545714304295371526574301725263767306174571183888689341717082987157894638806693490759980729656713725633220813765701420783732560143077830308007922550784062802567355882100697024553165983689028249266269915629916237164036136667617360620290509717708804845905218974371532251832066141827394858214474871614578864288867340983399586496989165418130350793146417073977753014522571085168879261589972869943310212822153831178645146231122305268044458730647119593576001726510044775488590873307461728972620341602693095912847999778218991961496232509231979954876160505588380312848938857393127274295301695291483463324374205884782752460666414452236136058707307132667195900599441769684116233348359490071734798099295921000359290240328499372913143708345372369609221004471524673174582932626381602612102849844503878073377716340788233944013367417469650804557836062989247828015965217066343070055115909021266027693238676328740360987866106700499372488593995839171863429132457478353031175245815268063492355868484278056479499734726777322396450688886571689261682363722370552999556056616059212762051638566194278785501063884432053602969632840716881635718215724880474377222045928274300762409718066039861676382989053343562302093545704989439765557716549665144919520179684427227104375754845733676942483477727773282912492850328332461133855230184386895393172291235037011534659576741282656904205634668949202295381251143549342408854167389509138682257224621707094958788131044540484882442191493878846727042694027269266192013181516632111490324792613963651468643346789341820962922666148980906855546012466967042345775932510424702482486769023950459474123893585881109959385392807077699337224220262852980893408393509120799416994534740819447600551778137148842953547672725633541178999716904401286112634882981478949557869941375191030366782766812698048524093161468926650536265870621749585524221581988937308558635917456943714619029651994311351839967790262371316636151752284183832021878109659661792384623242409937255405092312399637187935448449805916617351943831932866580886976509711656029900225939853894622182693206176028588014735683555284470047650934463475859293340216513942420585501452122129451846181028074937021898039853908660523710765106543883674628390643287894790088642126580038162646951979892047506171846275260714178397399971866593941474326999191098894485141216193413761518082987521887442336854262455633929403794400060509049436585872248440093288275577313501835261390312970496725051634051802808032804089411355407688335812466345107545849082175396390966105229035713588303461536789858156124620484409397637632812241354689260714094486578198170021413863220548807991207943261060345369913559138673022028313239688964056161103720072348017834995423522145535124421589171119207662702697262440849228277229973134475033554192877643444643563105209338672535662483282787560218820623290439321034612879685052549558756488385464197698714163604050770430140313246476026159762920152798270365735698083071519700887251301161556885883350830974487876372388462687142843610504808893004771189481991359682766481818966588772357493918649874574300229445618809758185715635821520773771237847566355455323930868151125535438091202744127044489700456350883447146027913700661154342622389323571603040518875612899896942268755872691580929899021896822934489066548094436935209114039209153542700069047334681533178135589296874487652900365588323651187232104612437862565076459833660810917909985632875128727588749011715202561852534746211782406777695113633786400193097867458463550949172026247501127489425662956236565613607382684874835417818293415982663553970477462097248778734601602199772809421165462135769695851359193713899878475833850968170427512523002633656161824708131914899353800422475165253150718581445741571759003954262842503550086879143237992115817753834432592100450025766138992032161356226707646465635442063568371577296373724805312216766461814814017525162405674559384757011273408607449076992900222765823696804507598829611519166342271023331397345056719878385231086900419082974628853198984628282225912447722839604293042112837881984186400423550980749527701777701880762988709507921493703656708422305390730337217538034381919612424275183468492618880430991703430525164186585059764835932368566109439049339029566205655140739203591794578616726009181536500211415425041944663123481678198415835337056126929540417526870026846635291137197972171697016695554032102611064398879483793476992273895186581926057478981312369289855782964472631853251245089267907908009898023757162648654510802176969229883950983733053436362250205482894090541352021159031780714842541199410965958461613857543852868207985149464097135209888268711425509826961334855125905577502642094716966164976982731754535698117487741701120748227559236147701215164583523118831009121017455640752647338819816465845009701635744005409260031863039061231942421756438535014981465630408216483837808617466652546494140648405037873398837328454213734766828121343427992749969088415432081209080743357183735002380742682781510624061730651222596712260708049599148830912052717382828692418882139302310660391593482989836170392058372707969255897361113753530210062369919737548637468114014053467754721656401943651885708023419762863969362971531198656297369382586198734418826627606664943905201204322781810073304872582857807456955576203110355037647677659925933601385682357655473093623288994922518351419011582139810763329253615461515158454903335043743463480691951008687827804391344510595579359961782542716138393127956699623015540485001820888302274773079788669926664308790230472590823841541868687465578497121921882821324888010329269328945544010775291042019998918910035538266773798822648875058711624880821919955412135558353617756062633583297386571567203199219608490944314571615585099948352075773494370329479218465731416237076557684340497159055144603026897354671193486943676128288485192502609639940467023141230634854414335049243397835612371916738734711587158791543867234735599887467659341748472431147099324940097194279601614514105598828583165047242147060232523396973015124759222990586852754375779593841209914085712421761348075158165030155120911788993458356572219872145205125893133569913168311821584499251854980153095729071590785470591636898759889392074591417639214930364666320127290605990381657308790511857609664370758613517836823997871674539051870803357456082784833537273854567976646368889804638226602389882505707243910811294786915045251267600808709451623875640299722615313582354284445910727817775613458656102242878979461198561795942234336015977341211098479109589830749717398688369637177206554773330785793448296545572997690056822018503982272447035566244754736484228032855827158316662760564283075782911530953502485482084734303440484066748519848969226636730821512662224007719702280034872617566050054104232960066678336447745118388941547592540732628555448246188849352302048271505668054286213705396957588655924475402869798248007906646460906749568361496511967119307199115437163783352331051010195251289518531403340138451541487997540172675554945403378955978000438451689841660623516653370683290799085806243908255269863108311236768546469222760907134481923481378561588227979756405873648450396312868914043721433517159014942260057486403516211592112997804661000744183149730005679505901315199279502121319318487727871129384634268070862898085002538120974136940888054468592469322115309217285414563130638766714565239391479293944791992079664084093581467778093534270796003357464803206947754338769126613306181813384727614525342942858164339163129791993003262886031705317954246934121011335625180921540297074568350794901652106027239309279709098325356283008010777704629470888226732022772369640147315874013213951488466507384445089762111912673628107513407370519990464905540396016128179706004315043850660365654960832505943128499553980251194881307165736148928189768521308199796147563268656886816090348222498548314126066336967913790455831366377313699371301482340086360500579099517990775523661473193273320322722089884294815143543359768988238234171761595412863485798743085445874097039657787634850780648450649863516369363762559896963612453736447570883667428136423998552290587652125130723973453934775719546019726151653282179420556726527504330474020508668357914413710484428126248265683985005472610193750541874476621820405184539935719744328736695543131372682253282423288497888197112596773246861975234567787202732104541093667388482535094384860447158461586802972625872935755390795712012820041178533438819374852827684381703242754400865599373611287208346782481670001217041129739758126403613346373017832874301323258849274481761704386085037914982518135203074051243985840077001289966455263333835730204935120653606207883575440814471657690580677060800190598403009431895559955583969173394886985987599725534533390775766672600169590521041279218765672208425112305982218254862727076013376862342099234283948689003889808355413469894425567004312163941587128807284580463144926507115729118739094694004901054505750413209930529757736082899503680545338532815903659708513486284743673399173399581356095846646009714216231482368737569149026689008641121286538314004438248683298233709496260083002937682195293367301625462191045374830686973736895580331547006207069914172453338943317438024023081761926346544584763728999284821759542482003513840243537394910043878225332206352515112934314583230067830371082455754907767284824185992519778253485466402951808938131480830388409504845196116168723473313776706782355832935867889588077204674961213755690115520894131647561008549544470018929605240694384432377313473459159109911072073616731247473705082920170789758670808457848607398354875286711503038540569462636162294877482235256492461289668435822296358655812789564424111502701051249619985295265261332327706706498238608636929603753329988758507641406398717582037844528742131703271350155608310829824972104989052410084573245999388599126644288694332539461769054468558538849573230115072181503750353429170206029118846296223910690924785800190668295658236284052476867124626276474818481061279044142025701656925352571397650850163292619703680872188048398972395297028962735581084041053014498822295973922296384990292567051492417316195261857884133653131225679409228048919585110838936688195608870956138656458517011625677484921405704414730901621976962041496032992792467410638042776330944990071021457040775243284205973035642110602969080091039737919748708949636400413919181228932988741060391745612195435049776966463851451294302814472766702168879488023185696447886375082688826536522493038537200359750255885130075739138807996580637824646555384589777019129655825678989173516964618387303838367508833810145002905185293583884655824778415911444855439197929629268592306884887620745534648066491249037051240870367629627433112723526262928986322054228218357384334023633224568111270783517873312911059389151724527523159872301202540341115956663966030807485056599600080299639812407593541055998626003396701466660352232379570864680715314932653811676664511713021949814014539961717120240038777763900827430434931925853992039887268510096973973099907932319021507007181337775693646641567949259948061829616360388949756577350549969828306316902024188054349548301993497444466389842610307794510939831872037362993875470381150045642110205704391760008840365873016119379697160807372926239028540894725358863493154856025397403626904472860825044020445445353814415367734856275855046339765756552825504646097332030038162377463936330526195096540183712160226151554027307538500020857298199489201993574871488663726802608925635581398023031322141139720720753767802969050123563182558291743518928820474523209524931714691684445176558274201188307162409605811324380894289028164385601499729870375396615774567348449015392250518781449923656773041449569085617927459659274403916001662201645234572205534854248534132662734969161190473422788549640783537641969228036808236411034606080944143398240864413346662531594657831343607218079607315945996899306347560838436458099885509598614546581749587686678469231816519227498178392798553379111943700687235977095309721567479345335621854612899086752511688611319369384619699826847124068551704022099129092927904590656454576547724140273907843803378867843928376053345343917092783652702353831139598950854421246746930233338885728682285725052970559110674648226369197561064788587650091458292321371361820889174947155189658055948854183088951208027079331565950787328948200371432898338564990975940912758852119197919862159339413964079944816446332734586034846166477790804159818094635722654485777705964324516131490979415960207189850125305127143577603679833472739644954020004851075405814395636680095542447778373788963393590252508057993441987665363979816975155613488754533211624100003172098915863292174921887551089374451928266041734403632048532519139641513096396156181184400603556460198447992044119505317050396522858159752829578770913432034211389064939235339877806434995759743074614433899542812231345565027107124169966766826174454773687078927568034234852707090697462686279646251260547577622600870195503542847832972448179189886762169113508928527812427569210101327964309483357858818251201262609348393760055860710146352180959563485397458357862121648737786362887343267136035870957279594196128878689463366744858088043487116701799092465296944724826986487123699761778851847720648173953486262580955541110323985661582501387458643719582199857299174718375434125608903871581535345715994045949546970504451806665317280955452432988017915934025083240712885908711319771579758671977018340413966975511081490164536531609421703320190438676527524265640881025644762828764984006018870671344801314168793205125575331528415233456949019682501866231879740228708638301097272286444243488607589493661189914196629190918049956182512684507340637682108627793872888863084319681152126224219663721232192330518888272340612271430067971682480693790373102233497404697149629866462474319123581403122157577484488322503684860928740741341314788410619625865050489000876994267402814276298125501692800514255214653478983726832530739601175728124278852341383494394621985347350865828234838634337527810276660521874984303008341920935698616285304818298138873439379636006584127440333596700541226818423190293208005553609832905652410508449067281090568008918624557496263360332647667865155582978018332777186994022007287471525643845190277470458083477781965680779110847483313063937073332208178568876955391579254603363652870668314638456236083195003229994077188138202377144657386156426654651416110027341290489969617629642428437729323270096151008997187289270625558928886698213427352806595077946320132342006803930775227327671651479925589356624956162766604190555375892139962436123848496531587045570564833252498965899740402670388661362742434386688059615283306076303826664266099935246891437584933294624320924100246995910468157887759034178759353254609467763812161406798067529249937640104848147528044280835042028070636448545290572260985449790578784427609561598455442426203417075092180892994920519179711046170861869484798760526684195778845729837242472700862492449432420160160621243253799158843155738138557030237718347509054480838987081823623653866073784777206754267515119693190806170753820578380907455978203930107871304729924727062091939605928769103989582825447869296440797784292299695047557219503502338243918104230259955042229692149380580061231898888789336453500098310701029891971858756347033034364857360682872074243425217315428165789094892781946652184120970509067242516872013018614366411940257966831035343110669928095193925208447381901694472144887205899306426271225440969894849818466943642085675351920755956731454531177336665114122608927939829380511407785651356703471172358449215922025760372684679175300607855648284318525524224554256199565181264743205182620314408141988713214994097934988450779244379455598080665583138489340348175458978744973157381787694052330323405037719553499620940221948716201696640188874426953710594508680137996257298587213947484694389966546330756275656589061669347862837381900267992374728979615472796868849624211877036766288008902260856539574796503613189981177025634855142113429750988614069571681046644336762693474072557397966222115129263626152808268490878390910626626646636001366670915686998521148053051658031097482763285086148036205346714473079824727075160755272499176956524800369201985336787887084562222892130570214484653440818213592581494538350794526303270806893316357383565496506821825488398246903326205952896046357848843490867700211905117160709093195734200430097641070660171421814034471306279266881290224020165484858919136894943206275560114404038163388891766930290548528914276603026355885260666198657998557998083719955568882295028734028390831127937006425305677054993074934816775989051008190419064659343226068689436246679123769987427237841489854049007474701311153325600775414335888567817879651301525341111211245026987165871215071936206926342249054547639065031404337288199560547504818138516807499894695898360228294837408720650789037501279680917922923581739209139138521748332979576000072650472169020665159713951354314768116865375871795616898320196077711713129152933491492255444547800784151902605538196786559798545513899292701231986691031533986734301388660833793331154617702114762257112818257481416711333043519954818438244573227901095757771254643461372316072057183756155188225089555363810268547849954361050371549617922776832123019939093400364274248214607852756013612939674125311503219359761307329389532783550593091195112619339877130842975799438304429864605649566694211281009003226975512986114738240748028511446486690983529058261803962759522584429426446301901685705175911876411317703190500893433238421103672040927868108020124890409162451597098000386547126975159640999816904337542182000211011268476719227415620617602597476837481991553116174589747154036341191522957736244235248373743110659291058090756386566085805434224289448186672058123653843008983677208621193370122020766548857805067287655173505865819441712367507995307233194235476891663113868243939542084161127994265017537480458875842042948852022727428965702587596025196078786683105450055198282235265516865018118920322062504693829646051444857773475689722436347894888685746531155844930645365147830532974275198800408756297088926193306905824785412888425645975265034332498252202028370828355497910125958429275741517262346033086222762195162415229172148662466712153071358220248414514332141338944076484266797792985054071874080713317782397146053089691925582052398157622939254891192161779681935945026040535556331101271259220592720971261133014607855334929197704528427984046461993526642031225478962336615619494019922226124767014207145002965037830732028663784120829890363525886834026732205890795710537912676557561912737897553503560617491468951119430854242951846891542129122901432472035631197843586803492723829676420123452688735060597879632334036350919976854987787345923662379324536714390425634290255280695735033509681323263227578338553774226775933396857009054624000910444425010099883026082662868316448909148278317517849866849289687080072578303095966297637539514009468734337975753482143492073142959201892366805109490063888535060764876575430015614307784922537076878698246282977578451479435449743404930205531436060764575915245956550034343928111332287996540555073127684537001650703197778507337116509592096365757638664744528063806125908202398272040593497906301972711782585794059233405395013290660618649646261222361309744636173500437248910642538119078236935186207439366246319533907621863019233234254007357376207476590479528014596574548572590932164146569658279056807419471035834955058646902388965390738347677408591566126202495332240606883768695073887630213484712284811762272609832370742134203944589403350075014439798238118023532838643297979374029873678734517725575014675621201497303614041316971368832772606657651005166182531844780409823588892156638370587129776015448039533869821777669282135428067755243512151402144982666767154609139385790265228614365701885965627355253799958632689573218117975456740163259724659039136405403442429084187122817824678033420777362066389645571715294585769300910190878779269154117065633760796735279728719241381106468777344971821501758743874249408606963800359469512894831220470827860624543362738526968907964087100364010228898324374665563292920480672822663104182620667389345608532812128713120311591995013969568460497882657385308607912462503711267639249588360200367843181353251944816982328202077332703654535736844804081668767037374866743472097117668865992312997255126404639744676588914237806409243901026095000624671076347772387742564518027527448443490507863631442810073895724957302622676111120018209094160173151070422781264740665506937227015634451580322817759621236136543649939384144974071288445197459596640416796722233458009220982824645098729930235323391071941341854333178742789069048235523601793199474839654411410907575832292709809861693397016696055513928069767370708932348982923574799040865674508066808732683182281006237203049493088177469003662514002257635315516124229065632082832422752095084053799720972645005942188983387062486702302309992869943128303501627019353665813486238715737925147772762147945123372090597714274229451532283648449362005119499949797769549198891743143460075910665866727603728892934187535243176905999676137013791935929275539608792441300244845825185875483635550571934547322629731342915214581983647498961354238098462508312299842301922482910966277840702244599135242994640189507088291130827685863621089930049245084022891075455271615614227591869553260251282318989771638450119799417677006516152330481720163619202655537574416685744626617204574509560016229241579964623020248808533307741629224909875452885048955058636247443357187777662499358264685718709028086378365851185673852776029880976807124358164627434488422489393884758273746431862785817985934245401727655312763652925558685101497929336050504506988011228064623171793533459474619328613134306839111661318623088419459900141719177128983785073914611599346359195151409277193460269700261434417878386695221838481707490276926975996420234884212419223760668446077564063825473604460391486249067568164055533140386942213621826478929264529700072631863331894387990592990334645384631151038774399585155531880582684471446577068898164354266041295549755513710015061089094251735927077830412009933910601968829828713095730634265767862403262721456527221864013581013704319312695624110995146129118361210992195870735196329373145235364468412715737730735654094624276372733269871874878562237118096082244688972443275256803870694769957599841720190994910790416258187196656325985427161786226918018790492927345195579599853057655233004452464901083822257731347960541202812854352608847805029174312304620614533446656313701139460427714058835691296617922274506603542036105552401550109220353281610801602082429439806013566659588248175900281505736410173110697689634379759690224403614128068087670577174937015410341220516456098125853070167721094119631814729382158141697364493505811487915263917625933802592166280161499786692993634613101480949140120642327364739024325736165606767539751635600825897533465935256652191392726504809080724343239882718531124721861988513410686530049105929787894697571660172269637553865371728030078820520801307184641254916363388624270721835021124464580918381077134897184857750283678274746583312179174920229130840669354065613146646380859421467281083830655173683964183669981921456522818753240754630543170791828534250586462946262967350513688105041958347426407080604774214924095142210677298561859926178454489243604766881890553482159864599383963119341836102595578089090990720161319378517488572517852915175702376158168449403273929812593320456097334034041823382416615116034039622904739864614992416182478099980032811992284239717874819748353176000425480219168756006680917723982921263304453766492825488309459913485875339563521463675068173633047725495514947497668598706239345233149369396243011663851315576504024503842109743387509002165634388307800991025688407505422354280537299609645128068074285742882926402528880831438134888143186571148304684619966280979158862282626376741389438576658303104506334056050020216780148165881544998868920825062850924333357201305882932419543775269043203879513622077308316271371217262491316676183497574090322892361110723195094778262029663393276617810302879841903977465685108016901372099877566207881258802895128513977318340408966069092181190841685551381525916721225132996412577716517597405615410083199771058492334635790232820456873331017761937270395659802219275114151171580311879401500888857929109334445734065437048425627403086466349325955857378535310850928136698359977403115972656848253212775711362611638428248187036945321981830976106002167422525208150305878311511420181841549703337671992352129302009275914968618598216500446653068905090371000790306265581181463567869950260118939506364821414361415777124968510461592470429086865150684771570951717350322248263673884931844064143927714238005187261277929631920801549790767549056093829954056868911720731961960450809804251918697343084111301742388095081490145041806638207646644992771375060278575143623351327972196086723589280248605365292950387426502550550782911267755230852289271688765324194047148875370933000163511400469889022202522145693854421813357137596777744185157432869719509448574663019414633208057016766957072388229320926203479209225533780264939608675074336021039285761244300488790410810422032028403546819042099224045184115931918744771497488734869087776932292945235667535401017171341933132733295583091054647155936216236713855912620763524168182249414835271859174763770999753123223227713547202516214535736818617913942938790462268663138221470423697417612020656443040320846602530505981366893098894855691286677803897505987004815650506143801758189720340276268248652714698288635942382862151379737852805886774518040791148309341912705770217412973500967802514526906345554956546386914190883539371807695318479323275252838160917018716925822112919300901300813695321550541121126201772674698697373539420586372751426350661846381230286350107280863207283700489654735047336336198884314976764507296862226608697671079259677017104079281414664937029783578706321002646354028792361914607336407843480576056067131866908106772474814368172946394516025896627937319598867561974592963098816351450241715575680919610842509030830197011539913569061621779837238177606426160256693178720110104709332832187709989540018939573406976870580603464635354550577369810183769555472508606023651877866864416897574397584960432237325321804461752242982169476532600847199066626278177558244621506492206852621014387239595077709142452922178512576267002371048840553358620634620278169233473263511519963694680305573364764742220521300649308395485692597445237351285184463730437397776544446166320511438696995520032057877139883063607687612525428594599254206271910413060320267764941921768604774442855962062399839620878188566689214131504409602467731564697978947933191256817165539172389856618733004475088763496037479242406554969763244612520150700849626686763104394012280696421990724949793627629631673879590829209622242499118007341074953599985911390595549766452101769305182038345889730796700217036999246655642436507001437597601973670788315684994512231329885382807312522136953151342909097316947765803674933412144932174415811218597770098798280966853541753810349889141635818211869301161063728396831254118205347152943607883292614392621691900369425590373857504145256506013135073534136643275410322092459016468977580549012292812597224071053341583997678964158112671448764778087438874805740221049250252080162459302240926685255062805745866510698456579918694265809469129003231624432612123299882377347397740861034810164569306638911505346253398885858565519428552371528069837522285388405634699268414293017178290303803091829911699081862605886491096151823944973342914938023303207813034481007745914107539600690267736024558089224879270260114323287628573949788963906166913125491734146435118484060872861489055925912277505293355373232579445442844787835921069539009766641588318266643637983081752957800054980263846020275524843264184145484663340248671500903115571276225664074849866597714914010332785250575351504165303563985269446145390220530130928159678471543642564698816767143099802828586563181801466091376726092720039441877989580130158926027328731056370083145916347160970529192088346530842432768053331478950681044036856264934853534041090573168232147248476362895336561028663454452544045606956218636081069596542455293884190076247768358486582811636589361219493999381117124644487655900095505936683956169921034597781697048430061424054542719236317361858884055319170965238908913698886883762526078652769915829695027216407062418123725690168384119821838364032926427024044957200059500656319429862033971542556512670365787975562859255592286118610184171155861624441755402307853938337346642914549960760529617454472179462753949665609703786360778811714016401557845523723682873105164249427706749570229834951310751252874910742012494099941619503783432820375719381742036645505040547139410240114831142050747208685429188721758806692086005898681250511559275878610860536528588898197712711813632110881102763234323477583636939105554704012241346091855893154472377878088750896383821751838534793621329551815872353338727340632935524950916845994246446617910223208063574654159274214281403886908456529310844137179415490018672475222347560885441155108959580636118192127501514779758018523585242599758531787383850474534305739017657299387347633820716471161106546811672822223388372901640001011574730609049600301362703742583054920126970028185020808119527740853529179309647531217268324895550655272984710799222650193039629059848827944126313085893577993279546650368358624288909353383282454845177921449185457555327568481307866021482504508883620818262049904506560789664492296286276245035854639430647101650712869511322069568688454961166423403134761271002735842785335991039155459400897202788458400439128237763362803532772926819817157511131958764952443156839547088300465771049852311436466757941280314680943275420554364053843198643572738060518810725507839105561693539114541590079659285062132597080839438279612836403704390206140471904614840378581292308423759403918206439613941522959251414747925422730711318111701219707710230725315389526455061416059688383008613228108922589391479308887125221853311164014899528849487226902339032761544781356897065552839804171632973299565361361418126889932325794793914231008508765734447677189680861385460516036129600565772948337562727332056030816066632588619323601554821487441826627343677061931095390687432608532379062583708810424328159455800047900418164826868425913730767607842147498827657383943863728272768650479921058889384513600837640478659595310669466348202948894331383214645839776302945758026509496877003112763865223553921595034059922570103281768035254984377053268540083189209547021173853175861165903540627574017566685656678402315355082749599314384272588219110879240853260550755528707719031141610636213065562359196538228122555438075132910345129240664276901401126275616448122440329309030399869528078771042801803628167065680591339067271159570161314287036753001173522996661511450093116722129659808938833043455122133981100726508697075423402217955039447122160791615510568533332417529375531975906845622749057731982784528693003562773183341641176720694281445924321347656499075851091755040066459399898441777169762230402739028430784033536196192584007747729254725111697265077504321109627733427899285163894507952056628232512131355382672115854519276180344397505777097140064818606138589491888025001136895150136265491421343880426003542553385322762152727993003432095966441878538705518929081471129292395355979795198065464013184358911887221270047049380830961205864152222879415823552184511315198630775760342376543797870694674208194463082893738704903922935491997090539730843820125529361210401542466841932775794558465647313522827012099153520957373573425241000136332519981571848562807509530155098824836894289106777390549735067649417018576848692782717801459420965391016095467071646911678730978399840785352848316041709592338331126131694656398341070772515127187087568293034489476103774865871656240087737407700995363341061906346250784632540140686806389238464399535178419326990531041687315679448839748803302385746864995515852697897873571837697204394047060015722296337058546404664964994586029457139687644593439630422617627074749248542323023452467770641623712038600738011676625208779078863233267292151468293842720741248755373772250785270333532790442284119531959912085130633148461994372573661030564673584003681676955283750190039819475915677391135064077846879575555809097268825470296564510023645786536597987290903966289499914577182809001905755134370207226975560413319208222795278860753462317353727363595543314216880106622569651428632991428614700041957473135159339427220898291417830494783618440901472797115677031013982686786278362638264459114430937254939902452816794638531449897271141827983694073719643167055756070574999105357530281863397456938458781880111052631723821851846326391738344584359213578922083436323979430685180951457692786482523039890225665650994124302312874275690621638815612697906104297736051055579284928502304070080987588438643288555465292897174407112640439910019647174094832906960364332915942209777014204450425751261834116776553055507639388772238123041679832077845014899266138696656776639785424155719549057417070018699091511900704360734807606710437422303098433874912277220338605315708047216193786349777731461824073644141104383729164977341553750159341438870796602351030343075479947679338801265049710058217425248472831871307021231353605392063363053450993726580855237747083747962007046853341349650592209579961452019869319657396950598290032110232349014529304689831795180502431140392438672797726500713158374132570450780596462009963223145134476352892098848394760931810736903671323620145256798880792739251167399032518845631518929544212299023783661620862062188756758441357552203493243626045324233705680912534200938896783738895148295473397797189480229494987040456822887395035402321423723888636990512825011112700133658440445555924092347471689495881172420670747782195785392601492975814747469502237135742941870598079057144886210405991747988260995394984695517460630960267850979793278618693557378480026093423489044412135851492723431600831634564501731249202861786180839827701224847366852546063710698532097182812943646110268366326144101490306266217182810665431886861264573268369234750682458301600752682526965735797236249345658870963307098556722963572898099633654682719903941722045883258738262654528996937563238776566439892058502720764766005973705794688923679239186538494289576480068316277678896102108086780544564767101288742594607367026729432559994049690653766043629311842523806046679939655817887849615422578710027329075062311928985079716356561634210326614427429765084107452693893075970491322413979548075297592669970701660100821894786553452115670277034419320842581062079210335240325735601516336592404507536639997940659248967381654401239663856132000350711123146717393664130755141395851997074076985469306776997617107581974652241693769986657305317890696476354626713501582028969542229801152173957811601074321047182256169950413774727647588389177018473780988435459510010933530219241625327302965978373186750906728842340039458485424416495478740121795943082196332302298512596359894511001622457406629432516574432524378108877943444781897660983349592159692410129265895465115585430176696441534659759899968649790119634279979402309535558407663942474785481683746932766523045594264231134013387177413037975116016117830054628409782093346933650004849413235791329218658178689767454736773282564482544538146710635198420306293790574884340325144976390686732042229889096397469933277252971329224199227358466950745239637955305639781795946879500781809190692992551818950079320553223087822383222616195682142935064330422900775317852118968388816829863856722119096414831410312476284579197850946261272226169592553198385750446598955269477679012063360801375928952799478001287991051132739495937139207275280822911909115516504248949747511111887158531045142939880944016746386969791800997703787357448005335511680204431805268839898311104343951813069675073152853088578674868191177986528399106575583527306488303304623855095623161819047244865276435493420362373096502286723197462558791191463585858382830074223669491479049670845906543368414804530430521324525569196861624549362608546693292647287785064538240095207923327189658167531075838126487612123652428119351719745655884260673754005712029286239003123143492024395539713046338588767223607447110164585214509745780390396492822469537357414483931793909780041625181421029668251593935362904609007837956115328424092401740805486359834348140250179745602007228447856564126358849193263091100744772798984416656572878003494287902027523065058520387898309082797013261857900996839684889579903547015588794043315325654379839814315475716794174607148418496079995527138094198213826214439005791924930032696950542459847454950302695459519433181108670741488079544885074256425532483285497421243159128610436720778226692848676187738145216141922376075835671925428378569600249162550200872412912954152951178649057744678960048565594937888316768472278757656699593587769265531710810875266197501354803130667353369191103320673656797446048092276079677211049723137432601049558281560436297848028862184609947957406342698341168373667567278883907505018384474668740799918806233762798429247339025418041834749443194788040491014083019286722352886303308776174205614062758382311715122548945199890820397351010233507766783567084957612185566716153317293117778536883568333257143193911133002934603465794593475678330056711933484513714208572260061265710633859279345779537689305698069763133450715882072505808884565438614263235454318617239099728647621061534687240056234082678832107424854158364988618869784940345650865921271122818859935201895580931885441107157424656301144998745906771838738533949632240408485287344796350858902836739534971218568328285083990844976907008666847725052022588675509352278182291186701726300402377164006517743055292360895077650115545352942215310043284313335907350954131718369918608418737597604017088080457525445540227297220741394400642543581981474186346481040576803926047464675321121268007596684608054197721256563476590600673017420212335259208786905345305706304005680487346411458930476623114327711563317407270184679055925957162613097711922346127061848229694554582003634622604686929993982295581950247377446655900068485919583248336348467541328511758734564460159444773894483473983022817518300347297162375286635120848545865260336421066143780063097451825607970174926900856401391960941009050239083920700710323748200409557400772136384746897687270569886623234932190335412502457281276382567015301537264112146133087757402089363175230948150041571575265831809635072629651547175640224491766876684294179653082184004439309890544901947823928040209898872564151429708420977817728942401349375021593044856187876201601265064131132671759628142287320894437432963175696814653888367066413474868094474918382699039399586404744645962452000963208350196036874004338443462045771743154015165410009804762342499303128423020520288855268592926218275919346731090097478592612816665958363634904851267183928806530791373791023639185660475575885383771034018055243190173496739398713247427166580062204576830769865360590504870541348129056486511083090852663387239031819257890576618575008902338927633785226488948573412078180209383194284045444943409198567557603256723987100318845593698444718635670500792385780142566663967832246672737664660738820194886793562351961243402207617449363243188761869343726358946639503625103664274698404620371226291589831796006922252933741485086940041542507245544243660392585045605842930980918657813307753886555421606046518752904258968711054654342080367958007443401946257474578775397151218472859430405285997995306026568048951444906463059655175836044216140583822537042930801459221920044224690792895997448984053482992234368673074068206802662320004551825600250576664500916119428999420341326053298000361154956144691608682845371526403127679755928814856017429447133475316273030442113991916098639300459340010104431436167464524107542527517231889163904308457465111036316408492139932702079210502794129080555028591607730943301796322760878075680339735681270784621542421061391458752344911681310749072018990128736599107570873539900373175412578254680816425570941440634135327646164265998519937619040072956439104433575874950042413958193049181774762762559140425567865797351516022709097573633566236268020742768857306842900495392181227284918390867401456788240030451529269744136448329202446749356661707016357638493022317730724714466545027831639237978395042231413573783167307703061982461064971246860439612628956372848106402625351762313698879652183122710984422450634238429905345828788036948306620688547632297565491853105036849981022795337641834418082792709008692721194552202904377295603717584241762658878760809274060611095143124633387006980616034579437171045065765659172982778693969514036640086811904198689879054943234353742143713037925138397958254163492244506556849758212424461868217376666157638632855960099044847168191027075733691574863203489437119811581303671620970566179514187279147377563217433901904555688018232535644132911228250232460057338771121129421147672426007416853057637800683276359243957206509845314949334985018114882027717139332124262311794451096979994115696306506622991785633458258462111132886301137331746692018561024216730631769975032690559862336247391727419380948926034449556194062400132816525322498814923942422645904306409139772681256206435682049420563025292587174394875670207848205513817347800162993227130535953778636183485979889114580527134677045845332424847563455895374938389618455443399630969324450900903803731989552117172919270075066398403150761078093440146090682473423411885222278151596565419011534265837066746953361245539218752594979580562287612699194511387080134960940076141979827268929205488298466173877010364761203901613969945504817973239062010685141379657056005957763251105302076948096531923886264872803325213349455978444243859119801048305485576593024730127046120284509563780213665474693772897293337239616531840666916452062390553736259141811118525515321204286320366654082148566991088150076496509363174356663876892870673129874445062636991006095185731569276497418827763207565336396134220085040341688903403791270391122797875452669004361218738098792978386070590190180465777451145184174128840211049692695161663394446374077342664649750768158465903855552601487442875305087068041478155769764600670793710962003393710901818289013735859007089152504577883681854941839138220643522369008225659742098605535061546985540677014470068525035552852951121044137515240758798936865040230014129654165213058485428086951034780452173635778598603108861560929359087351717988705043217674281570872717493985737767678573915972287775812563315014431645579605869986229189023697865689621559167600455978008982813724698614440866441750167425571776385910218266529954132293977039791010869199328179383987364453123274588221651969377632423816110900888589021788959947975354368004172263505250872651028057323832362046227279473407290071728715540435459717213440032857375103282336898946624610981363837888999463120368533975613404143880710510946992433785292327341792488961073101264656718576319610025575227444084776110795509727556980822511470993343922300314053124427525042270348067006120610731199307928125375875111236392034541364258287823046347456975163977879201702832187338532558990241637713039638825700206225420504263873425150214950413686571161901450559956441729305427185685217018818787625959904924362369109939041092502040033082352860295480831738256741181326397796364448056767015781916520555954545609766662714494713731465734882622589183349045496633649710825457832584774934324484570937990286667635647375993080876611748333460526183947754560207589371770143413369009570576459558644447040741848105557581271427054431881928035534791474054153676359800350900047442801852529485311588851676754150926733914401309104631423149744592282859671312535539610254206201530395302219056473517967856662759473405438803045193522278525596048721861673266866572004283993223916497978819984410617336618088863551667534982243533869526223975360297992596531081944464344634313587925898945460759307646732012728888668211881783525761895648144677939199889576800856953259370155189180851079809912192737761309167578770447263077049829939189889668426291882675349479652337809896856487195537534188476852728586347781398105110101029041740017606582998084085229948958206232199993555673122865154506761265155515424500142000546794752621752959112237369912148364282320741485951498921991202750490931633343759195642924844389623133991822511025742755171518493302021352846351317387182785632129836383372256753486868994129247336963944256544445632572744210213128027232610786505779227269090417906429455479861352722751666870169213349860592383252053210686241689585151806378723859848098880431386342203145566199714967645763340032293684014173085028534990401032211259493153841162925106521213441157516465088810475893549467871042110181579594154900661304933133304923060159505442068457269550015742868979669911665024413405887155217122824722595403480714152494261042516237629934521988348415103771907790195285915241971015803311866368605873517265294711865248943579156992806028405348114414841424861835226479676860732927785679145118779917585586995132166670145053815195065333573412655879963189976102442819699052048288197525503891913009037246380595091789568257133246837960295006579703380091688866541787391226744423885810823910546421483519031825624281508462231691103311026457505970941509282518452049420981271474059038706175635137031867161880335087361407091712570556585502812277136774758620214780284020503223993511032599516113904017298112988905075033452780953165441528458565920999670450294596023208209396845646931559479320446329356274167263309879500148473936513708473219536411159031343318208780997414524440652788295707565484880041199416330650063302389455446721504923602137739268730956042779578101823793388400039141577175366496999388459885013882706825722171057158771458159635015740186100145859735029024837418187389933258216885243201473442659438607067101415475001660351997527488656865923600431515058191752682238562001198862106308898159664623303260424080277711060006621355758212566391989572507526322118642719763172238334400481739509855500219393853954173525520274064021040000627132904158448508221500189933923606280474193052119965227031393671167611264171562985175805557429585337327118549275315124694297821023409071902836925743450539669850298645744076290857715985650508399212216442320759401128196532345101842180693652661855242202729692798188377478337552641073214292737570759760387867013144604405251345123820820565397914269011455381404165585854608432258406579988406169448431939248797699902277330927927039228632708169494772599493064997974729579236468507339021684334886478065113973277414168113071640056194525841164143628461942969413628867652129999952537042945640973483259686308915109412568609331022476931703514729950101541232307065958734495161036397870853226766795599592200957485668331153345684644757796403086823240840119534502936122720741474814261744644233383905987040835277253735576418318199307687538470480065603468117931817519027733832896008881592115873511734642109212232612395588252506959525541235325410454881942743341760206558072068400799633073167151414949148888522334142016787498491095298874236216039266810512400969752247602365195179005153493039807643010310078506073734104560121894977570003422894259552990982616014292267785676253189518634587298195334167702882274680788480439163435995810784791105107849448945606410574580630857160289201742721622534290264370155521311472518435541723885550384755553883501819431238526223331740553902992801805801170255371040543181349874518087716473782914111769885267404050731112975189715700386422874802317857850024014708954798896405979132943600778072658128582626090259900752944962630619484654309617383416701288982744636148801512499997493791094691385281688263441807616628058710693965769198007048814248846473610043967652950151206214046389448905759175172437247276062858035501422227686109014324434490340475554610457773314743630300063831112522665503435545518660937211803598244745632733569284964776655015250869119539172517401867599736048769158093346655395468275023312791909705578657431618916086651513853616529425763620356887986417064575060261523761261869825732257261436924365570817561139243401211605542484692743502886968249773841712994509386848936440448688868398811227990748367140140308264173009912427457527660164169153998969888775228612007719033214076643725069163989625164465037931779124877614517513928658932681839211199243029845532595235976575650214783250065333796873642352399026407960109900398727818263601281002510410796236547435632255225602567569928751910210363355831701547787713352642829991234956514685493438104167111831949501738017136561890987798787711661149865228878856121093875059203916032380394091395419381493592217740220481359967905902651660098686369212283226318297070140846576807842243028813746970103058205181032057484431067527820116329065552123381961010809797181065159062974685447119461093790740273433825226417932255352794852840909969850288584082321030318414060956082906387420969234441983330912445869292434364693231841462045960885598745789036986607887863570432267529810884830402915289221937682186150032329703843555170487364813054168761326522823240672455892697781698896677401274413527695956767013864352922252453457125576303772139264448286534659612879558103895010374303705989099229553501724896785667215736109123355686108230957420075011729023419278022856480306896319625766900350156618047854846548752851971920751778144892515234751416372925024205320205386591329478835260042047012620629611577204011609851721312231559894904542099378529107126907658898918324508617228306075133826758600950792808932980621624593511558348263016863427828662344789842729393410560104846528094010148771216479395744910798134484685960198706035099397449035539429574446779031101074387318464019244052919740348573770341777164462450556635180781750565820254638299800421626220439703028231872901720833801176745549820159186443391474076948470062988724311390070179207459560864206377227434426567091203012270012125631867179191446372828986330473437629539584296552646753603949233110319161989012494520433617158754024712120788469771426720046907335337814100102526072556517675536892635175350463668700342276262905897956222924586740239051964899330378064557142798604769124809833607384606277083418461493401921493539259015159588811897495562125320412523081699267464704086807078970984650886659818632683000098141102649610788466762431361753452849776892880880290984738483388331597395651411428917023825616743192049657971686262787054802718977387127168360665130357111180664295650218124589330945109979259769664736098498532661079917374559386824777587971761915016331174925021594500345806463256167319075630787798447751507310392057789151315389007440035511914209761591372593442937687398024813949293693829158707723760302245796765361332844809101875583043381949813927034891736126574583886679655984755665979847337760355287038773143719332492907416847907428052499188872634832718115173411647101195193182315720165114060205878271159442007853601059996637607942507828415765308663551501658477373945434611757762266327786426602222289684022759147211715572244504341693234028703875934284176184375015747364024625147405039867959863995292409293270530986724383104133376083831725546291069101117672252815656873407606981309563757825563128490038792554706931335654400919040471330485694409385530900071291047184070047845593769259967723887757640686717951802268715334748695734187363152929902644855691859434959826959386581649575755465166503198446707626188402944438388171624824895005435888123027176529727587770561376857030434128062793000832815373092196051337340779890260936333019494472213253937540667394738530113589066329652967535346502511608010666191091798515775765477443696895271837991171615176526823478242193010994319395621049139200969016349707912839915678117325547721465005434545506665275395967014198053938000210207176117470907409625357036633435078285956481148476497955079803053003113655260461127669059785979995152167122606434057486676771023908585168739564812817362764147968486831856635024566497981891552068148575069192759663505161253548665882067892939668899998785475335010046719215123008670111721523492674147402578754953183163126202949831564656104131609633816542006492839602394515914239589934396647954350220104514184409315355003582728877473107216600794351582404328165523459353636347666562477009247778796241304081967782830729289639213711261937827341768791159934988566695448744756934891649944847812881994838707438188234396431151613383912973923253539099994222067957921211421253559640181063271123922677723913981120576756222224564098279873291606330418034567511787468901298218605077138322101277062018756938543446232740545939485311116200500962171786825267977341690468864512121365932515365622164316301997100780862887087486014747540999013346539687097093690275434787278261599519231911534516954419973902744885732024581368074235666972512560421680743057020951923663685883035702680583354231643612861314695130105804513390857075569537107072896000471353374169611901172457404091334260660218362522315241732502955908676756240941353718113313247911462439801497621353629507785530032038253476475854123181574971010163286683492441952191467645186773256946519972071183425394862627814404769004844910118732660369783587779560457298577878701212893476250317961351033475766433647912442476113756965752833400774898462009827147299846970481663853320001602526507984199783592336498032580619451976391566499682654563707516766286166242508264580357191379067928675565889797621092169986588620554576889623659729260454498619615132164666476924550202370586711842709472761028031322398066759458047396615011526384638226771824178512743513745126403769445995590661103658499691626084696663364534657694083435613351291223062421765652868505172104978597765359070979079652266626002638254162946518880479179239849459212306437388404719012276684348808071269284017441171425396653518168953286336252637408279544007724506208227988179692776977985085353342880232901679992403607340002824492860527512734477077967764165459860982058044163599293680601448849919025580666643119992036427088776691904279508230952576128024806807499702848574593025044627508708416997807079340507594215733515820018896969934317517551151224533836979773005151871412778220835561647452610079786701304230324170105784400652799770495673529881497879921597494196692302596732039594203832651652907119347522105984180213493437050763143620135100057678829768983182137128700987638109783692328694713862236807435973159528485948477472349415054478269959192724436396466666007609180520656294179877930055857635093526139901495594355352727387050003277684439446622498200108017091582478185557327745496616877417719240609065388898596289824483435683310249669170310719153830218160669754932921507963724681735854263908600565218908385680401002373205671942416961379136772290395973755035260973775729333288624217836239713865648607391034247783147989420592746036371894465710825854082493048519358802195369237245320010089623404579772838474907877181562017437147166166019125629264412942763045374744714941499025106971897059737770451178017370068619604958850856115453043509965642459450435060851235365263349789725141231355898719574725967931947358284998962041545089883767673211599685681004724417422541331929254124043200260596223838194025536715197495845197714715106713404808820748506032821024859473445859726622841172057372109267688206561339787544444221739795124279068291705698236506979131914225782961147439003570416376225364916800023620199622543986736113433113553895204172679287817699298519781396828386947009764841720585833281792752101440719306404426320073682664562639941118165568187427760162098814409147092596913302004473721398087951222168605048637088331758086089808814519666195717439059661334691202995345017267044440438360260039152683051191640054777026186809021463614418381429074551959922770482218038135081420698087792272596634621791951025244630409994074373943756955386438380222523633006721842750205059754484295263282719253971144453469523079992255908432606872555740522424504527678327173216249658563625329793574201998223101547759353276225887396363540488779490073545023347646045056798997361824545530378093199664953806025229884522466656740542181405614165456469962833209934341486393594121729729964633956551790188688675677736460072169354501042743706078048196473253590673986541233957911341106960427390825593875508920273985744506794567202035367887781275006433601660285203037306123810781529000385899740874735274477122591730900616977682004621253761389523124419887205155055384709125395552849154925854508212081444777156786365050456697976882619086932840384487566651826107700624538683827155952319134703530406487596904018324363072660557071462958022503331722627494353023727910203887552110750200314064424933213333856339588496457444185351432534661995912534541345291826023890955901849191558862248376734514944621565166777882719970743461729812212947258938532937705137457094665476760651734125486287080023621576328214076511360532860519901265434462541672879264455385117198167139179911455380898035949089325000035271236816366557043847716913107868212022282244573690972572704058189826727742152834298189471242451729665387488871380385170657916931971642732539290608940282412939653380446131960358350512234878530474111811814661249920098182187700823127067728415816681121614465594904858678778585389668574479111559122776993542691234490362238089147914254510593777964569437382183795124326118743069025541268788034756799287216486057464348954928393583024338529023165220332482513928992775427167211877017300368127154742783673274501222264865863128155143779251314543875798698217241803531197353454979447449329812712114788839946436887100487049008343669303858377376886448585249903302951553614144500404711352165779956193028700023042261707326329954828323439655707759073499596838993272103200893256987372574717655573266764886500712133852024644255969198437242095196095912016625918930043599275139582126990215546543903268427648429132708167096557680446126779767140677346997423499809872354277509878848341219522067779776184146736001894963672567247875773869704052972043032189461625629844135542775834174110108784171873591377104687944987191349938638398697827587889524443562682492308963702972338906750662469460487144470192995877420332753010816271277146895386621952369721563936147480291226646967323136133363001951776298402023275041306847213322337792088280857929909301742386041664424595766845489579003004963765544500790005648699099245861759317423274221590105368317226305568034066345616274126072844428361287469136058211954634795818643527061740949094533089687675851178624619950039235059610317090858293741071193313227955477115420594145944590255925231495807442220705938930227559616070746301834600376000628851703165500571196113148737550136479531170773272292987679553178790986959092849542691251725275257642091557963646591727368396114824777258605410071575775328637479952344059807309378570025306501010186271722021585155406675974448423141892499213114427822719321612080321438281221086348358450294182825545440995144883096509317396013137774810201598221806863985060294302068729466214864702108402179218342322459860478054152839892669090349552739160478214783461671670234162675403535937617755823743318369711458933041618354624254004668469538073161071994581939686918982542681953669755722346941884353310308264529900139362636066420327950907988175980572173496832283358929074033077766896503414832038769562474228441106512138086535711587877753003488017656332431112459750514044327365475950046159159909879521671687382524259358033545070349601365767434442711889945230327765549049186971027152894706784530568730332002604243592549013396140742641660790030275504125283655019113752808561590556454328930543383913290014987009603675840058161585679147086325642941663731325265628495064065134606617587808954777123842088116266486425902692921130234297341297481398594003465926948291017629527267965509537529247165173872538384651462014015692136252863443071874854017946648040758817798515862723736910990992831277994874840676286386737345930314481320848040556238687377529463422949507245954986357955592533311146454848209872765911861559090452909176391673225259657312006068883278150708735357232038701597982859438023755520807550507869746116390721148725698692752292941038165770291178950626448613234702652858147481272178575902732501018628709022816151108142450590266877014501773028542084759750277299270789776419768324092795911175540651506985634322868880468179105501245634552780429713877514545747652528286800908683228777903022515710376774966164409830853215491885633006248193598794927522324604480107723032735195875260470340551029544607131305421567275079858659705619538260305519144342228629361479918897321468091973647447303993230320077064932056451395894905980955999548360363584433616746796528265361325966398658032942809519583806157371924664562495231329760248164779639025716007713513777753805898403598819052991947127728990619260740157699917464660022295609448770670168446889101986127273856223084156584039988890840736885599640932417282046012790643197734082811183385730715471899954535826056804643203236301597978936896271136357892095964263992663547201156838717538144915927001333590362381044152654773136471706772643005925982592650827601701067300246291463003217459475244004727458897779414240478934430350241194014035084264053805172211864835367766421072727272611110876357218653219679027819164125296964202625743635943645626849597819963989572813447958941611113745622780025198405863634444106525369481733184969035221878350050908957150844012304183520696977858564055632503315571369366363912260003732525185105580520730366585037825918142943217989970606612083168920907851340499969371729240921153554311568907243405196287271314594550689440411440838358966441570487726171788899157649302486331007019091705574592807356756080842491820734189676814663971859942147939118672123263905066525576768970021879972298395008892147380750860930706842502345507513530717716535047303971520440758060753074838383646543553183047967507260509171671437805243669284022943251960185744618092575002437553888801332306697644244811328864488485194470305426356766777663323498814353682436045618680457941208880031983401727790880598306615060933183585700819003680617832268847854169214486185179070459576645839834292266178468575115130229363218163019505677878656789453899690678426053359611569674700345003591220374557723042261485245154324931721672353488185867522522651255445464618905651817433799541825732778033525547330211562334382326185446614802598860334439890848589729686976207285641978642163646515303984106391922432937599338649680736717283571727272328651228740071477086084147276353899432483846697851493235504455919178981665993001078506345956780324866195738219372764443402643072496631229372589055810122096391586198410115004113079497964315144665254645508234238944368479888310313757287278069817391309792564278024524375024346850867569961832678368094453906425566852791704123339163077070553168606526883542378418165739399538337899775861818615549123226982542997880241166754903045821252891048153222729178012813234343009984837573573273100835239115489512571272655552222130172020175209754275329237038333569779557474526604696186881884633530981172388550869357362049485266346717039525976401095155232078899944360850604181660560662980945998844716628395451773186265365014281196190414635596082889229193695048840945913855844428908644613202098165629939076627501763169187419449244147363439193748173522463732948247122774670149171791946474828482015623365602675958747993600586386089514012441206432496933439646412505289038116878369593677548565649598203883991493588741756250048511704231610796990997394916974215465909209232559166146573520422377979953167345171815015300645432883836084923511404917625763388299248000581027235901778869676594258679378278979442546807839567118609139118122745229593683763218076877688327363021871412090589046215103496647533226508086671092295360486239520252667388500113868831318394369517711049232104852310788523346793483907382389652166854938861841151419290229619507014446173893136665720291664538416982456318127468816365215500392479960399502425419598694417416791978422099382304434261899551635913759056103274700376604155037303887680900428227699045070569239891361303618446517239886434745814663917415565522993148110819229179347401810735555264352032038155173244946286689504141147414390401494473594482047251862632249684463168041209356147543711486714410327671328706274030536579930964651957371039684224086747650604417379547229183876474464970336206659482748863517369041342883042085945756328172019625816534435212584384580908106564491791176564487513143528826366742984761238247977198286420175371688445814770626180796961487720488104479953930233264639098969409052010972780801783676382063059759621520657709872645444019865090678855850211416456936508926433081413822824683100475080499535348551615339878221357414964820539428336834438151181733862088278413973402361244330748699674317856344818379527819282993287468062378812056662308489879203999921142697715399137157755915326500551736873221004055740884200267410698817197178046421599551107534866131101315404351444175624131074419205522477816366741564574603538151889691737547140752006851106931967398615605201957739786875958367668498941458759664868045241037635699002890228773503649675490001350070027879885362476126420753975913057895930301418193334799041064252202438256847789825572849322212203912926011213404486738650428122084935047405074686632187942172292989937479321049333117285302903136470205689308607586522317227725807160482301636888517827827595797625647469150455356958981721063338529308688423992738570056788492513592816701365766608052910207058447965354466970247324113360310918843708293044002833610041027113181190453770231152678123998878734034076612402068091323419924058962253502011351890326154933084620445042848971588409921384447151182240768349342659555746549971605981384497602007128549380160399630675800047828691198375210945275659945587975084625776271649572568806557115966752986156755675674941425202896639144020072356143792577904185264484069494428603325026602182284079284200387834241228399842523943892725713921220402458138235046763796183889906925361844503932901535282536900361649620772456665239296753334259894455449222813257411913660483114489518233588238064510161908773254842300416625444143491744949114449457788036514947146644679632974131327129594765729945680348274959679509376831798455629663169391520216689091667031765944749990778400121228653887787589955806744872967919724886461983670706540099983727762646072326633002403462126970640363497305104992103242314547341599466608257820179850246479877161186103774722851405404403219271257772596547531437266077468675519021568959803294798734023542159658072323216688550376630139958868020385627435843651122006822448481215421320294972545587364607249299559601638670658912986630861411676834663285170192631773423618903748293291934175038468904867440422582602490491823042469642622118951601867149894783650833364777090970742217144241440140184648703184696593243614068709245436887757037230376724684774859213306019622013739037888698320478930883120233820018489921733222443194022659007874186921341299064032221235170296190752225782125054647099126864594967142252527280936666251344017064718450343510845766186602249910324995268489981544835549204578951813694342501033776119656679236646391157860482979938581597347512678886649874267148436138438805135954601075710277576497935832963841897704880285104292001605744241968638874449157259467571294361803027181918769141227497484728283213036139635569640420549339596582666191705589744139090703395634568973813554706312706140496624577651831298173303369314489519766912014981842831037085556311497702670961516284944693669294560110490183700046559018590921613077500858069857856468587225435719506857779235826601752937856355190499125924365985250214510450643161905383474241960605657412930639244048404699445343136837235756669432851924701978951807712524482208433290424580865646307681271618909713410807260564977705904094712530614652940961404447794762173540573485218946051892430779070420958752154103999290054404470387336998027077957877738811131527909626725756611491615372839556013082918213265794683660168811479629980493784732168034326914271868712681836329650719492284574974889604063329570314934529583774882497110198414570940949987492726528093349039798901837092600203945395056771694198151940658529295147349436109904076047973191509827394353657656190807759537190066965250399845455252154731312409556994436487846869812410627902201907354933291749947626995251299867927760070176249966175676120896705700840533612888508544520345710956701107677826083515795729317199483629573866126386202468397087955339661535483937524292392194735961322947673318882901241121530543716957996142427868121293967721601060202474305127925287318834329463080824849201162385995126494934225063577083353165923287164368577968617968607732745318498616955896760720610397760801335904278066747585408673701466752344237157287035502123637026168881711853419955243418519711779302457749881250640728368282462414770443757974711189591898734374181725759388562083722297272161204249459040006410922697574811219765019145913397833745287137860676252978801299979256593559555346468258140600874694167119667197188158533567163800470436170941876967280267342813574727218702261532339826861308716055012452859899162796883543179215357433785587829354363332942613517393155415061644149321574785705944835593239905167804720396323243737173619062322932760432888007201245608208846627381294709686782751273954706307686451355078781187459085684979277038439546590705750619839379890385346677625394533983686900904369875271164277565345943047234390878503476659841233978281499370073742527593034089136354807014501160722407336666940716349319754171913944785276057703838606555520706140807559036045315921975951551318373103640462846082261457125574625389083201177624218159233443147992064099068506077438661275514721209123563451144157324646601011759218695553749861846287645401210289491337748393735998203129422241248410648779600369492858607521882398948774075384844302001668258327819108039352549590786019354211797208650851326782989239843823961742737365625038830516736424181192904834360974666605513285611734103119595131841255498100916246478474414787758155843767904705573692579446852752491651284911498231730415325160625270906701057283726671178859202845863249428293727531149000904059797889710017771651136846478995266839180033701272372837179640783892640009119554323495950602545691768377786582814331217858042666017730622387442030619491330597543108242226690034047439431547999911640282186827985363458189653998091726659432928205118730282302330845010274513009760281031770859157673018411017951745634968050418930010609346293379433558853430732959861735270477366451313152753229926755597482409804315198610724869507988564957883451383155609357781627198972948974375191366298977115108525184962998417245380037509778804166364117653133426648712883377993538476491359536774349350149279020335865000345552794574903693488092514011520943767144740912218894219013023160558764983608512995244154231060557476226309336747061845506434424191237160663391896902658281732925406674500571648043809238162613742559698689356367692205613528561117713703646905330949608215643950208753207816332834087543420758221043800169416859550650521088451579746164517623660391572948677474066817771925510075076593622457796937858921050899361226717213732296410203314741971532478605553519573294902626246456015884671929795394741955341269841348196868777145281918476233951527086463359041744243120739061060037468994515578331756968008223482612053711179068434945370890378471361341736126798914336903246521131267657443575817407784236191966585857427733138924122943108964000417606146157866756776430358699541748904719981119640434694855059254983808553333419488919353113974926490345399771025786401121617064694368282065149838057579913896220799295345555876483219197845193322875182685114610493591128931661921218468503986995797932421650013543053827077204891206485954347240015697955151022921223952749236097668947741481723413525414794343063742596229562111112530441478650702518729689815166309459013396456721406823182837882029696052860190067547412215441788508751047445168678408798954299556711244657950590077967452814190151485827723603308507077211094864443004615442554555383693715894446157431375057561044569539966709058042703699115416893709416721930923441550207285948949616707884790562120852369387547812447916402622008929353822068101047817433297134308765503825866092332348446002537355867862058942165755680651448967685323652952774982867143835903973104390907513673482125811369726950632822909421476209344659432543735583436755239489624249081549254258964126388351140439765457810051123443495022922033738734426651754380791302929959128519718829355603220209665218255096374241704109110983965424452641252152167720489561290005204337884149606398975340336714331578671474877346016408094958561216830416343130735343412044521303936841516708118198596679107824069883623217772169134873119246204576516811113790594098947432462836579920081011219348787950317445300683678564621508014226693116837435697718773825905542123818134156070257427631319388869941047030091785298147754452992171801041817038387963716603161852517097345024799389105587813436850885693403782774610632814448343629594292484872192538426883889491266831764458303250663669147888506694105485995852568971750699818944250404376193040235090157014202841614644276834641632603485773026979367660702217664535514621278011777288921117683925943656074734054722173560384761526938029327960621411773937512912930383737104391911089581187793062577277155787521645972366661920372256770995424866939236121951775821812501111450394248825441843600798167598731488364750721501946173536112348865935327573601840972051422461695259671295052908587387619208197133919953764006731265060944002782204988295379050074492082465969161806880992093701347889158578076027450633647983174741522684521244975193071910050428695814820691431940676484893317547793432318266026899068379184581388138258718336121666893807678371553864958414388705188479233876230109065807940833294900703372661013541443955171617729744276785766219204242507730538435772484097142838115479693788352728852308600003693680842722963476688781712681168674806153809441654179021010474779301360634321580106575487612432789272975179170662163715440441563583117553410623111094633453243093604697118093931133561947472768947417145990678897172556441394028137216987242995096036680075130455916535460810476404791945847110441935953185993692454677626626165336078592613579387061749410019617484418191496572468291971373378198243351513307035864864474761854669433498613738168642364852962897131815237177179277661452065728895579583936313250828261367228990794594895024821323474574036575975615926413370242220501127542781368500277898174385825085000376884899018532338572180061633493587374477924844630153422324579271371514300939409878136681795870666578918473136177263558661582433868465407933898158893665866578544673599940919212293278842459764909311616939314803565284784511456878488343709252070996423602422662152819259004338236303332215199682254820237414050674411391655691058594744687081685553755312447826714149365711349774014203356691864525543012543778801470762643383218567716049960180440275990338878403898075044343997423979453638415721353903584549430462443636460803617102617037201059719066876875984220660716556716863500846846025578047213234485347380340824721586875331189348350235750464296144541391064096293169800882075174994474251920498178225632887754599096127589577972712982494571171807518359217952829365003366110851200900017359091390838772838674714291068967567170093270502731610155991293935301596380913427181189931198880808963108655430317711065784576643085561646144657194722671350367870274313969987245847952646596747087817283112333046580322580497226228898741042996130840719926508902182490670935687242388078915421738752511495856474191877759204806692212842135716981639626033914374029495999573996955733532134634640991736268124252662382252410219320206897716066270916024180255814938564717643287305910563068223393774407416376548322149644929754135290907433062439892775999607243510656535347583607002531473470182456133170640202506534594542640735263750871695033822539792303722705268009744411077851145359368730691004225552086072905406191445272944352485775667700643108497389671551277012810732321739789322007670841631793102785737274260962486656865225362573230064826077048043557317306076152617079851117339599429862335492666461651413667041784201396774682039488275333375712883967787996323440974281505685956196422381859843061455244260741384830084394150979580938422867640826752559434401334468826645405571979227926526878436144995717904394622746125293285984613060071062529914912314001309949774584239569749516686457101343396878231411031273670286282166845908551276869207886434549316765705437667089765052194041082250501420080719736383253535455978277049512001614008889707535452620716236409399587523600341173080935888175507627700482371375856812159713976567675674858775524684090420638078762788055044276049961543446686777255098285176221754498540661789845891680210950664117643678101805018860075563240432050737888406956621707627704715563939682006124177523217242310726585611768142783613262670031142864128889966362036622089554156448325391210084066205349228798673883999640118508991375420072211546522548291397484055744479373855304324908697727105262354127440138100915762454107964981326595674592136849182220886211813129948459591766361457413189528851106946662379670984193738584242664428977467674550152096477468167156756198353955064583031066251570862701706606388761491530721973712396877872904740522454152819653859549979686938980675617739632790276893023759989245149198019660120267312521370227616642316709870878530793400582122400516817647560508130377043930211089445946271019309164368417217247582079997854215732257059539221480887900683367867871530858405122983798412090131213088915233386157403407409178516179249255206694897185794115985964956453865985351745202493406180422117200888580365406036245081243851662087435695138948848934482318844468218707300146529681945175401478060703240397718370964208174479402893513199211855780726517880821695052074287479196935838797491857832694354373512628243257009633907558536340636881711576386837072261117041259440254308054309683918911092117830964317373693612884096620038246902151107980912162146853925238518108733015292631062046025674291900963534491417434875675934166358635227825228480224602349917393706348492571429567403643347709828654786582948552190543822247274570124545181592325905604598454162850218122481366296206681938710687188824706188931012027848733048672264005692051493503820332303807740066213841305126070220396093038173400028457846932419649734890759250637834126355478084732701348456980256516992188431744303470050336987448681970411495581895290690587323049033464124333673569849975512444073431773871812200006967957351486966496162658770632432432835933507828086244473001222898729129178442796439696158512560450390392042433958514279685375162001559847785943867236922196213937283299372461566020378910285414127014763777607451097689474842018680737988499772595206561559169714958741491878353179795173000640081868287208325251058780957909402233784058510091871734426997956803212619297075516529155402889948696979764818836347472782156262966234583212363407471659889697864812862952159765710398796351609302392310516636426088202500883306208714519138577991088952215490769600730576213716966738500968367441674890567610865618365495168239133436929837895971619765909683828615547610267387561622354757463669726474284387063388342653499838492403238650950031361528949229690589565421030428194423853512155134048938032645286485173751652535120015330679728786549539380207926622527998426882448542755945075305730992665189659816222538090399900256249920520133890899191386121389328131878090687609093641628430772883816687784558076718667015368672511721936243765294989910937843879177216438407356275371323735278937814446491858809203784728375078501476417957278693484226438906688684137228347890197955688944058624248099362607864548843639007823978382825871792447509527447534641329571308108508465268983081517592242410395399458732043368237915079060074479613059858793855262843478170702290053016025935090983522220133605109176364786367197556291792910131006918874055293499184668016658137480536569719903466207418445708592260574497249055246329728963966011209095219437157974464256100252747316418163539864407607668878858641052376868545457272808113699609279036304623105680300208492017896026927830511522503026550955450343162371502118326238148198673834972367980549444564406456683751973934191287396262784943106861716776516338252425636145066208662908397890146931096709117149956929025542381471308670212413162648691215157257516113170054288688876341076829869181401869318990677816137453766262149660577420939773241085307715602704780472472989471378242858478757779922023187086283611520473579810765316381455682585112765771067756643378603159628995639231638212483974363047934247716508563004299880526528050058527812666857681351610818709434001719680549638167730276167898554602856807702187427533052924715509335722241914805538891929800098746410932053977321880738399782396962693067371268128727993810616581638638238091079511468290549108725365468786905417102273902430130765847461002331858095526820629992654389579325189233740659092886348671559712693383734024580528789734622761981026474912819827741051971508875331755640239739139178869651169128656931951653612469420546345225340823630690915257043907425986632779910403081057165398166160183521130394502982533813229232551097301825222508570548552996166243994553151679805115619280156008727285075716865239740480556210992465556597380481289070230030187307080796768777317769524860771962006184472508256768223183097295553533840204130946609717465767915391019414885463766413806674623617366817944083717658727289636671785067000012821424350508051000869319003371461367456805022724568959978675068912719185109378613959903712764122397207328853946325031643474754582717238674444198182193923150038926792774174718896001937461000936249812985030861525051600787908213986064779052807140937283730280691773696019559076905915889637517455659485782422738770964122193044207805563745254329086830402878963656181775496506400535717227748253035659145565636017583004326655155294350721295484740059192748462759228204664923059301103639013906324753577494109206077204456518651900788737882552522159059343237007200441281316581538858986535003497576528843369713339176040697080495152178855391275388414383304515813347183501599434981628684950366299942700378915333271155136218495917813347703703305660434625833581340196298592492105132224613778718846707352423626029442603076361011333357576500232955661590317147592626076720033866162838693615953617120754014826565375052912591129188772243661843611760704523158137006926001168787990658654625872674407151146054553512700649473754270193412075198257211349127586179700696665812413577274295284703751531464688204487853265422429028743099837156004021139328084176328152446875961198740331326032750997778087767036840536302875932772052779846834670640496642433891745349833642912131752401766296652805405427807785510806463172866963020221647515834828791690111527311272528472621699175297866475934304369349853875896251742921310183866830023960742248833369840851526623158237476259113839106387798067441064826660372898801621612263630477314624514262164977083012620341985580585082432989157948040113390137895427530202820848355142852321818015350214719617814474912972348354912018685985480684803839441048398759760763087936349502758841966597772162972361893753763329053032554332425606342985351480866277517426222763941961018109649829731538467449570673221576069922754945527402261494835501794646679260050034742523360179866122000086835409160169383373012936905933841402241972302305909172042224188200759950943547557298509530503356008011191069698607012351390671131776689677883134205690474442124779210501757104469223500183870387308784625971390426109494505310054283307468062665140345581456733582752329661700630777053925036408934255260461534283780729400677706660729172798835174960053290431766792690930961022421805565959082501369299196010860691618664097726726598098959649623257397880641200897372512990104467201016510699118658120096853087362045731660557746601036579099093302678509414320523810485118196974329923548801022460817937300779930969010048380070874638359508634832882605984217976376498909017377849294308375088848500630488679602311213284407166000930826517550568657479030051751075703507223071450527429762627657559177068168783346365403646726851562251887772477044503043736859261776399866662513436223766330631680420575830387999306517247944802929482442547525289141289320370229413748523588168497980706411497599399649344718506608682122233724294981062677477272191188243396903025959792306536094671046287853079859348462328120592604495410390534045058908775630532488673523125906985982187178851799499694168298617721419598594508928005188289437659275432298559535069413194997626909051395575272532364621950581176523137549249258591847008764401694632047402412701500058757640860831995812625521809315594964040701914326976903639656513062530032910893907727370840375298847802095239474252506755581643552004220924729396551887308701299172970830506345815306894651490154482219790214844466331039296305666369517527291571301055114036376389990810670013854578867638045302621828093039496121217079610197070561151261585430167716065943228061015082729602704298762799514335928159512368389749893062495448684474631567279470936601097663624940696129157421767591975541723460678640729246511951553637396825492987974481119516172828120616694754135609293025018711635834321835587972274897270427793616297147613059557241582166278347788644973691358245583015960218490602526728724228511680690304533391821555806175392168596487572782091607774061862331919860968258079476984564526184756128240947806009022154264767869101223567762610941135401168430311480582881315442910482257335064001409148377800262983142600587101661882004194042861247060666193359829091501987266038696150645878101018975924650995331507526325456095063692762797923887389746850965553211263838997388821187345709599290926604492520840231682140846112835696978167570064781038045016477979306574502165491957148502952538372914264541622844580584175422105143139236643769805781712574461194761163018329788851803602648542999421801609471810107660334724310180842855784154570821812631573200736402842574190241385638333457213916650452990538360365675338290612832545569004864832032671873825743168213643216073041035946014606877294467492063988978263781127492375701961044512452021294430552454726895462927000704275462116791362930970413326374756163974531966971250772858424051199430186171871010566001557408356068816335832942504598296048368573128684104913722855305615570746366092103054835850136691206386437496044070927124914210154148205915509592799911726919223708770005137956470382295241515492873084966986659692325104643665258493488967882392545986879611549445239080597306560942629739654389342166596874043039437414906866817601209437978333611674321914556369971473306318228470625256993882053434905982236416344337338958655050580759070109682444772057676047476608927066705947921227523842364586926188509046023290271696668129600684989852627725800440073223790723047387492722658649737538706852619468472444261385888548945754838706468176986221776754674482887611592173024386118787605758688712556497985546865096160315617354335669294455632443909854266038360742719007156075000757338158566198525050759248533925778765540301264219381530304419208145780098936346333083713063663717588314791977968761240953874926557486346635405798102836140471158521954237741508034262582695674240490241024466328634013956939720734989917370123992657542926313600144199436586751701104583506690317113188391048073413254836261520805513181062607005629557816971865071183698188053093031601337488872130265574163514211870493977839841233606282933907691225784387477171937649261153094795368985179521750403528702156837369061386372781257327490805986624969675678696575356397648742023349272353998843341693516231559262240288569025765857926995018049729941115926859921884674371429159093861814963132883310928856054674171385730582289181271504345142577748632675692379184135779267223413381098008708562400560239465672797017030186112606789598784575239789713389684966778481210030543567393487352911245620075386928615694891770308781755386276018094985319857909199910858535512879557164092223278526776223364039335439752260960172666702410065903935146395377673577212046752200987018904031523139995850818596748357632582607869046886286700730365036372378953551770651227593310181225604058177271614389559202495589737696024436172001330687106840196417312408581471759244490971229205841224748960644347725972283263245318910937258255507784264244276448909984009257827404519970293148266720055614962190252792416998888122534515201506046965218781776741307395322659260444632060649884286159091320148698038406206694814957394954587656477404041010123836952171232001432755514359460465798732445548629830473463085883453959553120445458575337598475238596370071941827770605081079186899708271809262783128164369991854166767462549848043235481339933130541527305801162829962580621196280054910828399757394901986769294754366607998514132094843064627034968591440142936087397492988752559584783644610375287124357609983356451135711950922078918756800614278594900834349710847112425859797644367262568566260813219436802460869102429841005909088751091145973593358353354361830797254864261653348308382067285076424546172484919849135917643833250333189100511016022751728241339632544375061971744093333806240813308950465282006988131463747633980327394548213254160492880256397833681580306662532953166101519392142194687426653552323063407301243637389242810922205885142628277329622863340476805618240801481980839179079426757834250956439531476301290557866638036727849513791260977714749350994717168235691569388495197877188792050305317185259129059061354844487117595531705392170575892543037866178785038422568387514248372615127231485274566988397279135571392870685907401277238021553952956534355838983860496017645118293979578151547505977509013103412970039946410093856267750337594362495580034013209889780414068116557648214201113447092227524489399956377404102287200242875811596719625862177704397563638915553908549636876315174137436461272613407846142001647353789278112412245633416138549461700140024179214113173491366963664739740556842583796494256962510747485726494912522911722848995176389683221453372719483538422139724095626976915613455624315089434553698689140112540774198028026479724676395242250952911011467616598711743724041874602081170786404633666494008165052209823539870824451867079649279936939458666384499492944067756554756646137257696230444849733935388288232556301305572331183231832587435755996378590639164375843228759159239808288897538557629812984055370902615093312467758617523077319557301951019547954766977478389926858778314378784042730843536865746320901703548042640578891054981637304239514675329794278451872512602254494360871994606285659575444967485036292037005773253822155284402411178072965257227529686805017057261748346371750254605448773795523901293335868580623441700198973133816047744368740624628447240993535086476528487125955272600278374050196312017902181926006382110407628095829002741102873554556999585510234450978540761330219004822654098435441704351714747327361794639101167137483067089072086185645961330499812757121770093321894014635336790912946497713416686872947209704684853125244344401789621014057392319234216761093888854117364714711119681311045646376298117289802606846494914936842508186391449768537106064933261277919173486622343937511104553947050032021306960827470542587944292927360572631094942441440630440364287784167793978263037736310705491847764154369627551606881651682268957076944010251711142461241277609751317307375750407206507270189983098082614634035089006751517602081664203146050318064178635958550051644044228495968056892420182297293187286757584631956911147198816347915690173370969390934489771089698367064971956491853400239942123415640037424602643281227428002448554384901921107420924827411289348117171597843577583673112907095631638812119212592253748409753491187957814048542512853347224703357150790116682624307240513617200837157272050521824125537413158449112004838414364124642275186349331409009166856842155043895672719955246215167461487353645919842185489272121688165890420298686968431878262178328307497327308071139302676608226020573508563443756658848170144476423287661089374387551311655569726573285353155974068314761812692880817224276974673055223628153830302504982555980996837091446990026509876141117529155033700835528265431497702050629706205796220664986699617609810889403196596780128822131381073151305835977852912814139335145807094541758434134859369942605344122090084848081300046181058534238569787176122777302646376404482379944416864574645740207594253875629874107346908982339108871112350159975713328609330330081114958450944957567259201742745661085758933561266256676981708578570262739371903365488164127022067590803058031534600705351966797870563796290544255126927171028070064280008945052798807788160095746586118712007494092314516417532463590549650647987213372236641111234237186585018739276614391988762168685557822301741649880325629821871701990373927137883815907646956152554230433720258653507014006032794394811716024875199062347185355878815887985095492567209342787816581808645849999277359281085960655886448463216510151485700539179767810602369316297970395930650879382288841803707462376097794741253663677829976092882965402167425593228635064379028481477972200060838335409204148272446898288033166878157112575119167691683745753023300189214523141334848262647398714674354870256975826104259807224443333143442923901634258152363826555590548037333811190301112189126123064171916095932914963403807058551960974294488813944980304539674296974298673421113374819575374028136737597301723788551365622880063428985127659831115253805149338210958208160003541740591392705801319085481400826326786325514062705041259332136294580276799038823131947972362294323988602089203208586111105330803599993144323559344817759057878188511968256377569811964909028033997239795492095372522003607292758905485886008003367790551860981782404058485490551846845681881687905557294370389007132357227652692486298851415253307758941505560438765218323847660839184920394727326959406219397938509637490360453500030693061608961591259349250988455362230911511710614964399409488898779796595754436560086205347121508833879610232508285925085219033691992090789898798693433622563372511952393466830044842642858992292162681703032744168089850301726511761491836054669032191797395253306294406474516291434744111479589239341825186516559664126660526513102170418275401114742651194402000161427343400655022315342040912462178761300620912275323561215175103691370302697278577965589045752429002013112650319899842411577088345899656040286411476782186160065159220087661044996937042805366912208048468592648941509873891232621931660806652418614324124729190584000798330125091897880811970585541380167908151916021094269758464653607041654789162044181489077419957153660516382309523934011014314565430568252573976265266471123206761422244631231974198360014235935541587721132838446475988399402057598713388216400575342253815327869822688301204325737186449664556592661737758653377792649648990948557671725373572821122087486913385134760369646440253560702028469620001234442495616198188416284305503290967912858963090578298897673999617924762687705006133757506159801595312196170111892562970820729324552656893912265657611836818855082442251304846510221211974052896009421253419085271868676972538565743520416650695026265518323469546626176614267300829789545178677961665889586436282186018018621247515602147984416312780664525651871043882263222151740497841420270265769682693076137885062626734691188116747509133348614464990655104378190805769829614936855229945906304199599033239685851265277896898593011854012578693928941338506935025797497154383768104562407335293302044238003317025398262875031713084393397424136924646986581989276004388385790745328724916174884229852095272491431158251498051688679284236999877068394046025668354191979216000232472919427356043700725258439768106189367514541392667792950038021533110027421324798437652628603277300376852648451532745081951439838711473455855373150869170253504004087712848337203271880238773083897257182024546063316055880296797230581951979460357120131316537424334233987579450791226781645961231660769741814907995852838872629148414556509861710864461512422661294113649927053557820096987053533146513815744705646589216577096535033993113973338805393229453983869645092030674535762480321351936654028559922007608078620048081702440478793632451801320176242458932761090696637485678469502635530564735641168219497715659436673483313542340155290856418375333913823183917339619265679103233438349962822534259099673099464403352959065653086991427714218224528053520225546847639326475870773997362526546494640987803158024973309380770463819694290221254287622635912690199981151137775359967587769183289660083496499760589228572953545802162571388750405315259025518716459859268657992104052544798616044685424410839684020145229177051189162415449582758574996657612428949251779907604131964972533576876892025631858826832044398242991456413731604198726793084617348365325812622354037734742849477711548692008539127694589815101464483280056020599202412824573783735838561803487217874383950130034504012738228975069349190260229304841056534381509884796550066462962221174225856885097491604602611947346331889697570426568715779271069767127044005984874897547062196254885411061070098142356051941367520099210638982018502592704843843863991768766520827574972020078934392572296355470879778932607017114334631386535434369501432072281627671932854539883085379862374102587149466598043597667975805951575190141686652729867292230227050403138689528967257520622033750584480931176570916031068721367479629643953933794355437746384607153890337353404860258813694309890003311422432185375526260205862417628952566512850780680445166082664240476299848169913338737178284645579632383905151937462142695798098479232022266487211858486324311421807469085988884979787133679889470965469520356407517522864073064481902435016863719594202672258174877438772624280581981640683852745759041902781221612219222023465970283184003176776709688312591296624750297410874368546396473636889322858565372914880177913273235590088706402599483238189605461655247597442553144035478661028661153088572546014446860421811200666288741263303915914613339093879540449977461973432700501994178622148183889836200499335967544284678391162039099847652820249233943797910960640220168154751326199444719803500359600597255339610126085530468445130190356349155687965617471209960616610631977979734738996507542699107038606963492440457439055503943969911523347696009412939402765596133423397890952888911878504076607040365412521445803804877531011897739577023522919724780727828941365459398681148779608727561131459894668216690433297073016277076323390918536112961327404612871991870004721781284667398081150316189659958841246959373804179843102298333954215650347202087329777626023843731060974249709795185453081185835885569578276295057003067901228572751049259428963461368838098878795637374143797565212548118159814960483684879854017268365143731014568049234218332271920567215829276347899589238296702000148708809138780798742689154207555135494175131260279035326886885861122843404475133451685467326991142173987056436474135928407141188397342394507779344203718762829890031274006512056115649377267490164122060227635270386700799045626756557127411388372245474820667179814263180891138409305392142783332689005188495896211135190466981370163464384121786136418192726797150305988196999221382199962969961070618402409849194642973991852052318832707594291895917279984580026549358503866340107427332068570091992332785417753679553336571701942240982542187846135489996762474385683494818322422757225631219972044212262428871123758121684121183640845923172264770978532174685790403361910994282725494500368763610853638479289777398837203812632955833898455311923480538200671538394979372382650997047611381448344090916547596175802514559492704896595161960070809845680371832791660342204730966708063741355033775298523001323424182559980454170657745874977786707119563859759847536532349761688203846222300385611421507803293441675442016174902542865121773868697556537223238885661185181813399842771209984578904875399730897291370052338382340790566574373328387135686750239973975856926117500730151208441167861751534820889260732939981645378199858361444622350126538342581433544339245933372291540736749861036953084872303625972178130259326717126220015327972198646525768687714797122738999029785667545392561470588439829138586295074730042337956791163134892611966918263309013058877900588481046492728414966214870966138365695512461080562477191334917072701645812325707539553486626513238752518416016558115302822119575329122999485173607702542994531708618820042845236523036046657202727001850640298503082284240804874665671066727576918099020951920503684607354431768601181077946366285345738656361577311738948947020322845553466418783745800004359269648304967717782040882824554469088400064986443928157459472967872702483979418010895114342096665748955271605054362770094806051189695786836766049815323462336724697599402448788576172579164698739398112620631049090909360683235286297539003984651474182909946003060023735725627820721281536083183084104804481691151062829679287383907926342495612670699201744210936230777726346327637964409068757950465889481667805038455043666740676482696341119977465099632341751205761683413103713435144198314637187518801530744110417073741032380737369921142169156977911713200747242777489852547556213570270351313192769059224281762273949272991251101575295324280784861859088604859164295403868828808204500993242466326984449711087045258130688740292891091827781494840644534792622234299822540566681891887388899552037429554930109073945338632286946229167488179301963072408992689482196565019490374498743238513805249127379321341078613389634472182357582282118804607023864769962713970952150702615640198287353586471156254792976962869121619422728102619119803039759566985877924552585582636972687383811762758127640595329962833173650458712858043893023206120638351156319667822407943081553531974942785896392280582874726138124713461575172206693525474416007993828820424321586412710037990483804744319792141868454987174313356981816008616847573067557481575478715521459509528410481149198314057080222851279799052113420085975723170555507329229803050957935165899554078617646717524595156960868946423458183116968495800468881865672200540941645849241212015989465086830254196774745488301292955039601076054095645348545810874675490943669341160658332647152789019541019970363190532768533493257645982996475180904280065473471795303005832227308102129586665611691469848397515786047036878727680645608494424471763791645440332845897245893276106574890739591891018396877281559338769068417321542632789612576871747552027073462387724870749599516800741350080194480909587626851462682242957019842057083646755433648715732299456134844310615996385523647620030806072205701365944603218829370441550326217985196055134978710383285244858945286677856424827216835833115839468755750003696826362323588735656509571793018789121582604050503853754807067894691869391215940054349543744777476082962778832825734615646007357171602140987910244369077152613872312974914613741871406534767362934270261204891884998420639120125525832684601977435734815934416779684967080632930368152223049573092376868426671901387827776372019443671665652277234010753631987625094916681005911979318764197425715866712875521204338883160581129446024711393498427801591530137669787409373746887346199704597533477365091387807463786552255228685393850117894398405581966196677680733568541850661155287928381908770044623731277404803379967481517086581769467012734051276362924393444064648881335652859233493545352728194504937228102450287256002680990577009345363406890936821306980789838854312218125659812888084822516184637150108462511859663557982325098009813149064515683706827740963731421342912691277691536660955701342078724275958454181693478112827804777370646497900487120451174374081427626141327423984340334659256198554034814541961785429744289037193427507209830053002175718588274002883732843210290943623552428086104578192460871478017925513502123885704847120300640474928807945048890428713065706324464988253885772495504304902449860004332373487170766232360534210647086715050735857065773723388608125065600281639562984478745629372200381699474186184755993493804434440615556926744182500076881561001390414197307081107779955782075487381258356913781472255527505819819407011708855321645666032074929961039363188769008535277899109635991012441406719877926554937423270129432724787086846108510146046874783366879698846522974898886509059899074149979441167579905968157204259957182799624802258128055710071444150272842306340375628784146073898367907696450513927900975987738446404782159683297760546818441484552653640802928631987769707049162070114766361449152034704451950737351750219610747004207925794893096390652223090625007658663582582095336143486772638253048267392620801384112523911162180790765050118807488715515723684444376680475347824906918277675232374391547083199286674924328149187457763238266576063853201411903597707399695201481970567144059782590891408973134423182460197186266751991456285258811888145859527550500874545963033547172263622963298508649659114245230686672056270890035885643082889505553403528475618973070538364410170212591525735099622854873079855110756885954737552284097573152625237896905435663246439832354697653851464077677530367141824870419056261268870729005453895026577872649438989790636264516933892890609516285566492199733679013942840134578156856338441704770155782815641178028329131255376720732764285769348479535077064156580716488744278761371891409407291941366129043576315923267395742823850244505862843145105917594283728986947394330223576725559814360177891979017781857006929375836151722221498611473708903290101956247748057804366865004924563668544765282605468809528447153871515735591218460885375485789131665670720896825265202080719998154633063280428576180850511452674881090490361448467514438543151519040329447200559097828484118304607937206240910669889352409486122841650836209747518905727970871726515683070663624426606592511734988678077203825475349233860342250028282016102392972210409446491726540789300300542462272766220129055494470621826938551270395466872018637412644340637529029925297547435557121585416710042607216583459866777198709322865788598618940747795596254569155293601675265564558253562021955849762135407731411343841788620520033374525061348170089488339292922458767956182989574604367488827854788179293803530658065687604371268278090199838964198993549834034373675836047393317924921564865403048031515083752880434694466054638279802785251496644939120731137267412268364507115720221808155219936200609248235941030069611739589254549999624622821035334848883688521906173311913023599811546259664410370612684113265641017104590130445639257006913473647888136039696875341340776572615463246816376012847207071981156729421084951845655543481919136307951630295332797298300034017981359363196556927296276169119894396772759399301291790563658599400557347722687813867248574341818176307369482466607227206856920034578407049131743506280030558602743489101674196926348677100082112830450046452770882733629092957360818455118790912307340820750424020395920907833122487154538109465302727160729866102289940491657372372648527503308286399639044916655836579542175996997908032251728771208973821140115841681101515339140001353789603569793917941374052177860765856691152873983881225655423892908987073879949878533563006184359660996254297649485687434540328055490770836385095139997576101112530007711905807901507602876616020719332645779573421168653377065188440493768707494612784886289336162467203459051053137590840019813864285441114226419915059377939380251380238864025588702340897418456104430827039808289975440887949232387364427615563823849195289156526416447223806943224346087598996265685275967233806474445183251894929411261951074154465852028768453853151463151233884615318448380200980129486664837475777757333651483958330968019944149992097159205917522699839366369606681486760811619939874317532334119686574701591115035934628619379584430292453604139794862855509879775839721129049023104117463536683012610549476986824769771655110287461224778271415396231109893714628094335665137572005891685544010410286468810598561861175616043870268270677097216438132371100977896886355053121319878691980003455748868062360575656490520124135688124165781146265390336066099663991042433575276823374189926449329413137449865441255093398782900164680332059369420056875161413579528933680512341163787733129078592137156832175496807383832184386368961671469609857767259582499124554997379865424920969998768693521815943878394674203517922383311274617208295432126774588108058142046680997130041160296423168411844328434625220705460319849020475714247786025389208378678399017914966466048057219389367412023044549759468972664488987703262270338154464403035046680239704296107452157323121132877683352602143989692362878082771935000853690298319384004027098053809994685613273423737186044764343553093999456182080612520321154674159470269778395025969909950866561648071139743446291164430346698993161639240379267661650526663039410590914504809071755174654383251158690548392657277246963951327662273858772213998110206247526705929635767288795012028619840553117024114112201042084526216332708961256296191291004507145134318629621777120737754754244936198421181326337778855589615963721342874073707742263676225638637148010853992396070943034067609706214294671229498791748575814311394632099111972993074465155891304171087828324641326782086824969272002834747126420252294385391966382921807233322215121150230581942706529403343760749497403881842293240680600612736422214595877090871442258973518788540475479647488844838292453289662112549616154059477250782804809882554656056417453436321370120397712175853703769322142664276209626477452804683781639928230382514891705239562546543565259377512421793158117634204821709386339116341976081558291834838741242067144239934977966217676522482820307748368363647944390290197738328336670607124951396688615094038965296394139417676037496576385785332752411284218701107429488292233589307879763881388112452366407499295412662080361400387788466017497221517453579275618643357132229306215013697919556198771156926761273720984207225225787108389152119855819012425752280811621532230256517509840445722353704114355620283760551384463257569242198038018793167918113518647489386689848686754129914288237561183939107460561378049689532726571376285847831851161225619385909482472996458886094686862498487809612203330448306567260319939433897396687975581529667343783851981679194940001703391831083362368224833991788233039925882114447616650056882204683337062907688392645826588399888533811633087633090985082080226471885815549304530964909072960005086460518182866661330193643357609182023185484337798956745419624821573660763628729892644066925091840215743202253127300016146720779435622502210310799488794533692159244024291056273802062825077060289907486388394357904497475852127119297043083677840116499753121537069647904701389644714357791334192573393192877705292990391122103838606330959618337146260034831361043973959755750912381557605170039816373847977554339245661781341186611906847534798549568690483764990802589694798657940358513255325402610562906326084374305082195466813461075856157301043301185445489688285324132404577637915379769428081810240618309021124638974012682619117196370900959061566521969470736925294621339646531276212250959443791165423712080377022898858159302287411695866190535622173021257811305232057996866592650814758545829249259806336913128280745218174921583644784687963232483246376019636421662807254901472782757728191708927640902642709903679581750482680193034322135740122952903701236873755199574728911250062673312381673897307561968979813244104531831002598420601530006941919702227789795985040134079066202287535198983914000061806789906242718638724582041179212444978589082619259780993437342357544950541283471582462918795189665767161522972104609796794702644029099290037592304154323825158147920976190526621009510764771310891203859045532181019988123121965860953803158523672395514346830043366226287662764975682772599480734683034315909686582012173080121469231027505927991506307332455269667272835140901106000185284634759998906198813291614565083248733254959129396812866990061579424931199601975321352064570240888673405697223888119198843062633724686497632968333332327633164825682024173950938401708000548614747748590735640697403526223998402770468063115611075072024650216230155503651071348225429516659943771122990822052525163771162445811317431322088205153330097261089129259145486982631701194646980161461125471847229304059425431752381614950564969036833141874795672926873931551517747679145882885851016388501756339589856122725308179798750081895785537814827497165943030311576845220026536572355784271823039259539407320749506224090198569518904894046624915138797269296200742666686915098346860605239020754809361235590023193108835019085508090405375004918140538866104150235188045272130026040638923416863206968320996905742161544969271240616227313713837316469629903926532221569068025087137222674952386294090780170355291618585810026565352123831276304783289242446338726256692113154396341114341172340484189102462102746741690199704487407075100921973981217774294437807603539537376887748415745239630894595845923799291602473293071339460066303381227383974492352054994918969427286173107386303007656209450365773932889476488151491909997937017512806989020597520308210668945280618934638634878160363589362482355679885342431023006776767145361654684535738990704642274625037702230174080557546790113675335217920606324469315095067961684094362522196403907888538346770861094738848120563113098255914131956082503407061288605048781251334362736120721331991749175962183823825642542823741467343629267902242951674256498560533299413753243256635216477860964759334462819971871184968878082692758160595387906255072897187946599635524308799711869472921641880534891414510323327484437078422649789880640098878841573021394468675921062189240136930728817516124499112759458457971221158625554132172635530614485678278312272900742247288878840572604137649870185803584757566053091002277961907710392196076654936413504851254936171635593011728825533713043469880150706042692970304072969976152061983097487583279094458376792503762363881714019759290856176439225143067976517553368228889211964050651879922077047119679535074738130825298580822466667943269297395227892281143609358163053021175860050153790188044539103302172196428013239670334547447580926613686632056263768162743004545526726061393752039951791606359478852638985800487337815929617393829526484715051285610122822229955835503637671156602543043881569177047045688142812078274419476263909246790917957747830072066388926190006363177558569357251308853851002978460670723133448432120907694402256855103171127473234587049980955983675082025295274157466128047514188572311478311190647588962161992221874924530292024026452044127624045860001462372592733858234928099205802978765526488596351525048405374425492899879874986159517063937887365989679078511366016103267261533042934520826676430067647995547631031230121659386351174356054485051445919600785627337688396394124056022150505598725378038118123606295303795567075574158909276903681543492235141868697324508343020340066878485259864830473276766130845698752607947100435427166787134382322182301402197489855112652254874237566138185806156166622922212488620326610684936661553608131038022491924920288867028172969091539109166146348783928445604717823393387599254079934303147394529344223621925852829080496921563319950943451687964310505946435331875572746146941690800289951057235833180819203421016111056106947214443653470440560709088245226943176584470932764160581253098742839873795802671548510374491179370363720849678836688286080917255285994618928839711618641888703732703231154931394550625440350656726112485353886357119329700876486839216856545551327335326131936482384775386989417388525926662263666712162868466377277738471804377656964128363490387307927883264249372404602776039764813154856944976272370346011067318735921209595846923572369861360702800932138098190568745599375206297021769966342755767958925320369422530838789148965317462411610002656690955395450860222834519150091054820239257635908397068404778115119538789940793701528196500733860253842863404649252841898289501369569529938546563016776973809755764484473848156096284610486359660093585108853219315410837752570608632008675830240745553071031017094927099421068932002757872063381946424213102690475075966440634756925428061851381612411350836326177326009077337689725850047285880286011363689608611336647405958451587015267641649819701380960206858159857904178218821773509652005445110907812969659016467127479571390442060698719629649541505002181881599470553254310200474024575802101262870897851194022726640122785839418723087008405026693424721656931436778891258116912229233025723001447851176352033834970509493157841743383747577121643282542604520080831726802973954526207195276424396524311309630195021110637034221933938258734169783851843998976220406571579779475585234948482156287427862664848582125657833987571356002295366067090001237643279932429426603387042111343571580450922207014657509807544391948046854462520580581341407545520920144427190813124686934828222682079949435451765468128653049431140620783526645267926607380517414738414216625736186336371960704946166405783437938757254103764762635909154265996980478338489981487146207410790218591287598407587211291685235166918738605598950023723110992334126656857397247775127037517865287275390595929192987248060985115400852285143216000371055285009714666234739391166477682406173914522799556193148412952638976794482857322881402429246690525699772291303395441666948759318118514370652975873454933474917175996506186748513009321521238906345810094807634790345358428133450794950002150119110226023226712866450394092034941402615174461101106595280307530296809649495139426326241127257898813301346306934904587920648022537899042849932022931299413391738988913273287284277654577719709485148905771761583357108844131797053651017581659556806290167120844469531514222724460002629509049870425862617852224159806045756954407433193934881252070709783012599189841782536387303126509887273485531718359492914359687974614333132465182975270368292181382693536273052190718894399236720926839651283291227968864561958839359075613632633602472218828963052072258200789698577326189890125532354412584262352228910729810023483010886497828682605232883448126145083389857330954258858193956075809494764224496609772883895851091193315388252082962480230909746272351954612361740371605828925807050803256671779967079533604479100593322350784452296378029000095956802728160077255357710959149131401076950401719356587423502787483736326691616430621302754784672317732980392272759664973870941995944995055368998857747940926734244705564899676206313841770214821638284598881312097924514594418685628354534532471624535570464680529787868336205916866650603734815799717091077671715337010560666071468644581394443726461661653622449242025456715521812154124434847352368022504673012656688716740618099330657775349405856793156556208988261502386644721996552367852732074744822566522323149317731351706318565816943801661818002563421453257331259370269874365508802099313008628783636686681337899374402172672038307314792265952929309358922565301226219840046676362161412890974776296625543431698065995126368628237318003124782582085238460904683708313959837203454033109698280005498171364396667863446356603644722245878794913246674242221838882141078611564593350736252590456793732268309394805705658931832003725045533547110495584992686481527204791629242943851311889051916042415137524835384925657786097324601801545765189410452495410797342354237939319659342443497976456445102133403138293083846131134854454302179768375093844101149022036163694059163467728902475367607415761531406595550469289534314690813850063670198611332589242814724742677260221901548000061128434137472767594551389894477801478282399188935831570265478315392521239985537515378673788568620552097568014849187719314595605335120526810454630381323200969894424402752127295520027148476334555925390128231944565842567196664808592962134049849991753032003001146481484119246913271661343090361049667291494224629469192544567032472538505096247235606006817028718622485364395239545777168626916575702551674437523953261508852205508677260869117308699378644484634677043409138543408432701790931296688225354474377624961250641624136508278023637122483650220858595407792814167382420439567233782382610927848189319064256784442940551599616976112857068580676096531638832022071966032850481762438719013831537454711260762645281520867966648018565742827668118119015880755294663013633145883124191663205054802268067723094169549927255364731561412545886387637907187118452764341459063668305454332452114933422151609986783843719857818432661012797671690669277953765474587359922580651324209030371287771330256805898015767435449518051928716072827588245425870199282841369382513473276917550546338953156696215200571252819104860540392041145285696459746721110811245732849211266114620969999898140570373787759998307304468799912519955570205826038781605787265614220805070463205690667332306757579529743740671727420118973291820168566525723562752476648499755875295749623974776228218673331944236202417823326411461849911852903070153301921354919441922669581837839261683964244418892379443222140501400716326883540944730916470262114022337331324158217457951944638519937585401876727771778397822235946509118729483285789671269216295019891703129929547774556740424095026501666515505148666749329101962726323066834275437675156091472299793018983007698142364664460150564765275706177666804603900383855655888210756658521698007174995902837444965211537408277785636831851325570332932527835920850618700761495384053242451385922900626649254754307479476363200997670326842002814832969275890048323533068376128923398748618102455188173053554760102306831336955457762082926746170125991990231968220646354412522308688813577219621902860569220874536497065463521976577616651121216677770413069656807561504340732412725499200977179170574314635664895512096137057498517827055828357890186558522589893032695807286295581096162688408356364499031992158543447628104425139257776904241360029981448255867452601109274190439787320877995735119653346708509662177955068477891058726716197643158223842993016284194944133670409790539350889526376435656977162372125310092617879061723380352411595676608667302155715730974073939448319795239384899565741033947401251653181599901971011977520266604637223809499184570445960714013597224453132610870179665314803156092168456842220139922293358865687120074167314517110348972809449637914367611560269912831300810296784796319252755054808570257265410740517476585644617036169052655865360906051779457461391733778303678962643447573093593661213370135433177803864670814971741123147178490734282775065239106084225449734618308467449333391174385031260463449913666849186060801773229646894594156452347464941505697482938452789920065765260066780551199969848493076605742016919305081743409227231048232793869331995319304174448500932266621071741429260011618318203811149066010946223603271363073459551473189764991140499693965742991298617003225636611858515271936596369421976620650027804910928569595168643757613087987009247772154626691852265836044242043685769914804964557351303982662595427363545186307782078515849454057117107123780289298762613199682796296485949685901955546993467884284434732960219324971891738844136047754705842739355298128807430467962618171846046087563387155333303980357503535284992316849875550217366806557028024259013155800836207350764921271631759419732770409047295877750944577920156870732202161267897607752415516572909300382806510647806268103069086009477856486316916518008412904363023893156000309638629113734866644409986198493965247281241321815491895014065689247722520836766524197051747588957388545700342632070637848314273984523690597194844371532901429700324449893428956185567141430576336670754795502137720167544714343794410655972240309006264057273063136654249916144722394143017216869790540821726965419489752165838250535707219895046558976109669811516891798566071913209112164410136480560748892489685663329563702068952979037102564114899451081888587478629427704131088039633487999566244091108778608538574520085845690674477384020071836590301421964414276205988558303148996269649971669559375109930489881626791368150395414281593718066973386551848913925192526689681533422520807287324502602138951313851748145856055231835365977669357166040009888510944438616981109247208655295218011479420117697766458947929708646351205286788132005463727395928729663830207326804729663200060532638833571269457009959112591389680471912758387082682397002723774292187803200046003113344714709102889413709786926703952453122348325058882487390514609334679370245651564691153961588638329876553595809871348858448925653493219579442274387271964627374627885584313481744969992795521449979490556350066182579952495536796408824098952243476802993726687040979572136725317140033843223394913419219783236161441629178662423271282643567765995587330129168085448299913666431957652983447536815116471968972019259487580379478984700712322663009658403719795030994550308500018563830779740619912233144951350188731623694544008722410162338389987605954251673561413839625414889596109217107231579454675815695714259804902174397961344266175684827878510741327616496144387605927057326739629433567171261746489154942396709336057033494218461134316555210427494316561613436354150347251968804525335208012994339110709332845835672106154451803417953082861690442714603024357770877748737271470535166874008194532625500242213782923141612914670803571123126978625100411840402283826933646608550862084744681806215619229816081336691185449846598469908526522261867725782759510875522420198740375605460206598607704051308222746892264583311252183682565772745087434865162405068954275375413827949960115249274272523044164646282688871816227257787248851688177235119378962379085652321654592995602953629529188308098695204296590935159496170840237096242553748297759386957180103937469730877091486206100062967599749257313966627339006088286130838449180662066123545061664939990253503445572010042681036227495098205398933071607831362484964561789225241903637206107521919614601284578212985942814663395468889361793604365560312053143860979942334357228190142988604855508992799326582516245664372317923888738339908092452689366661545011804587789704492897924263310125493009392360556433096199164155844618939779884845830013722573751448330134792990398000225588809341962439400150559737362660588078822374850232903253615034302089712705896088105225279131995521741658231671701052029333549835012121825003269481934770841597367194709404946501697040460099451595042660562403330826833299762221694392809192482895559041349791863403622971560154530739481051861144630152240402761795931222820649332007363568520465193509492250292752866957084541420541350295311312943957129094999078006365236432701559225388644422094837660756356377913195262159727720570969925691781781459645339008233640438775702251293548977210870458833639350796974212744008385528502487002648801375077179200866171906666353258473850061732795302784982190298529756752166233634850919976736243868919017013889910394052837085030108175089688861073887719132221511296230613897816121975460774611815470924656345051926193390964636118030981934672434612689699544557829353252170609311753749734494634321459376791456851310313947197219207275909303798302546960437961773591032413469137565260701143964042620951789400176949346147013998963982161407627907243604050906852515528498493531324398376106780306239199498425118161563080341920881636798236745167341817455657625114030771201138259776852716140617243240202046021371933968677974888751686812646894657902539768401708262939472367363313321820683758749872586275975616596301904050386337494127870838116456330081943238977408526267122211082065761559313156024835881962665394962045972368298324341333432692719466255917482232585242589698263195929397043375904201574451228119896887851228509592012557118422729537932404048554938391952611519026373313617744280244580564188810302987858730651578080862265834368465609766484564066217663205832459266876254799711332910361532466360258385349618071573688258651217986301615603898499916941734611730561324315593701610087028148402377054762393398364704043217614164588699330049854800805695607134555489479652702402835286516978783880950304047351176522923104301718410750389859017259999423860105028428511377976877181057967459036171714494949840372906223155066231966922463543101136790001021109836008780162535668979525995164535089463231853277939754860540567983639951871250899520385463552347811133732398355360466889780362151450701892239817361931247410870993455925678997341683771786582173401421577071352061268441496131721496831996988787807399167875223534222335877113004117621154910327567379874640062822358412451904383630994924557673985800735906319325244941844143951305576965957070582580574263517603638508720884201433263544654453335028469109836816347902283874736427897446266706912704191913963209933212992597379156242320860372703671952989969566771212355507529104644250766886435130569206195741881810420102786653569308144051667743316186445573425270502745549621021739006424982813361856453198009495429950068090736328100206021266923315243254178501208608997671425704265447317639454957286739410157359837351200233470392711498544723637136060643638287346895559624147782591832597298020656923758834898008425647998522401144221348118885677505478400562605423151669614196061526370388846651684310121384033257302190835466439306850750400601057336140398574930730893121955125294011235356973866829599721662505390148402832263469229340793118911527504286260375868630238036114895678324783994906801925798962957498432450459999814960084913843049555343599935416378351019386715704331973698057363644955932533224338083479723336855860642786170879400472910194014515744630480435104848477483305939445011990026706764662768457883990117977837357549662299071714393060148285946035463079162003784218583071369875751610984583261760547062584788400784545024603658572347294196940465420023571195759962975954827043570841192553458624316925044488082529553999465761154742458771843086174629044526272971738062758643781438596447075421546613392111723064877502375710703892412545845534552067811936743125215434016690146247265150573620376877331638797051997575679320256628349519630976470108904632979757853915188489944161182660535486877696347479187888040332987487965750849348286643173887490817049250714989006239242903510359400578022286355009736834685623756008532165112313432978098869153454179168045585218253176231790903855905855633317258097936523543851917322138101361978433676109840034578722192475330704763538007483579816887326858320133509756958112474992865901001275621032485608267122569145981929000535033495406880890978459772488596360073680137813336104462801894729989470320095799003401551636929026103473610133803595545927984092781311522177796142929212743289110160000512158747765357758689099026025058565628138365833137124009029669258548916154487227283127824077578295114818535756182266495180322045469735072630932381179575180653172460377436773644144597613243955889603916525585280406140121248678516298488368131755166076109128892055898310929160139123689425659284965174628354752292503179028074626940040866339842482999455360143157369932019339245717214563261997976536193031454834208490984848845615407847754653942721416551094221403782156296578649215759477313590121627059045429422442185612877123658354470873750683080011463483345646707477351424098448623151320227407130849846199119088614192051785452691944127556083254863768319501532204382836473073334574561627644799106737434067642558070877417040594745890828307462301387118014665595613026562015393503052017652777063907705094267671676627700297677236053215175379275814002858496355849647359609254260899141947973034605236851043057459329850426555054869871059345581258705779292947093548759002082994100552242501896657116035203119074305400828437841596433623898385122586780292766905034491094036397210519388662034794400064773830319944345964944471906823202818815569403557553386458272819658083364615443541553547038197668281590915599715016837798102159583661921267030792079747287314780607122704546588756764854799424245831540817013996826525868098077774114683354414548830808100355609887811311868116692548895534774451634507185710012080205610653656351510771870565842409034035080678868429165636290404288668363377481411711470919747555624915391081574800039421015312081499258528603023145010935319966377937809132241985401337184326667212664710278891844309674876317435832127323065718504644776628426679901794374704671667936839664535702893400964657498633295935661494852616918123741785995153329924810596962114162825215095814759896002297811394589821070299200459695297598330682686464047781214191884209813101010346606341986335882504099681785280124224618773187236082122126908680242056139534092192063052010561056669457151554676736527028960074895911214621363474495051135953348796947000219169629036408743945396405110694857674803765810587307752294441465519188262740970792169864082061896594018625041440696541007367151610964367449978196323301830591337607684116522267270947514215796306137050116148541583212183140218417309602732602451727579493006042474134799027497219673399038656220622885347331933725171619311739757775034033311258758867585730696491423617175297143574768779454311524422249857676667564334127938339019843724614201629496877516622318596265142674584741413051808197272927237093132026964715743370241943753830838373695690185317896242467271035463866017012933524778684320109748345333803948293021556021026233950507226011849198195601377681711424665520320558300561179957803333530024842079517568954888511714424689759209876160853030932172826171116682600305734883057398030640771749284474126231291165385764997563608491275233627879934915416538244864738389068404819117596979066720329508938066902030538569485835812750006978602443309749049622089294589979328455391627431058592318314121388357911922735491717810478332341375586065709300909816199949415458073273979431205437544745067749421288554136282140481115336521068726237147645427447052727240534884477448948439096119561198407778664982650406081324606378932235111561114267158997857638484270159634266179837281973532021431509411125059366916360516385456550190312467370112229199946588505876197983584701760778719172365380492954047997140936429065782733544654515506242330255274051872813161948686410504836304994748746316440579768099378848585588728452526444112213182607113085512748906078444091925116276394174234668544566462518091284479641307044020736970606194119609121527471765893408286956547742751674673133259764812301005752625469611963385082168765853338533159448542583923567433810907366626179885670887930758499037669257580452692744573265182888956901717592633532714232992468213812604930103244673189953786157257668122699357512119211773861023063717336630396626160214027621816901080093601548993006304247549173785864616624619716387721570195571657718042159010928507653478214237806441163401937852188934012116689153580238041234535473215392039275870319736789987175155870198767073562832505453006332551345038007162243230814447375239867288839422456403241830663880315338580325428108031075876802722946010626505858942994802257108484543105503948176072055197658259574008261927316826963019056977109071347127001917661496781029885560343331342457740049437783194876136906057549529681270564541808751680022233754608072552690020208605218110449151800427246233073409301424812933238422731978079100813125621102896178917395097723684709105500545629418765980095143616252732589978833608932430894812336275771765490409432075569400129716776464620051286340008173858562049961871467095255994438227990386733744897994836411593562268771771718514726952544656577210036752879001154710067883665772707001544846831751931830947153610546551724838206229692900540236020458276539939695865953341419290670453243803495308118287050317527779136388092714785423530470635572128553481007525080936839924276765703044887689792985561614461061097146594853397915074872025581288139391992332293684338747179249946070097598338862237130997007964762180220431670543443844033753410191701769787226615155576168479605092182636634176461056237913841670901666926986140965119399664915999476265368161641090283050306014685050556244271747172762576680446651346449689021300477567294648074602005859683442197247368082849678945628506986492973576880843941803396747484024495762129849426160706392179254548569685858523538511714506067313007720980760100963403512235513911430265601811240578586300982321578272384315319080312743371932738840889805787381240686589386283293591332375774062246368343086384763255739288053813592936390127314161665609073250072174465997594827147472961692901057883661671763639455443348833083248970314539549146607480927395324142611733365756892544946478235642048432031486830204041726443692633414788452248990979309564963921733665907516026380835716856950511755390549249742420062752821489975996720150552660931551854229556494261048024412232940303269901999147284325951979914172042622189371972905267870731206347103969662241893943604977194156779645232820574736912464645974846079469512474449303720828344053976488816649528650861148812173107102577074012408859074657570062487473836961990396303207694689130230082533501752739813536287822000796946877120703734328195094175751511925291870064482161724609769089446033129890153853643033587005046501152762652237068760349388932803822012821824324311469610724530585518699571875174866266219674304361898187495553147776531760668925782459612711280607977814875454240918629018891744571790539674958886181425935902634760424282198675507190710574191261526499526721752505635644984204564262740969948308201946452201170094958816618526583734640349767090809528456365243522808880159473789226728606618683880834233433636225000587765522299829730600966793912929066975562515902157809331742788740440879093556192468464875938167351292139162126646237291816166599929313105488149425196558396768233125187726671250832592994217496518762883874212092405666236798917730641993582344630002722573961809502730452962972076999761251182967626264292275291536050291797394219153983983529441190025418043557970320085915090918019313010019788848643881649387388199054700800967544083684613644233495991181752283331001278625601057310574052921242813770206717104703419124141122999338113878589167525058343358156324946739911801278131364002060301789733624708050630223741249025236675284982913359785227849326616933452773141845289914950671320765875908211844513633751982553945035453820040400955123816064625579794007589922071072057711038384563743009270705911359993966084374020850417668473669710779710896394129026110398741118207403921563030035397509236280623115513694405418471673200475445736114831230443657802739091265395685879245091731965610891172328469890400067470098234149086465497756521672462444209179205630066906641768325000025715318436528185655704375235594812895974818545854217290203162322333506904093409502111479699779936695946066588710178315858444281716907645451994955105604394824048075129234548966452113286031012069896733531007408597525637041156604068752983614604783624393127315569356972715052644015173143410409367377238742939220867797364169636324735071745418780483965199184526087492760701098951119778803093453117077584978437524650185647998549378001715198658536637086977105182798302601188650950833881172532313124875645984097489250189951970918063255378139360001565035645233711029460427972414787865303584355374255490820291886254661954767086170826522244363496475157222216826183988307591737476204515615317251211544167598568571730012445926112195062189702510956759632867861939351157298222506959151600393534522098096449595926217545178692219127516438554671382884369146498949376323274043316822714458966101467233655035669683431151870327792494753162037841169912969066619617579772208241585178027684290050650005073006415376802361074399679517059793775761289091704465564575346875023621183734636279586483139858987041816449350966858416077200395417327167264934744332770869472946702776975778099901044538712141700662785845961260231423295732938882808018025083301215483029616281190398669772637205526139972705247376279593172664743400207555855286891042195928362405057687607443928669977362805523920758592337954672690830326378590992693627717998492895566981382081611462457227450729090743611222810494922245374110377039169059483968626337074350591396158698422607779007204279160479306153998128307486894232307808410802842398491069997332011565952100731162607924162220100479235593148632407360892991415979044257546777819066096909181864281932483593113314338375540897071688079888567747888637776155823763969175523289641926610276539828665499233552112473654085051236276021901676517111456185244014103857369862728748682158962905179659594150876906119647207565332376523336115659607408929073727860994053347444404962287341696214433547677460248701503858509150193944147775327044885016844411185088584185448790253674279278286519847860889535132857825126959573846064262287172044205373819267966443983211771208824430154913607388964579521040443971614438528546637870052326244005167093186734962206691266241685587956813177589276160080393933779423592326006197732823962709807891206837390113975313233035289400580993740995220367135041687554282519851796721183561331449918202085318138610758334261252121540656164644527359951348986111449047194311792848529426902972332955179403126814162876264420774512403277000017559544462224740900573209841541484287730734344215220903532186664120643339690589797967262026908305832010327017497429112096103153973741121973685019967830506012383359287104547574617308203439259456494711079011232631102359255983050364618232464258737489175812406446131177311177350028934490422891930087074686315956697303931616787130160237211215713625199848135558679215600446163828326752406555108563655842590763739649796770526088193351019498099236422332130952245226813961961729710914348143484986985008098342625758154686193674430003135963922958372033480834076471005127235299324459453641084167959017103872077913637488840826456519643243457620317801647830425190076176002856567120358408903192393132834471268939658023719852054304545600778121316746590844462715961424425808752263079654942967191499554288293331791481981768172861420883079583675551953332766629882882783134760298397762856193562120473667246975974883085218867087765328161990636096816307866388651423567841930791235391402520309785059785277199103232670584307702128579914059029105478713129017207601698397413552588476241234308578435615731771491665999100679486465186661387128428179577705858441051843984810157178480417521340372636580582339481045570652554407761538461135961376600271649307486548902910787411312646555822329466215560103583921777091779915115135255002964461793254326602949744468681542534153314250311123165446078865080894749135688185192286975214227247803434032604495322742604869216257315022511954222873680136218683272898873972201940111198535229516186311078762580546144735328115496856222645653775844218656509791910778695459890522540952891733073140476817084489217685694221108071559117742358118001361776863545992882963986441386973752942847704921976951177391586888198845242885465104321997295684046288328475533277627287443397613546285170234545978945228166425997274708086653877588194533894772823472671061183214491021378599980155149248092343334938921891493523263570256017522288864044415012748247931986347139362866702969167864093331939122787207651358556396999391771783502256022223141510907302746804009219219417690690495079468436237365743411634108385163941348097876070224642661243005061513665556431067023413218642065022964249518528075079151974279786306361990203292189689852334029881205878871921669341401885642477541371695278887781145548733963538813449519287884438120768546693021515553251022961751932393211739591372519739141154656073081446020313672908714056129796026928989230637653549476439787602393975890117492320682262108472735680540722570434198426396780335143781759139594770170566346467849850500095873696524155623277539201056926332280203219181068171222988261121988225070345380130685278714004712484428266579242917744319761261036717558387883239338582955852670372701516420536163705007558442817155977279553253334636506866968005378387248828412913613786529720656691427045558810058174728594196266946895783937699147653561871061566331889316291415134450015910116126115004983949680676167611858681620561382866717673830961580302485396598209946495626388479321658435416728080020872690027177891670259030005284648495150602681869199465013225804994094697445748026268860427897639661891162451251821267928136725356123354196902818449814174702107797570291765305620635271853564151846402279253343483784858841251092033978262432036709090568863694838248875103171392823281107868873572305474648509729186736828367304215692342435684437595780506617735261977894593929635290812477143747470273101932575639766873448920242073229944006008127580083502770877566038456178715473958982147865055516592231615654199234527518797791686057452873822120346610537951146173307694509378127211862713955651960992108094733723260124044219184863923681376724957178721829233051080302568590126628975766443205566647395661261963031518402209702987756650730650621981540167397713548789066496883109978150742597703108396127388818202003989918500795127517467922261192703176664126604894867152830724748742977604518674409650621651370904483788497460328164931922932340466471072248076671544042994837231390931204618717839533920587123784171604739771033988313254547746523584391747557856979771633094351540650905368634625828769538658472086342569149295832657951960138377679375949474814827383963488006594441240845936991527572245212668588338200117756703219329498603780217725879478918122615548344816464453570683859801187100204084438451538110142517979831983061969620952908014772356850087297535161531942516986782844671028766133190914935389460363678162971561915559591934358294314371377844537293027995069199895534451004905025166919809031503844239829918233987128477570117358874485544397058657890650434312072715185258155727333296706510353841152243739353051415895815795280352337335541735401703239122304096114950138575962838275765416784476745881616971477070758417767094404109552677990755873590563438471399960127533135833230841848717005284256586379448218911202997111971669125431560151316510437346586619451421612894068581392349492049161029480770037103132458648063170535220465193489124376912891397266249542708813416708305078907363759084884108521385706198570524805904956735578964053752762784315268747761156164510666963607550536184764590088655361468945010591650022071422397084944625340406734400999920311092402035582155272086514294130682773836853864164704611835987856865943769749469294129952800630881571199926176398831987540237949014692145389475507786075015692803351186563623502421952480181329383799973303885013783742618947912583405227715381780177312598326455245481736242784909842524305225596782226857077114743005680467470668543466550361378815270384506141028848676517708674400005299183099858812040274469333508571174148670821767868688815038289101853531293879139956036092875576931514183893404339630532372618615980318042836897366614609463861403024157169308049288153539179185734828109730514402149673991225112626659006381887121040733418331789875612256871604583246807788240500177898954379908307886942304952969165924636598426131976016416654067643159938611009426958788649214322860817234481886273395616790918879769192776356374873785145458651015781980178216990687266055004328529784274444818520894028795418523675616423904425127508216510477456398109106823868979927753872563664663702664208982382463548287097573495305195991611298799544522124901160868039940442127760634413849698133944533235906419791621581320928690919857504102982304278914499539816785475436986754754720530673747873732127552486262545419851427588582289341541302078462426617513812326139319947080081795716169814854773937315314310402635208238798376920850232498010836017727945594419050800942413548721678681252271665263323750755412253615893308010714210365885950504605057931494828988948823776238536873216906071291040294052084841884386363922533366577557701715184421085004760389166310056483356681837732741472735859415514434651119549237543727681011179205557243840590648203164576870202015559403690520923844028335553794403692308974776848196831534892847856936460558528190153089107272382955404059616613030963127253829857354458558001914387245051678439753661026191296602076991426316160299038123637222794951855211360671822715928258210597718755099714598439520434362405882066352173213954502411564842980665636979655344210466799979501573480311290264731183411969129375425193950201861944514302225142978348288883483039133479720701211410592364211359031510369259318424302422689217067442245139411730603332845926066638315516784885931337058290155153737999221748926062729763614612589143396728944446280493247407584005385563303791833298648847267162982042303224419581870906133423947964858216527410247504436298030567667246040678173280099748643752102016679531463863685937925608726345861303347647443385688697081105817691791669276668452877633380159076058518402721868990942185566025890750583555330220170694765062699337954176454686285072380602128846854563753889445832878820491956733440807719108433926859328237279853811015534815868650662276814811292296003689615158178720748008854250263556550140423240934600258016069614634506958070378317721465554039402354057140604377926228347585375368870636512043791342603330833147264560000186501780966804606938071870398744670032715291953272318983476525138090854886435031561091739663256938657312964503908108431196493669770530947660073711305267276582747824640166013786064258636272095106146276266952737182881697257236245124758631116440810821513699071862454422313367222117300458037136316985794390065827892403709947013335937436353354753450638980891468489221896445021428027741684019830101542668157331450183203950712685078162690821609395340507925008770720523888867554059647277175808045432879794674875691688739693128177251472239798323613404005851756760258050539306286299017073480955313860200844771017170075651988431230949303442506630982221223568782597811434800897133334969683363099097768969483258756919521376365048170120184942809830475256569278111745698453277998987585942646086352369989190551257747585692444161327233274521631036258000863654627649871181811506351939751838902369858763670991121312009353862271941179240670523596960072543728856589091977476087581389394956452387591612285416850197615228419658215150725031241327986403430675712086864886240065475633352473546721021473957975987518465563146867329160406902376472556181866171605264627609009452039891866082900562053190985281671779844502823856000580975700313620123236972229186398455751794148237643753822572749633718133552565377026305079774952474789429893958389361080780762769256498060058132274278949117147190147462204541362021231510240847009899122556209987137875530066009880327046801803227430165087440858408849941587339528168916896207966347833164365109629076293100251043058381994620174318021644696491082586592511226237978745188222115105061818361366678010065749720934247033425399643160678784703947434061805712766950965710652147847908651378536464554503360615467699345266570473771668416259473961245150726342670198523970796497200287425615875130067716542018945278953718067831206207292453752360858155554979354107125641828574817857347208425959885823074948103904644766450903727540948907486624059384190294645262025769492385711035275306213393197178805175335462312045087356147577311818675767769948594668838423689869192859365869286183264160805204562020274421524374742401423835047205965899525396742032723961990168322860501554548325016201047794512079259982671736640370232696119638914677870703175008480684166182284955288544323281218932219452917336848130582570148262828562477550291004053059029227551480348528189446681486465086602631957960995284621777838337013287284242283192007481875622317699030449690913731880435654132368720573736259035534161958320801715146825617506309025037420661368422017743947676218937713333758599165540910609230899864650764632490376492639904375590899473643443183101119076777282591659757861262986318624300132647387949914904600102886917972823289275370131314225846663770696986481575469096788760638002040678333512069429248827397230399177576706708113298909668599363635599983774115892270239057316603546413761438892748107661361757411198267056316170785011688263264947193764274475341490993204956999020165966701085567324231977326691365137367958150151365552900988851084754468164759627479028155713882936876156682234844838612578781907498146675975617724526730320277751580958802301738822020627737548721393415023936765173232965564564399953482173157383812207354635225772118838707960487225594479702904533118681958998614198911742583258695004419866047368629665852434247185949518027775517124498520699396397648739615545395819217964198286107677205104839173865116275556390100072319484427199650400997992296153861765660072178552644264318394707177801442837084637370393291273930810201291898686396066712343575551041978224521620114012539975010937367880623911475208383515708613268056484966999560688200730426988571328162824191616473798244164225211333794681078248977956782894029569644855141462378801865951702742008878179965557932634942753380370594110263107418599889661574658388096602648361345820614420318406092407269185209320985464098757552930742552763869342007013142610954285027957550542600755938369567151689662462264283139245154628752173145045618715807783038922523796689737153368307917214618670671257842312070339081443554469984120941987586275635271517238710185691695665098071824946273071816151317002379569072427362491244045589372192184418932330279984276265870101216506457806219031349880487674794855428920235557645584318598731903845279685955173978519357031688817773331504932217582626750690432499303504577742183875080963510947217981588204944332202505391661750099750946538640155033412142896560177696704409761158700476431910422485941338959052344797601244471650587781251190439747360568900052916785176355151181299250094854566328125661248823743246719796054846509697861958113586898017732485323375931575534257035916074632076546487881087325386402118229437787538802588129093179100362585418914003747762007637069762766032267840178982163046609375992436738118069025264147001353366316347069238485438026657104697253490820063393475803559224365205139091051422932828151138062268718583096907480765512191921639945220303498636711136297172211739303201133485579278765992020066270224585736031330043074648691190106943052103613288411636818402984170925995040545617123847673189300477073713467269154629711701927526950839772970626508887984376718719034223949886771862826113593860076755955712809037322320195639669894520204398198403010841246050053605343666445504850474784977521321374222048779097603042320716484667637336610236049170777443421186428968495814945008769290688054149241977315223686545819575921564632050812829245389664596055491697862870737578799098804287589748909023150652859067829918845358164511420722106322249863907286762050773636609191369812318092339678859600433177088605960807957390098804348523862533517522797087911741920082719235339970096501733760889903897782172700627185115663462767048866304796711516150600752726923915330754768438041096929743689962027775201249980776934558104461195198604558500472770687632476413034516293295795093592948622926515634559662890196712271778744548767164807009035219128886412083898527185304358593967621541427592666674041616386219442694830605040403341946246559158032811455053704605925466271954913224815041299333756822901764907499894895383175621173410050859100186255201185406301564667165089536903170362401157641721792848440636106855859900897127036362824760520358743890396183458586892404913018324272579446083795940001159823697842701474917010977845919196733789454017654595359282411144437805428749944016610164078400712566703904988768934376820605422874686929120245939091881474566130787287099864909663383916210086888919241979952703243975830032085828736297772460085177069159336789313885762919250488357496215005814628461185273359450977037288962485743539835512018432602961231330895239548263538322417656563838834328188482994739916598515232925013506299226964558433125888772355000812083072544632542513914697538457152772155568733783705581544639358195187477058845228234823711140294998503151927090694570483161789058114862733544411715648465252480132677665892523176802592913317916111669427738617756233612784138751748703577897181056806232385875253267673424077017153802611767623155996027535867403524944291697585083017108636989033847255399968692385960777382429468159848137180504119611153833871332874737429489095457390403130377830239948209459161257922381134667997350410678804237729054403875888731427047869537501408628900002308812672163774095471616684675546870156990398117262846898221750213801342194803213426057496588666330456147115798814808753897948569323513996390678610475138652477815259726154503304762119324226391088786699330809015064022580100114033637834329676056986696135040971632096861402307945783696424814495715340266255204544964417547421301052197013508049195267605775411363308641839538933824210052285376008431767795276283901642749338985859557727327223203688659800316796321423995478243305315309330668340769966938027689690232129622106205729358371288039188210700018932288499199401673730111870684141437850219508031342591749578108183873809380783077708968768063122105192766975626349650964034063401743401651560618503851943421532357078355745294614219555521590368068625193510468097113281006387835198368567923504203462924861497455035467363344863307952900920281870158640038977141144992004953749090317684175116582190834248653124372594728592690109393247941809636470487747089684798783612013882436708462017457814202094975468999244321294599596048910260873229681783546251482864994051136987975154833631430754429141987697233129181425545201464915526814586934314240873363555548869101930670323087050179616838156845865851574093562946306997098128142156447817254996086299519909844744968424426257883857254902995329044313277545698377590012805516294365908739788211623348884246308857906058991574037277313586204301045940486751574008086499837933028206860199840647595809844603478732247547509296523759689547233727362005042776208432350505710297993392549427074956571415583515312484498818249969928155577932053887607335257402221687457902934113615966650375347041307123184522010688069052627741616540677601979017601386225303931271720059097552412092458381465435937527539782367228113337126044814478255202437518519702873466319416737391786651706808902462913122633907459881293208004600770962766288980494605317290362383507445524318237679880627319827463088998475750278248979267977209560553291323572032415565722564303887712624572468293791531943666469515081172011300206354601779348526534348042012729605444701891285398125847175535559868874923695287980189785580091370844322765438487140535240066824278575448759116854203858770680267913822820649898791757380844607991368946816414151696913050178634138403997014014466629771008312480730967301145014679747682277424705071134407238018204513368954338677822609351204923304332054000474477759028836854974603122650571374070854883300253229442585390739749605850475471058202361117994387880472985237790244868437761500309974065406647162978037644207938279472808521691289014214014462521903924318759704435751910974713596404815771188713078658053920604514970204843274221021294542210217442558189770902627352008978082659573802831770418232627185763030645884011455788881182019546169757080495087311041769254404481921798880443499512266015791548013119814659026228787478835706116577079673480925236261253947945367367399436182656564551872089473814705801496511041549545566377623216705790008048779735683613812547579914904337951210780069341555369324821061159033199442917443843853857966508660378393188758485914844991159315331612493765421906686658907243630237771897940391905524042969895496634391386266463350393954498070550980720198502345392673432202466332826924584759729999078461183371237771096396195590093169049515127737319032529206797391960915388149368080577742911294096449871734590545348585214550803341074741569678070713655079125579471631303002642008571918868627782231091736127031285953892225231441458567074612849174640408600642804669425703683675949867656904158803509732088391525281603928624311840038591429025015090746054739449655108864323502748386153336817077613187581208874884803638414317367696248068267906410529942657878524122566839612476671074029909439635786303413827925903945307263218563020765989796315109066481264822306916885318576014662984547626271229544146553799348551890010837120490811378847172819815000004284698914391687276708585734812696092003309685453063146001907078646271320154442537509187057871883811791954322306913195091413198883616461681372120649340904755525954958968022820106913342860158340104254305547042834414658100646593046590287237124884741188716840874611102894873138140811488116471156209210546269725233086108084280296300743256278524735219800352534901015026702509458145600315954122926489756786627951369815187526425910532497222426483539218420166773786138146993596734665909261722164291487849759213810401121909129575974881131516621470340957487852246273747016892886475980673924852282366307470681700719546339452154640984941848343138306821009580280743932468681092632992679504789919521549617062140835473604883253913758334286249992248150018996921947497845643728605536873521745547580617924550899256264834717548815112312326724164553234421212208997356960595811449021877751107272841923084843269091906349166591434839276315885148034888381102725280440330780474649948506212249700820391438184191360410540066435103140966654596052656380785794085073564198908310884784115453513581946475767405616868714323988064492794521891090976195009090650677162099031852460280741154232728475631316857626512311364612579468235183285574092061223893531696701354508986963656582858234897939110664513480567522241947549324059580380367110527171206876286138024726783847204362650134275889723492857277307796560876111231956595174707033111754283259391129263833658377920187157769327591986691247505801895523196776704503572532957432361621970550547525039548454053163869178044999591710821284172460883720049817248631367874857081262917866559251910350972499000034265124028871895003452706370895524340093425001465720619937935106390162593294729131893835519852989453680280944677941639759986587296229250673056769061863777644148207358691397798758884400366880608885998855224686543386270813726214619799570511931617846158479091534648854062069703554463804738958896287481259882486130564720597824773443291028974949482176030838811717483461304101285980481199154202174688984278040981640446186458256188717008014450667365249337198791866093733636472370391694113108008137476986520237119988104679494817205103315028892467660263913936931252984640153883983606527451188663727504687238107525089853669245332071752315524132348073295070139378802454611311299852954020430717568820917192605100588259747927150319653103064150831334092363848897321001848534974295228208149665994734756139147676119402117952381089630629341648381577681881235177615059767135743277229471868880820712432807210431121197123155177900855870267573011746491458095085070992159774188187598944729184954521810589576045742865322599580924798890335827608155898732117776916337979482862925137056744291705237058979159972111344291643913211878476628382902231392306054390328484436990291207029164966755544859872125887650204243904955386801644429398201473906644756515658553123912087400638516439856022602985796530058538610783303636266793004472776655274375345712270152762527306925844292327892975293173621733668806081154823371251560651319370470409902141222421086508636200182953501098885054454875095254064061297427262510151318980933951708361131083476106983197043391747621505625436087216352180472828240719612982440934774738590211196134802809310077497983702963081761882906609602614661276880160131953951886085919572958679007699063993290924336450180221177094484071130378542025758628976558902714557933748619820019519534383425589627116440893635230798644854680159566097117908946372553537293918563801972824576000985560682159914410257242256453075544871581780180320218991940465519235231314713690468145943504781227017309379619285929605519208157092665903429598555486559704766510297144206586371572573770602579928774600330792375737556025141525617776151690960189763237466736703658390228403598071283043736701942489239421337645115970004157583142283056520258061097707246031387845345881479348135994272515771495931348576500533981324659948479093977376333520617217353757126982053093341179073512433424723932338198317777849781801829983913354887166486221451909465881011411745056456897010536088276125989695297209048436981237564022503431844017689242730561679928548478454823603144220560780937429287981322077289001206823405484091555095584892483193037955592000640800116631693062103902381719811303689735055031906743513604511818147400612506539199330987459026127123460916288535692828204912748689680027301860222982362467125401502891080262861908415122433461845903818338894187553813161587942046774320806966340724668023976135944213040799017758510528599712333904528270013777910412105098450718611026608644873299714134487111498985457059913774918810257034675510672887865669031916212111154070401035305532483357763501795678590482760290045277309378317047543411659007236329768361726663657917068630725114329504839943757686574838035623388370573264859335765023024741095200456869941215695480293090177484956734388791481989908850223087149375210736385009247744414141740561581424389867201579711905801547637563386544744001468646581314377766926516515402592415619183217218451443487999619962532478743174480142283617889808164926083659888648431119138930951952946855576039867580902519792799746237293208147948637879968077337404425201142035203802593150176359324891723797012666565904430945523179002509439165866475816723800293015901694053500095736319240459912677869148844376337986210335117260072634195889428055416453467974014593354824380391355622173335973020161456900917335521623805495582069038589916015144438316805468240658669189345578491525817049008594163211558794322959824056251135873935355906397508578825021158385418351566143208057156468421340097269128190031210614444589066921019204598095987182936814191193997797771010040682623903046156267282874084240054618830129175680672072542507983688255792556811317183929282682461737992010715199403275086027584955527538890960159755282055622192305251374939869975290894493237679916684497700722719031896477337942867104259982675795086600486515093276444223511586016582286513744741965974168114071599526339301724386747241675017189037029697440102890641460703206714339547268899927517883097333257524674522923997471109457160316922664289436647461706486607753088571936501269449086398736825692508503130042625918684844654569699947247945614688047663351661582291216312781168090567436672089149820845412813440383759996747791650390933408690580080675712867893855234814078307097068310002259436800115915384560206144073514548807423926110685081500345558654990348664097608607828141261839279896234615180303841833311503611205047477990412839116954364700526910947966371992617233944072025938807331201719651811846986081588112538207413813855159623670635933489818253334634548477818431432650795730568019031562889944460261348584336647368459831181379095343226723650461294589717365817401234896179731367059555927527397895903565689358560483369033837972785296882972402781555619841168118879332750701905415477988640577242012019501001872913562277436995855193848400212042663686646282317329017343689851114068542512126844359439126210283105588516924853719570542427526368264405789895180665671755091279632993733955782827532659808146461599704026746860666415014546153566751977314852801912515675607195392444357954037617960842941942090808431839599232847443846354699892577529163085725957785374866996812367966093833296067992955082580012510691066923999017951207251861836733576479397482425362251941327238223841139752885785149259046611115684169907713648602889688727670581639806545355592406532889799322979702048339825029423282974487222822040731673684863953848966433613035613346263610332286108091061189110507880323879764616136635783336066039018665938869973658326396088480497817652576329232025242426666463112779875879082707476995920382350489356894806717630095918776870730669716858205874406390143452822563179143200938585031669360386694849290718990300999823299759732961169711299664147953120906321592755308345134223587743508460485982269734414475762339707526412168737004267173633933218707139716608718259174581340920461923108280020502383350544991275972744487618057386856011285098287313392709524679214578991509980256711469009466754421084377283075830059414506605065768887169317732462948879611653997941423309945456846213616645417859623131301870177301947853101352796660335555339245437746293991981391313791477674164297171658162164709718192112943488912070627473898424867092129546149519819453032590550745171121520349251173216018856505544356361473622116879169170317396634823227355540638331775946326414921269749306135296616343844754625069521256884236096951523415536554957840945519064014436707059307174709306717116936403967210330710788343549293204707106389862081310806844393116716996020058883114506223285711763898661431245256894775708344890004606368662788363023678366042664196377692432651086513355586897478518759803811036932333167676373439149648922539991201013717753192976371388072567348297598748794735891286619074574658418914890154010474459884720493060561080535627330851514834774162407578473556870667805072865707991185808958439231812602692493959771299994063558649563278722309827208796478614581961779193636260945171739967497906293957448949609014198578441069556970682436125704358629350076236230024673601702516318460222425992954784313007833558852012513880552528053399005767412910008748113997061588657737222630596778279784317412353224027405224558410761099022571633108074600443043474328774573698373230911209163074970395845065406788028997956379580544280368812991867407744507788250188184737069430108954646409149522467404803626031745763245164496141814254496955599433857696241492487147747805858436872533216116120324725893718756765860291958040458613918903061225198740858678621422539704769057591862264878733628371617626021596652699535343107540841684979217847627072563057315718561821366256494132620274617385791338060706937074781750066130211576092818485627195285702607093437462917301159410744625469671855213327361308582118983417755204636148164602349151369310494314520051270386406596195017078328388521592096365907323752676137798082177238733662316297605183826257413027319203774439807248625675349569880505621951172745862598147754160104401886790589783051222471779136806381881382202699462857637107815425723979658010326856007197059295615804188120385921831202165549672326997845999358620261763238602692785640126413463917384586213956555968017014241781421404420193944744311725988052122001693373696071283404123471883685906643215496883070024242482177024900750930901681372524394283871480147795015189340042200915627085397297004634034137755450767942831554838737222297482412334052043521484709004153989266024384808558583373737061065696160221431538830553090018366263262666178745701068625428661105573420058752382183919402769942836771945142432209111350479805544991933713221292079563242817310934904806683345359763380394004748989762900132452684756479456741045518164335022042348110042166984007329245542274103579505378182676670567488485773456288427135027571631687665169771405444874188614016124827639442280229705536762374772748392043421856400008030066040745389942443447300086576577245964599828288494305014605661357530061921971616425758251178146621546475976200229505751528589359726360191632667910233156728479925508995310735544308548598555103288544303849490726458189162425252105505823770361602746385172423362124913614011760299688168346488293972740576464232042938540322050199554869533578197922893799941544008374218372328220607204803592066280602778096879503640344196935000998942655232532780534922110847707126660895831219969624865841764616790034912233116456062381939936364225969542918266219163085838858857553894493995649644123858534767367570189378558433482834694938804164404778084080999335710379167500850153726183346753352374208698930403633367046983049152641401990399167222960081781902429786916892394087424763985532818389586089351643454525199808636857055737140928438142627216014076097018351576578195380887365670941404762114271567668565630467010039787309145766227265007286088150852211165238803601141610063787716808859110339089881243156512797754306032842938474925740119821030960351921575264878661232545749610829247053626386352312867375180529823770625572498443223542549975124011020907775534277741857429031192568095016747640795444841250467311882002555324729238261905965160310410510202751288663138124578409479616664476085187499457100790771316480198822610338995068356509991944586257275637831639344855825422947929805115348130930281904164663172389643198233794418634461896154532100846726964174685895187707803585030828467611392428661044861641611454026934226729069175475626771673229636881455050731359897065605224115078983873862444906941107398504189817587043862779927953821845218400115207294263094749930886182043009546602935639460834620347878802339607611438807035780499117671121698921477815966084656045112840702745713787345906794608611894970642125858909027507988059246754720781948037216604681437335971652101004231905526628115435013127148292632319887592072131465080705109791710942826116903037015570512008754580357376634447118283186485575132152453980390175015008922407258474426040360177118597630142816078186777764708344088444788192191647230078262320041873095381880794678488801138944703703312975619185094097740359969368992486812793600049419201562067456667739824279298929508048067439626239351813358775283404415276865395043390090044610663973165959617882644926452732142507673665908086808076705032673091567844470189487482284287205572279154783870391448189444497923476398780258407404347353379957926506208859508271957030889474984848975781100974391567724819620989542218584973942084509953485038642957278212055597247908271588924770799488961570418425817042631617485291410326535568825889961868166786306120977991865399242479430677447842150686562848117474684809072620001675558765329728576846395309664930983306477803950772914643567294597441681681732041036771216914915156926957558116522391380197784783685743766646369106840503684671139596690747580276952394158497209618048955024076543047076569982044822967346317511465777986130311778836851236735899322609569017427900591798138464335656410427263416139741407156920349035265923529968487522781707857876612717440405461980018545287755016099866549998540481871200418426030203280590183894429425810975113860103840348574447316103922715886958311942021439803955059644476230549346031375982704335244898819093116546534688489712541018569443092983687845534774291323643277066386226288200793034719670699751315417773901571665012999359176066698850354490989700465464659097753602120163801005223272013555872150341992647688107448294517798151378280529519934603062281337786981516474726703146684672797548613457677496130666548885542474338093705013168394411774282455489811512543114678267867452074205168160488499887387017844613446925701472093103115331113606473062574614669366267826050857115643038806124276861831315939543328565712741835983590371022391019753592816523427887285588216005426611330427031907955234738954406422267085383006877256903849148242849128885419933969236871296510224291809668956224307804858077306889713973216243948073009301904152019897847743075449253612709181133646230532376499370230685851545385220300242699823640828436894674904158599267639790570047785318993318011196793195228558543256512654338177664138277273200079740531358977189865069165484804794585503769682059028301965450771131210338251718559825799864819846441006757233764707395248734651599334662811481253499457736585027152552024129035548255249054425249656702418977025293160497050928212993285640576937450381116672260552978967791269413093921934170616623687909594754622863230661641606502483065070589639857647594302232454660138369747955211530651752349451002427198085241206910815669685106991004315530573889012041875276725919082273739397619244197102814579291908482715270274916547695528039199530326005049054272085810838639951099673626600905021883006484056052917662608869946359916424786520989333212744560894089209854008706842018707439481549299351647268889586832251456391459002528764678293375524986687631378379535662227934567010547545987078663825658798445451863176802030794550288122067372916659653214313606051140880921538706810235386245867053263135313887373896894795174796433985521176247036115071600071304145892622612821098268859496933872962761328961549042795263717159589414456085464368042032900464635110535265072374776162224594229058694597041340825353258595865667637057586112793755995692637116168714910341615961388997517189694274515424988011627236624191579986986671458773337998695402544679870987264915970241774037219147526107869984316810596870657854913030876405573729694816372084221270149725747808807893712918729368381678566111993866735528002169695527785494701581595535600150607174110736521738309556783861202617668605855419927031679289515954370511164655057974423392458537832868749133474859228638513125403852931777866095292118396459324996366329028801719970498115787916925585180745041858428995257611810511276802663440644671194127521787792711142297246153267676520281700545847945484444990348617974786527765031471849489218617935975319917220795147479347414534246557157911647897782388931063077619657584516139420885579466126129558805726508132687059164856415184636093259261998889115804536219059114781720197470699398499171998824135378476614775051444215749614890234569452152186136760221225159164562222501633868433473511623692658677405383460336295602680538273215043694866166264114323821397972516916369394290995121395545816752882017461056951878052605910940977692999719822665186397409203193169139344100586672477763489374958738721301752401066599253050158494303415863610305412425735291902753828882911753615465288117497427570372070528227217522735182235942337175276390469376879398680048827841745252297666978121954252798675412508511034646528983331385777301006803823126590155173163947861429233763257198996110947523238399620395349820692432014516227046227916880739509339436089012703255751757058075484384056132428572285791024294593907110768050482562601483450231781855525039333605585553091187734584082131905290853613369393527852527588557337417906663299946573819215351907593784085641233714896831146730619474222405842936287976089955984985667168710288344497921404246444968796395661523513538391485671052748902764004411967504836560151638413423944572487668397963548081822463967724233750212265553283010084061681398048736408932524310477933512334186404800065636272252672175547475329330828967852069986018222799884671413916412179551333583029045401908429593557211119977091036260426181332427036614460962201288376839111278821729642291405390452623588192704408414998537810985400158404820516206076472823447968026038807173469317478329070548240268701078256754304386374003914185261043202731950287326089997240711290360239701747147264422801294034156498497068381382092831890952086282192750059797275538897933611759055584630590123093538833639798388981282520305963085264706718291372814716378513905244781805125573652373209131949216114956724477137764237159506948696802844933444192288327495939180270673927176214051621717428655778787018967141243212906472936274893326283620754448138044924233944691246522103736434801837806152401507550828169210736990284808507043227398713099277089485330312679314755192104084375169551238493120692599364990260997884945645160015307366081336395728331670554261537141117999897803016380730753782330360198387286773658967161158436368403883075572720367030240856220461564080704082262179227871649870531057026783991678457075569337565717561458727359667906414574439673366863761752536548616176738654967360087112310484908937801150713506468727873230885002806439148933494974704872840434290527304838795487368475186402562574008584272781378112546947615600037480979701565906733161479052170634895829373242378454445996185311842834403032184828730045924502749585572889260719538283975606739377739736756541320348968565069377561938856331295200387591433165499851219267347432577507560689268934752009890540138808823889269684679287699864885316296547234669871531673921290424538992202971088447409558318774862806361638348641014807114234060359088051106098749409923002124945259761607224915247737019640558747345902164518272677516423521434265378380184615396673071907269083567090964895743613567193653610244313172705777536225832554972420827593171466118713633044061174511885320222219678486958350881717096182169649547765983290882067438432403994379468314842866154677443897412887939700236248931562871693127074083957963349221921095093535598531956639375162206467458163353396573611558415550482875598499372811698974916948801592585617196863164086386974253999037282003058637247167613739762709979404473534148954368109757986951023408910922251343021556239713079393710593639203437581056090652727948698147152154199266250268550017296408832531518843844856668130665484524009645792798192524844072946362976909969590334996521883849313923385083088718436990149647894469310433138224369864662147098685717142840931674150830897828321501006869085522741940946336948105555304673320142320105766043267399384721277844744423969470880301779971477063845703058973031491748496016724448362741482484418064042254802882724715480200545561178624196710995663269791578966972420729812218549256726534067388206889079525566569667920172850969793009957743785663650299070258335073270459573424596308541189392846318489824411086647192132131452715979086101065290519184061329351303774565160906612790567386826074905022765896086260968627850265198959829667911624127810407008028992670304964091030881229371822554364291184498509023278036669431905824811271787461329260534665685920958482970126416895036673876976581558519363486037102022003694528848414167695153682873383193359480044142999902784417902289630034847423069918681012687638037283289531734839465741540486912899488014349111696126254309822108286355823930304404426507996631545145334076918923576609607421535478662751335443066945410347122060131670836673234528404595773403637061402964031273789223044035846163920359301516798315051139717802708200199889706517227959388623339620154106066463241124628940222183507120564699037807801384536584748321999363866096853768646099656755202834799571003084061676298906119350376068550093699915119502787682579559008818164425525119396638339631310805777013126516653532920055961146001532358000502600912763537949694071303210054245606672305298666196164682824462108658081432369027031859574144345378028875969296252196499899266273035242248329230368275889449477371502230563604919408745916762804243832515523855391880225405849770625599765004888233095454654270091989105664783917760455403313891665117593829518034556584237948206906273264015195778737039279323532257808708403411264261694455108563547292528011474006203049663288564314019225053950941472065365442538416147898057803766864731694685310246913615219823713168235182626074484660763702917430517227994590539294541568788555830916028245247953314358466357721444746567040613251308372678066894545370909167921132928797712705744189287208131580079319772999261421263943924769684893560534977652191707831442696895210610044004539969177260757972167084479010657722172912988447313573765262647314631914990769193083998818798736315213781046534557672146464539630171475468339531079128431601305608734611840133036674688277058257316748781755758581403533297367776786520188667760095857631921288410886058158876051831035681009962193465990942246797252332869683055577871936351835239438374822016966424307771485084931830336119611937543226514071350741129024648203332615634688975524134761580912865084154294551247277670837572689236997187544087765604618392007219569488545310178392054670601862919450408399946889302733949619098783200500404220076394483941116695863388607760604575782230101282437528533870965391367957308240049539968792947562979968399611745110298903730693352407014403813113262800667512802717877336995484023282432884089309243540556353928377991587292319247555474988491710302524078721376754052174499495431844890473489694960476899455254394947289197846050892118049478500309099431813840466056831818958863786619483080180292645352553871036392255270127728566685581254466756714815009265825120029730489120860999451094934355004533353562475011863878147257623593118026327083257065323082020706957891068267277504261256046824056183223924196018538816211374920542747272512243323189229710023540287915421697796711568655783823183815393146316961956172247184722828820734905776156457770517158666309949868798882017190123678312452248740741371351630381190127619907097472950476011861529850988262288942129392955725363273950456576579773218650431563385698027733412068556033754500432383191335258974373411398584724364901325018956800782952386347136193853409539367550181108100794141411044244668788578014005592124105596940058128878760951924205592258971128791741135577167446547289259911837674879817603391724800303272834544267894261691684806026565453072567249810576434094530180963139414697063473342733328204353725744839621963421879500882120836587070089687743153865212969732291519935179224644713096934890014056411384212938402321132831607721512342805822816158649079075100434180614193963735395423177466055883241339673913981594405517485195621740436784217352967173125624342486650632299244164150955542854449589332203288580600169846982051999970599419308129725654378963813685697124083821286125434180824414755769454348070862515042043193520341588957289265775382945213028513249342565802488501647633642264424599592296977578598098072080232218714330176874962348398907545018784397002768506713432346776884351915744503955480350632016376502751485740235878940388147434188615043268706641845506289665845125681937492819305009255779394014639874175268597785933296218938545297951027712527007920899816647968495826358163839008652830556878855790099205528494734006510815053781257743272479040927105003722099259691881058600441611507661554013245626297183854976333223144917844004874336492904029641378921345530759575170766365059346772343972589930005099139442290502034740826876036804388174783589772901446685343479599096733809044203818340940414199148333935059363537978722566203622569261807430212237111545462114114242702446832406577897820308655867755309585367187604841020844123943831558442211847409964397065440082116961761939640927503775246768705760672318327436559204688160228526988156359695285665085819310177100693668597148159090154689102765224215504722334890345772609441549733519411525702942857977126301763931395265852080656939260729486624736916714998371735841173255090750300699426904346538550260016289134551636181619532075615700884446576238002905206598259901907887094529194629110790408170053901866072012469560172928001689650778128186439947756614022589813128891902391490768506216385780854680962957383550972303631432262848595310185681744357856070531244382403237458574313344781126521674387040086011115575076626802768193854144600367246506326699458566522435924354524792899171743797190037494507373757067646106406905451133516974477995496020463383423584692953962164736341506408959484666168954877030525699226675476901066279789161475174480245274208697944708997940420479227109034653956287639902869620639763695739574733306852726923716484299419851101027446648237681140402588378979639193145277424173594551664128963982586354347570183576809580679103223423536083743482215697421158458782000391171787069432256452600191448055681911577047843199091080307383119394610045084083360497843035918405843668481224646665521211052404471399304245790607935747714993244892800093548928906619320684271076213470659273253044523217216150714730766534984306766125219813015796214780019783852107727909442238740899621346195790260330555408460893986570664458427641391790878685677465898452003958047182907664263624308051865995664281916901496124313208270169808453277065625840602418367983363453902935452223276649989036234176714468012408339598099083289566202591793954577070336947171830018291738766158750514008048331423831425308964963924217023467960738401300777310038279437242849369574321616061318954511870094212962741215532861855244424528301464144778152833412181833794606834754416954781547388210819029780934966947615696050625335218930945389427923493976311923524900153507822833437252261998558329235842930382841446052855352621169418550345560862134339010789901606988095960204851283799833471602245090962396385616467806650377077976359925015297996327922758225543320339516138244711503423331252447858393136230126147519822872130580348240904558243783306423935099003480159434341524228417145003970451534333430409909993308489768827829225850124753507162779450888694470397928982716164819955793416397896356662717448234202994579222151956703706966105648092731667385270437032611098135608873546600035222844939114926790593317021782715378898662101096640951437930806263843304806005758667559707579709546617342175882955311312829341473963673487359017389037363998897916316756448902953981693255412709251653916655321817030200355813382647477219030948291989703942310211375520002559178463065939100457486593050746749068811873396927725659925355560301675580510070668584814945393204243358612130929656412610786147896414205378467192550956607691321413244859967801355492870245125787484098952607964862453567922344639052951785907065614246924879655323862421549557824423849607796918939885287765910363853124544628023815028193621842941202239573352670268329003088401910504565638846886460416768412693349914696291532941980432192177323279486128118114114839809644846183234583399194882925736015944690203530361076581549963299299025008099257634416364093084958212760027238702414581355516754586367253719345277918503358693262160747577152695279397065010623424571007002997500205301421456527092411039497928726766131059046753886934947227375417387846837489074836032147300354448800341544612562313219866077947908781011190942782307445897023644066287592520174258810300025077092605850012581561470850958541813907284797427275123967617016761237579054083832761899846649525651928199197566411692359443821256667120987174648115749031302225450948259239229279835517374492528468238718862596711757783225137175693217084754391500044725601673433496511111223435261165876684198087846338682108681473968628331134838426922765899848515058629451872667660814252632838129068500099723094282799484995001096635352604372914529084988074109511172287678826353446303887657589169361720107366818936363101925604338361675535118205457816887143477578531230024743115821550726019050253015714662303252680753289509155300342806325447562154335218017264493897599819013679631513097724479285175305596957342980844617381241171306973273142357370977531252341317301520916845460622201672262401935663986021502415654443908446696755766871010426999597607620551816365335411534767771799053140517244667868684758082919120497851777184067770655899121786417450120123191011682266393623956376715199579513929609675862623472448349138367581164545853781302703079383581957845678459624860146416711129227671108410759014156575639471949728519124581247734102744339152858117900148452367211446524165734304391597758126706438117634395757580941741554766587052920452241122620230289532831642861301228797455528626204588051847897067879739614431666238351851180945378338550798427511903125903700256945363787887207684536718448744626143518297190909365224985859858876814749268614478749883758324750073475677310787523624307270886629214373618699926312655758195266884815448604062147620029490324480144535682200575539428881097721647963556768825629738150038064429090739805145487029120722585655622971623340846718181813891203958811192615170453301492192082984083244490240004252484573047632781832123478996903209237457800514210640969283544036498448963610532320231494246099980090404430111027513748872543814826503868766147932632842937047782718876921088574510692694507065109291501756790062265272183097453836828460335232469314733074294193911896190870882193584200211322983784067328141479986769453485254725533502996704096589295930017476264293209949054026629721734006341612272430769299912557516589941179442955708671721558530180837278887587624162169878748888210004360621402096963429580756205217505316315136047970779501016020362473736467914045112294881388696547738963490739328494310950709650117130824351059861995581542225182338462361902543851933483181682830381487438939012907133951517979360042014992341660119275921960584662778248238837838232514697383265352820093874453684226490743047889913751671774932423338129362633886625980772381443117900888663218634763552135622924248585192386085009976336644410431769728038224393712333529463745057315704769844436570243642466270056795520534835323688462933411232481650882686356850593276341037792427173196930171985787985019294728240170907399393038542149695242695052559092611270524392962263860181107389872677819018515073336718506242835306396741675004178993462899948353266226991168228023798186135459641051039450640121483593099680833790582246886402704962287845505640086619994974801888597500762082632838125283094402614088423894979822819902743508743890110217247045784087884492069329439030452850961512411348762025071967713980773078584842252757837388408497639771856909710429500506351445545069836529503781369290127455942871697917853840383161693220753602736923915552421910693120075536461298907898992261605225006375842642280919944113876504066634124094575767069057027974118464526026808498044412365952802753333475849966614216562825162853106749355206763869417337687865087914395930458712988891532457175531207621716850826976743360089288874627333025994285327495263799069211684474443903917094065592999311708165182763796314413010292786270950336406592424041992455160890552747279300921281086025393983486413552829181146070715745037045248766470848147957221505935861312125990814440042765116435560114129967000514035489986848486471142811159777951894123050585758780023178237606190666163390925391855555387018403078231389864590051043274298626935830054922347747852944656311623398618555480071467569953871297972789305190342983336384561578300955950598693495156175963256021148362725154959930612799188484088840902828954284155239817165691168277936592383840613554845382603493018697038406932330998988304747281419530591970541437742122694885569003950551214237391145167292910229536685434346889912850185288602740409651549923865057838414970793035342801434010447642374210346512107411093212840178514477499160110057219074370052076364885993365533726693235112264988264514617785960463561593903695977684666598127314786488865494159100900022499551769958079376949752103950111739196004715423932246528722500214135791162041143518949974232640676287828770202773009666153918263501938104763645406021966302830228415093206540660491374693214573575486988438751629036981023494980902393481134912049962367007888304101739516083818849084549110993613097265666457645853586778578193357877442786505884944381456847273461022802367175415071177869151883050412591367822219659161433748276115688904845201961601389611791759158056606626912095065623702848234806587099161112258990121185452282850404729294436712490890637852973655069864835740838882219360147335375808723072549795211899879107357914407159534250542661510223163836789737282843010447397468636697638123495986780827546510655653370333453791804022194341911912076600468449175250404268229070176298018493287502821948381487726346292380082655080064556446853159131760906867510622762093224464487526010128689580524645843726729104101398237586472882195642555649755720311621809237655383324988491212933133109356118398032837841393798996590131170635823077479524045879047305736785368210449259176045733062234417639957237721071382478483730090849534938330415838486619222806972553146281903642829676639494206085904587067834482038637733605927947055775854915610854168854729272335234153907238667349938384027769688965269642411956527477883309725714479651253873638942018116350513466668657735580467157476232857484198193155281140284812811674903150513956142342784560158334838933766508412840620391042259595875868242155198394108112664464528272728087300336951194967727519483996865647138935994003857815792688870586682329046851262952747251536197392327174454025707078574411871935447990212313971366745501933983005177959648300799486786611540286297116232876689069592073749353093754890700999345510085939972521135754565555844285725568419740720237753583011634015667670442297748776496811051609100803144529267611000478250524580723321105482166036131274523645859223837935323973906788064360068271206736964646142354895947313141514427311362193369768135269641651449023976626810173880440039902200767267008047693088990282479435898908702342848621337333685979706046822576996024064653934547293653413947112553315264004450006259622695385129152980110155498965873604729901243002517531321716563140420845313521417166215512245023874243695300150249550897132571018357911365871250058162710265524744541836807764129047795383445583633861251347714351094356637672846746778932812916844584108583364419969269301690591910081967948138967866996154308953582502711128180416068757034333860054321551534575756970442379491493429127126164816479173121539556981415468517594144923477331250417200387745505850917688982603012713173345756617378021150000072839739935398502199600041960907102039992882688845221956978874129967893298031109449626909604917698179737585937290235103859982448486035650651711773256843405947696380563193182948188240785258177877482718862212769358890222638438922345924421130135944855664892698916192367616864545511532394950242875037736837559677080229692753291283308566852719099112626983461473094220694547084014262369780251546634946078287551697161073782075255576530120213714424977510496298577680449756673149898023389538875286638887317474544650792004533880711535331178964190558382824353255516410281342696436389835846743505842365782492657656849039017970372147763974879047644460349281505303987939430839353867335276710551214602359802122939700630212040902166259184111218472203739333927737333425493258656884531055733945655503636884021166217547462196799739204161999608287060670349845706614510501913544254604526395394833374198974606483630881204264978774527347112906323181963767402327380057419486812243207279435092907934066714782461353658930106745829335140928567191044992999439828566638164055662482616094609647944250781713007276335887780598140078056017007986664043879632107720769317912302507236583873690173125000349078588535140474183470755271458555689659455281554472061480069978554420251646202000256516912870430013668018384750772042656283379896793159724279710056960718868574776100006135100078176237904474685284455905105506499033810335577029787219736129723879276910456494435378268040517237126832425514898563570629144336643583519724477930315643262040383593147092087720474741709110153763272089219551311090595187787332000227850560468936085260785267066887029492440271162390558352175864082352878248917358514668913229608887408560646397735768981221295433258009188906269828686728998459325425136261678592845337608645837962700575378045361116007088557111632136862347081207497126214813775297988556293918320183043698401293204085871535275722616650860432160307231887953289967978145234609135303771416095806931863966251073082458561310575269439766339692788202211696664451824158759631412476426284271402348486433816078619677022474131759501775349024981999094319197906902157015597488538089756295251558183587012262659614044058963501892189638832415982416944507878520178687122634135392961826219127354460725399186640209591726888700481227149174964904382515993561177910245335572460130327381762163390399255079312396754253481595608893685303134767779024090761484099306689760746633732395447721156911806180354189669099865496469379735064816613339524043680654236499064742537973591504538045760786482978757889440812017192478535495341303178150471973477821269759042545979582656066093894644882310829058144152050403085325300600072414114087235333983472387094138411629724315196375969832622776309651989185860696222290950884579855227671741575595299783102706393384492013314022437218455703305740738804830261200976787138509981317960119911019994956263498801339386171419063220311731577296349108650774663039177190074289861785101352378216959565573246015300364326998441493382409963698399130894537438966365218024799107185982919688453183613816852059344817282499297977161289535780569625955048343902840359598735131453561817131312153928941408843713874200824896413358493194108307402840352836200014862289642078549032601903179393757532715368301971044324720467239292466550102086565432056522897862987726500597856332469466050061263539545031782209642635424159708509073696470793352036006433134856502509997153472403093927184187216262119659440128983577694370163115455353738527021424165821907476623646754887380791348363897121100013706895223503543792863384920999147111132646281859674473660017596475415937568340547045098418164671714751866665229027238683489159858673660428064954846791731137668431810718371695904525932654648236528547514001376158255180019298757079552649081888218743771975641970033046602969427895942806096513703926508912826227846186931236110707265163573129054670809229530440334690783031850943040589755903799560117268389751468498004502135432153384020491038274574005128381041100242578256412796048429076985771576194250882659782407111676073309059517199793146514588689368436250651869689205755626801897123328520642992964807369525176883924879358270771760849154470387650952619079053658730209785638741285852965010928517889405576556576615933288939409668759046534430399683109457971616275716036130068557130702298512379313923789497306806870822697718507992420967012830989780035256260084823988837869934888122021743292771459008117115469110962378184366660501561517796705659983737871380600987363008852717122753230597489188636090181755313568714286669040493636836175062592037187690558759292330809099601688244220433013207656471090781839086700783781883369230703130438796625358387818315021219665378164766603538455888272371694818722081899660799490334995101326907648967062768700563806665713793157095576586809337585300225448852475937870338714914796022520931314038797760272584359592914516495823017448508233399265434451814630623907436595963778864879978960195583115713971796314572834910275714460024319273765227750867856745042543181523264583768683528698533709290558073164539505811645039201485218723097977817142650163646258823663934865270861052321747914698525942171482725831703104352259515887078944392496227583169994485331244974929229174413595486139062771845570867860159095767677590077504379993521115959823271540789074335811633255648931263587162584999710520835812671480295742820973982148439611944968389590020993712137711501619396779264759877606628285223397940785913266896600525403670395180166637697555191352451807982285138686950591185783109959693990011133087690349601998555272691079837384361290274201553966854480325747059813069202075502051200710509358643984289782264836248128744346223453055228177643706954956130506008673448443278259673832430846706337767181474140659517298815470881268047943842976803627136371779137822478605198101467299248864799512449495654967751330147934735849766522224580980674592074105805275537189842606251782733417435062593323086757829202446714134132687787873144847576267639003882292299971143024584525078749480317749305062153430391805473007007330837950631218965363745919183013005225508007145305963068584655328146732792506738492142514829180825260535574397777770027203894191500160615435310207746580119667760356616251777682308011374641707322152438252961716409029847516954817670325860983359765313297415134189766849128787006711752880995871350202098864399939260391228352502965521703097373666644313544692817319981313055155244428834797681749556570760527323557919087593283590708154818187251175158455277468713722784403548260138928904857504401524140941110953407912196257196642795638101553127817935099224462291605073093139116355293325221809125422339558825170191516276011939864687034106587181553205818381541886636247260359553257956235223763110791115951847200666209441410750851468458653235368268583668381948932399112978034969629808338453166222437328545717796291121026813531495662571057664373339430750794248650365994228675098773475262323831321113412993430323986345983255606061822701270423949839670282339927032540281056036226723955564265141131444472651491612856106485966982741912350834529954287484756719589441015691336617191007526552338554062216962883208288612045004450465417674564557671869157660565062426335961962716292766861246503223479472765461551439971462021397921450914960989048494494627256774475912981557993102559346979653653252292753654275092728160211870763456093609587776972931309843639437418433152384897787933567339783437769394763215617887109216107025290008538402339005398877617213359420129755037937700436419000168425057773426912120290642672815049071460121650212788536039424599410036006849383829333262504633998202430155752505193074657466450527574398023890230355607654630214325353364993708228504401829595355397020544262637715273266543733509205582846343014827713904408086200495687767238519028346399865373822528112381772413002627788442395411781429633917355405128301751554449214615080105074472801866826733325102954576176774209752340544900431992911980410447580001545467356035152833083166144682681307924377408171307025371207515874775175520072113339558538982460072793902593397366457983141513863833915053777345412174884758910954748318449053106933965953451878786555188190882014039546647345683277274302076742823668869995920962739735243697000614948753977400776875819528332881023464051916552899800628676842502829220057286944064351969461029703250100951580638623973367956359018323576360320678367949215509358302565520473766344632952533848385637703756849800168348163148452066136500619994082935427431162486286332196690615749752512862452111262052219014561073747876401686962640027812226421551192928968777991746225583275559286055049175096753704367388380977304524726971680801109173296903042777088496611514278925084146072257620191260052374851222844192378129373427007439631615280229945890144135533908073965498726287894080085833659585446992865670240854221355784364231524449283238133765148657327059554359192860831143006893474604922523761834099218768645966873414310304539504185496029522801379843144854390474587816922926461672266200513768019931465625488645966797466125231349854871448339393710389830441564380333128195955835667627514975131255526585019699631276773733582900803698413160219031418852557803726437147592566929463426807731921519852629555045919419221682213563230262914572400606966689336854479188796294237316712015818357754063605068729705430423254095673440141534223644904437891111292824087833785959169031399857207717572809394018742324611607789209386224919887711209741723163296172736830728754463700731212472243641839638518533160801880200224910308312215060058852419950995058512271004926471759114172164357521550604437997794014609401895013574037570615623985778224656368928305243072260031055996448420290352829778860240783525298652154334480644327539262421245557824835245094640489405198087488858495350016798999911652607115716289907476901790571679099502624063590991923613265274591919374035920099602960555664067872861534757521525329322768272041518563901613506429468041537197028396191982162534225879604414382358288114911288925721684208402606673177652782184704815249270338883374696971250191244175949712318423026615036333986623993038327215656113819278275062956031271345740454905931174013040626342229999319913267170113497199463960255528070061974665967479199666415747081458791033965688280799928376075922572058765101238629636276803256043639581307039520333326514401718717272119014723033479140145427409501742843029441244397703480720731184973865749996587408703212727306910058600807161100249156197962616776559365926854440502225769924245596893803531775081030949974186937248719363854149918029221732204747484468571200280274485957333446910282934772456839163130032619733104293399039984403911781165457434464504470617370905403553245055523527454401861415983101503106063386080321352297336392015404269895771629935401501083422926195393084127505054562672388711963382437624651040095706959964948529764483933092381415875322129820466482171555937860859935419337354579196178811526549310034816072073056317971407522372525752483458071082029323597280802439186772499615986840652399415189917305010804845730443346380173373385440058427951105263679355854891590739273891746859496436620595685573671180765674192174939414055719999284167015258183624530837302842781209552681064285370592433297183233293123456597759573526535094798193460526062531404834738699758479547739767624377032061574449929809065969911337926004817241851345886254201107434493086482907212912895115049145703239136744810844995964054952997065764111983023944857806584742267037878488787764301284454328850290672979989892721096272873003405826524172844124582047755921454109643169867214168592868069708504286945840626339270311142566839278954971815738126609836928919281327244160987881599119948266750243201149058765976872700176161229552548606208185437892682902423486044739437980170311218768400939836066580462909449702188353169607686939563569578222485710802543177469605991820150269296163910653268725955246731516160517058794897607855022850890260554620804828484283703077549969914269749877514928990159689493612202848616972091749743334721408927996405866559141411787571985125078542511657399195051384595107300121758843326372882935662753611338958088626993815696649643632507406415193262593246230228637176561282667449612882894998576532059174365932329957800235039985589711878651432839113705263216638006654938300541928044514229837540169425921410066908475708563940369757775806140302260240855618183597847562118042543187335585247275787130290727421850018559210690420524569612138853578463776930876669019606391642285879159468265529190871649938949531796389344335632369197638161090655929983377414900957115702212847610588708241193090101049141463205437090903150558394182917687597628992969715935697865178355297543297588978308578903222988868671163071996535157592835441137734605965423131741122405217599058892754537314067438479898961737263432146203660238263909458138250272627179700541540786144246365177059086410757876275827728891521268615682655192429200164764646693463208944165064296549285437084203871256048864841733316822479135717271508738628474498333764533651388291075462497652915654029071278039241801515652683612747299592903680797669462061409668714128213863476774778676103471606762929071071999831699064870183939092167039643105853309929369979322255068651847110687994120920725948804157706159700956218677459618405562643747819350481820814447750974049627377768057973441118469001109608444243260250672303747268702305682623924052125897473861073094284441659814450234806072555278064046025928244768741176843461456432070066908111048311551255919727369164611496621940545205100644082142946785586046972273741112604058193615794150729172414169489579279707617214411600138020855439811637954783665851012404446982374952199429068704373684202786431346335388808959372252154260428712309289798809491363499189584884985289733447175644220581219029960729991487159283764018247159386089421819255418797913744048505841614399588718796645845373344922536414394675881446172938746304433862884933100650104510099422412532299849223247025894343125439527353447112279536756170170939505188009986990633800816203937680124084731162271810932860549545915604928713857564118936682900056796358433569766761681166883172662910666083872843893047468024342930323491453637135542661666270657147759240906592610390905365567434416536823830092417401920551306059925782001107678012793781288601855230364173466070140635766231852682410146476723085612028450419968670954289858597628454423171934107748308275842803993154304398418277282203644123218166714690528103848211360485666306938166112561754796370795046729229541084298157170841765121663755508541709819235854740166997095052208600470026447955667895932120905984578881187353555196907015359526213734007705531793434308614960937075404233770025133597351546517527800312536413491989638297703553150970980864384888680334044932494956620459348381034051068333411803881239165479323893511976811220063061852218103191024213676128964617487656872477020579217873689668973781709982614837839419852425919524616671882147824546747836088767507489669175249611352677827103577922377480631571984047382716362673588336138337237482255744063182408229564602191949638304340696902556305018381216952199105625531784981302131027144981368137809257527384922029646072604127199339197146301046137044038827902113389361621369856140161140335871644983702854196788057749692856094267792848593406094954131244867698132236346564381104772553703608097190286887504103427542129710898197971116251914971927719299987052157742296870861413032891430445587865557793076416911394179820457858894119965326857755698535842344733389869569655501347330449738208683210574314337324096673280998015421001927826632907026264205536219866228919479304406065152772079698959282027796597373956510315035229049094492565381621203057046761175282820009421092433673671330473522526604458736422491011541404574398052645694219185419369067069274693966247353788765700533097253673256085827104343642631288259701766937250793403689292108622149190845524184806052163987612302452349253742376809399075233188889129488219340342115083018467509010445747897106858969740401808297164517196845936849468751575640142841224761700907906096856295348898759403979563378505054675733332468022944649732943570394327013288960736677333955767839036102804156629452876877497436007255161969135738418046007519794466246397025616811893019782807670688786081199975721182839551456793915600206602618299251708026800259042801975370251244275046737355018577991665788343780273247476457740372339880201112387507118293348390047457542678387795858330095995202200659700179805604007262556829260957452173322605179732727640269594562474689698801820581327580685919571072157689758729124198158134307208390764454123570417468193649394940758573296177032813390809289536678805972338377872632213667825515377079705262965741545418263272350613223938170013493924455076498113137249945253891898328568912166657325373799861531324301985208811233768013906920449138720101315172394185340464485744896037642367915239245109853410450068158757671865105426134711743889148537254624383403827572359823112337734954971439481371697306465165929695554278864323425690497258418366500862175141357301234195216539043717053607718311207206680531741862838273582988784846164012748882218896378793713909560792310479113194804935336138086673610226966257275440606400516078053061238239058274556732374311959763370690360004783254031444958100340353135199048030202536754004750565073528500376384072286414821142298344731304019587212485789123353305510581528298264449823400656657768962307455074327113982034902927119600379006084154957519939415360918687710141034133290916277551316682050056099938053839320592635153010977106371166270183656977298653901405460470877464015242952147095535799152437876646089246987584826011961296954865744588611828590756918918356296030579461350468907916346987480978939168223393064605974337926013235604570050209479317148862340696134652901212066664579915901350482390614028525241156791049565351816464740027299679311637000967025948243658333679114822984939224042239830925144490625743515282978217863558602712249330566580487348998858453322140144905384329817527763495681825174829202577637952569497499064478870286024906225005410605084271815790639349324714045893952721994596880888183407082391639002979024047679476071588690598540760268607859119243105114074057640001612188037079148007600986267316013029899803484774900823891991480294330118519058496356921833821474510135351008530486752948463229653249817730502230523713108481948150999774244308444452120526343680905923214090412531924245096173745513035221708206518284171119461174927349905633736452833384132780321172737644601721775664733117835597774023004760192064459364364119419675383748132826113576883875330916125031113768528426541166057167409425370521903770239194816423069136172834983398209029951557190397613791985326363971160104717424886939068841620675532543830386228616583589064009546723254526655754399513099221887400154325249901452508059147486853376810675592027547536270662198726045404042728383501870367281557748140905037113062494658520429098487126555013848280943869669374085103436226120012956066764773808138379266126915231659783284461021643791847614187507343871850570447724850908486095121553737878563123374733839960744682972581182770689371210240486428636094705021107502483597381589790779375047557304494652591674013537809029716141391143221858662598870496222302611608872982687704062937614380276420509536263921011033361176850633032553862165272597896855112728197868700740958805411025140274391860213875161630148877664811161062121768695064109341912401068453592364189269865799684185293098725000938328862468695386856523159997709334653971456525819821119954664474430631634359259029828024128880798321595623249491886694538540723503780219852154765447303572539097907889562204224776189676356386646178085338871196905533000703309129885871499821822905384125777384862022355394880934075138118816758306876533916913447488274320411777180301169512916435450902700434628136899041738093034989347715769311464194191241983531987322780630272846161145668238793352127051496108332382064716089604639304682948362332224375827705988951383627682771448943409411672506165288842005390243540287562534569101972662069270174257508842352626161115760226312087267291421367652409736568265293910231048020120608711173621930934355364274463719058989544022145152299004929501114816043440804175128656400095782070520351075052178850547244629108375672762842028271931786397847615088222668166598803406380163802863706964548718534039326500898591931109099669072863139496786821526931777752366923527583132810255767342789557225403189070555218244726489803471483736561691712895713782306176291401922813366372464273946513766878044733982463463652120494867888183581594816305280820863167279939634787678519703033253135849109495084441820438942907575768303318626228983213396032047810729142195333273843053113195672118990339498311981569261830181787473019350151701156787364897659518609263769522115932576849604642493533920599754673325460754483984636835623945419350647183076384540319072266382800580054774160898842737791866393398395023431949989503284422747639725942563104761344563944623478057296058735329242411623180909919742864534126757561459145387871655280630691577402492095552534643745562361766560013682307944466347160022905387968923270879713908487855237046262742108756285995107060559585824660099062245537718934023459600653419791714901878925398657717264890399005445024675145697636705050420693891268556783306561501142788340249603684388958512381150518064975006900402948900388429360134304774040077965679491852942378779167569054922765829777953016213649299212058563841127224228820774543400127877044531749333227237863066714905512092658352050984936525276547235851797115210459024247487242014968361357672874679880188917020474958438791047080380910415045162078832185276095075173652011249388136815818561992126381649321752538602275784412023390421515831887089437392621683263028227889782757059251737858514370143266653547379062611772231589515855843690680172894775039749479749553744119331004142085001292394375471621557122315744805301076955792808422565139611335242228445975441175396060937468275324723007732488630152807167876880079609541866456581468744464407857770826734381146672644503519593274764331467429327932245093682270100932936027745624579050936147524475991703852585084503617219282935765934557365843974102202642650327430564327137295064733383300421668922462951785725728567317284735730245874710568802880973281083759143308649881377901446283585838026064561312366795156712877960376618608400605762252666890199454664593361584546947217975708312810228744700489370313675276788387021862043562913757744208885538414429508051127905701711512173585177736658713673766430203758886612248050776163283523462023497617701667904346513386365485268306891537730116107340319973061704976809527676079282280889660156300311002564263580128978226036958699800876569761616318435992884285834698137150635132309466309503608298285321260003069590120675920094285246818155065177571591249645034654216160807475741144612778956894054932707778184160223363479278392185129814150594118132856644379787008616564692962711887452751464667705331895138502795430284003694586508472309295860278131411470837247604169603159710288334798255288217943092250923590142369787492846265966140072056593012841863919467448509921129042130959862391379565704882959154622398961203617560656347204804170044926477721615911938283265009873529588354163873973418097907830870430799619302952739579227877216295145713573418166372802194374511523190085731418956478074047117838498863017689138947090275674842128277714473052844506672641049371296196520213916875262123753233551909572426800408725010333542483779054227212605140395445675676852491187884146026639818310765518680349940603715250860414837185727742714451480925725243727052776707500277569192063409163036135483376520569990070790228225136970339242384167329504056076683479924172258826782862854295549344392277297593739550650127884477499565139002841948974044215423229714968203163171940546558950905502204866504857750144494746860127850474044163922409258690123926082985535642422016146377241270486226895893227272172642996478076048935562186982425377147519896302638912307574981550009964995102404442009319857746503937961738526834374649275306682452686598755536215503930476921730469726137573330132789884315160174991395890397330554732153900401406374714734386890150622596881886093899709699234406854317990580209375593091450279732402358995181708994499666896517853013414731620591672415757194423408854759492146855133544283450561975894193890992768065640924826409078839191020258824624828721140152681418749698022651147226069636406237464199741654723542099819815131658395329612782734495813295076589146780119772980755308939452956086769777003179097492563636417384061004870210176797727029714697639027840137491175174349494202958151287428583731765605474279702249544475782362737216575176322170070682968591091066916549849368871449838633509746623978184206061207899576570870400654572844603731311185350473988926581328215208597723314060694572361424820413492031588423824056255862186312683961032053051226529852181381499707862039103555673099635586354803831006799547824367913513143309089349003589524656718970839363792843422850231413738083168561681710757950071511627931373760928141146381185015567233021683168436190021801659225985397756397670946967124716203519898768876946023374210068915093600790044442930862868984261994809421447051603794129090447983983512150882638061712763327219248924404377655692216729206106996852334526837101078623631836300816541035477443576171145157795898469720234739252435202554421965451254130538883167246944470604805365135556080332204384390194672188662153741291519566674519359202500694333061068405091095657115470949142856263948940376614455765346785528060600907648066682741580378017651947416695528707027780230523557672656320785226321156052986834253959654706056880412796950865756390926802098810465821945401501691311274285963875107320509768786273679765392783726182615575837581462982061716897319831204810521793544955164438261194337164352179509896963860001128843159865048121740200447238936122794534931001777249392841979326728348454747691958353242276097884265781132746203929864662527576054080912067496205008181837309243448196154970042257621888532411651388782727480833062468826826117383606384529746673803193317240875865721882189636717572266607603391637950228362064626112496417276903355798965327290811224097931117520731878277031818032311678624977134613126106316137221822883353016917317218638597249591227721260300599589539983352940794067920914067744189490361800582511278535346022935167410756486246559310253380579004445206103786738616860786667143958877081106648806050610487856492941857811303977239001565845281958302814014696533234671082987635335264733183190342529108787836631815682712026630954374833618875995512947229722405810998551764138221768791530215285213666685892809100415211998928116005015071903234578735382853660054538049835488776690334948692798643089766786361560129021791850853123100444477603246050813961061359044262125358121691291031380228758474687449732415888496947691430536989401011335667666152838411604722050124302615476990895649520959837211572882448544642004585407374861290187379341680180810230572296816722570886733883472278721530437976874896180007589261620190037903046780221000709838052354805748483188984914502933561310319027001389757017716214399428580403067011993026939018183851573139118344511125417937892676516711934485078169849485350904425598918745793880322891188433061130436086563347173315603019358079606280695996642748174162932988053100521367251124850952609881815745272031947156300056921658846998014672733460586184187282863818670487794987296441314389569382723305013690432230426956265966087104530436619275516126829788860947679937489815260542749944910417646236221125313896074797807879002048762249594638881432108580037075383085770205637506582780368146098379930722345450635601679133378421381840371825432183725325353001157573155807815848463195045408892659642886041045929813627998348621317703067183181870768607210081881068087829420048012914157131011546236157729548440397422597213051196335197753154563384489760144537008133827489915494096034467190177966716093924385235667979171793057602838045286752579875631164489644672583181277631527722590314006486743969939960527025841353438996417005569336058174250984870923474960955187517652414412121498947004062676654103822418397520730280937417534414753970245835709391020381676460848957980277872152187675427156939768876054572110373897409835739509990635741225034529291291855464885419274915017592124944197700247082368004825145553973581109143252139241009124792710654962789512799145615571959908804944537127706680104215178272855299313705716227545230202151280813546972089671787784070105863753856845700120022617146748134709830391146663739997715949234995633984467072620469723078374388805186771027470572893312085179902199636228844158066154854565978386682949905381404056817805371045018466848450804591888797045358711397618378666953683852229342305859498380238085673478363137300035936016858749109648628860115057652874231867481453928859804665159758670692137792876343933139556938683503472902519279507469276651075751232706645449984837485398172430028727009400206729691897629699356222144100109364473426191707479517169650324151831921707757795877187150061988848708892284653627175411478011779968970905670763403597647081034630073473063497337840587162826766456679090485747524967398235400423409432878095693439834883617773393372979179722068951309704619521747126462501731229460436709849007476336898706872271733624898013259319297855130324902703115185229742085231200396999124557725217549718898317272744021238284857716151488222762588041587728677069429985254103420984443529829447562100897338025365946661480672891754541826298973408900366522940833223581293101039711031564466520615840674270447779452454506548055761045276906450631163292476921436111730356914063263017996970131364229825534929511195333668685566533457761447760152538089938719778651298899521387211980857320727597416893512677557747872296893900320731859827200019712961539125205154123103258209065514908460783030232298939626205122434257932550857525572890408339548626781946483070269474618381902944347440366198887829385390820577230971957776348317880841675495562622209618868731210749827700360702918978065993139465175851170593292680027475145860664438995073948350959319834449446532935914493109141411667290992769477374078204736903494236321933854187202715555549183338531759715771941415929629336633199925176249477562444428498053787152601821111875541495191562301100935951615776344419339690658212015814501541915031595991645363853790389575383286575986741605656773818547822194542974162509046577577266289153171199885919347701109477541669296980907900032962366540482998969500207058648795950024982537384794262405347547316837975882581668174631221932838765044302837615091656259970934463737740864634011095263140695572520865811197560096716898921851537643936666439424780747141037801714545218175999754254486396800946317584786994611288920584084665412238297547442592024304864728240692373309412651126867907094653533190210197317128705843529774046325957252206960714368113405065462144926843928185354144161251092335150325011110633351447251180692116145604886154100556371825029595542703556331034680047916694794549246127780854208844269739640942964315244367351672474026777779424976457002188340842186250060909983281929448041131565568095206286286065939927405479801447242950501611577087597498510732661852859206290370476045068245443036668725553243837618405191549267006603959044214037681357173109155544496003143684715456658013592132459479104720859488581805168121551196936338936114708375478920595093424181655830515519965611686670741398508606467662126285773128361668057349374562907129953890770559316566404750410993818190464622023814013819890199235817216696516488766295517704703139299442077300660257380027410407845195668875536179494317602249448348305257126861640646930788474651544430939194553078104511865036641169022346448970658100968990561995839812982765716201886130987339888263942399418548296236051364299899212391452561877324913269047056351624496551382125970348226449175531912385799430261964072135380517999827380809893672151221843884426124400603223887565716009616742699145615489973565204334257344164578869962514188513024155377848066468239734555972409557069857246329254663115782339207359334445424540189757021057888319726403764181339203267229261482040380804286286534291620452553471579430213527156891816729464840964773577814055786539707317634343370006492892333212931575773704880895707738817511705241771892743805934031216002851701273704091792312073353397064004873448150179062992820992205967362217960763657065607066745759236036817921934389526195601890648409286296252049098773270571592932548265773874142252540866643889048617804559729644806879347602141945932344337586420584006434208445005115247445534644076686039429073619978162818892461175112827486654999654933803133222435709013404637559816618072686315045479984628932688637591237343252586937728188013834214991129245366059418013237069517047208839644167144680285199627690292859394968974556347249717480126841320334700902543826274470906037146707373488524162752761443559528749816274230102067275465948604205220795527856238770465303657413817252051539115522672692227240833806189356645195214629793113830835550365972120501781587753454014270811151975909218592629269709570656495950928065238537371136149548650954557173904196214094418556685049458237120524944579764264237783858434659471365941889362109335408398659648368431960512152733535069337577414374466510474633745781567401000531501355017009885918182124233658333257638715906706439620748502500396900263173347478096926737676925627772982489653974407746499716630631988572413463076940478894992039309378100928481141364210409514808726372196471015088930390481651405595472973155432142241782870787658318293784291358210068519480231247300232707020743456185533728366781448493374251211451215683317987903321456920090015991174723455642584271398087381022277712083419855924838297265212292178191822192945767549437410922879987951684854867524714535772107513006195998922718003829718149437326272510746482754037247102509003117206291307450007016090062136376183616973922625904494111966859048850426692289028286180605667748684214320470547986228414424875068834438008403761976790614907661928441594258933779702204204417008504359108891251551014393318657674915002055581551042951598710185466865356084531716338083181910894735809684977228432568497840735408858807602263715216731720232786414811019424752126687103632980928441199907473768533849871276933990641140662798738150838883461316794861694019507167611927815928385358997537358300115168590427880797899422998504219318175132569217540786649367494303598000408163274415786538904792136698033275466212249119384690458555531173733152347835411925096732647322357059589398853675285424738213828295630280796985155238361087950540387755942951476157789556665859121358367432413393057992783153001822774708830238258981128631762517463452803377547818780499869528747073439037962918454648943758023856973831546625397656747067679580751363273069416935241254202408024731208292790828459887146204691894859739712655236652293133776081140446287844646582293677706972246610556667566878740055834434525150114967707766259132649253924579561888617483153439122543757872305524046605529438760082493370980115318171201677038155186463848334808723596663560893222504173134695215280925684496459908483476209500773089712468990481613182712540543120563879332816957448670991886265890480130098349764745143190149268530432421768093022426511977153119068050127835287433310166800804212969004624935530362959086538291200786600595435224810276921889878706140129547261669447963987403718335875617718979602638634660117829459649887320510230302193447105523035874277296004648130181577665290434798507513083813135257620489077848557410664044434247603011350990517986854571934231741827567638286821100359246611277792434879407711638309090074809741967277891605943584845362075576465340894746329071823339817912003107869917794455826824735461094163345846332694929059384625699960547426756526504453373112616109971289910811279608554151189884903931500557780406324881944032672887679032953570124368557310973589827817641811671691291162520084064692705135037204463138548298609678992846335900174262049504914695535814998673484722438373388130332122326058262380771122391792646756509670642052591153115041288924665045204146958945041049235726291983526987492139197962541530580760101805043752675843010731907566279755622988208558695029554276221240065487990999511371438468371537747277934329789861887002200328819109256147209286384154949814558717506540423090207572530907526218001231827398439576318326770366468572979201404288849686608670720136358137013096270367325474642538322905427130822948212807757024501296495335981609057377853787921405076449692961696464626591383554703279583840565028787541259313508114400497065282940189332639968403040298941558844459414636036768241857396024648733094462782910401316294109642543427509348998110209310832762452366894061374214804511594981562094132268514588484188518694494025154848146132111798971288640430284998827972850275256911794992192046622432912982272499963157428651381620276457216216735569236724825396793152281206010272640998755863035124340174763085362527540778399668082587158994528150561021543684022295868699101718379134669478071351792226172208989135933379808530264753958882256574980586994419967585765293136202074441631196257736564091457977073687801811038818222870496784987096349189987582968578218093882877298741553096676582785923857595590286213009085681698306071560504889511350614723026687122402951544057086680635393694289871277284263742046227404139986924622990573313945829782661701954749970239054290186945328126434027349298954451288149210004615054793815152706008653117221183534771962906227961744302440879494586739031950376480879262794631665696175786297322379476492664659313854048121105910221035479658070765423430191620344192683238005051677155199541838937353515358982596676786462012733380647056128204501195685679136547496758064149086710758252595782504194178225240032916006178640592150874473484734632292406784661417321097250001600963799285214671779768926971486950933644933526975368480420648155661801994647385907836169991757099540623669346139261944451748113173886482217238235876800337271469511830388039527102047795178426335417876483978342221620691567513099985232509680295397390216834204551811996830374439787299704023041633313830434181055367463287923594833035122456342782722917418714507972095540162060792735893162000196587185596060706497001856407941880258941050880594837155239312076532347282790872165674697891044922298893355751934315777117918866943854810091551551437019732326865264701803844979731105265930135800468915178262778152315217903032718409858232072661685141705671947361685872520446343461412982862239701954911671478170460938650821281209828953703663749855496360310579273890727151930524527704475401648978026910089712882022857155439665007843659141987397159663058310474050570780512396232849297423640368598954394301281342750082755376243413935326118825305676644456730109869954592534792883395999980899347771501195682896599565773458055818833833531168077857606104892182214157069476119033803975304974271343615898033432547755215467792473446902409347318357648019196534944507687332009164272494687070621089293353903091990624228080613484806324791864988612345823139660617215268140393747049759643781076594772343678064419837233909127616134908833404885933034364063421675861951952619613975566641961222244012303302013154794030009651258732116407698380071288047857127686990859979080026228171840534178636127527330615466658309587794184733901182694152712372737524072084233866452272307537688720886085958423039789762581027613046331838908956603685010976509322217457887037468436631448767771181400771210346523838067656802534042008891417521465473828007327542799396744644917167613179431878692270655952805525862999159905517860597820281394025760307771779157250386411852103387345653718333175119719967439126417798311663710316570181268304780132045526824839115735151124769551607774543515704624569521079615623796633512674156220012972465391310876483157653465172416819043669780261755221022673440784897092422540724371739596184227321039812183519884720256352723255079478490991404994350827938166980381040927069643161029945193297353677272815978986018811932787461964729375667005666796222182096511708763294477318370188563014556885575148153122044980530305413646996154743567324925325027659612586094585838200317087797603215630087796151470193105954012398485433796321199795965396366896646886361987256482315264740414810910802338499440596869843997571481020629538375508534292500237582461410597124269010769433031325531885576473527521128434339844568681492816192404476884919655473512662886198406653539674064794958772028884361556005113972075450833767389315652770695475717168683871782516492765735750296146681135832946704304289602599726915515804801697839167884112297854001662517033245359155120741284467226823179699375459860439869363549231021902211321723806631139290274810251348021569952321000889106653805027042163503482874135759444908696598443351989503558867643952810608638926845739985309112980132184314636202106805319811664101822788910470476644928315556646181281747304253523567021888382390828855109118563439401009715927594954686205878505277432841347716905957762602975775695642989261415631449526520702083981601557505908874574038326959256733428953631865142391567576365867353944786090237082316831984491597956262285660880655897842843945894138945389873911999495536039895825473519685982622222908514588520733038617268077049039361526329479102910014411749075139576943393261165677789562659202407279974824455835623852352020743573671774191916482337011739044441525838217152615885225661342969609514440672177531353014332783072990695336775368185324751566658388509350603748988630208633618280195051998353004366014257357224011037668076891156117635285983571164010571786130840418340693788911674785043943044973344811522719147544229464143133393128001635396850822174578683317894621229992684308292352587896482741494958366039714312419886623672603812914402131249972834651980586437836957264877213661167453499110415272225670942786483732867471406156674677645514072524218105468395461756544633012595617577602559165206113609083568646710508694446283629091903182444096585163594424190718171190180326233381161988632726603871363217118396752497523963733159649492912349081714166271514920778552411307993971610176370771002439220567622479428271036949522167348357926639542819261846352347388471158216780103020616225455948185414428741715298429391271375683167431688081744005020040875654613240505877001808570522960847437425965385769835480889044236119063070052267203152293791631131477624186758177800225578648868139355514330499082792030391500303700436645687903038457845951880577743024336220887993461392013533061049860568557628887947112804876270287997575752905275972914945797645191816941660428717184859997467332079837554980263745790553494936132183953666345089881854023131099201653089301485983003935101321922523281296696822790558568993340586697939647684513674856057439543271658228924373749390078140856567828430061318255617107212968576662580367362078613321364013597902756124630656460290117246862237756558481041225602856206628356442251272324978576164733940207471476367936217810530882027916333497056518477492272198744772917159619577019295391377633344389694643308533254407300592767396828874636740097766369471001407788597073778845041480022802210589219871768615296153586303717951031348218278192614445837433604234227385787649483097008711853740646745552434484177900385776403994096068531026216901190159307606352939372494685127223470938520229884619010280060120769978850561516504546581675445509179031495769651441469214603349647652881828302782343563384604026280092134560878200294558252785233241881655099813438484906029794733303536362848819667858225027990554475701883393348455656680008275150765105311655624095339307504770063678425608600220419975062070958864540996513952019307713223353313239973746740236640174005372699281240523359594098410729428973514089813570846651476241042360208957558730278585048244069468669686677439526599982826336987639134060539557822221762657473476079560950808957077695692876959965055742033433542254815924406986583767069106193916735687403864268913833935208763637741320899484188124010632443933798019327997241908009095413326614833039127899941653105073972142649725142120729658388081691504314131076851383876774267992013079571461570029247544832884036351146573573314435491975948439928375669454433921247987818347461049689444109428083192319402415094756317706550006316944039712301783446889388330911028991852378971482214099176755674779665901417318384322596022705404338792751720162158777472584391852413985836989136865884551956123453821391705441199877821456749971037592153124419879695132912123706528357071098821527513350645195869722679122953630786224600798341253135263597062363889247782255877539526303191679614250308509211646295041837468945212079363308448856306508490181980639210066247921790070916902188731051144308347229005872422995650211862757325680123641264441909916572460642442158129446802206855050498615524518901379039943055195648104118323681506206493028428093498583646750381022203950526653978972312508146654574618111338812046578494467644637351422069696111553166259122536962862610698888793922398471393824883756281645228771063502999314010904503288153287712830849899499722171458045402948584596782259638400511261063487305376023594072857040890113314864474343512825697238595798182605327309010842889648153036642167245769897283377956232231715326677179365652551876077569149977777312208722359378770944128324408467150373544809669410274678839323468856139540805845018564915250104043613948968747922077051193181651784221857152735074013257381315951662893557878135274556578716305617303905784090816892661778775886142439505245348746969893552500192205927096202378765512527253954415898676841247530895808525647527251420293167593091765383328526618829887280510111988486833794343972398151572158104693379070814461088287572972482690989294428050028120670368567432553776695155561311597198439380216328140366796290777058248808117992752443918235133845985162684731792715674924802567725020268156963006446378525372137194036032533667844781864366610804900650866673186271811320808225400131588765254931329861256579327876473340153129158510977380433570259239625257794510911369169426946079008625415207378924652554453200715932579174081191998494883878419524745536024484250233047211339518321522970494499621014555451079582073295156348613001870622127976033333987595652550708628534392741662894739038756185897676126293513018599750638418705268223943034108801759616313637774555121354803756546480533773492763076355339162595602559953255388545330800764099204898483424781007699641151880321625352640304606718143300461537779919124635138833273993288685173833807798011673679063647209402331399008028915860295518843314567416842933605126496161762382719213718645128723045844071671163203506024430289232169725683174854558992982070648591577948173598792964919086440355355995608642385928581054525226942124054360164085820048170178315407877539499295016342451664396845924348895769815968273803610195062669822989279599431900595694916055868335543121897093064293938706880362349232190502022393390089207533201793721567848367830631857464920814698189769037362187368245053782390282552412975626553654653706011622200674667748300892818865225108203958246868805839229347212671108920941145837786024671413397731216547114006292441397746945643887847209153894527786751513726765601853327618120308699132574539439903741851990621898660178266341567219532798194075045909855289066976387182667950811487380850069467551287558588862861604297346342823047979373133267320631178449263066287723650169274889680761137242649936659000587220962529351798010674986558849774716047975730742853007257865773111271880966384985344400644091469147793023323654939409865513299973003717360005807378557455270050922631145476818999518313453301289602107125804342936586876711907111704120592450429032912636445596785442187235656444419522933543419310212689091943713471089258127010775086194289874863744745506894831893963154997495831031289759913116855693546557601687772934988897100017893952678072109036125769850912892307582635768605597391608334887859903039001588209605603359022339351017609948208282887194088719329578508281595200873125607950186711410283706391272976219113742818073577711309865781206895236174137896746469954032840867329180753253743030773895992173943100881456366215625250037587369644885013600462889988868140049215851430545658702353457203046174558909696608366807291101811503708826523102502332979794669058730226393109821948972459149396638784946817161522310186694577036324283111441483304369389304985243489305997506582737546345535766262542401221963656095429387375991156668776498575415131550401791646283975857701460273999930211881679089629117981505868442733717043935286129565944538864490041243477372947298479621525008841020979724096836670364004058719539332446777372468063981922917972755272051801361388685739979218338746645503776458140627850893765105426163378286557588319540493268350979714242846396938629329356066979166001038096897709349678560844127485415719217948592929009914707942070831588566401158720428055498382672896082022284615266625399417896664718012062956862890443845836723067021777066477291081424350975426232365415482195472104289979447201693397829390893329228685201589119046259974499688742541513372668826052793554366590021938909168524804083216436860002945343543920613199431152002368855495250736104476220832223186549975624070010306749851862124463062168668641060672952625374072561172212540708718723444924706771517004999534361064639550205685501565065998109150906645437700785115567728730326258413512160277992111927450223903816424303241444944313342341316929737724096759853491101148456176473778125369318930026079928972123085228133765157044339455671730095293064423831238989304706973999366043726156702348436796597241914905377260438703173633429679008621775005544817029114056511582976100402481501271300215802465305398378345741851018731523907040922746163821665574646596847977058165554548893927584712701906008576374906446851243975044719226696551423975082320989952675413754372635526611986836101461996795526459846808671428417088967173204555676245624501685596368227499417264387263107112162952693973473469948616564429037600591902789194508061346652489198621301504847674103266485967445680091245769571852460525073503828711351224368391184253143742685356612628793021322427267770343674181459547750256947253349289265699751059060893478237110653525887259995297089765794181772957443495943792843984419062744521550467653549873927019261129386469456346293302104971675380517394133889884864948958291362997876528091226463269258456758546571585682560827795942884087158600423357730150710541702880867789928710554872878482118709677265316794412609982577347354048003970181465691049110663043798334592015395658659586967606669563985283321910145291561054063872564093390528818148774926918841503612257385626321562873682136512285135464616840279346917841504377725147077455922075227889026561260815206459872846605298082326308566260196896026224730733438284388630767073448310086957160966122103507666384179925253807803406949248407829228009157827164434626322635183242771907297838026024951172641728529632919896230841606459973357130775267497645206826570716070370381422555958853451422933925121891572222239638525368918570557769721073560067055235321367695872762701972265307760137242821746151363639398751107014941648034137051866656998605231403157121289397556609812649159722527491522888100021598962150326439066833497120615412401704156690157588679777552543166120718957444829490292552683889031305942252316827838080116066111108844571065839053152096540582602811731963397844958527487859308058172585626912407810065096301302539122841920235292130999506565710563611730310031725061093899794669635445353068373384825064003191634531340814586401902440464636963084296644966588806331257672840365559369082394389261064142375778497236125463022649947895168221178538490883529594586139897929122701425026295673100080923811511949362730206211375361732877883391791613438031245231048409875460660745886340510256588385736904756533286462300262855617079409015311378020551361115309636004430454463828606179511004197908568888970569686870900938352755012432070354226152137178230326745209460848518328548398328295479642223387448762952038889785676700226593207383009678271595798218887396371142574234056268993982090483374848181458578898403871866117724537454769824251626174998490691977445848812037927954238530570748166826789297557843497741507163480462790316228635028312817587481125373170667526833601797701489043588906324246309358096631853261410789721468456175324067564627210625424508506694910702043711184422502833849249104691828743095511362877203253045323186898763595709771809113501251491069139912076506420844545626764322589628195956196981929943424745684573263011265060158359583704070801040514020289338984006127733174662783968604140201319036008259618321897226121032167132563692184741072646262227926518857439505333220703472447951427082310381022088393634775547183100949472229247663292520740928861950293926863327035622214347964332748450188665720859029864054417737132948621048242517878050706099900637215630836122239877489599150152793790200618297144583405305394275107197271381778358837516517755873937208169510568247066270739051713843406062675652879316501806621622550636590846922131419161392542199457877755285926361574781955975488385858668026512080159304125175875820298342670567104584315967642952731091568363672348289065230933416340482150159648518754535895738098718819096946556030079081517821017650088357503152820690652820388943220072989895370480576387071820122029909315943218123268324527581237805573006741237878441410562173069061005026772116252802777992156812489434007444381656872163626283930100328907939896050976872567699765645791604771767211058398624756487981327382659892544588059106782449022039606953853802940949303078557554092743653422493601634532104728757254556741075928603651705042311530448128541621763133048424395574282688139571269588581663536376731839143468057416789087005011975885998507264985291925921099664954752418541901734796345294923296010975041683101392705841928747885889813758246414497228991413866607111790237932170293666489996950681574120368841133356941434931257809969813153496262530690637758094235305230278621702719220840500323478513649165599086073682166152285420480304656311860887431865301471839639087365483860540856501139607888480450898479775882178529779206331664569290498730298342292888535295549340633193964312533139586426675548238809711780383587236211071967002977059218539621892726849809436300894553861905065667039928966936110290659235945817694498357301027314009066983133444673903108208374587541696793238353937243939143290234608597060925549307955173126249898627776427862657121907034405128580067302009764645202155408361130201743880579741582564715057479461423690049160643400214795631312265393404077434020045357086264101585764506536595053305929697932407002844823295278186155927335114957269857410804161189856366531165365044551244784296143646588380055868858725968592311493537759349206016407110522189404424135622023904743868018988377361160172431367198314640455814339740080762490813630275850619521151712386233732675787230019746093405885784778680926111363998108853744202627412700812745324526853374585071909190217557405850984166667540398822557505250924247507784636262373954168168149284605551870100142671052504535579231334663297482650434840997165625855506687955066943424960623281392708447949767241643947555508700748940400096935361877637476677361545421047795843814034680407889971123694310790339030966148358404582613603851195228877452886168105782139213150297469827540452422492056806780791897810131322267978329689617272060132969113488797141649802243139353941903268059631017365771328399823283787457993882521574771137499092388440022755708144539236859801543943136455856843224190122986415866767288111432405449856668369706365505522110425156143204498671983741861843316353961403894223194675154780747728721026801112084306851210903815207883234997725330078429528258042443050025148292076276901835131306098277392202575062399318809869638277779701912697130032045093526788861669538647857616688516175734752481604052449687861696083759986950707359164181514879265535909678254326160649758436885641213014268818550132900345497820634292868765705529836351037690784288029176198192692317223465969358015220643812963162694063570580865464957543063047344929496422116719362491207275737287768856881766849634969655948814050862042197775517875941809957520560141474736416313879524599036878272061416695253404830607669828966952003962302576572301212354202013657530131989415180849162582764070397613485451712743540678120578223523684301296138940329280126187437009661689906622702249257643350114443839088456983431520983827424167475166887450687261188538533733312037770285176130303422232061730153464518641580269018817590374443210988011114546137240779854978664193825042801938764116359320770456936424966278408249784421593221065177554918121605366153578933630588363585511626167299563436595179029201945941184841698064336666760540679792940843109737281119825802980195021483996727428517080229507314837959437479046897718915623125877892750812470106423268425458111787144872132493797887118951037705401552793694655883798047311905195374873424179423532820133866586657553418181019874823869342786462652155517759247374954711552987013603968891607049845334674029942757548319907959862314328401118781719524634265560641231715555042001758840632504996656651072175446687436929754060120705729059732397886312124986605284639274970980108559392825727354482181384204090893871798969847728109567742277368362769355033114939394301329666554807039084868366503521149997050037553495517189733143015185765256595164801913964639681146059623735759711494397107951930983746133594528870120532121805143811525496007368141529599593413917291985504166750238352248221327356819676778566091509919586487521494703305538265452948915473733371164876042735311074508503279969948789294535367053965776157408806207248597061138991688577908055125033711415593344394764439061737094632147153076469531194604623711899033403695303965459066223150096027764412096597151802283554364859240023409243241036673834355639479866299426016186423814680855606518423346443002165376689618356424822710493174953157610890639342242260519017220633381407551307882819842872790004853367936163288222610371396192990636649176829924475480678275148649023727315130634860564098365877277332647988616474226555095803207172751096093147110076321019414981766131909341750555272863023553029652908481517564962626744953230881236624244790612649635201893888546914202361687045954714751765024900936095030582751998086866424527472299535059237480251698771415155490440736922654602483211689670514028928157299478150342570074153638344575171054959671704145364840436565590892466419708688456268965766685893495844551341904266112696385121603229645730974604881640650632520153750191209037750131061187806908848877999020349337220466999167928659132784560478588043737964836541138562960665028258344452258131206855732145265233417243099693313977675663057832128818651173497573086094361149804497087917409695047347248634413174524018457758796513939430192582948320460334697101347812134814458207416114117018116069318960362222754033544756501931789365390584550834500119948441943616862068206677767943415101929707160092377844769900726861081521984912568149517873774288793203922944786381202299476795139375490102944376484514839791825214114937217675656390964754680609415580253809630683793045521203060936683469733016606495324569209544298013009271517474308795033898297506120549608879151956773684870211713161611769166188883473442863243358963704211661382570915464135501967740332931887873326106517883558590723915334122395206622224010485585118347933828100875220130701370552402397988342110461936190974744334612589604508493575565951159285341063102121716822646225423262480144973299761450598869898652463964111089784210420270232695711938093647946476868479761240388601088381646453701776357563976374738724120140526967036270453796311728477012955132738667592826141186936073361662980216474981022470388418269479685792703725454373647565430220193942393008980992516333062886232549806843947292812917483781904525500436746630088361979387455782137761956280324120170805615363892115263674255940455652949543940308454489113436398143974861387206191327232512753102488129685974892707050934674773894390308129994079990258603446555316466747795113705374466127662113475137808817500954119808672061687980107912051641443818929000679977560605128486084483163550001795240401057065121792431758889260839361645548840102528884010679698850392806835295024158853142620176034600215687617099540895287789795709204440071921273055109010301747763019435015522565376577113811510634185736263306871125351783863437592649485284787467489845678060695266885268171681208168324587907584413155945223420484490099204359148604234544312671373086118748862985895233163462705120141091291277554127003926470797933049064079342212319895725623173334868773004166575595321658514795650573225873224432988685710322278041686918995359746994927059644771929143866433467666026936773252007176750277326779833692507834078488129584187023621424169793437388069952303688598646023942926633132524403690452549261185162444240824367672734491467487751458771232850541567839262486821137605835924706270885237161828463617220467848657772964287284363354049278043181294201116402228982310725785601791109552217993581984256314339784733833749700657762372122928851797471170133229341950190494927769905253046773760452387698514991486065167154697822018185247037440624045224229291397963451293500154620410832045011455399333566650392051158254953336589021294589484367381047131840611554474047255516044221679344350405179574925029999330867851433526849156493272236856846726959074553306305508928720896408673796461890017548661016590202823377853971025461618584235737387121274250602050008065004601516699692237806327695453380155758533037615552892673071920217698821507410272711396570880527046972550940589849521509048269617831266601695048219705203195515130592261279761622953280186352808749376680757759268128252058104155582127654618720917854889218585097078776955210560208893773499491744590439774973494369299217932106720304973136713352655004016933434108050845815101266729234068145341808400881692214748123950432954111953909775752398009922743922956258813165622966710319240139126936677601639057656376550601208181725448601348255428417192261255736245703073832270444684962221683850510468862596757920434728581677686032576888061685511030934602259548858448122274280082326733042821908360166028933021064764628035351883189639098900590415976406422321798752322536895544714461211334119894581702844587116688258333610516952678940444319649744882849624961241914156856595207386947885267050736880668462995912975732980526154543165041875809611384066010696391552605344233005151940053711181927259024264489609511783573253158510396597938570108113229819921807470200344469467930311743880532200403380771581470387837142665465567156112895654262061326188538206852210548077628016834812328436585620725571253708558398901598290082976294534897145339805010535736462950742905226215659810229286923270617204579704411627818371125946792788133384474969041317133092206114111525346872141667602699060115913853604007002283246996992333496963153396135695540481237576988987651396850140341325548948651719991426282865023032981296956852156381742991664816825263924388615177970775499894266667615437178709935522044390222217141055949419930683275096093678288831321218978871795643676834878674204345960789569694977392013272330102960838025269192553630907163569275372724055873892486791737942582219465645980387261972715654665885393806902735586027810186642254128227782290462958363224368413642901769431037862778356700952619377912875588866215293319213551529365316597635391377324277367189057809884583901792467999931518950240405219076283759267230493184284971635080946429030739415130659360144959436743938728053511491216967971185893840506670757366180997061503167385186473034315362331517047939167581142773920238658761164562444772402912588625646809045997034127100076313334635506722037097742514724470579414010481053388084543645357679852229334447162007971854143653397547496666945196170829172147589597946660087820175442393875552317506305507293090906176269513151580685699971350889732100119213583172162080080564085837181184138126117006327979295261503741168839324353844087755975705465255577603533266407592935244814398386681913545864640818593444475835372152723027733742391511621186724112802437139306682186450362252910257097143322209976774900441683592115416768544074938028534906923660697338708602452268843512691711015380349149785782219728475779532604014793518521895133266282105940308419997879657219997074890730678591323823845658781645833479547078780877447540876586649694546733540581174505070847691677261570658235670345171569204359490435498568069987816493006271672813248040944937706761921872104196551203866104752100698040155055373778262468678567881131394215021778987021616540251730739091782371425446404965636036448038561353505214393953603533485938078688795973076792853914028213013419211209437963154420291588531549923268089590105032974605908071782922927702184712195532497384452811589001849944863388880050444205555799839177315817951231704937551676930027040057235661039505544725689703878983315704104953812120415599284461913056153073186495731732993040964717312776750457157929991534362270498969013782155859718906184220714579371194914390107746711877721116079306087198332053620045256097086998848648327590119502616503749106354535829574838011316939069033364634524828962029186580471425883600825070055464625917444905463923617860941433388970574663145921043518624464435262479888190763004743035091984707101366459381451841991868245743377124428137187002158486373231800575833780857790084615620178144620206463744550191986834885709061214159154541227106642580348498927467335983160827244711040138396712963047091944456587323400218075673566177744833954406204800424862554527779969568976790858075387942422953827483707780607070506815895713628849334011316297576923774502701493363201913605474684904612197625800038741619171440034146969391565874864582950452641561921021847845736306183113499624547152609748775701944999692316227480912968254653237610989385059195640506687037094513754048343388721768041713747311428521212273164580079523428736678887949011005156389957480530455808250800438807266426271676289223771419249664594735925565772906171100865726572645650201189934362986483479621968421743742116810210759230739207637429696205763775535853586768768217071374067435482768065977200988504191328854342603380961660489248205210819944931192188168107102296623428579448850083719094413862667807996046682321611777253129304723816419411788015244630722011108258476429639538175012756574857935620603093416880589737617642189968110189400849264875336825729660625653650613048170431813293275447458911311664818627161595498521246284033393867335770618391080391477786779825006771011787013060982297934376577178258474505061789417958648988537132967619307246700881542806234201520700884153123941696195631115344488990620256314713502531390189176290472301213911464527574732859901559391881751135925054119087826734597746514011177289178065995088812399127326710818707555800147879055454220918198035951327894870286259994137397800252885700837849659402932441042156591647389315618262705228909535847421225105587850580448938118737348380448160226224121654192190472067104861414994769061856715778151956110291104050301157545056265576428931865140886400924613880579839127207453268972352170728274735801804653893509244738377296180577197146773019926000479512710605332559333671963800461747529794728441397324990189490333354630131828768355609825129877031983259595239070034703000675199570631824432878045195979206292730573515599344492797112588431267182939932962721322635863412513091242187160217665876964047470741511842259155350056528079861208095935582061794929425472424053225414647230140380506913386316067542307352795180253850984560928643456365842137835550896033089822751500504021431900751825917756145209235735764161995113873741672329326279395787385159689255425404734372742474378539699957325351261037453758269265109042739446585768446743252287966885143145169992121338273998139877531851948897248055571490238675349463358719990646313877666775832445502757918386717425031472927625349217492696533230530158677009152720795541484297348102688505485811751986312525023506752871307307642913537414480876438632000194469029270184230882962704837241174870243227217647769062277326483888362457536414021565029140705119184137945115625175476615149617906415810264451744942925145035572604929727801886617488098672859801880515846743910662069247460063512074750088216716505692544350512292933144624668788091139142609586655474679321846715652937216601957771427009135112187365896378540476196118543233889799271929741203457627380900337539290141559651276071757126823359893979236043212979884834245481189255402414846705515242639637285873468269397116276869711518585627120774910840794849465179965723113870837114228561183813097313046795267534889651849621847028501306703499566214538364070791247121504998054727837719836845499123671694342812253093214479437216734888997747071314247967867740382341918571085085678261202287403581899840459194124597064602208556429185866642885411348097000475865568265591916032781593647051871606464708457999773292378633731284360606458701254475620875818731469723954066483525390951207094276769070112778684691850223393555375122996125764897037134556346711903646410115657577204154075142920338203746853849303053002072569507526137118126685124421837629240046694527858933949450324390120450326242920028594870097425186179893278898527803004250026051355405020545276963496103716841624585814168708089885868845373002149171495074363550468424977298187028955457557803232817854504367419966368012665302873595717475132382898259605280218528597690187742169268947860200079227597067695394963956225119090005085566093970168450295860179306294285476884863578174682876604715690078057375932777631158134866249193552962425138595707864743765095844918361173442700464361055006161906594638175165819692781463278369841489547235849956534813809435184827763716644715093410511731705304502897741620572039447951692818660301546367965918317908988426741337722813218025813095373171419109334909903154404388888938225510593094243528616071746184715103983192807653524344222457952219562015167729562812929052028848732610647329956924703133703037950018717180097872371263416767246861371527965521306814513271828380909305439069596426202425745666445871509567393581509869530334646481127633787101580998483768025740379796927108838520564845861990868039522408965192200143044113248117785077157767436058688602674475045445628769564439648872317604676473126328875807936483495049887078939568022468560725011953439622285645689700637274090160450784236373117928526916930000395344687083970846276416974602786964502472225926942372159149604209519550490211159953828782756781594683365356892538332625685813023519956194771793623023809709949879094122235776308768886710456875198999393680279329693453634902037065906051370709013507728703274167975185952387069561018914984805219562292370724966000213092041043679721192098713251553596956987473285018995749851256513542073106845594302390009239454899551515180724765551787849626633937183313834863978880391731460243886508712775011248568088246641702403495838776486929705713825585343753609629562313451201515637039250525897871190430662463504185274701694738279890701910503892399113258496287769249457953944386952667924576990874859403336506248215872939685679017065405222592375200208174706569207948184461523124277365585399481281922951192693160529393618784944914573027873284363339325485733083870302371376510825936723426715268034643384273653161332132386724242522521968467025028819011997034985055121998943694014576422222715312906547756217372125082656295649969011923101819187247832171234183309184923787538307720303816903604199662221808617803864177876329215670000034615708309727169900266778711051288657776939233213083837405560744096383920097430575356120135050885225918268805114038299795869463242101606368055043114012272627831245157484555292248457155914722904549759404381448165843723255905177841703067503934881916567489669070060889447519973591193753848220232155653047999019758231013438646923376978738312506972294073431002609711318881365218839996087244610690684213217257421028812469163323512101426864668263744367159375364684807510796895844997568443297302096465552186778461963720252926768311999730280397148424103137132432995488692901239470575706338376421776338564449275126042812329438309277342514217075977734006875923602661731035527049092554008522675270295957573169037104178725851977613194295361147788130184076558316535103504978525136623732966305849314053445380513903988033683239262710379186733308421101893859096285800615507279099771935505702479450137892971064310449823792890832119953004585939685132300708809764096840262161355835365357583172737362925860359662792681232416533993207711114584349155035353125093757486575321327029364393542588666681349446023228115393366765852832389003595104495529861089688719428347771600514675457444908864025263289980008037825922636916325057398717062290800810634959665432101878941907732540094223074772860221156625556392936804256359448086745319483003849663814327504967300073235578277032448429667760294225058477026599322883667333405297027839378509381316192774748718894742640255842323133058317002031633611033924266326001147684325856035526205107068455647283295679851134557042611942198267938167175364181191413251189382194109293687651105427569677324826438987960785017973461774845932119850685284521241124679933454977181514189838604789948621814549252238517615765226919003549170963176091080532425400033600800627539566542284546741776954817563218622000162341284649073621676761900148940588060357247919646097511167661339859612268665528014300631455877323813786325536814182451275818316992528380759764231241339913319344925228054323933203699231768603689948032087082467372551366553895237166580752930525695569838676361671157419139229792083989576699440575834291172519930617190474464553576501525923318560268353265461860749891019296618604014042928943753221713420282575652520991336242651842422653449665214503111686058784402738697981447447781119184573140137998689862841239997267542824043330328509956661280874631857619120888791079065209082915920027269992534440520445058729215735334660021734408557248313216811776595830396390591278482112507570624767431446634417120378352796648359112553882575827350964162395099713132250538156972798456680924460117970421927326322988662871022856714674663793898978289529660202501980418065384694530473265219689522550038035619737054329123174749916414185181533208181544221275111593398674515309624057833046821553068895514280211429139331998796688813523526678096969195691202093769625933637938599021778465740374380631455227031982262286434372922765510488590278610128215874114473868585588755003362815772942717083451943952328204821865075755417785371110707541677486468412361696670562055948236493786957657206921420696154740496250458775214729612866490888825489897878904264106064849235984989525883483082007481964131263383974505656099844588926514151471522892439881534854467277502831547090395715354610363798288381353078407107782093920808628862272690645314081033668750315012054541421977018440347681816931139736140976633781663920529220863941789223405265947669323571909165765652692211587737208537067904611912400305073603079133171266944065993607917055199685720306078735625143291003897733618244101026542381708472295760103587679204468407415177046070868661547449349753287171527377700203360236455098729982401613199923223405467755179667647046750772741844228853269447160729119843764013959061488603896123095943010405262722148085341113416904410387212606857589445834881265835235718716198436974715825289901786609191725337385810496630364072160779640083051624507999074190590292352517951960415229602773246048903500146529296971732699716839230856521009553045576877306930018365997934997972727210150692619402035376245113983060520656498441563532465936531424598537414737274542052931567051702704654819458801309563681428255036122648293730426571540433297576692243372043980533126053138224695423280063161943898052728381722289238927964637120046853569539841929948503746622203984535894400889540419086411331077607960572568590291986187660019597229679512676387510876051865866851554659080108850645895283927984868687676005360303923583556887299376788990850151459232601626310313317634687884978094826524586977186190014365783583267096366877687195310740221988782978403058335375107043080370386080589600644899678510712167413213562557791630915060706036502436962662790628661410002567501120812351253371074604353508499551609607738746956400584879554569898050388673862722459651799080565365824665829837361402395824007160097343564798959259217674177559609652995764436008905778986663701417757817082118358140744245972060076918051817201982467796823582827954195575856462604092872713512059796953828230081076416274306849363949954875896481665468590322789458613017520394757653209726342460632328552683607082220207639856519248373437501755854916869662662765469578735931957691909832632095610595291454321290497962627948629705431203785304254085547119770408522396799871375995413980373682037228802754720201869897294900562182045227321172410158137815090943008098638263477553435382574522290162676600277995466596670836187311816564803741523991263826748872667286168829056267847083191297981366527050742163755364249078810237653192914540153206418152631292889704237990532811768793516125721837798142329099260384953138268339569887214023794160220364000453148549600952454598424786057037924451695744142990577106066455414174988493345525726045935411384430237477173598199809010432723211400616438831201895066913761018692403662197378250605041854003555856022923657790238541948884065519119876119436500697793839237697429277437896927123807562021643312741320443439395359096781536277918581002349914744578927013437190192205009353039639171059342654734539527813497044201600867170425651500318963126210826526323132903559665019371520538231158674356745818588836237607846351104091519338943856481441131832231625619591095135508213924943819545343746673403043160651522431959344558572647084327862314849129850436578250987558357669515553493059648918369009298391322323976360671548929531392052736530496014335680777663109987942142015440342889192204601558422148382332613180330686954992917331598277709807565222818831377319254142972600474820673564490971411417870677818513655530810142426270926003465848360336084601617167849784598251852015798743274877658566286901590456199460914201116314061692103048959265176025002850369409477961213211641788211417192559820517760648035391564472169138260908076128976036384082443708864469464306887866629273875550032364398413306308426973655294249813386274540646689628098530753344193964730257554518867398748981992411423419539872047219623624401479037797417812068434037995114433357937429659352310102045840421487699605498250614634137548738439526245098418472480357870244614464340977290450689490734037344916768522915375303561899123622052320562140311059917721332019299593653160341113574414204503241170212045360497771249406542731477147337373530688208035519948987344979609560668739496626330203369313532788997032257751128730723575411835613286078150133224975071364073924114736929454760859814964176844812874997121464194918077529968417278208275958746319308964785679830994100117634426227532509159712638691412283542376162653438280189012351978874310714064887406819165816824096314651668813145148459419827412423818848072742413012652109512587083961101697894697139310374106889164363987408922367292856701163561343475517453751794343620787257895442112864743389499034135898417362920169360862160513188218343900354243555738137823100779016486979856730561806513075270333302792610635812720685825171968268591632882048117004657012660845296547103217360458629362145129555516187998737764947446864256684517259030515889348092163144854401456104716930719691682201174032740779361253654885799393452446118594745954577327262440693967275371249595400740221427039501519486511769671726055855043705573185743024288206166620662068742679463281617538370242677312065556134747421953540334928105759748052887328782142455428955377482726904884543180412033119870362080605037822276522239947598477564268387839881713562863464051021878941742239285528109818151448052171481645373226257968446558474670864608284207826805592993215571750536540946344538397942844162159611680230993245158275191824055985623319635831129975141796718684229851611851443554010811280681002495084623878858594397551480417733772855785015520617514553590433989079588126879341769497228051791497081044252050087428806443736213499828508484482840025616827750791764766668959785291051860361879941614708501433984305411348200338131868310759308600301026676520460824169432793869480951788422372361420861979205854882584253870338423773519654807357348224716874402321976385475411979520543035629572708091940759681320074504669882474140243619771717742735082327316058661096939069333346004386525643602243295024049001828697902753298827674210011656544951267250679339686728206885816235521799348609044984946656384719849230683409676119588710804728038709355214643976279747756670208850914606494435930496347719681603272135482465401989071974994460125756886103489033612556041355984388207672523893597701778174593525027359264361544134412731718225674550313170400169277381024579081166049455908844039434723547435264068035683295558890539097891044879482472740216021216998511595369111294236599051934562744531283591719135564592727845277927246522150516731373003082161706722956783730903986893301425677429995285906632874330480664637017504972329590849488559888046016973029746891219608327846948111888697476229719952792262025523626873010698821347692137848122220545760674478263080501116198625157871798720653178647780985555534728121951631520236046327114536948810695495638439193483069251365805090897022253783358946746097274752442627368438375050162898451925098612263368517226841110773925191533919073746214936479959040584487774759939449213490185207415542139177128063593726546290158186186042814537958929170895892462744361604336008551529224490629901157195186709204559148705708993985998598240521929434779737704064511412347494925479692972787016110121758971723419174295192103193390253067973286459009911554076983764773832524782862983160119813183963266211229427696530542485792848582222305497926687779846636446850949913432311939535691615803454712084327189389349732743934474254445480097657707107493451505330298688006661567536639105098688404081624272241123769824020656513905275621714365238658700079481692995862221633481261051919244742681677524689901327167593529416461228070125766156909980736651760496502694318445029604628356696934537890818432753117984452791669779095796192045945312838759252635038054530188252531666391612120809990076868200706830415050373454330820124210207043983627417376764630592699108916846463153283885650727857821852605336903669540975743072967971349164810394563200642539415142825175664791942825210176286553447823682768377863140102065479624803775843117668542321615403249474758743270560976556524361862720392083734339175517115481826360923248561458430607006711223077723975690942920346172669077836318718694887733334183078598571634254389643303606489504285378928465915081022804719273228284675092431446859963308806711206291925125396302961806790418150025998557139774294521781239307837301933178386916200002884424886324613310818072944741051772119388573905042549680910393279871231152755770693184333999823802294422512896972380117867706422098608077233710216248621608987269628305837820658501224364789942302307407682502260744623486888813186857617794099956081674613388711812297525447903726766622252991183692953362477615226732190334048170673140403938611359709670050235770653668759353316744068371616535038711819657465513828315994120901293748203053697551970860916419306768314907971993730407064679020043176546135347307231336329595819159304464817493677800623647501200641653865964224390390595563936756709672921170877242427608700524224686345072018709696371647467620174277245900757442669208968876393849762511841917078826860455258999110904190110421425849549643358864764262828436189940534438660648817956062021637649126335410232254639446018212775943715342427684167235144384646526250884906359941183558609525100440177858589304743660749802808904726460378853689779809277522571507453351669317311778307825573513986296438834363466766018892936293772649722743163784441139922148641162409276602844826058534267180484856623028588035480220214481131830295147337021431437317608269536783847028086449709309814706368138141269557327965933035647336353446375589632403804756408120446474551297943164322921812255452944474649146823186326038297860828725030362831868950790071442468672197354619487202983448833014447143414699676021380986527009320525208529701596755951948610995927262300086063643841676077754693963520925146305813262763187801235070790829058569060711084106229145083471352747490312246424073232449695789617595173282527916826709390380452472795187422908266708512327000682831580240259705072238925577171196104988527829619796473493534952043976816908666971133639643752832203723926268692280148418898192562103521990248054993854827277965340863267544712517938830309619310966118271646337784294642145919550227949840631780340649407477211391698532901138994351352287871745825706814203267312982095313077132795113824136625598112278220686815917069420427834775849426885718495627219413152160373423062515168420439116313048314962341451905090528730224942848324197025599136855776505071999944377884714804259757700924358925591883952845933073953508108032596937151775797407031693231515932988631577110593027190309392443236302749243502961047571173546996930621277569623455667546128603445415234356670534716557397820383983315507956938636392391371028416715373952749245351246098046800662998153549003531700735848192661047138854190328806212552339428431967975239779507390684447251552983204607828680291955718698784289480468729594044544142088504232091523106909513872040297117068126202653869818024316468312497969501460102264815343154120466486986784532481984210039919690127033923175182958958195361627600011419328544201262567482554862643766933574409912154390696317402811339841438445764139362637960662864371442328509568157288597638722846965759571868955532438554229829407393260958336238444189444809318914439250817263231475008864450947321794984142855213053089758717025474795058572129851554855714680256634209705767687327013597903883246048048227127434430628790706981425952466995107319782106902452733727566598581530891286711637051312503100387091245075383497386063795546265755220408979108185802882153761024540941018745939279320083463121967742534037025951755973825625555921690176220434415571823636361449075137125506980840700433908921705362567824551151447398498465518736899348102706778315911697121695787905929299748289779718476160839384722173915798017349134560036838280094003405557040080477754721130456723650658181230864190798700839261240682056131458871301667395363830141885899669021445448536005407231297852471461394270563578251822371200152536284566696167360293887355924663420904862490282397901846807139399313893821256940259209796885500210030331897305436271817463681828264550004051394136048947623729858050802742586992520514535553620218294935988172392104406679614939591972897112683366504606214674115279035742089524646359976169092122960936040455385766494958080868085012691297894900261611572561184205452635039336834234051407865021889714780218634687453317747197997398613389063558281085901361464079212483080090137190537651466438085191792754435356648826389845342327080971431196183095326541651762680400932657886471518907258728629493334722671709870890519546734173588255169139637951251243506904932830275203265436334650679102664433423462779823597434644693557443485666173698729731572773374566523040757087678514738344244409834842397395423048134010374170128013524552695967618300391342670143058432908355178556324773059253925460122119604887675275904886706296902872199058815961488629114782512444005282862529135282203675222341860101724100639458763665156059168329005842782149157889179264454011768748065277853206548197198029289581299926529305202719453097105825664287130472449517798194442560668740918745781630101041325844787546651117914364896852107886065636587803894758185474938072891813265716788738827396770092101483697308895521484565775939888572791254338461801424151026216796519287519468695543842406664462030449469062994842054726926584979112175512574029759649780187870957120543475528799167493321614524075929415261150218360670370971470353753538563837969080501174870933928687267872781362971914431457734836720300886092332651773173688412474914048357770464948907487514103561876960080276855512651712093667934474702207587671654381949292602213393818681068323287231565274993487748343748230442751880498823694894263098162574384757313754552119257185754869134835959617642486127814015798804915909364237954252036460430622435291380695263931468394816394812905123579744690539751071662589013522136911198887842214855891609319720345385142283555734590715331714394128542009590338418843485903057212895159330200802802534679375492140179299119419214940551814013547771053324701424379842078655671712242550456784390440381403317646559644079435442358660699196139312488078662672701936224827805127660623335563544689085541653896033607603692961797151052224830668080028535440888277465747269518665413484849933577709321535678199019758510242962256060616463688872032939000421632611876461249181603478471479430011718670213132113864351651847014585973680768913872469176907463093067117995587447911637816319273834187002262684903703376289814833930377964438122445003144994245023519028698265069949264286134017676532452127008636905878674188861598047042373235426847016135480665827269932099689615281752381675524335291018638195256664975714713490707022170165365882407741140825777820390735163877794222740358686919737980934715683314123230348820531218748404470491268450767329572798102013569298021928130261061214802827855509676748394463241006073012970281843755116901523356480502024678249473982009122806856842734286631143842062931509051948301961452569214566268129425765026095466120367650685232695347461907228853540394877299461423171510491812843903503724482109302089030689450661596694114952448043167575641558762722199932419508072396345069051905134041684379037345739078944125057925864906378604793790913327458171122493305944266648413483488914470863642315852902875827342350737397005029097701931172951346189252862944243715811398325017677182633330984079870222984680215314710464672773598115817241014904738179804523711637933078030866024515473917625597929498612584014109587278101875285969634275937450500974496036731486943867004713660689303241799366119571562829000514420033008342494472012240566316962034310118755136930612940877752731159223293117502497789317378042683437164655883586102172706164052249683579263358988729599542597243211827745538417325670397904756999010728584686852538733123971524114602951601452696783066235159122025620797224787472697694685284446439999403090559875488298651063849709848763087841662071340288876730907739089853305122992584564891883343549357881694812804128757624653896918071718475297120340682435568426266185099947251992848967310871239323138037980477581384165803148228861814926550383951678170486695262798232861837091507610255958164417190715447990934150721428836853948880665384095565610619858146295669562860570732139540401984755056866712537389109869823644536873346085345018017988703732592718713214689482900772467376651763829882624914012640542626559389108946687780451543171291358432179709279164642576818297344930836128525321702931443148636952595465096305424902757578827662706564065509104563881088996144396468221240983643437406643244716746379281789326897775927472134691315868569768533601926878439797712578693035387264521441445033007895921188455004103304217269244300335174486661786115307757919762909125899428825073876258441829955863538913807563031274555942414578455903718171479395620323386878879489564204255084759742941097786283850708959844383995476176987452982442947008599325111079017301795925119290478895658802470070364034447747025167452271224830842148187433883148476568749451229341833782433116781090830398886981229783450065271895415751844089877701072654111907648075127559952017697959738513327740667548358660548503666367342742881469737889633913502025673719495511737285947720313929669802260568238280651682397673063977975227098956044715584327318933186724710964470228404371938401564767861733317218647364380382718272567171568948910068920812339805463122764130447847651198544662061734649032772556601318467095239341653523165301914529598205835724609558739437407797388971797164225967635089106327870154758072918403561725317121790247211966208557478076195269616932338579436840897665677082509999372281233356498734521308770853422546367502009677584019728605058743147523117900301118842460811658919122164936387825983779313977306317910726618003719832784971408493526749320929316597179119009571531628759805153194033464788349048127654039582349627434598106257482190355364529141261544634732429161891860526775324978291203392419946661973540513071481742846045205534914272516396332398873341657032830878849427809651897902045514298158308613672224678810110165664532854663161476639827231227939371003845540272771044809967595424258561985080710667231473303209802173230825269239103983389293689783886339951360790115822794228397270779756162700453234785754110501760879663409370578333240896390738934584064443224526327627080318392950051201774558439143782956390441715619821694446371039780830111945380233670410241414768451150038463531666924923082190539474551596292346028198128767520031128158297068002641571180600865060643094074871779295303506208626876551281046877952461565510024065808042370946430685965560133756865070222570721724429968025212849065012020166497418200202943204245055246903699455445704327585444810188850188587396811708256391979493514210912204254515996059180158787207412728703336847529921983430205446199237926900012632563157179226796970575843488241143605538871231462289105768360077493520079293658226296723939401870194966961136408435938926833443095468167604732432721510469600644539430013916748155826213574141466279165534728687139892770921762540556565615124960987462100681617246634948225910712714612592670553624035500491835357101294214016298036989206053922604772829202933397120287057366903034531352562896772027071659109451085140405749777154668500295575905674640684367272031489942929863258319239138260678156008893214962529291445413077384669506669737337274935695584720943125926807149429370156063608360245779650770077964742440421979364837457005187775339393872220376242401590354905387764368373782111346400224681245981652306088589862211224455086920761926600861185388185089290556482708783103513885947339618037659430848973086681314469125947988000812170932548158330322123622780404851304196489059853284779969650737726756597394771191079158289388022934885690910323899552465965361281040995765480258495833494386565264530144537692533944186715763336557144886076634558063772823332258939366444057155103612287633721216989072973728088485054252473303215292587780954754817565315860968461846977154624370190040748417992666030445360179774971905856427162806735783553241630446532865636799751492317890184830112262928319541030970973129211704512357609512395913623301754802497283397454890178081770213474454575901281167163597458577527274323647375015251608614100964963843666964480763099838751179025897410921425373879202422721866819130722562116908908872028921342253927028410078878557779443052888372826423382914789055752353298863726843012457278830459232996063757830914613533815985330687046376562172864474137918976383635573728557807842845883526828037287962361951487641985008896124559533036265785780790888628441591996738932143807451832129112876299154014732904416552857578680173014891929324123609225732086731976980620424296020132377067282627345731540590878825045497622203393229559019062723505557215305686544228806100576142879349612338347379545235676172876534430111350379696997968296585880455878159611002826975365977200711404880559497184057918469609073836456344517125628246596127933142482663231056263158832494108698969687843090392356477438861432473795759475531003077560014335395607762830855517579814762429863286947222071730053192370244328057435067322374414505829247366730429020327179406289960568442353008908417154815627765981396146656369923275839727646021020089990373792135712508075402710279379693080849154558570200566556549044617409215884698762329523880918899190625781673883236667613167268977414435589547884126530038266180728792627944878523092360765665801317592270931377205995854614091659087458104337918778158271991007961938531165209657334814206379333633593390358781979720490245126732382869433519044769179473291538975709141932586099685969516506968108943826669642852503635402512848693417156244298276277325721235138707554214815466542028299672258938407400065988127456923278150219234876778869114907314954936102665635383299643883406646878369275944291494469476312708342355898950380011009460146425734179562694141013837895135912495519664552331609986348744308704094870749253198891173638016489532299921403744035128445058929759382855521881013363601914700133851678896276928183641913759827301291855213674223757826817571256658950114239602792190539988825964552924950770010270231089739718001522317687299658120963298596326669082642891457762707185676514099601862510994904868026586590607233625798286330263586569885565955372415379007406703693925816865127295195105427932106044612359400272214370433887753092700829249659812998760421554446723687229678271441687016126394012751919076025848415648980634847018994953058415550901920518790417965355786339199054676393744380029475528596539249748096046380761020820680521250823914889898913234293731638022775110341427204904214364162590483109972804795072873919329397603022675906610109043015349794194721076987170927010000776442533321623472293259114753403625094724223726031612185604438768446943776236659154955137918835913863747052389177220919430565527095588786733276176638732662793084339110488268106003973971703610420943383274835959951583897929872831959887331098993585844768679187441212513630843302711161497982734860724945209180818398154263194701138854682774737448524669326113781849842188635719178275500320859036685318201064325388183714114614143978862537097346672538722433292339411405624554294805726211512398090683461535929215406700696170607954570884391032333779372643588267074547804660221007475071973027536799451776415196700642821298186631022077690516549056940283465396587953632057492844388006907423858006365624938289547232267059435485713719025654363773615279385433154615192881960176563942373481844796016741417756246049543283062479774098547580237862690928007062118070317481549361711992920918373477637628883751521699380735443594250811706615603112283572155902466553502723666658041607223979219358218671754841570131279018607440294217102035380053100733406997153666700364785214630757979424793468349749847732084771055854266636369852365624561338177424337426589199934451467374210676174097278711010502070401201565336556438823310144579668264655316407330871030968607709373012596123002734259619659441832283222677047448113642691107583155861727802542220838778127735879325455908051461630806368643100544163259314049546567400477902653787206784070224871468525811908906139191571522469928868195732300014483176751255208802858696616622215031174209492614309097558287399207058085692790701024908784110665781784662347644214370911197279433323489237838536110908729944968215463904457483768080319238894032486562766223400133109024940381683599280981274219246157000089490514070228873057033044424287435793627511037041129034936399720378623271562266664038206947310402136510166935218888244365128330290497823065965877970579022411484167101069765465778313787655443937221215316846418938808168839715487856968190336392468296604812361367859641039487273744023755406472239243972085557237286956668837890091630655150547671939865265545461137673888601490129980882349339433968006800189355212659617778773985843216890122937098712189116094080298257072057770682684609491714770364298969337910463098350217296003046215576018603885481089075572179660563476251245280578246169080710065844205163850297391893386648888894429068104984936212795264866131554823292191877897608158836332754376829868776079560901725489538568061234128650034840366023136360506971285314512926264520433102948586595218946417527660795037825857950150324936694681742216438177596890530369073461192404417731840505988597860651743455429492881864533560493283153763976537386358241039488022627012335113559005176083587237407648415702414007463708258424566884324241914264422430114499802600527292545449456769394394457520506996858080179210630821789870765411699662122216244299208964848269268165250531206523253133565650014540402943004443318802335666575919443463365986065111545767798654319918825579293968074790939164513143664238979243708687896357621109157075942911764183904670201074922326579764905520779846473349901851375754948257191245837533145409017291166657901539426758440792954681654466860506938590935749576212876007139623533014714566285201428812709424837291471787689901319480536311941953063323982980835031183414203059512665944676786946975366871404213076540779242909719338534893577415492017398486906470255982297777061564040972702523519168927083565735955314851042605342729368928072477116162811514119160022319628342707689019131849733296780594873170950362540498119404256543764226892876045987464363748331049845608309509566027817578969797745147763690895449962035620204800715253892547748454962255361288514066281150494759190655073137425573739449540289276676586456658731451671223384734290296413567822190558513153831852802707520245180298992373473412442962554251537226961027897061473479810509612526331441140666778105418135035372813568204167690971660365719965963205437625960627137685646126415450502435914094170401774535483659558601787292396246721861102490271415623643471771710611330234482307803759993883325163213478634469563134448471046580639708683132741110376454684149078823367485021654285015454459217371176852711363356295669361245318219324665061339364737432072848351835801436234718915128904774297139244499497153113837129055663324170142593674761341415925014221713140248342732335037902477266559583222792742325759995877630349026720619160599441724486436528195577608949056286887542711239970748627187840052729996370810783406137078510765057584793960049881320725567432353338248982964602011218743980676370324231852541097522361328598447775767445920227727215778633151085343274598743101222830678598056642550606517651689406754587701154856802979247635684326270057607353427760400251776911731831009186591987628144116585862907823220570605837999350484023088543148295017494983384819323800996775467379057460504767135474191410200673724598783182346120688686447287244251085056425406168188773621420892934946380520249960446793849229307784557496386845012934574329551185942474243827244965612599295886766634902669882516187287986900186903250032258322173586279878935444339484176672027142334159520901922542207142714226776629820208186454047162425416467194453096754308189988683693541963612646190676607607869437471955951577998407942636283352608404324704169019723332388474801035284201396488536793747388014084129569023293050533155373912665642540189694049814680637613853636777923592575990554057257848704238223572090482644730455497577167148900099153749702666206177494343068490024707332164148494628754865584982484353643092648705025754903994525825095488920977817823348290903899758889417301707055853911553679901747216065438617253207497001797173854789596450573718343951613420429713368621333065512932040608771091667942331263926035066896576796776934670840097849985972470694350925036817711103597486657926921941432784892025885192221600824582836105514851591736035291726247513794194910687240041948993523180429367163396916068635897333178718382157623193082748390685188464993269150246748781885592823823608106258384623319897757557893093606415595389686703224363759454700001236524115515789264738920102607467334404937123227900986092134136270345139943014551038228287097819819028634442775598539240325030600990357045754202670389647536103892622701383455369362949595268053971885248873592737406049580647764782175432615693076285481723605368289382835088719924749417512115786520617524060073476726646821279112859515578070225935088419769001498095925574992876651552929380571155272711103182768978865650397068536263357896289677244756625057542039452064578360530485105200010782152718350414385310692679475503944686867823711897271473501704173606121796247548411074384688164886740153179927967081258544270763001335835421993230528541529932870780694949169336788335699932301759868987992798150534911387033068507230278572816162036196585565159463293763099742889893830368155083900516707024753275362861360356747193597003524032580087831227261386617841650454117476434622594871951335522074124626432717302769154601801862854646564991104199307019946507305068053038274519333212236801495206843340463286135414495912618095167458404436414000206188175114575824763601922390585643103402464984924548975904696438282187896353658837253582581325841171558615721001469403691554357246490031517120752814064352632085013663513366549427497277739736726581798856126552834939449631648565855882217964044904499096113872681923508205121053015576141148910489084061106016547546911691329303944171144589836209147359861511798700647822347369238613332698066922171950397831017379693067012930755584062204897978032735083193404665990366163190501068460243244445962789174764236930174518383378552540510472835125507591869107633909158961520903473154281117986697667242993197965663379173625399825425353291971756739698779367942358503291834637064384864008162984875207467607832895676102434979596479440613464979574355675291298362516900685571636905976107569943702898438450094961961853634985641832770970702341616063286132819651390104226821314349785748804566853810598242264936682209918879235814497553323378473398877243451411287360997830568033364048604386808352034113140010912478952190903110179120706220650492656434395992859570493986380872724185778674267233822200589907951188232908109738838612211798125821963015077964900225853186002158054032386019100565881006689863612450398607105496334527352867529252261459691760510861828529655931535601744887005384358635303250054051745390953614928893207936034032815558206335676488607380938902975523674452116645822352635470611281860873799043580899482096725438460179362790652509121033636310156267745587221905840386116610674874652476280416790617539672686371951875723969808205069836639308985487966285971481314702570396417883178380513338960793324005983912000040802375474901956559015176091069210668414933297131252119191246537148727748141980958785651513101148240532166624179697594553966450662989354967187589865180990364395338566202296211592524546043826237561938179428166819778228018173012644823490859156630605395437924925334133771061703430792755904365738617998938609686436108075572783308384674779231538449401598810258750090950249549438524482324295974952182048369330545173904951837895429503476960782195194674092758377458778727116576339485946350464174564758486083093492625385996975451367846512423499035326872945579989110849842215723621200844183387252724731176357167384883825848764675596614679185296840165005603542130092920146016825582392778862563046434311942855923844692696548606660931755816840033219803835662886576188258351586112651618558273637870860621491339523996746574519286323850496632323302773790726199641723371193548699336620168665630580069765496017883480476912665719966812498605527721249449969299734684731143952336051237264853636029961864357673899615260644412397161980336893281377878925696987168193469901087343434366129429588410419625642593161415538210622048881573920463950651961037306789968290632477351711707088316046123257806488323351876524381736711663657027631372745312612500769844501229895956934945971727901389194385258194693432377334625219958429524300718781515966664366210057020660314444228533745445490194926932271904805198807525785764063487110179454909716512712835934103438412845797967067955810804591883250994731155360785648437753601089680531489604387797941204369030775904418057409852772114735585173087785331305891366746676522522306247129713404949192979472498102294322298025773500860016488854789800479212187915779306510187700366961714417108276348084243321599654893407006441747471718947266248635940324378053059580356603734184742244065239107693115076590453422610465652128858938068577948720647990405546710026591595738164050230454230500210020541886723310834568687451320383219087076080747472355230063410689204031879164233233679437718927657489216176521526428176083145409437477649765404691119346525757230130475981680528444088583905704407928508428171314841258019244482514571043225524936038151017125424500601222946582301924093465636722772414011677106329963260414784906340382548804703640042117974311207343758180229278719755473848414439473283487794398599962260737374383035203376082577023738858559871582221942910964948051458019517406367910549561273358683481447906305404968671035855253405616561769371033090003119719190390912013960467680548311229192155586876046390461933161912893210751766512210905231042130003706610440629970303842900039599641046064360031953449252529535885321146279899603565336376206770931590106663050271012878064319612289481834458818485849683008720285567497371901666104799782394505785594428011426627472655285484104538984288772482156106959841450837911057515883045915817533951751943120951737879188907434174021779903515302117666414861285634482422662020495330770796527728857402641593246483712856099157228151344909748734240536363266858382439508097903086044798974593677139793665432691211349803181766416398723863737927437455434691158900443178512447490814755325559692371672021097014169165753319466287817462859497395928177485877108302204920828337747294333573155856725983319765391896538279263427838986018995031509133016571144448091665158532675817120118198546524065445408772558948561786181229195876469043585073612689480876446395884730621194380808964476086157679689228468648574887970132256785414628447302899175913405482515314117966364119402289545072563095443834453465317019599457412229741428866274494829813108383556979217310790546028150945109931734114820520149195686116548588310887979497035616402268956455731558007479055138689093991154981518584916354126952569928358043696299394493447339226521022727651840903172878696575164171737733998532785520431063367214619492293438084528368571906282774880198211196281707855337468945517690509333772174904271281221563962243189294991495593256525443337884406358759097340400776560488258202755600504647957714849900153031727090208586633184649042494025669010298716820326134802936078240051928187060272019881810860687444787496233264471422339818833468361076787274430131851582765398888804777916947073311395680327169099440424082333171500291803741946091911029644114746093699377768642186153504624876901621124021005595636566715942572387452831195736510421996577863312980370724906036482746571828395184392339866669129238421197666491111759030622618807973500172948477008651441663505963353660960292276934975312200645174136818129438908867643580462935102402049423860844521257713842149160800230982194997182111296027071046221281450892230526261564031725930472473295890508392010032083095012059196568426339507967992360232975474078118497098541120876434743044477045750545372747217497091073967310753540202018845123216565788521831060969450527036214145368820301984205888256200661342869210452478212442060251684159524404578855173911641710196472188409370619678972249985901256298918371146714371512894591171268107480091067594654406271980807692336411190924472556188578385538177196980351170175200847704346285958320754099965320826273292099895539670439496305658729205588249047444249786008471828296739379074691763957170308596455168373590936152069432480074044527610738356672556455222487486482058571251520781569785766904910953709038421902588273119685463383973736372251482683575618460360643646298116733884936437096640121599639321193129201649284086146887101796001735192340771596689006936544816173981136052437211743522605062003431383758009857759878526751956011053097172395052865917443523730609132030056553491613477339809531772575053673870959833885561369527792279586603396611405752233934922183528585781961625425370038621339129330815993932353366767377015091393385323793843069700937147220306011530658473435090209267679871263159088185168540301850613863911623663725982599258941098240138684946162056377312028559853283489073454701462218531919294447396902325734513944528854757975646752372435114635769815156086189495042492421287007850927721624223555079670075850650082983142337966914558452743435749904731275190440285405393315611316775827772828160380775033058464600572398410676063312100160697869441754024777282919720596671895632390199833696812336100112788981313398301500147641204062093820105899156200738369932931042327378807984868107163928383216254600078944884908202992351004233126297577888838659637984265337705119057730039824634254947789803998524158206671881530071753235773780270282190418236922625571701849486228599109877462862943408255597491982180999300942961675832785135618274969520252736969668246810830590251220952631367529971336148549231608760221018115819845655170969499112501471895330412035110031765871434986149224151231550474147656511092241734892394041159381487574777544723475448733043432566420829191417711821383201210530257975737149100016787469953565945135556197751424262741549513994931437776212492969372640078363164652827907999370811028015524486261498581428210242584502824946909144973427046473995492041518839563025383434650690983378388393052538249295746622965151622896527802794796092399142470362434016225639180053496669890372500310290929430634447519347485000540232723528495970023543727081491476196649829737629546053912486220970632477354092281224095007939170566550071410155186494532498087248013081728068331587748154436649843241009536513568349498790699313345453771925047965635803672731264107991410527422684217538078298637208819790755862949835046553578149589891590773310689425028250821301793608378933256404138564225469628599820784106801091668446377520979281377745569079678250717525571846734310011798410311318123981288744310147591978330982610651049512492721372950813579671668802948009788907998764855581271242493302985667713911065901306582817364307042176503488139956058363619022067214210933985157385069967019540689465064924747264411526189234370847040688525353826271581526940061641471863311589371245401878617543988825525211740956329299967493326866978018202036731003046765570487706485335962604652040079700556572944867358400180464568575042267935783886188191926676526771483253512076584760263203473122271479977698157958807574914159942009962159746191596534712576008090821951582082485613018203959217979067629697612222172246573827293123700154164522083673302225399606108132277594794338807893909345669582675625796878566112681931824353405430253120938226846779782198342625887058627521954759407523302787042143922095922529905375385938000145852991913534646049215454090781937158301382098331933205803461269774266935500249818859936988120427990131391452850900706280221254777654857642344187382610778219836188732035109267696736540777298163570437375089398758563826318295956738697435910936389846417458393950148877044516721175721575751814134186323595586436854932495951128728558356299626341250822825075448164632657925112903420124226826461912385221109610664895335456581003221293932057782993059912973877412791046490004550181355863687089682708806345274342518514757593797301796834228866198772131215602632811039261044273396523458355163543251077278059839644886986296314595077189545387489149682114327213695386572130674325181738611673844171267559159420767045571267015063192524946960095154906638767942046638743160674140050512396072744744374523710349278855708196201502179562485402760221840684984355207558344047731655102847964996168947734049629941862185731170674720811743633633334699574466694407746564115317243814262261031950868743814643386898660952640245620343771572649439721181654267280015388152893310307782068957507772688063997154244500088214009276817172804829087298317022411317300567601164708674361527659223976754719705265519895860360077162422244305670784166987866008731638423802656506160059079888843385980182199519140970374917942719157573744259394596802045546523658174126958050226415668656550038741667523990570630925368805754605172972053634780236542616347818003479068580446769949263096361970416338063536212579804076457932104336175104343327572983015026762273570516858865391197600540558073200939530491188400759834739007763614931728758598024355913218459446775594685209434787755116984757247311205479802980599736358301360051420061611474602873008309109803804439616472796316788324113075578922383547955340947857330352664448526689974446719969867966438264995312946307917148246131496346330073191232429977281425141260078071742094932579776851844754965797916809038561253619431960881221651001643852847940788350376630241454036153851200214874688127633281654504135441378556141974872932934113758170247673283378158645868165998225253312408153495715543123850377783080129255832688489997088044534269083508668349799515914136193370302699015764093363580899034924164072861515893487394377629967292422926904564414866682978007976260678298809257286728382048241387607767428027057448441119848817826097223006618748245356308116866682818544175528265484938722408938599902092019760693296842908640319725049275396221192042053328641842126247709194283637533988622354026004999055255392137496181939478183796100945855752614328119296858292901516041140267594756387972674839824753776908024149610750502655890103777371881416665951090108381906592712697554447600386529538132729720251166498009477212435734981842919693244858942415892943698637390389112862803281946728127714283964223930556884713978416325111934765574652944327371327028659975113243910075720690423455367502668394543376770886960473726914052389480647687171047173510490837643826793253908250070165441294609784327850558906002887162955524310774969603689604626784639020417473513679106843294345588791519239604069112533783405749507096528278946596981431896247032546227186488197852376273635252890038088185846623860244188353341383141264779573090801060273114864048883970713651511416942743284354874266384540489433471964260746101919319771774329017707371537952571791175663414176562985204572211585706797571872550613317767541173159947179751502698232271293148354276822466377366848108225578409930573223838497115251138291644585854652609556032052486693545931899045402153284594506019067562231987160763143456505985261091137852095921316788129454631246555775364617345928804242780895042983350833500225948552998639017106372951891704318633606975961443248445722826622020763402713673406604134241005599870642248746917736238328049050515386016024255110758974414609603276271752632332806065025202328005224466785411769529536077426957395108637355726960321999173680854885173109794971905469931624423446725728057047190194488092491097411528307427206682552027151237698243362216258168378357381361836370464707824990306907388021880375158646178965194740664038217660860467257384885379774267412210854588467427430437275585975392742649765714830321568336362924634906335782251812352964905336341313896378498383115185831794669143507676808388667967895874182628885591134144156879517188441533845312948705977368038793266594986003368074655886187619431869075766229298427484127351638687093078840906972843473302657594921025537912861415216422208635829923795217920543051215913318274693855298281141153481000488967710474217277700218786651778024987680780358451232392096136077851094646486916554783914413920635840471128264425636360171859303874250004244368347163571145234562820766183256452027104106624332957544669898119480024359707759958302470279269370757551735697580318671852717556082639770692683927504484853555649524703022970217285195727484098263260800576288929390978907685570199427090656126050847207966052128822080886042605653181662501683361594799376759002395135373160365290873211633612511280734180033109972375258347372821416561942672660701926351625564166427503902360571477662440263183880855695487156547668111593897643028009583619705851650650033500547392698899853776987546628141483388326504852816615899120315818077083423396457634421336667327797401483888798635483192403503774366887895884022478806316680562164897608599964824829420321241567819674681955609869317867161607166952091727922551358667321034643488556285769111473444375787456708866708964557762486083816740754155109918349838926538922519700092233380549800184040384625559800171604018308533936683754939012593898109994878238598649548818219600262003247611132816240184457748860545789466692537917097701383089610654117935677080805708695638782558134580944853579074067311803133642638501622967997200454860766869318983003834093173177404944657526813645789180795083657234548155311200913461408090117690121441621105237294822658837487270430752499660840969166537539108057784052060375573500621644233146356677512108384613723969232058797108741751485648604207218203148120393712004161703413608199941751653828972896473933807969652597304266954912671274330239297724614118956936395040718145272655785407014561645092367115808032884245921225775872757240075601881240532919893597191569289841682070532972171631315342025058311225331713249299594829943196250494229915531813087906379300099107458067359245075533289408782288340485621038812310020725343413910550816777867543469369189214383703866261454966679610991269883886590591615390019548253148744916268307098835322283913728356453634897663472326657588157741527995969574097725892145873949458268753904879839954807323236519130319964051623480518156039499543336268396050422714861564118118782872207265556492502916681895176371464839029116891362968741283769063738059389674175892675568192011793764432166031900150098654634253363069398372120783497779321225773051623599720880445946560658039176830617121095569634732459592790086556952729837087706210166483504291930509445908608129495601224884842248206463094011335190700387203371703082309912455835240326775472828943850086172135830249095898525573632869488791721638000302418614533353166976584790700793454843636182003949340453969479777461867551335318947653687874185708289327861858764119060361194977014079677021068041278546888836744310280851478836784989145083843724546417882198835682381753523234106167151750949120551961141929652400812665001877636789451099273751101116545416529462295427944817943047701194465993507225004951400269308819350301856415263770674885492895321592023984765090916701856091531585381274681386339399930011406826811858331870470843023411466389983638072382296491208542478129029158149206424675258012387856895423479362582139615534067583220043964709560953832098858895739499387073729619374840605633593601770378250364131199684081077036935893215335082149057893644401967149800346257684903358930639770062929019219655308627075293687358591473627562587395936291186237439258214936080878171730105528087624165724534973670240966713484037700942350338749978482667191040965537574326859714332971483571755786678746062244866744682596925211961037757657089161777334593243493767050540724993212196280647266001437161150520393962413333820386000592110183103955148639331113207976976567156179065231341784287431742523840600389673447319646502277415738391964246733503967375220322880786857556318635919405535789797682687936754632986220391412719120944046752147929000905761899566809960240939408283908550143880756074855472493272458875734601089501006303890931925472662745614652078585532587720012334350691672619645180008261739009289461768069930699800770450842382886070959445907103571471486882608566536008423149001132954043448715771572855815830382784963593224815226372841561252069685460284277189604443247767616614660265553421455551124460138887003124667653158359491166301730805136142090717043840517463150124509614202390158395141162632175164558920021220677144327914345219389513990529266217942190332901390526390358955174674525437565294449627147807397750991100123671251086383637479562460248266720617376783032569757648270898505316313006552914704419429970305734325236144846493379178572117213195072123269421963710513606238804156193316513637591202159016652996955945262555074521361772832655649490228061726239528943831510985469323109338426529932840142093602956307106064325163954896604962347867450231777468237565095713679251391021374572776430096184836814407161266851433566195445367547964744962727445315966577692903318229900020482914367295787092044965092450356809500583694583103382958665075939718846409428297020205794132938996439166212206182927375440559612970386960451495880448919652850489353069028367315315879897435183778531333401577301357148449993526265909455204326911124832595442461426344216869385094154890909143568106215807657211081127716520522640020710099624304675886687076649700355753849249515060669543148847793145080980382794775375818001670660870031239396946097066521930450454244316065802643573307358594034579085670506987915547505769958253497387041454042075429700756330055793143153867035550582140343572856623214394766813601584827083832819922062967375624894408874606027477315271400892798236754794498568702516327201046527201437032619436887269268172783534902479154543673311293384432294593019053206403477590275269387418316033376719195602445423716023125913163760105403420744896377002423579198574616646445818446641555862300410080277605286112570377699119512394146804717611020817702530579221937206000710905988294669728972554979819682812144855626842408840787276992871867084864657361928199514991643424557949913994003679323558692707375356375003162598806151465477434286760202530363505111708919770083318543987882056364894371778655116244018650519136579596285686879561486314917874917700838269755295189506657589744758643495255305861947138415781161407164381463617769006847912254378800167161415482875730404650893872188801617621947884222772144365798619463730230808265585199204353425840060706277836380898092023021960347396804715568022360244380523857505002235496238742434392002467529461537382269946001982825503723755575380400980802827469068231300315554750810462762169353883618365274456886427037852233386512250905827364537681356604610992309177580333499874281856779848320211088451711595927527620064297241488526876111036739699899494021624624802150050935869538892374712566343852486924992665283404829487618504087353952343374230679549143576935045765717845194853721284244994508024972732929228384436073170881884429500289567485257145823958300579218956948120594680403049432629924520287339381819802946223758142766169504386933078550960923634432348844849414374341518185144912619305274202725755960134882920475436028111220029115987535463259347379589585359985690849540695026936861139189641360934122844949895335136670052329691216528394487010272114114629235082044646044521894930167471524633077026287050842586244260764333918422029894146839708557457293200066419078914121418929373666478538369911564103195924402241612918047592891957471369592516917021871378792072408206672571644908893281765691738536070915418645688933305835220093210395441729143998663732957430873537378777960344646257689952692546633270022726852100364058960350305420125362902278580611728695166769756290880964702337458396355498578558635701583179670843818458705668014938112837955764365215815088634286522518552162098720354968982711722302749601556788402114718349048502053366348405758967137111621862236608163870062176715485627589138937911968786701158588140835168066283003558080168293105880800454842433583094073551592637226317748603750560136175255137544156362199678604347752865656094407417403006460936283711717983949354447788079683415071971257233056357777812858732795844398484520695689420168281126724738242280357036650094774026031593485682548399123172953220255172891149258966360116251192892473466866754881000433016294323069448387313618733680191498333971246766477393407071129444291461505962552413616850254169027574399902284921670584972581400021986330352414516455909634756858651317789452500211704999658118485147675028326511811709711080856181719883427649059691696190722516159603163074503399980729907191584077467820123999024732477497541607404067259054472446822286850616404467801720285407540611221324332170745440293006794734965554557426482647754936453722365482034773223441652661979527712714292394055430882374028093381786117659347009000304473114384420652978159245821039842591181564247240010757719269764752595480630331674976505215249511666848429963064071465676960985218073320216500990829235676757992477903957093440662058751183397932781902143048661798457050676309596998166799832586987756422457975347377220541734900949042834834683012124545104448458141520631946945192111156747998666315242707763106230644886281706312610545948691577424641850021947482283770892759660978714046164765419184705646593692720845461687401907163098958678946662885429147875470254532857647439999401583787199107495165772380730785096362444601910079639673622766048646330420783793437268271864370038632859026684628673910202233505341362479579057573213873502591030233930416935821863042467026080253704584256796988514034561464976152070083860066579111611326597279920192907976200984397248712547674494765869457013212806697467298648747558826841418694351787101602927655427516150777576420936890591273630499293247087902667468310354668667718985571173159519498976095861376172918188840659329656408001114794359042542711048876562105915740106684104504887160306115686209786202174358379544538882555996155684381228040432647032471873967740298114141800533960608993149024310492172560312432863468675869676703895022373848087823574958715516092460962889850506820912366104476168582076653414842878469935563189089578508536778602966468668086700648435670833687030902320073126896342733703150727058121889706774889880745844553786974325378820624538902859643865346984780213809811047143921192601281417450098700773105102014606825357645682282426685116359391519388861883903336246536198254862917210461124144079447967791384001741745758188779132710906125998183085549001753714727316526213467598890190888124020036516770125864533652660030815284787398086593286078356951560291138561681477225699569228423916589016282986387445085682904025588132081381707042118606045631134812073137223119100071140297809073847263072386153315864343042282251082333107596115713004934680066053936040090938178937048250101924864688177953127726085298522086563752906652121476861818252159905170665840699257609959033330683593764901553333881089870677992909013975491103345099787658562048294620488281220995079591696399092346564733963833792658391275388215106010657443217211268644468672787119735521669869873857429680848295820028776365057499846731054029760015145202429871136323563131600927831277167328274850048659276283904684957608593794730151466749325767008355727428937513805893639278295376008814472371007604613467273968080902152719813745792854371614921255807202362437226342895500428079188481133285967239578498191031025148161929394427868492181320722670518730159523368280746150115477558514719274729787652893625847817929477305559357067302542925419351591268553778022835903540527546572646940956210913591400730332268991834051329804802952487884534855245881154885423938955648502684781074872596242889973496192469109855227922845771767962728783100986709960607177649536074932211590230784978966842878640442893705515246129998470764986272551062944155632464816550781262632431955620766599137335525454869672045751884185001246171412004757094788794057040731905532167492929041186454863749878413050233787300311788606688322171613266300537604257397872751811669995502826926122642262185341527941992667424060825306124595326623939386274097936849922590054949215742303485811143586766687830328820153984269499471595317329417354338689905024060936519411625238722235834583051136748953942884450863214593076830684920075721118193832582940700694410947020843066445199579288963322422375352746357889758488282924651550818881493211612954044608249370374747038663279077745087621197020432458491379535644790249834566303783892842745305621319573764675425442839685403381086159264376290866927414441639902230297482756931502219968180352723652667710715919888786836969689903970062220972128939352150353446460428463060846288755825936310298613275212940829352401980568964288822886516768128795022194348031545900401914860387438927587487957839186505941167446231140930065330860300202598518264031018442911590745731847683260413516810928895185021427733600066090249682984289899871180022024371321162961157181907523830342499438124393944039418156818729385736615178990693254692290997705482456742398223030722146013627417640058789799226753851462582502927247078487736190935710578739295693411220960557904482114095386329452237376516095307755375129827029808206508434870150656341872774371344588607732803078637099342107973782195572273027463619601944302691715267563746578737167419244814703246455849809230773751970435157222211181731611343489005888678909050210925885729465279485552502969834347677271812686465921467037715618730011834793792651413464858359757452086647278572480361954251403712945729526147067666576664202821166950962065685512421656858543484466948629787972561714846250837352669475108991648600157384102971101842187500517450030138404389339834443021282370580231915519057581961102952537970804189997488782108790168928821701487997698871970690848453552859512861216389962908135374929302983861654887287471677114446191093098278327845276823616885177232742201554528455965830004692087110731693794508397049040817569337323277505716233386831102807324630830781020979246432291697322515377924520137483020729058969227210265790018013227550453921451537825508330198320170675381809211829031506868252314231270905677364997306663057957701961399097700987799208143078080338250105144999205866836914651334720531645155359330390793126807475198431360462243000209235103107683839700234439207452229829649804704957866255830260906167507084866849298129219832482999155712438025416321452896545788897073841079003389714487207380368433111968272423328696489368885305871994888917680448260186568448500492240967618011174341737908704547325960651846818749490588041326817475034566956966980410008035502242971063280579540118166770677918420489876265442377655117819332375947216093061723824244221540358820336526066998549899888983038073003638692983480075597225046912718915338128241567664063688101664625091645897375729966101405413521942971153273878332920912589499750806306641985870816830615642691954459874694182677920137598349400677273386450102974758682413709777790857815869602292003343626170330966731725724267546791874815895146481316038281712797584485928900224598840255466238183859290676640364196028956877487052326943493833597158510963521732902356145975257247364332558990931612265031295266623418888965971153295425777574469051437895597571066820369681521333212782694066803291293716549923265124188616714176618484909084376378447840334011168429361587366157759004292554542302500430683155866260067126808541705987410943565129829192396002844065346226991738910807323315358791232725562367868283753576559343411218743448235970585214722285930816573265121140728465835921804393920704351298204344813210297615650513977822749842701170131676121478936453919295420952700320096972816560445529056242019145248592973771868274234203659701735497635063464014649649618570442357170748972722355952977618747934253478985728419453207275739714635924067346531572255401509841159603200753447718449340976638944307865598496937341011402121647693530023374455376624726734896462408563782624814921931093650195930633560918333752358332354648133188146740887671679084857321807053087985513407959673568818732261392433500411660575881545295608186997010479738888496472539414489345556419065390745263942223025234306620720738240851698719484761012359652462706308341121269607441666727670529565546542363851034942295844782701201606450176957349771936055880503259876530785187538425188115621961149517715369810993960709525375865314131153123834334525413761025019088272537114552014429123944259365026394020432875502428396823461359011895467709465835193238340014273764784742971545731739463431882953588326131447871739568104068679607718303853246579185352362416870840582852386350273982827040280207460397157188010753911029177269993340304414692120465938158684881200336883154229142324675649030368871588832710830877521691181777651206811009795647391211627157340333005639982222168017805158191619774911490244650889567091750246315399422916152640351314181073837362896031395079149159026323762634429144724906758042169290837943266912214029489452270884934708394300190791986571319083851516763046074327618189178801483431906390826303371337352063985894039975959865073723288233213823056496010999018921798793204833947182613096945468546403195426080915739690010252280342682722772368538201839785065166017999847552005316178450092954218600009015388540044321794607686404602988206323719226336378793600281895772553160788760927364957210601531730082847572473450151936002114549630347921678546628691618623814047198238848745173095379509252697457972113151515946461519095536737866674859479547888421046770454991826965434552578884820626022179033522632550731799078723958686318185827179532429708159244932770668111138638330943815064323857068049456809356666851714927010237001412653024837520686545955397158057406877950633023040369309199992264508156877428231614204056851150797979606069710915281975497081340737082045776064431448409974336758565370851037414318551157944050953660397326273560983386384893951128551648980585892316041537203415301196951990867171275977313334139305388071842438969612703986772558551877751129886109129035743629400154238633647158990044012258658775268288537847842809621702574911976404011046887892736019772246860021806091934698745912275920194703384278305873533614900580714599894765121627049623140015854723255011811888082476211907874682513084646757077808087137454054667309340286523954839070700885673379114492868433709905380045916239380880851622336151275179336037786662575375104736699302599369495416748155869763324664639308677598430519389028194401097230145966151832245189734516714236299615537933427237384444856584141179784762853518408534671702665199777914548366336587836228288064879524656873285008665277363419178675445894443428022534094812951344814491568336290190349235079289108100366495341214047225741270517491760858337567182333082039757249916495360844812412034158875337561801400911792479153911543054971728768610416570890334524796963673491161140899315706806445247607808712464952044840412825793854159684100143695721357413083625728821095504513287426195854782004903677172890063017902667495097024824929680651818529477277815683257403487064140355376180044657902869211529849408825438009309517680702426547260434984033639469691792605146251752585278511337309572636330403858705829385128496163383392913123361819738700732066890283410011108037613819710376839750821110081355219634453668036923406621820662685386851436076341741712629954691878202962587813960427205947882125428590923829412447256481950152907659817598022255429812296778843346850303013727148340476290018978686696045193625077963807380098088442094010652813940986125928000207073519052211014934862245386604126907230443226162652241882454087775376323712627769251560279981954964421567819684947068951999436477410132917051525003727866468330316533790966575208131250212383367859850004320978462864677032293987597090221906717484430731470682736373276455955652246414860521098405481093363721022706058583313694179915290742074876248289847797258841706781191346457916838825956298994650849591478537150866570228644096231478095690980698537113135043490256613967255070967621259911355128387414621488666730499995879677341188352756257976706566227523925136665739381114770968138328661415456690557154443061856599167392378753402695349363392104389087082316620871705255164585009917176882357447368673481432349983363376535632998710194153723787693248883307269457540570334726437348048639363628753652808380115787291749448260577499240609478386437575204203090217889173043815993542776571852965693522925980194928756510999562523796282806815553556584647998899299052568945130909194437870871055348781041654483392303010560264660083424144459101526900525927870190040494562278225060436206427648060025137986233189500461974516683391634882758629521779524670619647951171417656313688736273397829794039789409257533761206842154586520870520196741637053287032852113683131110675801390256469714317553316813098078302364206661839819810176537072861757920292572539758628357802372232320069651283544658259642370767020792846024219407786160673904578428584121928979725450927516893051857755922119312608163683123785498814811951964233632070248264138021362205540749891660398233223417127626271775226362163079318736174562950886882071593286045814261675614595824891576206904174533814354954965037203332610730675453817807229622490254010769597054844985812652386284960007511151829850779298278131467204915824350396618055241652678567059036342633119773894141363810463321232828143171498633507157854624547555531044515392480171654786418736474653938228916666532922512530325906041420534495938016826597015340862133699883947736499185837645180768120934725143208544177437865999199696363338721888939914129031474382445850891095053881294523274285024472862732753139217824774157932941761057919728771495451056930351823608385491268022100380196154957829651755934491960200345704847600304618264295634280790826774956558218796925812515434600910406649996544733646965811652762763760374372664447871851912251811955075532408120166517408979762533160757194253490366048952876886619776151521980206675792804112181116834666505406572362217405700664831414577828295394955398477683546140674609993044712255483588365077364552688805436070670767485510209061906443383836386682866057727741837852605292623336511228785457095749404024851145101987408786824549833568269281578161714246451336249186887078715944468450334235137382948668152863734267898292005448720821929559024325886620147147639329533628236170286537807220175992195177967599359874823927633142596954675508038972496951752239219995224666774565788449195126777893893920690687082295830810122426986612457437150001544390565170362916250604382197047481731845144042861925665956153298045824092740215946563692585754801801485257132189112582906315450871178915077466413822436473349007071990691810931552686881391213710621944727836538681171378557440579866881444114154469176791100710011105519049975640997747647811815050657498800955339543122703375738259078964820141717585950776501334741681877231951015582769204567160749425685262435488934211639502627439516720447906393736977109172445550174343139493242100448296124908012248956311448214474795451727615066151876729802783092936309344578308756927176570914011606696317668546882116097191817391008398935544313219567667292521765765850169417964296673361969611952561101843106995899214163539869569240390086365782872767895679734361605181883233914428666381459632403886022056376663215901569770308590726514830287546452500137796645990405688572643780614114186947914639941168447619825838989299586532986674725391947821706460513816178066214009857085868233933058883366464662067876738881312556914425973007096625891722208648842982091707684008296441593046273593155577851658509779841774373789292458429507495410965996686616819091434505323629320653125696255251429468080474049678454652594399822639011425422548242107722940176660884254168838321132252374957982771550844361954706184843093136083703102093517233851982557108271252702541174151290499575174788555436881024985374419470277555953530404865037548512460671257982140258514935117626236825668009733109424990595432531810004123323834907354405325490355368461096870870397264246376478629173322006168813004506815637373197631293361210387930690309854513506793971628662912115767655159581388464316524906087465825970339137308047330581899525832788140153970951138966571354745515989048139018897763154840137703998416645098357820087544561332853932776941274413848852128730216094199033068755205943330431092760681637046637150293949283986830710489549938751499554987390542771627322074414019386239649321984536427906984721353036661742215491959019512761118668719514234996441929758710468671580085249682006509919308463538361824756582461041778952668412499558280420278231087391719255496222124243793442032421834719404431620415523525908101604979306091020785429533353758252175529758626648341923889138939842180013764945187021448582342967438923431736855395967351797553872689708647695391729143282123727762408423290297964574464002666791628611345049838140786497791912118076668504673471775232060096238714443032209240267071541554811746380588260128048250967798017615759771418258981072860218543765497240612140517716678970874040249486301483747122087190988636469098063948975388998836623633434276540523100767939854231310589103187947257142689491822860573369380788182140679952033248062579979954852525569091568283295718856494335317485865409287094044608409799139429007769670420969957178138287631802392398663919775162357972969325339386105954035435192448360205934603879190528194018161833909787805092310041968776547865321284928564962423646203770806456932139245140223294076545667137308547445334179513974590982519557131955786849000294780918234742996731120318168292474859425750843676997219290413355362770140388602263729736384887078674858949530613433404521078735350747647147857795371410475062336194193140471300676248059305944996314981105058386426263710035146422273420371808358322943577255473605501828214731539157161403081286432191554953594328040326416430807554987264368568076169969021209773788606280926372598031871197821178886378769021108903601771757670453487789896215033974334141944578183920198172023875318714119744735394190948945356390134004710776206607113551939617928138574850975379842328763983058674000921846753480985440453259106812306149325195261532530773003934216509956661798451748579321437613678608812500669522774655093034716003870122991387199097650263321219293239871529079847370956951934640550489716646466697926723734048869162412261151003024185995584501084079845997557115710429817054322571514006873559581689271854835157724402310108670698672864611099338259005668412754409383770000646581076711935288972912986313291002212898902954704681299731360986786430002682811178730093780036335034732471309816154099118725283521064851977663323613554202662462921980944715691050882734256898361103519630003589724291592215806230581717796156535333312863731300851694251774021521756366403507733195501952012514032930335751633257510691615588060863683943552793444056878343666544426909009204664452614049040365397631638020478869023333174242589462100984863012135970506079667606714939399101528642813144626514115629011230164038268524351237472138905504154993281803610410657579745072276299026838356543584011739056216816771549884426832705422663008666604499063454738339517188351797355786160819832230617325264922942699295215745594072732595178556637585920136690031959688204200446574149016583908195969454295589793800357224763280306492141454822716455227502868476865019981890274355630350602569908303476945632328418583945462677751740011324262257818570395575957212981549331173860741524244296420999321825638697203753273431042297776268869073287458301111555678967885405403816039485951603412289242185579340983982242708620884679200676438607474631150416069262258982028457729712829774426574353235199294954034237243578142906381707149223315051868487007772509482880253968169837405701388041454666111341142244405447948483653821751644550542027192290819131547725383292653292704214550733741171083580672400756865811161028329498301595897233179443200865944991806477867843767797487136811306904776500065611038093723350515661857046548842515390078723692669439226275546923783483426113601726641778756663802462540066206360423669286868396788683572259704803674859561066133716673273943270713559343734817076979402014656630429679447640876919637439743320358249250294288478794615232597712301837659045980337715933263868914388380178239835636870494270675368221985631732404968938383328874290514973245066734478753869876455361504566858915663436385765030289757722858930922705671804685639541907404498250766180043404085420569879156091381740003985873666740468716715687224859007977654834059944885391808966471147331471358572665753446585967238356255752438247817794022922948960553934733851385142361044454608247707248696792340982339259035107784074062418789896091990553684616495952431295184515067989891479907308343840281195647376421556557986662754217536138744257179237719305274365375219522699352826898338882045841406232862403195345107949265300001148324744372443795896025686301315246298909443354194905712306221378084033987854578361633453233042195471190477343998843781990240472320756500590688896556882053426474423812788247397081358734203709769330003797470074673180709041280551747883910266742198125786488108510193368493028838363936579039507304783157569091273714274150135102571792496355279957457252048814743889376040413377150240712614743779730312296121191680794326859344823723462317032787228426949428338280209057104850149871256274931490384203928703003036196846972793923786547158149625715607141587751761863687866886293122653858633165981791660179662715921966100197614534213784044952115191872717444053517731909136787707281426953124889123665955979349003841112862186353430859685771349076745426952498742012077884122116694527256512896340229998198355837392221162415980315694887295159479685213794574390915654615270864569476170573205563265249674213024777627467701753656377162489277496842186534309606623578072068941296421755506905875177657088549571357370905536120181182859284999524293194442012090839534698958452684344935254044019515621226991998190104515544751230519947208597344793440019080237208083377101094092199736478186292190431268600793901771761166930007898998365221784381795382294635845360486213686897874712466942248208219831182748435393920380329084323996676957834451444251259421165654361711036494602462475248101126114489879657737314548852479701867423959467134235923734104476673201276241289023089982249494057176390365158111389099261619768422906920758299204286896302497621449335348028251504026557551175036784627902706853324006958691927605146114653268782366360151113128193485998529482474346101739953211511613093777913262240825858508569820564917208560791638535497940718279411033655276741846788773219689044130302950256071455931387837906203812459826938281554480363924680338977699775031927539978359542013001820810454252150896530384744314349186218426022658872347621917174334661070629256571807159955090360122083560598003089556278124516444288329420024793804029676298381293089088314509536853107369897049477144690606019097100464173183229282093869146097947004131986401350474558595816082253534596465385091150629325320748939860602764961668292537710055811929469658987271323485209678522849011760871881296434857872053832442134927514636904155734320142404643566079024466906008337402493703253244387753932813890999562703850251864625115508947223029001461580509299681207880111341681915271065400524720661359003700666362753703307880335088322388770590560575528227016494135411804495974231011411155469831887806772104208951650255898517016957176906140945190813766408492953929716556400810998063935309270819877016253414650467302531229041878397369574209047703485146066136800635274987349409078687747378622145522024944984544880590693314176405421033396897616527467821130004721951934850965030379454813436311689828972491759049127625047375689897657791736580978276439257614983393591199048504411244162373239517033178967330450162031649999827764679938110387556092844779428132607356870196732037465831067159451360612979559706167385311658415558933407845348814732551425914181988257858905605000303845700941038230466734445202087943590990460782374509648764219883733216297410419263617069961488758690836270794602655840997322922916543099963753197781189580850518853515856337871420957369081371403065851963930366816680781867033888343787004094303851650807675594745010953917306713487501547724689878185199247221479274204126447942693545599243290940672129066346154827736566031227662905932830355485192492599149981988427201709787602853921002362956409333069103893294857735682895290575230178353539078190672828026278235375738443958774748690567117778150434167408186202889397601287063703055988243423022973626779079365917358798247444231044409043190449169783386549455822044923239172013030741099144409043826119801190950622591865066325086002897424017983250178950042252961388179317456434945721846131535244532609249917576998876348242603493709231565347636084881161775150457969078629954919524221547075727591652890689767302748777311321925558433650809223664468497607582067028041345470966916307944058144401633087669885593100648998060695218318436767799234310521831442709699953572444929417404713366839552589682711859826064626124291282555061816336297067476066929222577020412482498053228323397355379049792611719871567142234291927720808183691673684326548041703861013251413990354515955949466314522122546966518147213733392159932437457975917515647865713709455148209732159596426097163322677405357322171455164528247148198839246446304749107544475884153119088695812079152636471899690357693289141624354369632592434272042411886332200730700186818137048624490949944387619312152558572446544852669388356856056163086233732163160765447917255390407539299214925855580200502576796509922236661336847081109224536900945870718381696835437166668084845858589930069280207280332573835316406629372171932810001634082513447085165758211671558922353704514756579145726139620945672447608710890775080887006767961408084738375761928220360656178943041244099513901958065133668153282397013235508348363541368186327132584533008474109521121855157496048055415513709445114227454481972941841169875662509560105001531857242078051405354029283084253819804376278078069847384522018896665406566923201027493972745152626270861030971096934069626265660540124069712776842511620729849959218044765165358039493686127713675566875462372574741832808369903580361275028827235630062503826131337816600470131049151019908804118620446774158515992167422924923861206528496602750041438144298526100428556603968249166544185959138867363889574697173608913027195832878437308611691561966376696595556571127863289577062980755781610905750832177510516957171961999765221258211563283108278617416815843260438032844266355934813772968575105722795663831599863889561288792032531488096810005901168418741998664930383266516214431230388130001966700952659874839902374980071796913902656466059808707771954771643818807306911757719964165156224407002506696448266296372594613433488608322730602326999184870629727999905055780390412117033011837992326992012553576578369311040287787277720453685663350379578954629453544611798424095210599341232823504363562635138320580917422046443475230381061502832913819022091477719828536269392034801847331363611563871009250449608144882628727823138537845268848635267586973788447237865155555156130247787404041112270825352593053156170182436655676331336590780739586685698949048000522216805627658882208818026792373010449530668208836582140203066949310197351720316929916972243756023368883703160977021768625794247534929252101431333382581876827901587418645593106956443222594203960787142823948132257563662663166896348027572583193858157191326840971930678964922785821515889543170678540290635164447056003184765335120875869168371100981627376391717459574448267499195233703420038709879989732156772008614825427060847033083151148751639592478981063487572508668089613053599944922306414071631042691791754023547414106547136847180580100763871676802391308242048356677756308329768404825027998073894525813989687924280048009383746857205315752067331650173824503606407117934376666678916598039110979023646694708154023038306410447475906348238813600731288508894549704246993523614529218468671243596915432898190138004044297289784873778540841756600268483893380379461412612578432476212934301490622287111806028015795489621763289848419464262424887918917759989661502192342017949604787441286868859094224612916532329508797755916438560899235913746786891701254763805931567792467770477569017693306094427714324378718683435908525434266347696539305993633526928657386361816745070224605240603791658988935764048780647217914987480626668502464248446511202198447976714409626365063135332508016670331209929000782664393802467739785218088136130814946726627534446001783475998521108240228408664056476556258552520849790371720149407228589440439114673546041584485071118859234452246552463857993395636778878141206562874966916914998415378021273381006889145748338835510335367119564121596420178960759234388689043543449947448654666451706198755473048650608625385518724709273413846431053026287823403636627587674728725000124882030255453127586093618788401497938805917807545163639988625829521695507736710370003475092457237025635700228141412115948012876885593385303626632393549168681309617259968562375025174232527481584943712792910292181972616703655329664097831351308558236068591299619817024420246779703179043014322014844068597405039508846675333077853241805532233289362983706047160852932159730544379914375920016349422876282100925708766297740551131587370417631688628281448297440487979613965467577187947114394166423192893875824392058959322016110528966039815694674786613114918261471703284039730787355336895130096285915797612327506862102500721358687353015909673879713180550872147219973367835059852607209205289370128520535923259272892545923091520811479240838306449765795296254451889024889416913950764861768372458557582124664338037575129008840386717636160528153626176555491247304872033091886280513433420550028624196087930388132303495961254279331357334159997709898016342890243682469340940048694568179036316431902878747361419591917217210677559838764448526121805682654516761997021733165241996209216612224398181801937739658409382510664356156631424054531407423844118743235431902010730965172510259452615027183041638203865019397605620362555716911146342753416248828209916195581072524649053447809417024418087172481500237617131872754427260545188655982686768114815353468072717730923756614046451880603123792716391670149539823065778152607492470881338070378603539085270009058034207664030059081859887606335348265590073618148312198139940521642725635299489387849475195436700963180560693786816178042332067914727908179581243598099646101724963591968925970940447477539713427771497634553383946557632920376259467757945294835213323449823962134414540026756300535369236393450781074818833037892328563238592204260606910201884324196581943008139786470880342080454893508622055648081191041612144520273095610750001076042763652180618999364854098729954250694054594090476860764952291847947936414134574203719581610753425765081959668285778823728765825237571494947497726020556599808491368591505452749229151553372128009279762138378808849002505363783844562406961621415085644177074683512005144006801138799481849136353528769043518473936205345637720097589592176133184053016922285868888669921187843563202293161000287074941740735991961511667939835781856701278498029975274333294280083902143284863976199773927558831779467948110064605754016347740749755818588192617905035219834540553968664956743199131102187854656276028524195711828130367695496351455003104969208904067274870097191269986948390508538710168319479405857276962913227054987184937865504969700904236062760586717190477616658687748619628954995871576225275780593971013246251458151956380725404052304629942777358031537986886808040338390537909097711055389158021767144194804322714173594443498804252409993181252996088940562281592907598808888976167709051956752692133278252652656817705521598032078607654243130024268671415674873516224954904990625277021026917259462623542564675715457493888099106998563919357910963163234619982168152510800066183144229858501568558594239982043889619417061742294757868703243892789658672404056787806209108866086807108827051917388367439054110880800861254547840233595322111593053588422103791382173295144749238527917133975295019776261716034898527476026179623210385585588565310721467094923451382793112041190021681231028247757694941626227210893234748627905754116593105236385711844837623572423170293268275626144519073672590359760169592838623086915182930493405184279733268341381854851474221322148144856278100062461339817108162092251153611716136948872837175029021864355379851422291560268695430369414474467009823592389677963036093078393745321448897151680695357622698525412176027921464964224794468032437391195147193828643486306241327532135937305027445250438559441692431271618042458277938577109217054546561675888490394113786217793294264926810315441327347781630849152878852504421932557910610670812058958266088858971909501147122644733985268806343802639112740103003621388086556149991785749923080545353907864944903884672084324073524041654192378159102615084039421592404032563908575980806566378926442650198010129277121842542240083402559040234400633547690355769458053430903921136424030506648793690764472863655277798904920057838260514650585878098468184479348955731231361195766489181242526234164586815884976771534670260370476709263336225891286988341550640208225012593386159219565671795190573224682684491969425135134404248598320377611463240197369174315052760618209801517572231458993575335748380382996475908447950990584025870889247080802136293080940919308755524888598826438713316301307825599735336019407391470786943385092639131961461179051828637063099230213858215398431917196385967053102034725524727705004279710821408340619439668289979904505830718301358012008468546749538993284615645323692413159678788520477539137401062047737301363563798752647451847963784044772079550355134179878871732454975287117472205670391608222279456615546326390102591754620943988314108900285977699552317887094111900974563150854700345373905532339494852139209464041463338134124647525679282284705951210430700625242973055288054467453791881102248290288160446677532992731806425696316756924877073719576353102017262388872857162593447601941196483838343774470566586322835556742582589642257774723143867591487358867313150152154276916797973445741195531999323489954790461785894398345513847799501163204244011304408396186035013251048737310810695587042400521121105450259732266089602789922153479744077141745413723336756903328555626363301090766761071809529379350251716417222325098231270898522815933319028872427023949097192863270165886686258496558018950657771686744121676805334496107715114085503930687892654763036576351387700460567566269241047529439703813813038687497398131490021551974781047767878607060252407483083051981404383442105641758553416524271794093764159185258910440166906693650307240328786616881865703987193950353978992371197547356014838715196716165544847962201275248381780002996371576722087133328876957801803094687046171783234929422649526907536155071496867671414393442876586879366877325628591657191477326777727633029260080970827695611907739711975232299693968646496481703870793021998961102718602348731743014674120062871229426472220467060137036876041083897436840217416187452169638320290202385407595459562684625189515082469825815885439027295393253826973325762132093080018311556475136989134592175838749203188940960475244305551179459325456391693117651218818976920335499283871016076538733523038951343027055144721965193998023440993182875998141813175968197807880598676769837027216979912126414172332461115470950971898379809335231855354041506143258901980682390882416910822320679221794812124314155474713286410663583527340491285213589927749867744171239904839801126628860013014868493206176132314911530930371915218574913708837178758077548276923606105607332189202185622608216356682475401329069006468241276950919388361536257350415972288230222708747824310625071584495888211749696660614158218678842649781352156617774293886053744162996840708716751628845071303837836821613854833674979390371352843679292174149767186471112574922538000022855777676775955930361136503868854054796344909836164552188412348283120771870502828172264781270617647269555849264476647482221788702993685004600274966271793104422216955800836435231850571514062075266633365178723456509428750653657582073328432683786679864122876754038726057743563965966769723966574266214814238184923515546912813861496875676349169362231020777711077732967449499894948922814731836939456150534049924246601492952207832614884135834506424969010570797296345018684003818292961422843096082537941942249098510771635329628650628340810001880983703209949709259758267527838202562039766350558437658641532352830100058716185137322802466722630440069246110348789949520999115644245091711078156479709223435573402723596765261881537033217297153370198577120754375657305173415939339307936832241587725549007991753053532625118482845913720374691735299493868074563125106892663426888823736406045107978862373110852751662531630462673999322671684564383262161297457051870859985232064961651676419746279816590495179006056162400710708976115023904484264898988105898055945604307329482431384947245522873253428761992055806171666566093935100124820662010413638486401840331787250642337279003628645982268171226475918916149951227863988043576276376934401009445874456617532853518391307949683641542634898253403273470124289014894410932877314864853099018446141062734595734165955964775436862115088719845433205511807454566088692047673600955611412348887510661498992625052645532609290699325257326958599835152208070547286241937025278440764867629392746836432730852834816002015512696238564608051339292743767359819069892142400253359634275444648484059250142819315022041548838874135272049154345849365953895899063691274510621583538282004939033235693402690567526502552978520538007711700112548998080209283661320340437656346607274119900961687622619873778746807342996200162664711474984040402424045795606900717245510379675181914545330435542198148879122403590190595527607088192672142450216693112976254626480869065279454380390975894051073741006404285738598384149997109583239517544876772117745498417296948551131810914533248399314255688319217337872069130253663221766765027894920154450574045695899939344955892597770832469830308317819036837759649500458224777943851076753895752445498671727927235258296113469751071043672543915046991122030438489728966662180380770671329655206605115862222753291107526455700165622853213083059233287121100574099326655219967683620798220015218640477687628069898010794537535541866578335570999860853371851493971561763916609817707205009299011292830977262466824648782704084115342985430565599384688066524330605173085842392980498443466875387189913598871161145377826289661932193746699587322974496687522939611860300502138295440735167990391605928546931479682592544706655485178188737954520066508653225381438904762188310543291617611953276850307864142907594049435574783588582112470150474185099355343897076098821383618321291398797881351624799689678427298304594275360931713201881625818402025968347173253057542330619359140618001207336306831937816522749785802590286218806995385925789529093802393591005363798426411638237689688694935146369772627918760745678104869337690813830008737227531579319565349838726143423579424568920578872077691895889911787234444993365161947702195298132315208859889782425194990196336250481208395002637633439409402772777117962576553050142955115134474985741072875245453793142853911250196097379551993407761481230116614671535466558628751743754096177171225475827452218945872219766781420363893154318236340506435648356417819201396030282321322830970330648521005792696711279013112812308421445322905923945994094021774593788296058640172244030843815917317180785778751690009074861578278550396616416793137308840608964166312855377701930824844948328649202803598860832638764920419388040754075924681694389749516420212057030967318198024464488281377243427595360081200909089981185529372514973941488546613673500530685006722746178757148367860559766708453427602418669219591865828526536660797850438112681097563923092802041473773572623834365955663182513676986035701092486387868920161629376226634744881236829029147340389729313418917475796087550503381745838605114984867791500711705451806014159680369748867454945504284516259227661669595394049932872212223815078284298214030213162920986719866101288103925615219140113769809106422154566458985349160536567267065602359798131075217753403261643713788419885365393005221291166770997979087155795795753930415885397648132943360770177431071760633334215970231897887335704556111344872611173202162065631654508936841818651095137032858577100036379705661935245206767638726428731974305371049786053817374870518354736671684861075351537327712730127062421901326935269361062447163375932951152175498632212151507778888517381874895799343153709344562142810163063712240704212371657078012592522265125418492413265400196382217905598280472770223026306041997761089140343539854438467953616320992385048221439673242947758586204651775046565331166567386961737097519671348912680303466092726448367800557021552117946855503944203987274621697378825446955775351252460458625983572849759215227126511693126929380161906175695613081209808561520228523320407956905617412970423328434834691994835116078057380649436509011249272333513172241015029517944900526993062844207051276144274138706423632070224364631905673273108827767768749935677288315778771128020518912895325796435259253073913716128547725776274723324285745962609407608253397048684023762343679724169885995465811909296172107519891637667538521579505621335648671688944507299607054181290498135636414866935694719690199183696558622915599477438188315867753414875498700027007949333480770624480183512185193134929132420479520889157875061564985938351055057514910784595096114856877056473664256513647666091900705924656416411843679754331581785884132854439697853058828058229121787491350760521035156434701724807096450573781993742196688541755619217487410656264530330567396492561443978281867768819865003332005745454475167450407628558199960889296541941271811461058496360831127544680923065578332325454942767596577163013078048547327748445650855727354952376637095607804134035284923862084451796710603043715956605223947914758048548861120645556823206906782065085902993041241129389621924549759894413869776520378044070204178940544440373319891907581995902457932515846895273962940985747141501320391094703114249487634128642502951286257012514238957084463464000790064337614757206787738425761647909477756949895046092738905697062079262397111199261237179332106351789928950928233021006651166923848158976534717208455319609920948916062950429249024265466186917034356613699662566404838285658465079875541354469519022247910635490912391339622762644237721190113154852666251790342104272135993992539379721472738295390412798363448552757700650150580245093735195770346632570221835957060442373047064184545005984046065623114352925753534577602402121783636730421452522565527086425868030282310917893196647461712420045249096021041425184424530059454280418453474042118944022835455060850019579895847435253870903247958262780224594191059018959243582178971113886183612788383513638084743582792879135200374454296390636299751921766481945019097807941606016097120351386576897155013598373112247604536439323722920793867442659730260974106127395935957874281131636742198528885515555790594818059312065052086285758276624890011203105254406413780283813742226455997473520349853105961084973452878988800760160685579272232904621909036002024405307081184741256157493918225508292004982601371280585610482414368500803450082745240194331270310638588350636787648178326107690058836725165372175347741293301711217850133709095088599691691717344430091317323313542717474722396157293799114447115813057326162531193085150626033873648711634492939393899439260792860186114540745548272733064007485360598240355094119497045226014914692938004182294131139570192977062332783266717417083236865548277108369764083068640799812283354146346721669098026740130668196495763994347323608264331121189007138625499677461152606651114137712156481070618286548631059966874755109773214756665145406015806587162124651875460137639581748588693639301489170963944697409481813693943617415268046380208873325235762344999274135967339453675543424726510767241606329470038210790185337866471969382619461493640703867844480640711447843313101678978539457615690466675543471432702120142894998174557388811455235353979547831488220511885967696052054970156827668849140333731659270756802431610358440588199444412090587627185040942862053599855988251337295146972559973831495314895213309419295832733109868120780749396145928856293750007200348540164655703191628388961093741889479450108851669558830505956049330422423045538906992200315885466963491528154876194145631078492322541447075420530743773788762909584194467445378412724583367694834397796641647164957528766120486089704161137426838213622747924819896991419056695956156921393246967516814901802958189909502384364467726402899803753828508762859084751115273536049964578688523527405338186496599630658809188453625478132170708139570142683114732841436302249563984110382375440112819946002673854074835522290324955590708221706687114601943906178512467314985271302894413994274303079225380443347325545127742096824697359211443641965043268971139281811735162290517031204433343775092681657923240278412534994207504099514733478678822257764927108411045003342679584102431871486580783094159188182326333734250325435755944873694451114225270363744821428849477296828088580260845952723661595114911916112667192399304395138602282155797366867525860448692462447534213612752088374116210266699721394884769764277847348754470539543971969110715962457949257178115199709497901615794131955968910337013509431915832500912381805311435330673895181920448313982961097464225520300744578019431791639268891960752862725842863769654047522637600259480272438725752557602116978020690678969154476366890318065693741517748767916250828338524023922099623693654617412719041644242224927118680227797610477210641914065708258582733694923676121792914389448306708963025366232428530593306096569556217748195144392379802490055328486280105880267003675893425412894221744692287156436667772833613005546509992500014493924389793713837951560150667095402426372068389586768810852275447198622722610599280138684763237839085700462713913406192357648230326176879912835947299734438732752230866735650442665687705048885601411635807296132337995943402068646882376028722634623596240134539101923607177790841493948508031601246265949071580202106530918861517576431539576620383622611909158356263152231674868552425962244417305263935456691479915539760367116646030183618575210716378269014578791249477104239190416698483589803952940791931149485897582798303806861786339855273598983433315493863713757206162980258258456093366104383886188336778291638087691606201636487802315892951581368872847831130161007215032314229912584533621176159919453973341951994199563635405113422611002071615227756703379497259432252780796994849522926942807298638206024740188149471686112215605920563152081867818481086076551223707441194615990207124655205947445768507536581619620543700899795564198973682490774687831880072991066125819509270778105486676163105537107164199771163673443901771789768052691617364881583188536939912524834589920365889020553875398031265490266744310191011920061845881564133423011745644725472941116605741700655444723453410045751523202411351095746058753943887845492116846449437080561693665822982539639345639961703572589876539075888564128771563608884913354510778684721842566753963719631800305227019332494019454236608903835159279774437210596115376957484535483012652508096778539292637765585465077127626737033778359829785032130954104840422711126617598688012219797228730525537454316270018872950853836802042663670525805771034948980348977492764306232000241480331289974201222813838373658241077672426024865329837427626345361170817614379418212261749609986810710935343548029545416198326631416614149493114723128094516484709367720247211044664128774416181651543963362632882531128530734546832661246538741203474926134042997798479067198639795703960023612291657795921291564438501966009922947473639050279728232142099091917856674917228941395838355050730692287277928578693211203982378488167559481205416382900249206209071387200305119001359719797208884440693219556736574362810697084878863012354146753422160483988275653380650196910080077627906087539762066551810776848689842318349421607127192753870014121883310650874533505516149373743382095685079742556142942785950205388134208108939809428175221129490892357987593449720699369836679470354520967135144412642790405240144232648191812037534704777338528029987489237036849055234522708450149582812868974736119982346814413900827197650373329510870724979649102842729656425014601459302662243610924201734311268432296162005818189298261826754378160299683386226867113438449263242711905575715903006765107839689555963369471648202644652684299435730339059454552115216782557107212821314069306930252116705946317172329154546730958933332844991002909628202422786132310672193388131159408500824078853947560733684363641085751405519224984888161870434668271478298500923784772969532603377216755939547635123467080920330913766859281035813915445102482716153070993360280844475581226656966592831126329047485432344138219757246631432220477134446304934095299437555063987396556470201601499925530542743292296366207095431642895884295095425912238310362216275687783021822515738862340283617649153215317684885528454375336070864843256942879175175395345981874524894172442864519691980131708560303279852546094966033687301238736809237965082777377641666744841872213834795329607841615303074519970749941192063996490762359833275324432537135672233900928319423781758703892780284125214410816914100086339187765542390681169300638263696193952092167027659861907212826224069773775331388159884416389260936607543378965543611235946150850511318902030904263930853718731186054315444195568853797460684127547502030083214560279842241340898818853612067624593808217085752091635039599014461717409383895903438607352814656257753412910411822232590397281681020666002588723178307112719671148743846032554953419219915725746017938613901919140468548976548506959913959810308246671072461853424093944121801709082306568678847287581980657480702641011154770269294801394776245141980345153657553335257375604323299036295727146146154984723395311193993500782359829374134746770979515720057043191978372575671775834533870511437163590997630591350223329903465886011691424854927904284438077091532592621094617618251759008376035590124840222751586583218481567586256395117554536492195108798851581066891254428702011456813281696808735449155341318224594902603743195234324718204402342873912513656333978158204933733855472840742175233155571591515550175954274114130590606585210382178259035713366325985365680910527850020622702830464068700128533685261808200732627249220840478116183644447882599046716014832762290044381972668154036461601176915904242903431060939858458881264510524472308316154247240214824196191395480029837946148922294950000252129349850765581661084582317579577940660479609386936487824370619987700819727744241163016036759167473250407398140104003502399067481403879582005949942513812586396630488716885450445000422283560591370682570583711069340222490967553776639329082667816493571210890823473780199608157780364593686665849978331100273151962954124287452356449702926564637825849948531280438907505731257278978457075876181430980921507191598777594060858042348915239628630396341042823628433515341547535853540827124615672317302718704667812753932747094622102622760101047658743844727589053695802570537342793798785555799507999183962411751346602059003900511202447698695238248688522193149903187654987280806261903740053998311689572992647226950863700064506321077324462547362567104052682519806945462198302134071407042514564559308342122269313753213002239474368182709481559252600981566396084484275241671524757817656013600717519029999351931354496142853053620198672801474711781191585142064914372912547785163737345197821444655053530935715300161935974935845015500488254635043024075669858489105944760729441185647421004398256619601440345178393420894137034556256075545049538999029313287415469404042417026848480462009221879780396523961983824828478090691751594588724907777217876021968023599473101086703150998823166110168244627092325232311167099349461452791734779892592778680232434814240044890510634707783524254455920792480853881003882324003764367260096432867723700303293396722455633738420221699858109981043315344091882173367006741920875157161692733886197865794499527628064548339908668219326819926206848311884954051130789870699553376409768392905209446414918618796272592230117326558095832183486689779481143962609792639279930182049747849395817043679620184450118632781750229562052236912989866895008359535312830814462054054332475646872162970411579137785297642047529215640189911292103781335360440115503014325936371274007849787615795844611303058890595932962333129014758108619321678806255931739402297336506035099355730989223575106932574358436713116689498823461758099541578774187697572519507930885740202226310096843967372714204132284541025357168360635573989740510871697934187735419745649240853291767494694731720226235475201220719587809089216482093867670215422600453681062293161002613144983684136236977548492727216161726217350704637382923342467819338282689430221950919160106866961708162153363729385088904750590189281776409075926211633782098265555272495813018048801811628281092475844711026805465398560923064067847684326948945918569369076646089933855432920242475183763126580457489715945316290811015166916417696656010439192262104386808865762126759153086048468973343035170370079673482101947904416239534518835266829443946840684712726753212077793295639266411855006203365909733347981124579606695861891889107668546843479243069486253783752974782087812090981481127362029190496470558908235100573607062522677306606055563094424818113044935459758518134517613179031841692564514336044691264242862099073940433584292983071502373261660105495133808456063707406046829125743012824179448252180451838299189819511848964360520795896918622632798318049444868221308991094461937554669821137378885982391226329864037235248453454457675611055282353222475290227341421229130663343196079869988765327799786700832494092478154297714966022922754035242426486349136475659807971071716070205575982268600210253287321716355965855798086960166314368741782109299266042465166163669934991385636483921609339025940538989514204198172624945155745046012770321338378332559478127653735399914814835733703128492808315796022023360324291883680593348328721747959450129822232747341726657057740855800347724340287723147080225281435384691882303200055437397536934845651220200965982380518448948101932826694850427714124886160722007845824841589162874804361255222492134516177058262770723217095319691342680578032504743766480228027276986211798789700115278133001086810164466132932296428237983282910588699734817347923943593645089388277746727523143603087353562871272528832084678080420487678434984942887081673302063426306430897448505162356370706988078096576662300743404178877657422052369779877370304443182791964280385630211861182304450442439251139852337024326745253860872797191676174226720647749481276194189015313130881328683595492959633080589493029590859239821284896106698877673628797802607873720314423288994489721360917700660814872579310554702349417064459127327412812052190096986535823070987057537519597007575542658821596645689418525165750174809526801199228946469788891435462838601879680958636217962623905861993355927636271451247136978321477868786547669460203308630822491054567362729250713727809913537894583284001502469151115383301687719702113904912515135761232378203595025142847923876652621912743574506745873457056834313165409846505025944339233350906888979427074935113623718894972893765764282560016715040321428651866529143822371400791709861492341144385473331610703982160154364413764714490071699945143442405001160039946552611816094393222369328875058893416856864114035664695371367021508720745607134235756022494578978180330755120794169133108331633651283534318850729674522047022525440730273281997918563948765163738254125594783118583917636436975806177220535262038248491719535016900196219510533391606143563369071976444636341316152748743938748991871597618168704760492778993713279345810974534763525513413411116671320217499724199745876456231079077451378799592659869069480399589412436581431911230969890785947311336178061441812451533786238324920572640896642427009818512077140903634747861059765107035628357159036060592973529461992323791281251064410080274382764417371103596604211502579457448394523140661755249317177610519015749946434932452597919290414176943809156448116626174073804100944931962877980614548524227288059093020020915448895704506239452015372938530228127614404731418120390971821112509271901758374401637876561936704035615091158890273205024467822706341756216582501898334895665157425164658296195231748890439428332108766896752706938972416036182013520042302659646202098494369370207433947905046592927497907533127001934801930934240649834069290142743306865316975642916980157777844191414268639225101177615545980768377145876874632852092672187559621251678255727078512248278068125721094983860897104908861148172959542440830161494836977959713763708500151202363014453543886615856037827203017350303599722485300874231834450891898824064948608936514331459827378086272604403626956511854658738239496915476883973047669628221371020756115039704470237471586527833549943031524106019540082439157125306960216132605111117509867016193511727758604483368160022122361199973372899516146850700232583319067168125753843499992758586180880740704582276365381270606251343615844846209646711407326933587501347995769890253065883931273262130193098946704041363163912001149850883212847889667446850530250429068298583951357458014785620472509572199562794988744011636114851075132667234108321590677057756762552460086342435832949683595538845257316306170964703795053210166587946357903450774690592975694476710581304733099623172602726482724357399915444450489711608414082087316880874356867853247421745168878732931722815828547154462045191989857595214515844599939432147615594192060339650279334005197468451568408734624936749279219031974171090887603472510069828024091423772820500165628399781081202940239999888600442453011082981743596394117335454739906886594031413132229382829010994842371344520965630803420671300519190801899210214098482089520206584975472479713359254613277074919564893606602465238157035910639320901243359318266988468606682095087864119161625146767088182296160247710500083555370351389352334087284570000025495452261436451660035556649489649434838655354529244666731786856963091329915137059584403895494667435541234032993643094513482433496111661235937126643555188731659756589342419736790219738797291254017845713378481338794401889559065901204213722285113127037032560532381764386731734253960563633938169138606083916409166133034382125734756909741842664291929499639647372708657738182524927597596318105241676914117274452447525589205802048047617518536009585300922769679033666240883484941167971471055278301393125000044893426789235464137756569094774280120276997065205218092803320264396154060549702400550963804429656159253203666749388653034906896761654182486306735998599820258871234417401412091684906221460088560118981734135757781742498193763105379792102387962336929096941201894841946768846199376934194269004488038063823006923426960889863267434502696956852367801750765251173909802211368886641188100787936097233186518743235010820133978168746328914831735214422271611881544863532477054522875292563036056708585905171984481176484192425540071086441270837839773967490044431176492417553106775604529354625676574139026487955475513618877086005631210984413300871660847717104491649011466856310746256843488246771071703729857724607596125275083152053710821503477623919098963567114279757694129604305137831041378908345283333204439424535294233656888547055523286993711569970310037028382274539302646416164929385568075941079534491074267995548820616857888916556048654620683919716164869127112274659181835307847056216303279687210795224260253419571144420167712136383586403144312176122158487954533845270245980290100911174830645187202295855650447089073266439944534090407755571442224623752121048603402920359811925652201433937440182768091220731997037422785110621089886292801647846561091832427959250969947145403825119913501412845193175580964540001019947944655792380966132156548641449742350371323558773717662091236117738903286190089417176630155006052776248582147289722917251474672923040469156989797082559458236571574108927868065998224574450194659477213778272432119647989016594059244945347251296812695671704126581083570850292052487397972547362041340324410255754536891134120236624554293459339797263264763335163146366828974521898381008506406308116490756315296621281117169853397477906553640763299262357593289201906028509634237671395523859827716003464206118905125941875299611452617008691679973198281248046131918361724742766555646893940363472816632667500851770884560645525833513727314303798118819840240985605491520414608392985578454881897737405113262402442874908007141972180967126136892955167047967768758586781653991555851009747549994908286210676282368314578275764062538426728252934552310890654272457369766845958846252603538731846401988683234543381744078985481891751237681494643589116021663505641161440584200517837631966644092622472399925410541595876153456906166571574355521559496912205336439299267507665927571635196695129945331345118619631359805606826605211438643749215539979117685708121139066428317772888568564832116167916270723806002197393993164335614115642803767178956445531097360752951359667925184283904333664045563668072771485640921057092233774009613028144388548368477923753639365663125555566900509187735690198076957827620271967763713685311236534377911855594682371132952118398871558653183565795068248040541210287533365470513479890168654576473085234532447524748857579733090143363830983088376923193183077145960653985503322348132306250425657511753449819215661898392135504207565996662025175624168966457039261544357505915805939501788237086721470164313832549152619894126398692526733493667864813065172260921383498316803430542540299474721507097366787869452505272998010338435121162942980357294962801553217212718025532786769971119272828347361388209521647215753534933584622577390980780747212793404248104539400029826776467852638089745615985674496961208823550923594157842306374173292157231237732637188314295973023926401137033244957887814018277446818519731925879734264676218947444420463597913290166504137481118364726511732234152933275321552400829486872357440668150117680974675798161740573501670953880802439703985925982850295905814990354812785532265710769322670168176203016085798553454756229551347296863957774704531143569040096712768916317466145594924565092258351015931914139540483164559379738518714797226940275850790511769475356919380060644090374472532215739131444507506374896963610295653955251662753789208572421049784580321987784882663983220062758401850111293228125979333823832912538410618523593334198460616800031267511630936975645012734470880022064281880723423852757855392232815224392683968740040995896939438144137379452739404456979644634434451119351383986491639157603083503943617899563630083183988221295622389445935488981809309589775067750528497076479755880399359627892808528777988546625128584032555654800102874345248007882286406079469055728735229856318124061887335208263460903884899539234251906405585015886534384327727692302319182477412525901401888424164294765551084648575309464755981419520498259321030945157231999409781501966929971922616047886285841305761575269276440486557659180722095982987168579999942502566009982921290603399602817422108977417551191346998382469182441360329900126909003197776299955934489467301404322214645640956209019924848656799574892170735299898666062494929053376707826488421720361867893706113295119397783973134544468770282717806942648022554006118503590144902825060228234334864194453332587439415410198314199822170024243650827753423731763357499628128396656153943905906171736423381086317268145002886809603627554319121134699352482381723719435946434239650854579025220709319807749771889842220724364706781294469490063177016744469695297126321982803055347137605867380849122061059878688664618899616583165546238570081279151152541159556381882861719306972660716705963787896385370534763387589795250896160331774271763608785166448451818073910936241040303731512002228009755305000598005553546869794365461604381070139679770972303271325030612064401582089538636546502738015305170860514018026689913655625377248247305071726254020251308198376278995020002400987452271041990697518321702985039024728285187797906702673247339824120830809665087245439812518148556266157401368077108578454799171304667648708881752539980350377091009665495491409117205554234916127394977829030142889870813525716433082162868810826021018831474875118922612118313744892737283418645320991243735033086889020787207743886332541702273967235444288575689822190277367617708426615358100487230702698196068569240682365985453723583771141912822680425556611958151870393465782849994120106815432433495080171662084254124024233275583429186042646126357291241564891889286696100510891239539875685234472853568073331517633860292095711241093942432217089938685467063190425153315841387843331487683741708341967509614291232693470463245087107271107121609423469991760019772781251243526342137349048441673245793735969053804973402778357039556075242690144302127980592314328508251812137712139809768750011687138070242791693055284003007450409773455343472854745180838843183201221886519953841736989794017032701982954258800692192001523664080374525814067969356045435128133590451190543765273478492776019146258479394000416542676280393629010701553032286995848988509357416083372040934848243301096713759068262440923205214691599559466224094830400399753676046531589139557722844507133340233408297951076528374849376570930408916480320534415617639963595190282929503556194469322034940361465298027339587402628229288155026421102287573410183210950525483854805508784103587767343814236644384804861955113418708875196072799344844174199742417098434192982625253007003675631400016661178287652959358322626015643245295917983088765165834189029581578808059905884588013256976344796928054329675972211445428642956811571731624037731089147910537897536873697916757346729835571920063273758978842614973957791006282529088649381241531399609609724716552154354356675903970863471828728523518671970995128184948869078987109378078471657317175009815403093019375866825787447762431326416863217720666059824580720210133540117560261947552233360700637368344427153302377257588828424700731907401124855148897302354806775716282857840961533465756432939999006858933958143665651261825981210321384793192033258024805500905610412964156950256807436841131322932609352678078548185242455010533905670624408451195591437864893108214513006403123437409502020346456860984325684215366003663090660717481396350657606361527311112637351775842370338945176243788686024208803560449689114950752252260541161534272456099922005037133317851163721058220103022569807536136411307821215226693272350820133073392067430279625773680788599837259284025302886811554942259655147370435379712690863661119559899951901835854902382233143674538289698351706093182603635087949331809267263251244819206689953869767011024967543376260023230123910856329181778366244439124087075766488910981279681406906565922929730663911851497908285319452492542174671901384065724711590116701498978736258980190522076269922920685376500514397823157688712576141180023448090384414866290556791415915169714653828232120628046508178249084991079276811995707730324380452375169077340787412529928930526514999927654635865676925973289770320222701732638316822366540608775154378638332442187342147159596678041359027155178540610409706181683811977681540296463090252928473901623469581646419784967285964856992041443376847531510301410711285209078134651843868551505938650425064820093719464204099771897047632685950316011433880001699597161657339091096941533768410663371735757328089264260204218364085102659590736819179814738405839894580982587706200325582383399527044872081351459232438603011295150651931291040967558733438594524226508676439038766241891419637320447248095903374972055566755973902499254000896518916405685194444547047306428561378649364160395548257161914926692901508386900135341362858086462646403711274402066023579461208205393662299779845876117832731844402158384396052274830861966330722036396814392880373810867054564710754460422082439464579388407323155748153660623616932651321199663543645621002802302208570031210888546432878115221155159782509528579265149906317473092926145113612222264362411268017209689838003956766296828690393027897016237417775965382795685415758292819469595105867245669066646990221811706116928653651338127006769234338040358458056510759271767988365656462701837950307667031105659806679524795480183115343990233185620431688978528097863444842599637830395718267715657200631746350980616573137497315140317226809957907018280052824610503325298010892160748060452674225124720202657027006338122546487312387243320542514579016767675807678939412959145104423816627073926781363392038797738184237693631939978793906887412336517477998622956565041384436543191905120186037501094749794181910105856746660070676853600788236372178788577074957653334024143162869694133911300371547829819507928423012395540813085706247974092484229875117186601096547186806021149796457280733930578552050189895440642778071570911365985514063696812813988469386680183684981922219074533940681117013895989095583745957030165707125702257459139563304536770728036005086896717805941130540945639316028964252696963885994275662634229298379062220568144177295806499643445801973230739798043631694975859391732009224839853247441426596271444019702377660915585507860543729091152655653792553851857737015012719208593885781888313587077294984957150012420615232815644673170978356182601716882630604019392127365602984583065820242968831578875616945651733582404440858657519809135285598096479581195154042999350186519090697263895050031177206689954645237733771221646259816036264027253650871021405504130470535184789292445905939327141572603707928501945779280725046583877734565248769698744449819578334251254223060828811446340802992807908204741142438301686242695523098062815064861137307581348184789158913501456475225613781490195522248038584316375282049085211783187525779016598995328170270222257810992739748906195915032747553773366653176091426700461273175094898630757369478992626393491170438507423855957903747477657460035315247195769288285952003760631069132251257589714697514316769399112858857514652763152425267354505255267165834042024448973232291346802366445228288539935752160420931216573897544403531824129173704748894124781917929075063578390440064378589071056862216458057052522742528421953941271174833778942502101992604925793465526795825889196771784382768947863426103768258500382878626539813525321375391982387619143621145900619209696908307391136072427332977363252393549800865550473740657496894063331400108927434615062271435219275647016472148074233964948103095180111657965949918475364777599429664999632239812049948438283930407222280043483179630626193819978323746984682496911176930145331558675447250512524984329912301933856434885171520855686353736210787756031944003076860670322403794344769889054235229647011220098568564777277081804717036899689665068451947073137786998932619492563798026612924572789325377621727663039547267037903667412051719903973809434830102412997103260778488814944970739756962850977357000352166037607577199736472694738698940899005900866725647294578601809439656533172630787592569251420263508557509565788655682238441468854712153811790165670020861764729751760918985930156477247467202020829376843772875841034130158209000985546002756123432380258654467399621317194337371933470298496756533118807387861216350138227472109760122582471453273667316497751441750978848923249646298823499651870050577397509709572338518401713967776889967175551197344898810838722839156578458143210896280589322204281938174579345893156380658354091619097794086357652570297275651243853077657910151499957691569166480849483588534119164633801951674594337775084289029762720512358853499318676412725345286573528230367811298889075190539339915176040112909597514330806948925309760110686247406953383587286014292284174597745323954334982522475650894950343134302139194795923270858432995488535072928814135962317961558087153023263702964816943270753674828547380135193838129105496828557012616977963318031526773546698320853982885784520495495308732363510910377460684567802870255152278526711464401381661130042914022518987172973244895090890309165233151388826662773593621781349969103624545115220294015711753453854330531848294050158592151325552624854152886484610257272156800473629397561611129078112281463769939633105633038415514839075085226700065724370496950019538871749626966300009753733843113196875462042165983435513154857789477472852924985743863766267088102721406679167228055882764050182125304415756764325275550194786152069713009734236079271274845819628874153532985294197276582585258385915238889115676040827722707497664461087023765085914889487760007398280016917069796644700921828184165579281638529802388456960986454273996249898155936121098277309811649835481194672086765341283218500894220842576942425805684727451293286569468014283737915438496805709063722151315945037591159841438742021836799373370291611826381588623752326361871313604062191798116653774899872925435969485559045965123828947574171165899635115397432491871918097261215054950075962762142764436151747910056470541578446951843170106952416871180326765903331071251754948295474694144024612737438239743131960760555960506454523889473569367463602617826439200024163737051956037562022803335057736753859750640190833100575728889177291403400817406610435534583097881857137455691017897359153484552603900780601642967091960255300993177783742170657945888963824577019601374972321208111823724062325716208759798219502858295080888005871067054755447630387439612152561153834227671920637613461718298510160955525559118951179035362731017052944371045551643473206674853201568268433443012328876047887890965132274664293998964193567540455461596878275839725478676619996925793501138066390368881750070637710707999053713319712599651862360244122527257990158786103917771640194966402240722902958460524885736096105106585971553369790778493609170403816992703961075736481440726491406270723174445528299620755978808640105367852683861225570502428232023492965054355079825779619907959061450589053259780737175459113014313669912631869587129658995678809848813073973646892199886956971867433881311370857400719975961984856938970722642582709819597396199924740494548058278503196097462788101175551875961307257226645111989152703692220723802189191881205581815543089615679904206280131399737565197687488320600786491093621282121669433950086755593473993343512442059331630432340593530240312411109449145602378419848067010456095337885943486253186014945273770981536185004867009465465583566563831298017436354454914258578625638605212282126515957211115022135642702021627226989474401958675231648123098002745980986581746932554184350948150502043250544553976125119012104438060356317660420107298718337985433517417267590786377169064805832821350478145212740526834484186457856401953731325111967955161885974331008517572092207252549108965309468746052967719693684410050207491443548391312752236014899999795990120740876181455206240550912619054020760101166561865799608544039353619129107824417668967324149403130003758124894049390929278748847813985798619260260621822927489620593351328428144838319632550736931450524032270473491162517748146907088223457471546189223906759456728310835977287954774375401576831537437030050393090447771326132842481011428274413990219515782421456259011470991400409194170606163740097131789340394663557710212297417340391870732183104974409486875014763620830094280094918609672599023126866705886414972534476629836785353986407921452022377173625070192980138905115200884823489537362374277074093729503754950527661387450402497095809408768618923397829740405617829500418527407238043143430260357367769149287399820251622001830328469360168327081962006486672761586958583500831012417608452110752265700176316395966015684974713721733308452815068581246418169819447300540893195790132675795153056974845187729215711593755966957458740354958680666821074732876275477233081896708193108615602777738760613732312699102284601147572232487966180899052950770729490143002395794741634552347055615246400921346032667622031565300841701303764060384265231365121024601172605406833129058655558255407605945121564462291082525153127270959598849610561091474852047409035403428386860783985725301087747779850788060355750408557749908071496646105926514945626478752783687294307890799953916770558188469881345916060619993793243215488962667512901676772770878610515243469514055086686742369792857120284179190948287598599483523314290040369277838032880270206186637525185776296477290011281931086051399852709079858176512792007195739748593359673889559901757021412924757153004092164993893624689019278277318603783231299399275443323605609194176274003308685642882587021546157269862069270241869419844612947059615000186073149409770832252322131868882882157983245863669843345678628080598013816217709378664797491595827860290119878277926046687305828991991065507049089752167732948171113831930065247822806590479921516267273484972078175112784175846847509302808497415394502514141989472468076640894661293062839632241050424796644277265555675449276994623423238381178118117837006249792323157300092710262391225881715711117973625241954243914098849942723410898080702646237654835533414612909455268647911352408368164419973132013950580000492348635817973025819691046493548167605043950889052816933706562426997080837640017409288628594228466731286435306164331278353146593261547054185076715699662059920444874368316038377590738660363014897801273653329154186054435516572609155426860229051844638394618872422079554087158985806307064144467690085908537751164540989027196279352095185580934737637637625202758652522872668120872394368090103841792958318417216293680311150686666934189109642580318930255824279876825631216182747590135437126811720829438674329550588326782097623075904792560494911616814724664633157774873011675334008859784664477321308693223712871896249432038944116003142190467504948825156470519158641554188573714566127628125522351417158044339928373789115501071040184986437199870773178038134877887142471594544669988042128174098515714389878574552230138615857476334242225185182864555487329522949450179480442477874821996202856356394983448218582177551955496877935984524149873679255597169977290797074571542820054515259174178707121821995824156063765158184568921078272949473359216231278868119990765179996318519721610957104418311482069150983551753581249430445432281938444995253361474778710011893113562595437844341429291425929839992727060169359051861208930831693107467842807899070093595295533570154797721990076876564915346132034669822309110714881131045801783598989680259823079460564215940233804826105431187402914688103738424170685663669779962798168720083530982384794969754976241892795068365341212024103792006421961070142615870460246113448577230497922133989770229478209298006243421935207272429270391563827997030451988005829931161221838710101602592106638784471563693045802980467437246237220949388768724815859449572860972593071098266048006367184277059841327761460855785553232245227156865573319456286082039916366087436515511068072715817889033187568240884689378012086956960199443685755072216613006761133346312263478414528562049245419085835535901253044708643222422118156461909869660442605300862111094485024095337299835350251700132574414390192466566582961910643952548378834333978646938188252779527861499886823400831116224926197506757334357237597490485296512062329150089572344717484268689718186875706184751558489395985941269490894202442803586410460006675546795341991278762571093973890003057987286898477060893157969768353846901705487015650833520235286702443898975121164082952853375584316099882879663188883933977521604095977029837763127251627925040412466521327342974132826174236070369853874175333690901782358363237209151586170346196650710856214402849158145011237871258806555219029321964953658218644027839305125476502412869616789233741529225848520746469000658401006606265409001085842037867856429432536356077545752419800699961805559625128189651858402711444214993574953945711887472394990176714087807092330159462425764703664205381186313292106115495532903919067253788205911796776817959767423339376735093999113100901026165719321764543827505270457341755782838385540003636158207477109325749598500630862592783978882794727975450745005480022878695615195697130127988579109902705060126184475470021866622048411245984163100791802098817620582792940807491323296714325865614509482658289095031447062491420359747446135056657985607817774495996069743058836116167617882073961627532069141219414342037379021684541910317048969316055636634660740823564215693111121872702202023254695007114211006442939651254642514705786363444012798424357501215008411490582927835443078219101151599840085673510568416212949448273528458933852127145676177701533937483449010538232940719191675331620182964168251159534417569356522741408297905662944099255155306398085679742787201394726715516054571579845392237461553696799813237283474635343629332981571086059754110015390923533047702979510702898146001798606049514419803956858164339305305859835561881430255577815279762922450105904711866554279393734076625535416059447487654532656174716852647110438153191204606969455412717763132364286138094986495358472876883171007956665753196338791400262574469589915256265134085092120110339969333431999394123519642576924120279030664244126645606455112715222689764869407660779382204688107305622060733336576320858625568975190702049930429371423807565021797036504217184518384175412723337740269980541282016568054261543638694521822133324570651347798463722738898749813220942384357382536369512487569535127769049060239144789951029170558776707315779671985975999485562973866221337005471732145995120578919143907720131343026913058292066291467824903615062726510253804151298679705691987323847746817670977522670044674925631523353457514457202872585727040764750868024827859461799665821439420361287320323510853186380746227691865971430232716283694091543070995259231511782888672785785497106611817789402565334204724231584095971111622236704060525571275271195149235480301289796608061404253528808953185878178849041036647906083229016342171297831731382411497946277370033887772114731642359578269573682086526087576272331470621628306908328822876808812578368194460228090678813947321062181720322613457779687769275963849054574292962936929022687787624759819531233051602252539840805132264775781904136951516069163728069809167938381584150033720111773732279810551951844925528846590045074383654125840850198846620350025812353984351841810913755467908367065044722008828728698991031855644230566599761302311386760439745597586560191786293153556813005288983753630499626181503805486686085346561539544897450957248920384861016230990158379003686758154928652552806560191694904182320237078612438412217750812843338741193781094379939461036573035560218711587364257877686097756556331529601355518701713282005897070421994565403927623976032285977743011338623088165432311926090757265597334694279838123034044155146545267139590736592767382355947698300381230778124033518042291497920937900113546050206837484642813483943114054259270721995381583357172349536944014212044959357592763035802250286505321081459407720004083967669767567646403849389896514198922438442641417810237618962777081873963830414421092876563978900254370283020685430208815599390386236860952564630584289607568363360799002682282436929557967454354178201720102208684594980696404185852649344908285212033218507168442927031280127663842012276539276948259879385822304156207786542732979052468283261544275565993090622652753893767635447810383885053613163747568511034935016531969468215967809239841688016852929721042862227186596878382768260748383628301332412864824240754032598424075087127813948248390337144133240124812601542214121399346061748373346179766471862595697208803249952347900464144462597912587133470048281161653997218613324624594393589134013983815943734789727151595833711506961382437901097218542146636663371819275187047706442523871597652550541773300994274495664164605249427909413629363238768952271655453882079543045258186609471660761088095478395078246629037602014369371592495219467887404472781786425757872053798668400008773778353026155948423869467169938369342238873434640219384975666433650365005727094420597433113995644392565991450304295146041911978567643718366610128965564234862706723771645207646097898471998968824262210049136134492599283986330903496365208349548581490666486054245987949632523492963453460487137607436841221340302175641589462037604853544975129488609755053901454093949077493625421170594084925639893731338745434462042064139017582984690046355022111490872161986689389460880954260477598608359042156166081359479684733052283071945492086040496423235491750884389774020948414320310032290630852727704420019284087099332930941610550335299339245497647216071375420107497180812004500802739390575511620623529078875773386621808969848838150465099209440858306789592726393801584913776676617343077348211579368802724698582270494101874726730570192958562687120204094048124122652420208690212508910208097568147251027236993330355881426547228306886253000844560039137936394962856300515526123587741803440847883298388800108993788667890922909540294943936412130175039698645113362971561055444351228202634373673366311634124163225460516158050742602855978287024541255078651722037709125395635507276755306270105009186725406677977741434561863406605564367792992435409578657896981224454787176263713429026852758287432386963078532903977292249714639143339903901445566798503382758846016887702264266973687898759652594543077894925223223970263948439774324141904279607786269182153339084426584418413106467714853384519624276084794096224295920081588349871759098087120101589372480812587043997420862635836087649654530931266568022768441431593800375056226210982033382442589083139792884582829504376169821381163431667832544014633331652835251916242533556616208219177183319423179326156839531635053586481603964323442231015271445593804816903534502892482781314404587629586935387838914187870228286038355384941951583029761367373064439333840859061739615351507040964593512109505729894682695119781569739524182096301189329322081210482096452916941166574256990120077885820375951100903760084106197425389956769473056723192824985427782590988071259096016043973113673476877114972781397453485530188758750772959943267442667546390248515163126101077379172100384341528052357766789013083159975718854724119716582599649393872170403989817868559010658560638925725672208285997374260438310696823776267017521581279255866123619759549740907612850363084967728143926730747598283002085922025516308757201636287485520303639058191239969683582537031932522073428321559342440841732946207724203444873028553432301778033532076776766671503602823255304391494108780350925140539921382665300272413508161151329048442258392768952793708688454644478369074493779661917416447991341710644427790438670542515704178791508881741241259129768555648886683694333650376241873934318701958650981996977180093256588102191337370493607528121202818526915802377433786096301697664611644467753456440465499982676506691979945580786910982686820121203548508793428513818638588438388654487884250609700277782161267636695084807815711391239350851517751582100335584225825739376100476211017890101750467727373452893242510821468430237346914041239205598085467655463389289918996852776038163685474756127392201275711533703135930025694141824533943586649332546232716423674580441411686936226544780837767447590477933605608105466301139690590701640155009361835802946782187126664410051353748515855168228507768876575126197048757890839857519148225339001851103117040797515459404591606814948235460896345863852047261010559654508340176851558722400733774405822988607279653233288151565152188555501310171485513533239445263190849441201957035542442733088860399512097486227959644538761416371006576379559342825744426059661733010810908967341957868974166271950696363828377495904475670312985588582029595314208772714233986250507309636613284546049706833754634808597618027915654230497412379246077272921398598420485187929866802326882287261802874407713173791927527943332592324952794452114657384395220056947089923701440610111568000921043538557933771556320831090651498686482547253073761539459647453381825007963072670752964128012331626120660039332736167877501800875547210494908442490785277154249859797970072358471446463391600639583726487470492301240560878529358104711671656156530566729994389384674487916339073190089951288773203658145515706563934861821656690089437869780708297142539830469643700380886150817663518326093604721254664263810210510977655091635269251741579166908880334851629926985953868374868680962016383232948549334487198772016309365790796356130654556662189632976524784592118860499307683067275794828660466746196054696656317215244103193677374561131305271254082752765260762414160378566268823704374606784391197538470240115950138726637655185186869687767363160132182451297972494071117891767211588764121545858571205120941761999158368123762735489566764686519331519971903704740501772662890920783681864402408146086006547335104328474449506553547732214686133503533876811289546154032325132449193906824334671879687368771452062044780928028460353617717012025842157628066948005923209420935425203300875612071955885038129652059201772189496527474269460923355953704781459223416459818124368328483225594219463813441070685261590383493157734452667190065541870017114144175011006217190927682698038970164843016912089087268599517834619506920139779054936197443381492045223665183390357197373566135545041509818723991171854411335255839295082504489990799415923882685943957997882026009509406147126843782533912530308450744164504775628142254563274853105320707481284519022637769754799220287724727764741515640308489341900004619527221100048436702810456453354009046546420855374727842165483244741896594194670047354161882329938646372780581009150382275643804764281266373479292577993511503060248177156435012735345335876765072174591485340298009148761687697992454549868156010599093206042016433802538386040156098105220608895244333735611343359389019371301473710779793666515089097948967497569029823981049066082052926095924625439862753185039207170833404370551729753477925723082921535816880489246351164575610155366145241266390288979633217940871108819868420589538520080267148516252765427156901422348816288333970278157254886194815120282565020016068972824491265729248789772734022366868866876840477173131153655470180255079035882606440166805955765111728390074915374308878759302965980311829042512053607120439437117113706784600755020280223611336463844734379168502549232724604571960248477608495666386991460853590052968495370573797520853873716579780910384322269579483971712428195982280544721923400876096379377651792946148169366676405930633656364029187067342977986726499616192668493353445945456768498926019659325250083468389289303901908143961405472304194170576135899378418336104552854680699900242795047394427018999358649211580012394408504851718953006478256837702321107373775041453443452562560733549637153804996087759757882862355894713330841004154139692667380677452079546658006301936738245822809624811220916517603052542129313162927653003076792849263159018358110906574718944097531980930455613071595079342631724966125079724876603938524630161604913561350799889545089441858366141762884149213235020857457984389305375271852698333256293943067128724613817608388147508730103633818052488174324050272771374198440472837921740584606828132807062723276919617651136724015227213118046346595831469053125841982643802414573963204936548421095668575800521657062197995078509278473920124430886626586680650028109324257738401528659347968571696827561868787163415750108575143494238999409828250259779067905496474828776696606366059299255670605321293528723308515233177897377889492331893400662918930538059307347106754288056514275212463893829627152266639965896527877233098516710782189753405920626482823682939067402508482634923498401416912225345594465731962692738570963147614574824599945914769981546327466548841901569829564128912463666518910495358321194823957855513407293006847595658512777037833693412707418331240539579681551565937090970516907402582748849983717334738184051664022520206161757735926830411853731292887344677820136287903284648750645273132644393453075195774631647584528458536359397259408055316966511309888988303246974756384893102772532570771272643803076231450421736166692022232272844708325115679855639189031646503123606859118043789854223894031549256729423273877432926422744648544443227494581962371798849233010100420918087049426291301001926731018538164144970881697499606889343626443656094248712666606223064179541420709333818141327167611954891193954979599128219835752927244166283206535773800792190900432486550265440176300624615555143343949626905207878640272870432715764236311810164313280971164897019935772941343118842232587151841561705894260884840558392116755443623179112197459939997204748583888410029635018642417914815619310498608798862415313640712362009126956542495865013443753299171150552736997592915913475160789944099722744787354364758643059851027766731183214457194917190606571138399984332096824937982545170797270960918155649134696353148353306758299425455099184224801545258628742313821737710524991481273267687156385405934476459688267033683821089065230726872208232336243254872737730167825324726145093599054152250977371746345221140540252843216931834310458269687345622542533941783987717619128495860428991313085527881286665906280985162852069993393040857972198181005185339898968451002561826157306943335517179907118925879075478171812457137371901124796514641080124396838430170298181049942099947930198020752159773577784701840286555227471886578612347018023773458156382243644933596157495684421869495096768954676585433691023576200549892770570315993725178187114761226952253503704184538124507071908590220351179648777804850697695357238281078330071427885360269552940209098075334015510362886120635884994098708390116616420601243008489927771747958007594268775187463198431510797126334321528776199434890161455065404021944386236405652304338157624151779013147581370560162148872150693346973098205226104552526611740822935692783352797649028063886571682852930662681322259102184827308574324725660406057193004856624484265689590945136950825215533659418544175443247274432199022939123593517219652038378293505932485620845902553529232551872670788400977985419427365453464357181065093633468197402376516154495486114526701244701605258046125177784664458957976105754281219497672926255153613895065255791778389262113688887214042231071858158580425163025107173487125630899207441626516993460021579071172172041789829997085656231782706692770076248320388383914674443152090960145365689691125065130481325804876025065825287686945204568192115690358760606632237204341210820929822478676142228068677558975323823444533956831335689724523137466397620967088423457455249943859403051260573820396095032482509268549864189809840346358312659523333732255856958548160715607744419136726274812712025122583445844758919518792512698424464537903515779690864613852943737478617780243388606725301094529028159875065780237976056172243546803732350648914709338635259424109750556940286479889236431763077738406661071907513999759678415259176693559027527710155532781839804891045009973201435170925820071258901619674919015143351033966329499935703149986803697092772990710725568477268928316040069661153137538142841819975804870221851425767843804636539859399331754372958395797813122587016567712193564889009529509627179626712143221237989778516807296255064004236029942625114207182701074190449872615573499408007428773507001934003913644578436840425560386662286746621490383433807080160499481803099126826977746673646061179639814327381208507748258785187776019470813634165836316971747922601894782362786362458744922500690930138363752519973374973619437104265573938284798887658450709978098602391144505076946711834086032412360830479047159793701741436259485267390567611489468320407198956091930326688581682606969345298039892269789660864263373447467669920601773364035686741565920026519216209187417928334798393677622471686365095647664248517152086193409896857341704684816334699119323384454501537415380763151332085314222392252534925956071174175853038468196315260574550312970024546995007043091509066018939331870042917277741562739988623046171860492579858839727661083166953176307165352323896324005111890988660454358545138545485510177472602735649869515223868992927478130540695798711410972712933636801071339542512946429770740191835339792301017833222081885805795068338304628939660661807235272042069611009275293295063913080456188022381685568641678758658521635173782327157672310330882457674423103292843359093648409178987967499892922214601827903499253169891198145805120268895105915986262985305537952688520124073303192814388620323378448038444917507891974159083580656542018161942454871080079521308629162468977735208465244236771518488029387300007966387445285829708028056802142902479602989695392451878743213571948610289275380318424287253009240116411346926442327306323067377363382055669889841896973795396229828462502243508073615016635929759270459020301447406447441517498208012105564424069353257458947809267678654072529775468179515028184529643708951400963394112268032915643669572802581093309257349465367692936594376839468509679724432322185082092908684704703515366282418956072836843907064685655101012822994102495998896731664973949779960181877612178501459860475238977683864863074232919368950251011560943426955522322877406484321221104458042561243826737792361838800040176875827421682233236965141574003838545357585085606382077067539244915297074989660070712961868921032255111016182689651409923832151988274696198467271163769525229217000902250361126435919695481229796410934364388036410325608551117066349423704096311147603235956667782893110726832953539554366641470434047366708421120411308104410063833973222236180314347227851347400743923386324756749158745715919937944995885171079243896830894335102748460865513339713745610037449513595734913570271375128873120343833229823648455669348843370390909006451299086919681373530909837638103192835758076403981369483086682936453501460859463326761108975444920407213798089008767186812401495716450078509669886224341425846422652094453452963407486274079763652556082423379921611825976021991830624646613977502403460205604518873963947811252914401536229900714863277377066761936186381955252991642094005212855602995266168575243530193107273731492084658405034455100653640150068863755212978546341136234955247558475040913753829194219792877454056632002466165578027611689608236818660915331572799277480224442354215152756684869487635232937435434554480101424614603786628355224916320695051230668774420106429873402688132945565923403941116978126649179847672422910972074620002108820384208319141646894967731209364388912038477328777968954501036205526826962737320397701944550366055387526196488219695420957045701075939252936552393100985090914492544985791789619206055775980482216050140399734984765617609262710112600220359924452955600034546057740602234251543835779690220057515060495926058528770122975278404629754169893502479616199251847307027458620427609460836530530144629144538042257719753372412635969240428708828567606961568471149640715748935980093676815892941885199873020255224469183037108548075177865800460561096906238150061883183980714077890536234183215199503112619333739104850818780545302417911230703148553972013951799292308410733896231626324292745955384512047092829742429430126139578265194228920467870439713556359026396669603853459329552693366798601765991084263120131897338785547309310613229874462404248985425985438462341286711809838812549452522662992658338717151824138608302189337669022845098188646715957374931151615486024539612080580305231611092048901741044478620883136383359640655650498435253875299441429573587355270672202222817936700333186626229314856419400615068828465289310926918861010375870915717229082814903988038024320923925756155199922371849670463632486017306981894415584420802297299786088318162441459993207152990540543900971228944645269240307017103266444803868805709564741666420245844671914434138726053105299587827850586670860418337890368466717651683573954363071573497457224065094197569197865380804092120954937676959818355424349225152101418282812426216638461941824553825354422921536001086741328951088719576607028591989660183408803449684694286612763118694914343035543718765989605358600613316303602975346794166177870924572676112959824454409113080574862626059064951389564533749482352027834146996949228113857065549270378769658315700339964778969424736361454787130764107835550154722352289840424397854020201190659331530871560423993534882442596793076474998907714936596534379234100597550437779962566909031505320397711137773601023019109890296631247264346929685626864842744396255680250365016095388827599844749143600342302403074788434521046260983158183500660597070964195249555331430421429490336533417184371565132119252263224943176885031432246541365706834118071472093907881946067478633572047603920270641644704991739395711288219026902870643959249872293048300496967697433503570113774883835664580687739962089716712773983219336472961058331572090031743471608849779466798217956700393284557952234350124408902216373687970819563091036670836657632312394405098491949296448734159096138798938140435627610312055845153743677806226786514993788281707219435569689522992317022757264657290566787729908069967295200695163296675351131585675567328860508290566957703339349992612325728510145621513565776941941300302739656033677143407952903375649353451491214003358603269611899371382070769497792526319184263119873949506014220492574319462848651908962960467234764782936802219496523169709270416324616918481153504128867923552820116385523709046738128272049224920326495873882338927725608724541227230419058319104715210632509346020950843511562540624271942212743935957918290738540196636488847124927697319940458778517260503757348281100188710820442823591489948811193390690494794846166283676104008067098560122755935402081126633291963629273648586960726396792804050282728652334115657255417926346277079437775940893800796326860773743544355357299395305227561778041570425081848724640931794558300903830373521809920326357904529316716786150194761735779451747241378424665635006379164011894493749649296192285915600583778904217793039135058094251242577427792847019232925706671766860229426839473348723606714123172080072444585563297969419450760858502309500152214387659156656655064883378272576304723886441617450265109301016088228097870439054785805420561069369754408314730602497634306553486448412741127434945047900326458645405484592619049869811555632781183838479639918190141932814656717997032482914702761094540920912238651199021813772539725125203604373825622350646482096031477209742810056581407862477499283689378426862732123759484336436272731927989751760623953959893173642959985232127597860720234065379126926628775316132492642417053083699745278672942106565750038424464982430695345933696114340247455595530436394657277655448166834292080098204102092020048056857925471293200787813716655961531481799441158668269403085301778160434608221287814041545987104904193282500996370987136208119114263423494881419243224805051729898842948742803545994334562942365222383637459660208170444388195612172792946303003110187770881463377826157860762306338822095867776863705406674780268831353943464485772168493613265770253352973732302608668332739196263146904117003201518397254182662676534336654908872029517882838301802977174646848695279351657400888361846626394050904924223659618848686618239985334698154326876397261125681718520005129168380958293076628521675284606528573003671814509110807337282618753376971009851221552546999289135457154611783331547486361735078103854657079854894622881341867650771865952271782060046522502523726682001565928272144519940065148481714710686432852435086059061355776400222818150157611447217683408239695115599505533715213291935527360159754894016280848752750532153064287231598399926109353162374349184548132352973337269500700235301186043905356969839684541862008282410826584123572060503651155237641385510379417768593567427184168413941768659353198284053117540652535824749696270666354912201860596071465048450445071629925448196241198769226760532781107128140015529600131332949967585188431058910083799241060309474567400790536360117331670083089472713517408989332795547265077398962846662548333482437840571934723356160040110741446272064578888256928234647898396608068889051019317221524727344119796259322812960336658326694167309962633729301396889995046731369120346914894358661032652679271989703748806643967985179856262250755947030678762515026055657686391998457480467415586300161908428431040098345032100556828173838687465189155761349935881128576895379889872820057595388842310537839461201428679306969061909251005029792418584814890500614982259612353658759142542977590632282762669498380300465252685535045355510371983906408300290588965641447169935924794410995622469162206478153360247532418265802848070471617333389773698514527979669797659110396007240764504264764919112335861099121097180167211328908146619784143127365744204050181560817944754881944657070311041815272001127791849785214850095747682950730695334807961844648252071788361964349796135015314044572206286154329552550261538035498571954414397257521622724914389870383974979139217264185981215017078668673528748584819830224421231715027275161798574739049320843127504563637827703188320734441348286793188545479227471914260594392696821810711779952580479726037564708707160165109427292077335229600458476459564089497359128694850267755242025088137951874681151893020079803600480073010449807378938650316663384275487377758221498761737199638292021796988207341766859300787801668839965785743013192266249771382315291317588429544470463953870887637976457660753636104492830244286414303136677728579147840717754468656754358855787182274823856612154770097728712218900748202591044079546624832102514270705219121550037151728015479051663119288240721747442126630271505701840257810691181582137467563632936106117678312662138505369006542594916987751967132665151317015680663210919901247810374997400165063707020776457776877330047653208610493525785249087355278611264919709030817545223215839900871793430595062318340414225914197931933153545006705450112356162445656680219549562064666015834491535926316524625311249188283509448895700041560745939818318932649743616522458371884401882281482650880158176292719871051583604614586275352308104796549566537738898597534571837248369812716498881471625255539995005631432358701202142264397890907802049484435274635210992596527221649338802654301766267001078545112469710310725256939583398669370170429293016020776010679066176795523920620744850852824793265335531468425050014694139445446942043849332564960647188405644055610709250020929736899585325969032707079214851055198484003482335822424822563335064710912612125867738499920057795074114863652778453964351525353489831634737388586691445674296172960182366428132009590827151255470482867097093101777720669645266473602593599479082874974360288347394063967136304331021393282887429373243813886950652954869591921651239235933039858534428891013840577901141210308415697791773368382053923471690046712139937428177305824001743852409935722044183858142059960075082212254164951245640248850037416329833405402561413348653035845613162577022016745018233460199008420032816223136205776579711430240108224424352290966966559899084952936936309299401561071789259920568381857997024844379799156741097138899468269215483504723155145693754263849057312639098389094674324411703294445022116749638946189587465106268726262776520577906579969308282715867398251444711831527638805858197501457385239731359663750867762010259811491155399733754419738050791027685821884125475985660752590003290331067431588562249538018715135024499142438993772477647398093588285261672499854050167474726754881208705773624784141845262985924944123303530107881666323938927220027871409942948011217230086915385993792609456386336352873334889933089774974953087121262231528115797441394843683870165875580774992075161643365305853806699867178713585699177194676004675528096137971425207394364106436560607479079727123472670462754304170403834960839021189610031696959861297080824396227483405325110651410162044930705262271965040727133956158274003273115502086001549597671713455914406604948280705354878430990649519229891312671260447851077870831978257328123584496331427444363704603832220212325722300592411021122865346220865922638386928636034784206788543136938693522356822904643068494681441960031546651646155771603111566413202127902378978453532280449010241186807437410113245762983884592643400470988233321331520211392919181246676789640585842938305573299802114393080781338124225594597889234904497540903289267240803838096546526191850533891688020483360355241930885347720831390845987306628773300887084897309493799949260322975778062092398896657065369811444505684730294843889432650893998015320253120697614668522848341757668260562476556026387662880329146344858512807595175431090138462682030263206513873207738440705227652317924935160735438823523087904258189431337369133798990051379423644575251714725895684816999279089843773858400302405096092359448459646276622053981274662984482841403614955074096837654304784521381209158918855625770467266165216538675222592631464771365827284502172194476025274730682761607638562136175797440027896916241045776352183009553254578267019160789304217787550243128905365353849614182125431504077168199512061157580050623916387731577043600916159075617637475788296959870419905340759517495089892715134391079707600157988913711502109381943727807180006114233890691846779477244579630058689348369931633680066739855047127017476497638098324059639443217430472602984016868818380791641125438370904448573981186696354752105677858694800037605190579045848493502296761481376402765421598669126213326822194990584439646197770190515939695885021155854252087530335322602572484691626727943522746154699092299247240110751644330827002593745067202752016563785896897011939513982417894168841417403348890580243608900095069531606773970392844445250033142214952182208026313576154115386798338043307898989694139533975993297550198638185701986740385362580224126418491358681143408314630997760134528097462316121480901608341162340314405750733879774363406707961926209884147608700294946530494844695497538150578758354417608497047354542590174784548562972804678372586074838952529773714963832368538263921016623148124556020681352795416345557346661635683605293115651592976151409840471546042450772923441543226804695560022575501339044585650418358545356401750498419107545931858475598874426129019944391176308556855377904631150118276907580485053135091805515312843826162331019600383954344634228573656849906427792841562544545585386435938626766436088285806104038302544917329616032886603558747409853503572686411422532312365616976865473817602040891396408722275457302591420439393577612497294611429947471188308712342855701470879163935055121651682230093883734463204085112039321013561588570168591901635254702696546935390010158639078813711617931268282608209160951719216224811286126620055474238974644199999191454566759059872767938014267842031991735042745656630350550647680691498124930091703456660440830063101710228676634522844089861814558779135506533267055109970759778066228149828942091378329899621020483090701810875363627510081874554295072912459106606678100045451818504988367935768083064206441841138150736231310427887864495801462655385598785206186305178487036426440123480140628216451281703088560139259185425472919055465062746471712295148804217275649810524620361642743952314895008117070513252885559649950150621061804188575452924258157355521434101124627172729877313596005175648131533510519552924274071321374332823642481445656119435703626775361306371000583396328292979689066533303340316416447225898479475348480625251919044743516589822161845645298377675230842791354224246845761932145074265269812941201279159780131618486709371299841229259566822418722306939159095130163902911419061220332369893951872066938483810956744915440752887291163080824181129622322533778997598120049937544693296664925014917626336449375404684981679132995671731249421554468116429786673236684352914216592607253906946745078178089405352976805512149062215813433969731253376711867174653290173099835664441272585686873697078930824561645435621976390159064399276002014185138749183683489233226314122786066088458825633800952790195784908407398203785096189876764653634007960411199844406055917379425196334750781519210671720016589178842960562107786826591189323406462699812275438969619576407296234552047960139698093915519482489242649825567538803744806244296977416964803859036512047852355830922586297586619262321479917710613795308262200809435146145208318907853631139306900277888579469425143999815202884455843474254169674278053580432152251024979311475002969601935677123033838328441303899518050520656070726733358359324650393407239068805627402507334207901956408739949416799108404039514053426007638111578209911474553401972393072559033628779851038725557162763502014407334360278916278428207839968587091724102654533005430609038160951003547187346059884779171890764549433921344823755250170489091658184628386800712769306154777375797646716279094327248372380205183489193976948469663201631384033804154132636292997521989323686304967095954658933502346257815222104948137305195557661496737024321706063354603548261078964354054137506416239597279322122537668809140219823877970340654458850921229499464772223876727933424242956619221333027280491196669162364415517754419381514318263311011546439433908739880829301338458217259142688802141347966303375099268422123387397485386970372207611122474071966182903171063144703701416498047093381945070991032681589896409141509785922788339597414089728371063913033775557904844519560460915869264625819125947257586465174880654736560491251825182843416010211625624606679016648982314332386049986451584006851724365017207124953142482404934196287554227845524236770017571940996346614830737072524347557974918188844384588709792176076251938145172039919490454148748528937333397291785919155427184523352587619355743431189955525015930910336704525100692085277917313606096230236383602198714977945085914013529057528322694921339828261243528804410081258658075119768715351475584988913905633931172449113555882770583971231448238407278097543999878722321393626340588248404820435009421914667780279225523931843938401971680379867666287293352410390356592043333650167910119956593000785398424533501230421085814671640552145134856638890994397465095791996621057251541875840271972738586746233674906698877522796712187780506729848634591370452621804624167619431499480311764395723709355517122502938607560973802246808199773023346139078614091412569910586803038808260493225763025527555985449670147956091232306548103602115561811930205565662453365048528569099298867149906775550740444699441677762686981674889556730101492583119597773258719048997566264902385395196019455811058440394140677888335875012106567388278514868167038615078537891616965918803041662928373872909821319464674184314357883109704982141171915857732396153752749290528168655135479433815678817511809559788288456538973789912504151267667108759524813727606982718684639754681611905488054488020581664194185974332699005714095875443856307728111580697784248225414950294799456317865605146732681311275823535536816873789114352604940736674843174959011016907550865321601504854574072357703578460538440398616879803308974331797375068172492166670592696838059425517554028321789103971155979527636513182623908666916548777223795065878195129116200925144418784557171074885810931443507056679371930045123503965007651435358840707049479865985303844662542830122882857928300297586564003689539773068376562049789420767696172854779603030388176214115876576990027762070897576889103683960478228688018477588754875434608104379201525040887379118619664184054129782158357998093921050610188412953372929749738358714525678858343217975264461657324987722276186745380971721100857951353027227902330779951846942719697235542251471349111590514199251555126008366148678509318575256603454052482262210661370579086392590555727117409374872422318512619046279935469079867360842120554082255746864342968239463894388855612873068877767429117965870493322224856486595484778240476328289709627933001801935305367263859608817084390135217448521059929655198877841950462868951435448320295746279049309878360653092350189277769850477649504828084182362490268602906484340562739494988906990464741139160397728776551817914563523189815603774161008356892946997353836430058722454455345766896754081345976214727451082057446784483618561881683821736058747479312437212530869610091194788584396044533986207741792598922652896017243329971273064587294199338180503139212025796881247567075592315443356493767281594419284783541599728682728273235392967087075421240295646714343043560127037742437195404413068171054106748701714158447711033599260652563332386131278498329969485502935731673290593154998472543094329681880324474541463231221722603824683731369521531191926538913049177363708766167704021956206280239609481427543626141308057627542026827573289970554016573551349211485196474293650622300734998123448922883420086002010570555078083076159005022566617346489463617133005219072890756731751943346286958199286545952191327839579147691471986715007236536462615449513467664417544282190926378161847677816975590026510817184342723568387698861688243588765891856995044129907045832286349135565617320454882121156195398939209064236112825480131971981464554471097553343308671055367189383563511610802748579234179763180543163396061601010600886408368294144846943766827293023171244993819218002736941895087366871915185966528387611383473124827752565785302737602255175373935940624315773446182060797769831555776605785703985921215543614774834760599434533843658407629867129140206420924759894486967386422583986522491373680935397402000089382885581816515677381800084347571874613030845875686238524497227218438738899601788996638719834640585439543536374242417254920878395556544596457544232701681352971858240815065868077373221993338049686663650396624322506405186506882734187649634541389220649139982575676573572977400400944797808463865535133711980151494014420749478061940195826094671279080682912605699656234569425611857174456462447058249996792011980105333127114785593962724243029123417878153661501261438193347676143603260229238330586051240143725059643608819637454533908662649043963646704761299825914580325810140138717610465598529646908814073641384819506666766601806043282747092648337246921472043212352068541369269225432492466141568596207707345065110135727472009964100395582810681803353979422727750614433778048480976162677692967791239181486403652981203719333805276400427208796818022830583157687431641845616365071660833581948618596071846854778822383420696853308440400467175697969753508299994358465702756615817315578997305515794623510613772315303894629033207878299529737789820806837752455961357755189693381412587698693783988892530056308850258729980889943159893062180134648671284317073550220655640698772743975475388208235511162005463052720242422909545058993395133062806470730105015424930813517732400366101592555975152989928202730942834324872496444448801295618895718902674708589348927647208054752921930113229975493131211293092773923532702756238718720791467584551696580223009903135008390281615954313901083587790030007443701392211832302965037598087224089404208261844433775168346626892880128633759660234234307714519151207117618495575909982228379615666314166931269920810000318458619433868384025562430789264048391343029945481677859398049198221545605909911515857655413300678581911736821338032333511207369946800894734890985807424130137094561728776423526986743854674243715425311258967538667687561595298813485408866887595442668567121039301509203822200914030734574692288163247721581992746983596027603334671204711681338028874632311373033720863465669791275426632703359361423505104263193397257239749341430010149846761237493507880469003473012235464118100557781235992293593226868242972690760494180353499005708416918670333338241605816633886664569886809688761951420376090293577467899945827835672491577489485434057913380758566830043944458044139798499849656697938079175736177332688950006369853707616016373375797854107311701293660231938775489385441793766925205969666181525046798604039458193937237353743903706202679973853244759538183351995849204667311601143197488184228336474455799920399132326372985577837092163786273029766539039639284567614798064171197841981025638143353616050704407790097331616868476039829363474530218486868432499729623034548897763112837315650729824025190959312362242753277843356442674562824890106347848320464212153964437792516634595138314765436251227756749271202808332419853518518510101434409968944658656667700742371534388525991094047289750231983482599756947507563415492563008240390875468297198805425068393512436812545109066362983568104847380378484626774867142619137090452572487790576802241140623639435544732651517202514329892133983476637433235407297100474554000342094570697508351254673007860584964993910734743409126558606167637986349841305890842264347816724506930031235518096724853488256386270216486784442433823285126159790624517258196221487470569625186833960642372125060155658374276245242302905096998669749933146491874981505852775419377480253020621472324574601683307417847567964739841370739825623426411953597089952275375551129146042453724403817749913793372395353884035177373725771410742542650269718950066969021942755872384099209042553385400457952564480033090172380537041571597714252489254417056267821102149514273874588995370015395920680521712430459585958102718754409248776563558026370575402532937311485642465713314025067469448109159634312810176415358843935639905412358931827030851801979474526208334067509084454206137231933817602342198822019960917137522214473798602950403379107895863989342170423814313582467256735287988631783185711929736765832950055441789709263420999156766286214232334840336441156521307233113332208184025290199338996159543056004107652191628748209769979796158316228376763469388017900654859837377447399571500778111934109495000670257174357251366644525947317241298316769384632009211707491012807332925949827255514553645599071819631978414979759033627002944547266205939436095870478815942918988191907364887820878849418242927992011358761809403838014947376556240410101046611760951413492261454034625052452680539774112126336567442744409773247242884077801561541988246428843422952702533352688890146927841835971988465097116084722011316242223959817317213600124558881130282189406926351677632161939827566645510314788937999359149217380043471354684992764495838286167063614825136285249119299491667516012883037522751136391261016260414437649171097802522484591142632036396548850732940636791426636558960887528018860028591440224660354766803752972063510401560584135799647736369800101871128723282872836877677995677076789544605903843038393732598495932533871093963444385365717789536573659467168141509926481149828605737343237422382125672106766898928425600409227476595174266868773340089883324985835104651924019646242252367524792909689554203476614187078132314937022052471386224989058669572029828428024791737403966258644166382293080505648788616567511870236691960996020369951631481769965191022724618817994446976321692021107643438403028925707274588310191668224076457406594914562605846751848204854572753020155295884319027455052993973650615808821380233219941051954525008532039003333499254762182700239531702300060954753211382404172170756832647369781007999027431762866074528579101929614862051243811436388295454793636677992889528560619352462954313891936185927203100114615697290540937052594263837370928915414007660496785778121586672502558497266397159116580270829648778422270780498423886535917102936044699255015810344609583537468837361339687311667927527335620482054317343864933081158520287272075768180756378676092023879082182755083441759927887003945461861604418695553781025613166376029272509268313216713385754804887959828094441588326657836336422231220873078790073811542688784629771267576527654532478608817417742106874627614116181741343167042741855469879779264888616622014617136609788645605350341604833460833914938498112820892818438945263685514599850032401226928786226859109598555255136106686762196812200689027062432790446862619356326380659842015837499848287418350436697226938332965005157584280060281692582924999047442460506778149469816826088879116588260158347005796993266611587761696987122596159339927493964841926789167247157126547084719621646585980143382523882763808309408411453408924816021505651197959356018690479449824500298196906205276889210310920755058014371693024547478090810863192375158994242340067160805848993982231953873042925944625075818251077311480170314974580992751998488107135061227252849606699017920939085722382429899459239681166932893575463137111108151219170326266402012605465347219366671359040187571254784627350808203537997381976378395220583138806399450720679706891869003910140186059933746210620274598947855841409680800017039688358602601989229763347163722221138287451530728861831588403339426242102700099384971731462307629710542517804868963032375949984502500739150761604581945984316351187863941646708276232972459918931577598252977754431324478491929631682142846330235310341033434193972841995847918743268156527737640947916140416865498707895136349754632796231082243618844093001719444021387665738991838899046798207753919327192292951894447197673060932125241372513355932839935193400672453146810615990535621098460093229427689955801084600285173893343247430782278386812465499440146196792140502971682866672530000260814976182925813014970648115706540568568569184566827690388554360171025853855366249613643782114021342946354862169162816138298202087410507283201852540403933784092821672789482534411341389764646322599770735816231212831522280042911193774703178107327707040314209212172489559916408674531002835358505351065398132949033326721475292945924139843443352148785042308953812746749098968662272582980762087577635807570790821830231248284356806885232694111051315304024921342443781999470835640531358896408590352438269866348876565281284213430946476952351954512665549694718137118547722065103877575496012942566351719164102353074197765890461419152994044472438485051227881177184047512049638352307053741623134544810306355135556400285101841452989704847810750742544503033302801177219684960933999027502987484611603429327507651809638300611799200545135024338172958415508620989758547732098970492902060224745547726182452087090481642012940995227678570503634583856593162943357452487997599805170080368907108377132298659572466159289822952426194288098229570436460595239142470332321526366516405624278008433618404799709622909028536300037945452026147726836588655291434144240494721052427217679448471286525182984140304576672267427045343011724793019323508544359361684813210868715387308487732514418120905607183418480678429608755700269244469269566734157772564414023167542551891451670707502704931908973233415161501204180270625075554305486313724996701322534550633146281564299346440884443738294922820477691932098505105389766226498845272371441234565098749689174151047183147025995208870683616364228487811073822478228087059380069963040442183494724849784000659893029442875952009379292892357036344506849892837976924016003431347059490216674114028843897175385838717252219753454745524830550579296398654456122215426107671316865576506109242444910904581943328316707926746066482144122919199649341350963646597857706151349963667560690192872833520255967342056622128731762360424822629536021673288860784345092597609269939244720392241007942588681148672236117911847754067560741532651159723502971024420309500699094228522436684797430577814362084027536402701247301760923259069646659541604877106080293923592221073438416641338630672625813956260796791918487397196001451412724518231269336044457274751207953093676397321290802340435162155474327620497125684154779082059594556725060276045247492161550380971729834552422824024238704398229697768110629042011357016440718843275318689893730274798818674659080097717958502892479822734767105619520633906905678357000251389812627997239593479104359090229043909770622673701810280184379983519871103313273037106568290253915636925075943653105752899600003911417934769136471215091629582236526034595837766049598681487022179493979531815745809032647346557238375072954181255386263103825777762114968819187398439356352482597281141500485518317887977769296792177110117776165034524192044861891034868409558690499872312153259775528272299350151203905246390936812817505488044280133487016924128797726330237806835723741422560199087699034127484374005852144256524128241066768589221827925979330932294744042130364661989540297414294560991989203638371523879586139644871831358683221179081086798954370369206210200306265253397353471052032805926433102126793959653147235569455117958466772765195786254542019552201711868545227039170832540561148627002061822846302245847058420718276809390006565644167584085455373192462541855334878521590818569488661512558567721137901281594630670550461188228949529239866773821723698813567345919354001125893298480231707410508966991745928940747776392974161021623166521242216049424756962732489390877103027308739698715061098273879529115444271616787016304611875135797222423221027729738945277954614139275650391817735074805807713643295442050475846221691369715849894204695635492566302984718765394510850265417661387434988241670911360301427940749403978021887215330486393037601907108053008342046534263572295959912445675804230071296267712826619632129079372715374175383819023381387751562092673793991989135911855825604721087913439343430257908136427954328483429749058740554135220694988095289719867249007103722219025847974712233936765302132061203095585466944233251990010070210343368835322817465310670504703293754446463360949032149065061053617426930643910664119072471754121779533966389510625286333995251091750915132275509362430244821529605619146418354696080601150539580425043485786768223189504345939465569392766370419683515298774193750111211282132234078218848208056409564015881053181703684472847933563130521954002219499954215724356209990933990043849628165759161291409307790024849169590137392767277091906839308419310522406472966020436375177964839554644976310654938427621118656111172339233914596979648018742892437557109838658003143247142054993070545607057158010931205245299662640380842219702430849746685649801807582432456955636422274652821380840857539062565855379051572266913549558226054284177105957684317983120489964443641929889716559725462602713922441007843385988402184443219603734241204635009888268285015783705717221361855596194148224477173398685004952060747906167340806650796380807199532470377349539128367152845524775305403612541661094181060997816926181109786641014955469560470308485763591665239082584026466176330465027993778781062089477422341691563565413853695191130495311013940809521314597900957505274827283311717743103339971148109629028845293452270723695496690746666607872921502369136658740934358314849106233745414174135029921930364929187080821996714055682058450494292417830979220214938810861122620431406537070244436864839956744880383267237160037764496822685993039126716435362903489275621568013586250686095935440658559372556741138993244074990832987986660105577706888265576557792721134667482517186536927069346762352744972256421905301173801656695701940775912585285778639937563329080823420220718610095575085013483445092837434442566321195319975784709402289393658902628716044560220382422514921159780155591253316006225152819045023188762876445335842040252989687661073564411473710000726548468826000409448386486958363318055389683822326092813199254386809412789085340633626347841271887483564550821244686511635110875214680218853023019917473271836959585157616508034578238120494605053977870754530451814127746330653166564116187242363981732743243279586314210752081228340928001271367294584019327870158339574976761892572859905616608911620362652383189092460363230946558458445339590180203072892368410120892087828081295403969545085455135931658468560775979592912536130639991085014038963226767404468062185059422442255798998746693162912443405027992880310997646073126588193558842906573009349760286757109633269340150957400774157827365269718982950266482255301946155893250579800476659127287656601247547300841332422708148775882422516016878859818641994868052539444713425488033086849178713538419013840569648377306569502071932985584252075457695661040015475287056351702312761280867751419569154760051434607721367745887077450809799619219968467405650361965552352574542601589799526969374501382692633006465984391301475335825557488774184921683031351236453988011055423830342180559773279768648084743370380327387498078169533471530957764016478382901648288816322153481490297503982913796846427871051715984911889778490584646624495869951352510051973227436087976899474029725352697147858297465057892507969126429592489430149793084217563983304946480025903145887264543078177833886965593255885556724912814058556083456708620644122738084503873169758241815687853208393061375775587920867051559865281675034484180476193723716468453515253857387071138098372370073149882615200466294917067902998988904551476859266916164126691259022010038626056225854251034764035454320835055834282950187307550384428633462466472109110460756146353360945109456657295482552532777388693928278577867733821316223398487317397135553119323377354558370200590063957013427008507210338160806762061409461528500943131818523663286066350941761990962264205664720013104456910810281874643304501486358221979882220797300998969778439946073160449988763302589516103168051989688505906936114035500936776386460013614468737100837929238194820753508199050889104508892916564075997635497501093302827567064303868179601548279122202723913334231526116696293611598510135514390926168061293978817873476612614547848177384242342356146194716077114072867807872205321262647797785064638803068514071957613052495846783347897192842300995635378900228121538037290811436846539529110729627343036597099750323705075969861083051721667157108281779518039111470877583703809937866707743601617323362604131839653835283030190645959482344914567251344286737474052834827877839494525742305493779408768118646488548560992772603433671240986127267269786530618460757846405827438635339393525412929798849531544289340648260718187993618292764805863560270342820166456748063247279613010389830854189850480746211829769560169123587950014996807130146386927618111578443745869697571546092394743230588295392554456578624182390923474889303762912569903093458694827958585550730534834114950010294275447800545762619668399668289812898692690742915085686368142222355593724724818431986337392344625468886370213281787679673178398931963705575162604306678709601877944279691573329512382125028891301052667673212549244848338714581239391394681388401888621695689638349298175345297497591761184903153203246559791792345399124667524488416516892477011603479043236468824422615349266411031587854227365347624883478799346988791156704060587324613778138505992046428014887710145040560545112520204904971988659366737397751592175597396801305555706252573274440753935358071514323730382771961511051611128525802355764916528339145371864884170097460594924985967051807104372484898204684828127153935282590816865261099337788803558538748703664236502311821415743556489688946027999027253868268993498123925873460279484458904218878245859955820726911265586860752333157872698323323052525165504397196309762133923203375051133105227342109935618284393502659899935687619480462195596432807626326891873459910024299816139712088211842204435071746290168642991387490096393883960038461259730254447075114885536601107032877730685383181867357699154303938401840694896176865010892278248933123864989082986355577865436456328975575300235828778984486407147414227451473181200690045750628425721550833519949252832863036835583999366192628882491436085161309788589371865643214567077768654586680304682001928750886603085639849848399381260189754657060030890230732359106279120824327744116335259408364072199053855208936534155199866875578500061228385440890617323821454949774165878142421424506909873230583591480950303469781269558192071263554666929741088986313863115224164185374780826361131142388755664306566440289219499532340740167675584169035954791116997740020934787595315347830938292762097607108871193227551691848372999594387592035838871537629316075540217550610377179428820982963195081415377202883130765146931976205235494188077672131980035316491714638705659352542458956873157183209702257011678865477503285676493702029253915983804515995625168139263226765910136164531689636096184292535092839603004993849696146736245287448504685828513312409546894394453412604418105462974794308833855170006317641499026313004288455757530776901140337465289408850956130086243744787852560247256328588458158730759177309393086865974424786630776483944918493987716608190131347053264609332417618854434010398938456056398140101972011855048772407566887413631589522287863740328360268711025614240524209426654355512551638024118819940241742508510335659308529173535723033978492706015860995044957687687355605152881716740731207667010198005058017624739037387083782519498813354035980450789901743534252494586783993455670453617192712864982014361200610614671715974217831011611380842276046901813159883413765701120088416313603304040734592017535085660297885448204529096839966989736755810525554119830990669067570908277057357058234662673582309204436251294861191718905257033045075070771297342079125422258730884154820335791316196587197704227113177052593417667838264842368491483183122030117956864894877555567809957183981826900708146796987715826779272856093048350206060922786494573097338571668065144215199928407961225518674233805589417453258827054996967984666640037853222326310314995108416981357612182402729495211760618980223090213531853302017643233181305375222031975523960290529521549964135840747633311908623290702810904830770201804135071359479379477121806790022602558002701668346663978269452457380917479477423981239399167280641374051077500889723739572226907579317535288773152646607028849775827711160214849597659193230498327852569500999316550622077433099126265284846515705333113590802078346271657242234374462974553012732235358024694762563613433088743418617808779756567470088350305977102003539178080709134120845707392026130463460717486375373829929278411161557251324115350097220002774395956266111241331565801341366850156834043595810323098550415082173482429394879530841535277478164517359317494781573617891944725757548447536849359472151550035730989274245608550533744525716793024390301158879073194291017201523681260151116073513549241791922802123990389698223471966077589809383839759433359403792815754691260296598761564879501772385558434011701000538907080230812135025579968779544176581241977575385655802821641926997815179170147833180248556442641852518874025177190940813856116874432723955254914792244441782870656387984515477838083119931479165341190084865075916748784974390473855594425251986656194082070352696565528324837064571535989413942100772519630921929087020046219182713515084066447344755400198352216479156077895908374443886117832561277032864678052681331193009415768393524581687900304106441223688770541238441205750021358228124542154278424088984839626058212916254353221308482153080438162132029499247162711654686276058254029370089436834534584262292567011680989495190984656921251404155754531347763390076250139035891379980096962476462739352090815892302220678453554390218034374042760785123346308569165595178594496283108215022425270134836704435243977288076343561685026303248332295709759541129296979307392249889092040489096730462887296920882162983776659117756142095405013319795942070572968614474273825385713026119468512646853490917082986812181527381633230512383523334104141647424254100845317669264835721342857871305701365465485100843534095715095545907482354185306303498977224992612465074238758205004230758948669226331029658894127966747805364907196436394267511649480606528958502870257302992334732713398975171683360756618194488830127147269616902257837487991135987853611404799400165060091558498305134570640504190443922575345830996545526071117989172435503217737838861048916986525194037665474936283960137666726563659131553318290470691684654562109163333620520561230678261907980193340169543762763978579181376327579106954867833607724250342282470267333166535114974599443483791458449530784846881410134839557453747414272437477007291601005864249960129896919024364163378517039967088341521386591473089599649294056758841216427690806953667798277784152152292079421467467655650110138419730335775567552177759196865349689880235228896995878400154505833543606070353673941885271640079530333245752695587641532555417290324555382308963052087493825944444194526339091092994377512769080166270476676451486879675844441495311798909727392048694015657498722785598026388756257839378339928516970603064448629395674665469571363397829436124867113856567281855171530398720500808300771781405482080718340030863793220382421033668740581250377610358995825428617001935519684737209077501339998447725885320876160332882899285272375067253822566445370950473555286653377371057598546569338198852152108898507751814216965360829527006001523628390082688030149856718535820061768899041725549561588155093538388004194592611474092557682226410021485335585071195504201675875880619301598643757293746726915455960321799871857602810494999961906997666515041868750537685791027341349277241367185055828626077683202509662160751126641552843041612053506705099538151355336244163716462679407965107464597442607972190305778192332410286692242781559836410651228843430309994548354315594458238664843986085011230666672587175906587069954931055505614625319464019448744652102144654928229804925823992119378401103848385759925843401943663364773604125863920178527732017354828625693443279608003134830322374914174087730626527448313361434659697587546911217853059186831442861890472498136038489407409562146275229547211498768473096897982992129203695229589675583293345199154458735861213053347770652079326391948333674310461988001210623460079548792568717720477469072262047298796316084703281567234953024165360949662874988601712266533647031147547497633334135364742214843305910907800668525427594353044879934356697215622742791772719535270220835202298725405839079639066476784653048214578065741536109838689069058528625393789138039490464508476153065758216814707078661968624727308536948138938265400677825205424212403233269214957561203465432222535424423281101259127546395799434310138579759796384676557935878646537896603311545570995891432026375976514225712183685404118631832838870939050047709840514138444052892891700273733654723004263062677613599728375362543838746356056576469682633280702922434594681678049465032816120063582878466812258017565897884893728263687115545444669072719627943689647064264427853679971532201663937045076329906120759613465731954612567128752977864317073469226751086434938542318184629362522148142604395712883403225518422562840054487958049184785926644606356448299010029676804934654501385554006758668727259339117303922415624200660305232150165281788257297602100510175476049248777877140315021406510559666519067954791272636842569325026503772954852719067594667647855426233985251196573981722677078899447086713169092821738617356088788894641048101126883835419243018409696699270280751543343522322676612973933136792444003786045907976822467103221189912479144747672283220011417236406066507333531265193914257206116683784761666322927122672290532755475073179052457769339233386084438643976486673471309461091927713931171386484609545569240915901868830567201316894480663306094918664346238466209081735711571830201915588515653948174829584048766749558976756615388955970805396275543787605921794662631902490627172576412481002080888146442958909069981695089759760922125668383327196418661318432014258301721756644599074258036775727669385393340965374086634066540355358658284059647763934785951287823817289103984215338063854273675374314148599529523976845385819512123198715374898789381765349670169938220724788696826413368368338359466119804602411822122469125210595437976017190977329488537337960138174197030699187779134062740121412777743528681861434453851830357272105766506897924592238136053689313421632260064030710325479634386419102147532146898117165385588617469571677999723962578870796683836337845904925790295865518541729468555062947686626360260144457087234957855090631979837367631404520537220513608688378629573446591906861550933781223414106929245276185176310963991997307408188796093866274755273382432540898027507751466021565594041235811627900513928304849046383801634076169243854573785650840484835370136539070258235745084927101137190149333048362530117339969590223989554193420039103460784399912982719775651991145118877266757461686798051920292138216450191316520387048896291911852225895229581832959180675134160914000420549751637099876181553189100301168138984465390173113709564594131528597044348461730241747424690786281779207157911232716655034339659925894277491615506863672235998388286094864641280434365769850393838136566158824577305213531969822980320953649412344956762082630221555791904002455542389324438994415979240513833347367590275076101979480330558302700450073299680214354294569900586851322922642623579288838345023533873760793261761484284161617871536315858957592444898269174711104482743007539199612541143178947363264795650336234249136498022954400869370376565833263208132800514213602011788025908118185641776727370240031782026934828800339418105670458288362454294717290317708050386454099885917209424706109780127632170416335106072181196411419452430291445500726046440462723025907265366228129370878312411924672114902000940905573498211826033513393605891042834351488126345199020475419337461590860163325992975585897248774685738951586798258257929936501134136568028105819382174629654474274865389132427674278892049238440892641550792270292994595252215106381059921378946125041524051174829202092570691416578238788831851954505107590078116698225244979419638035544682415033780975977907535999420746336022473204884894316127052992079623234941051204124884055855475160607890218859828805108099094246052731010291470080717160975582028106171644500849627893179571518529249134005206400973336215974284957180967050538892289791226374111892122649613612010624346725305124709408963480500607003580921171277576930132840267762294332960687922780172895542595074884276901440431129365527107281019761977808574112616150803687772005779548261835470286347592186329785600060352441407022951248107462199044496431636930801006714310785839236495073490048941194646722297103261906363656991517760147520082938941423418979817796035577005039420791408428863469231811200194194369947114791839170841380502826583299131400734773559793525063353297298799436772816167085717526561043401924097063184099215562639863010063566048003984219949593022664838590444542319800256030969023247704105990948934862005947537909217834353373962355372550693751526865227904848362222228743882407639421588857030410975135462422814529802819776639139517357905809060826787362992975405203777543857135880735387117877409911237107146949039117479431412458898606755285852309647251749141009448207630871396105841478355631625574208089310439246497824198298375587490319598911966821242477814370075892222885159417299531986136651732838968777868475923696673697823305394527805886277520682028633126803316924852064157372415903583814482730201779395675033294111916008773222573151300651519375986633467261751232142683613534872897637379243562839763319265605194358238459149724399756475991789337861323388971907378458906159554604040608510849100993032078536009371830704074709505427285250350589125017284371754821172499612828202227834412661490517916094330163712126179552521626548765984621307044566114569343811279623402998072857357739883788515347482993353151040313293383761076637827663860817289576705797080065089821991684854412004453424606940812903639639338081571667854229998481256144441703495864118075123188629540300444118760280727483099485762020527137117807863410562858334347205699573721257138316816806964734124126095336456969428540102636220840016135717030048905258060950283856865235921375415843858702963686697949222578385069958049488325591807279647056074133666842357639863015258253984450563589801601314087026057864026062608398717799122526430267076477132713882880540745804592418799654610230003360128751311186919894858134086651119835367623232385965658866692337393605317692739643370146184633639509692949917603194881968110543085513108919473544042495351903235907932575760636669978835857789194782040860632033127116360698630407578927744791374606044546362696575018804747353973904691157459756927155653470361036631546592944048549841459081479548792175333749253950073731340938536628635095917346927902222572599680146994476727744398424619966373978887338483662839938219785917542052394188926394383403858151857095553185435399156002498348046754534137803018112972160420669707081755252092046463074777436352977402380500820204324676124585540267731240203359798801861557838604118502089531051028651235169410844056122459743198150090847031055565825929135480337376334112672342493993191671746388899658645048666442825261726050064674927583661266221299758129900152515917838660524239172168374269669499777082499524228720859700324066860016059923133124303737838412689176345457196098442594241392645155445841144948280260660080754946807345660711349635670798605531601252682537810947181798591310432856271940045436431203654975995687566254337502813996793042094156352971421802616366425082197598471823184296045506487218976549537775908250818935944812439616400314978458532913030648689585428773951094382332121532381091394248291528127516353098155797049686033109830283555761722631379806848324613611064198363627631593591948959791436505488522548005792013788001601744531595461186717758820322912611980143791116954265457087786620277502534968168483085570963181256514791800689159159981398419651713353633541838680737370019845958818750253356673981573242447368928587616815298657437961284390006935784002785727837763923493053208050587095146548180255438370714978024096783674978169084149637570502316179332264710730054524307555879489707934907460190869311679708719427991054696909849927106742677292050855619049454453445012566917523884449045693492013649938328173028202141765011883601745473635491443667624219008180286639375382876902104564791987341422832246380465914762818489155472897389628415435834157660444427738646110196418087086700894925523772672071745318871892059168029257832586813718521000510611024462656834955962582552240800697749706451233105354102123147421373973054260068032213020486881610682346763888598873774528314552504766090645587685166491720809720830507079739981888294480824151046023731620805141919214202740060328271440286612687421634636805209127205891347789792700875596425309507739625726066405758179821020887781529697008087625389579412730956715880691951415589588923635011934210036822743661896597076119043812592685193419254781928149946883328159499124378561597680532775150800741483181200584689028051658211333787015793085463871585631969984855894304654521274422549224316319392078989773565793129247766315062371780270830301416114661359244106076878550030175445333571458601715492865841943719524310765796048892224802335264405837548949107293490842545244458271219045371308028501738985344905191420309540686725398824435121947143896640305029444551788967704012549330625374861612689981445316350739107327432698579556311323628557427353503478549531341554346447916568310454872221548092122289035119192323381502105155261966169147556389598937634532071462013659414367309307780852630580646041912179035445576678201948443002071975566884624918797236947100514419869887940990639361424005256060303153787674999602338440852123643156788782752162197908788491436502511495162447796821825079783806540790917013147962883756887836171550746694855661285145330109783650972618535103299610361884739773118792746913136150262592497152744123573876036821664790752867865449923697503614990174155134010230001262975638870268199845660923337298144459581757272838634722422586085714094893793204997739948619003250792591988504322833829125012217975188865059796982802273358619030722561275449493593128427247287865545956292827037534433190515331392004614505746255292674740983038517592368267082589157150622065007870999735910625286653921101996705584781805467806264305459666093620899625743369271321948034683861826720311065177441271927331393898295689293515014617024688046565565518138701032810621604399664336137621998180799065204525194954807788363122075623032940002445829323435159029535383461750285062346065745820091830060978451537944879089701135098461767898492754808066055932676504453182454462951714351193391331589017721614130254837368475883840581759944699502595394944223064426719253108944459067340447253211408313267541139415781746070714890372410186899613760156423853685964223517817665893042981663512274109856363365749643499541735082820412517101793202870265283877035433861047629027356343768574231636237233618324230215636509772436484449306886909116482672952967802410978376301461019046042776584110607939313806997018731528023615357717872240853658043226980264321692320919071800406726606330471316329773819835559362920366700017773337174795056930317730499556219469555997493065123961803455895500186479057344545744418470359024791180325429346486931891684948330461609107364061673387518355546521593221802253400208478136945186824712658852425294631819918103808779636681964594611675951139541538188943535194707078961401534187982568116259000648474582710058975138906464965412807647186948832024390679076173961075147802313222748578065193985013179028083254561998387502719550918637246854001834882046280852792488392098909373729268660318982349309017600432034063431630218242348458558263749105004273678894596311456735821429474123448356899344434856089932981607660607496520516246542353573387040864073909158333929068845767501373842532442993520820925602889240841710414463444800693146109363375229146711751414693049447367043865020485163631454125771870737942349242509442766286330857165383313132915080498196360982807568939571179152980651903228167740160175275964461557787670859017685642185145561164508236593858158551632555477300760689605110294689406205215959417472993188184737488303067082280324840799692026546315985215578473596404496733449514907713368435998027355499368491852002839343263843716481479130832077057081563070680372725921524162338465830418941213662635554638465475241023827721805653350075498605395004057771538356591072158566826318413819520411837525387885568422411059200114822131025893953995033351550037117585818876569426136548493756371445489292195116437712862830419627333811123301448457733416180846558714032930981058439687742017089818663622694182992019354712725842895580878622744173208120836601842512015152503422105903825661329777424256718960568198473436452333410615800722608471878979273187344177726023745078474041093342370567334547349650727530603608432790237580563482246107779037414535922254731005273034865609402233302939299092382717434888895638283394064574546134927441987901040642621161068563213870978557975022477580621042243091279265834474504903720649232059532588140083711808996858550342412315153688598587904541677109668828480689902096308179861743368487482688522573230666973987076608029629155764544373024119319561180966955043461371486531413107151518804886426971402050503388884059760600386174381114156732418287153523987420763915349207395866592215564690254437562098581115128013461805439902155375170925897671006283230197726516672398610004870949301082110530684675115176413182912193270956437918795479534021606109384438631669891330887879314489476491564244751747521036456878608732729536055735314706316097733723867279035638857312585712365321787376338196153410868796947794394666403697339192328884533276169354989139058756240127179974763335736587417877664689693678968515086302821361935071097275546149642368550028615136412507240117409464865654434898566479423603932985423237117035653340882577309404260494585813536231775558317507651191484647845636951658172448778057072660511710670123043461641659984916459597491604583618091341064571740536071010378357241002283241693714736930246547678188355928163764859159374803573014217689936584843158831769493159027088961375907848678431556676594955456015754865535507845836678913867229279458987722168167251811720396050905941951405346316213080103414117335438580907122294641864852477165973599563514645965927126044349288117769657918922669972430945180623577383254113452705918916706376126947078138215251808650666084044318578577018424019718573172783266336993405015590362836912115151101174772759330006808487127554727672630215920380940116941113397635616830716421401054969226555889775606887226676674568107807868085957231393492653135718345487654253139842115448774528608995654326648144235845361791979912070607549266236751588408221185036148996263620023227944263618568820038792322598709679688556239665379894442492477449934982743532738770554455378573224938539850980917530745363384599239770937710037084858667935614907521121134429627937509287943574439351637553881237563589125989292826827239076142863172671673022692144580298942593114242326448350952152530641122444746275372215290267379970898548889621585456218764141037658444500286802407999201729762847038817894102710744868792550672667663179230571743403038525463687015707654490055350178971575621568304944815030696666566606624947022346734104840492063986061588227685749957963277773274768245837774674126523835375875207849711140847597821753658792406855251356767483393998107999213929994759194528992785139870752614005467749479722330196217692083052523746170693073137098475069711673751488396467432681983668633463020402945131149813997929124888476865841077400956401650406163255793384348717606594016019668082203021040944155684211600102271022091219562565535721976663143463547734032163210688924914924307606446539413458827435599216709525080830201767229848204913408874006438197323509069992373563669762031915932006213750603372382763141904498446099223402434533334668013928756050722609757228246913003454278982800286063662447996037954524000453142438978103977878616962741469114747712062739617529794374506191201719943546677610385269487095599338103843068986262760250762193083108257973149005841003348112819643111490291384999975765500010124338183753431341633586361235493625264295279125024786408344054623166675158765307586183135653723942019941741690517757043361811216349685661955797521579681508236757363652756155514720437888444404220254365269633939306045302267209325024353459003058746087759794064035837956467960159613770032390465020669425136948546336618748981147639837340316330457439848406138920258145068065304372424174049888295410191090284924623819916134890221731117687331763268566669875212895644902451728221356623186342062821418414709864837452788854554523255014822484738754180759331755862680057993667800858137414462405341905076932968303000408011577673517748484595896534558866685995893602966441549928183131522867402140652303448186382214162946233315881370643549456551337703388988689629473062264530066396604454193473281278644372564129202635869009106955458898244565688801419018110557534827881568981565732434380354677678623163116601843304166733233006111138981338816702083156950421390281924893281397552687607428243682599034730535636855773088697487190036089332027076981017963187112199282727509389855078042055385048894809718817881595100256025146826755183082559331821301615245833664126704303824142510680145113831953379213174168164631233075217680012669336640539685046515492530934319740340947150738701935768178376133624479521518928774913097431295594490246878461935062792529931018261235477396252671300005257474840413798542382216214391254034177567419988907439606563756751484757789157945830419712398460618262757296133461501638125237638099964659140251708669945721813672505517352045972718546436860760399224653004435823328828885794377304194502621394527618671123246809546531820838863340750002466235588934898634030863363060029157432694043393551493811355050049613510380171929908287017582649146975453792033305346030090647584939701514761752720637542424570495461850807100304808955550829020127071426645057921049404729249501771566340450661739201041588053277870514795336833901922436101591481837965094385790495929776190719122673883744461701324444458477332274520245369514935331397807887817778091142004267796412866878812373275585552814401534566515764595253096463751952733514725241357150955351532637097566172542384739948532862974084327648934220128067201763594959348988175771075031631351904350426260841373349360461581038832958855601204569183822137888054664099275244514803570622108348406623068935250812283913777953936812190047147730035354060225155970751271518103198192784218066993192067719051501751044942632196440057838595948645811630886026939740433370021174557371414980780787459324738961497612519128348098106229597728541938349516016023862245796119138391851683038565788462186007897271127185519475615164584219092953729553417617990041783864043918891875514813929921437278642321729591245766105027881993516137521780874975498708555721201820129713259394684332426173439115351487143600824138849492618691412059552849067512071118333377563955378599081120853319482407927259548180195816925695891818944405326977894951233994471920912643220495221783633381137365373631924068985683787163167527992081567104724109262577812769321957555852356641009207325336338869238743291961341855916816516944030058729313106205650290118077800297144198563041966477603615688642124285351248089357593984081778410153928953589428416715816938121750545994740091078247908114280512814513428908097109990305162765000741528428626107315448185249865649931879451457189412241883524814122243533501650107018611681612076291399577189059366695324209140916213195011892952938407203393721568827678021128229241724396910587080247496708658747043434279344091833232516265036439959821810473877188817724560603694545242232108681778412397264280373776134419508296100157965646352400091482822965971182600927637674399595136467062112230214011721983674489197715826799992826905744706120492773798155105618633168793706587508487847409582659191301355911772473673743139630014538899870504438786430141706080955587172945462272832019452039553089078326155088996268220047866545859205790074849587445773459291848466012357824184404927590254010945681656486373584793842787461326792796277704062728031042934223004698113029195143973400007884367725956071165791142030684903955682646309701057769744474990756865301371862039961291385526679980594394027020617161583499887115070829569381155807454491892910843206426349129708022436987539636063694474117657609840620290541309019610456323029684712547759797901917337751896133421708836400723248813772342701963063084438120343275548357122661162464360056183597733259301982496386686949910638256242185766895799577376183253469911027618233901562172289931106832743940536796914035973141658117541673196480242710770144133229551458602740554296469402355827736699559957931883713553907484264486837479803568083608477554131173916848291340041293284221499345734353214717931230471950332949133850324629693400921406497232522236998601635665827407077002976249315532590979671901555414623137504328406265647738863557197608211984755150257700436117675523194661595414703420306211446683103875234451007453356426790154396173507014760168010334969485611175576364546175303382478915955280952200923926190163706966736869406095636769859158695934868660064882246100379684975042037162688886877097325418165893532414954690139010907801678792350079267297899222467232857633712092343325726823728014960626466563080354090170329513483191620221334615974242860249262307702821053348238950384163348870625364579632030376531587640610520783284045798209333694868911855431332067408036567886544009596654261009370849389971344650202679315187118824263545582198293867202866975119343290157620582546760398614732302798555639754622373685213612277776341848707915432142463661692657220806311571875263892658124892321751009019634449723347596439888087352656638829933898035632938770184976942224576571377622862573365944127591709895924565358806272675107999932622662536327577832752277885559812216214729596668041787668364079225922183229637611538402675433395361864075450400911149509474284064394877026390288121261021381642475876512711431388502002249461378095499645756436158833901671789086653819750621983209948625631538141877147612001236144907058614401997366378859689958691228706658807698209283208492689242129290621574246077483565202918966230336495669990263699542103056452972440275103540799950817944092017277283672105963180048485072578951298490855507970500548072459028611129628688081850017996789878997225114241768796177130233214516972940826944369693266812928112879761015365157144673443580606397540966088586751444326898120536892812758556230757397372777508685132657179355843793967336103566156018738480179098663789821824533478864076664229117343979439484266694170448411631918206253705978123809241715214974115116332125478983327095737465288498290783551841071622528851427425039731769635017720645249894508786174292447918030121347778689282999561236936487271685447241128972968548238499855096730083771258375730604130206026559302011503815828390573637677752144904217019572974102335289114919241459051543582994726951541611990024745603945429792494497840346485493587723294998460922200259673488980489886253511186729992716656516453803824597486771097940835797888165454160889224618590280674361804508773670375986084683790629784868584262426171385231833342507846295497739896262181442474108611933199219920396213827807444232028445397174334162837478541424069362869753978121514403891900345110917611818991443414671994281924113405340696330125683451034930516546058017890386662446129696259398572236953825635836341809460383192044492113401828457671733527964631533277524482955986827359488569581691393556536806658475426548595560154922394246576043917514491158221106752098920923888704157402677724841174571578026841475679741382337778458941282042591081554793759710095413430466724522266367283526088979036915914406483474271039012568947271663600781701604416102785019186887138426548332762662645834529388656007718166735415851790466645909284702200793860545323645031577392115459885276147234795833277091324972259483860660616035930507894949448465299621404064883264128444736753315193088358377182925399589353134412967569451828906353616154144676014207262844173658512081185800816001633145010335323641734903882732762443301222851393278865644111979446015499625391668571331602063687337984183762541839041940612755704883261176789713966685555007776023330689332573039907001946083405295573718198397194172332713082751048243696714194243396785410664814173668838125979102703003705199641262580225813639943498748501599743369304444475934210486900492128135186920031202943607117796172252572146001247581003305792553598802901258238419494697220168527426359295137951094557324008636861009541121340185571841294005589364991860744886984992439823553980068896657691054605894308195362516579811099678902704823215656798726252895316512253966420071754814036876004381229680566452744993046558879101150336080232114482997529173583465662676863099127897344649130122647806680076787925484877354746707878969829989206817294638953969180118822239267863548462550037182541510864471725594567837187639569195343953215347481578897363402812786359814937019226380264597018375923677075608479074717488469461890490786861354883407201550806633652627786060357050427032368709193449432041632236645574553703012487538809709890822764538105776764871041966668471606182190649939257147497730905941336250541699175590261767911215623634023230106782246488450018793433561250969316139285399631791464626374148257638247362000604344631983940471602189236253699348859789461008333312477199970816046615077128447769242537878482231912544038059093063191777771904233784546916394240821670450850933450406976705679594110342083438696448668698847516151525185302039899682111059721211820520706500153823576813207535636759099585470033321503799323107910731376430186939809715693951713272752395550249691093457801591063719888919484293927233685368917021558728580456962597062256451623472669331234472784229388485832815608945273995850503635141613571626289804515139585372948167802873144560108852088552032831868381330593398646302049285056411163193679809601264256650053412942216468371815454850066548021428823644115719145223047777565421794251375599521332127090615060612025707303590205164884894227836161938081585196042590364935726400614717181195280689695428247090341554547575623541629383513129124766957121555802251711435059367395704142683706935130171239933821822379193000399184705096829293770204264079227199463821851830043484650255572656270508383939502738838683048116406421727683992053471591572624743745850676602736056780685191533802546505424657080139343800799293182653457396210806775582419973723925619456030197456367605181579493061805891836486284687859686216466075763542463185260996548736443582624453871924164891197190941013896770413668540034675221984754766751587356803921873953526830886502641201697050488704867386566822112394333952994872118066371619772845595627527268501490987245252068825448823738074282638764771736905224443809784152966346637054123227522699451938247379920674352283373266417290954062801829236033241848097177565245418529591540203316613483494497952113799886497209829822112746879676203227469596923066052566983999928667338807772389139642400104222295910596352845454710630955682887000220125795948093222842175497905501576600863368921402845622462221906677379075386234694046339792347042891360615989265867814428137308508464071832514901853746724455539554625639497927563150707345115998059655390926852132347711744816932821374395152460251702368133602176946312260444892378080164274643249688729345205040923867581235036795272368387023939141061518143632109685321926541728652791604215455688995361579518703774313872655360691576060507783903235733867777390764567087726627986446040286968414916535594446823735983072021846582533713705175141990161152876610211908732679826160381172503056620195907128784397569924444990583038638890244882479305152716977766579100693559275469084335212462188958238620557882014994867684600494872814111746136912034666975562033788095642323284306640163643357817232458374347758406487015216412134350424876844221978020130016901932022167888180153966468904431266592318906636059566720642818627805537977238868690589720637885247077083344248786977377488475597073892558835831493454974479780164782425271018094179225915156021568147917635251176171623914253324694095694063852417536477234576376827101112462952196186927579357605646543320179302977354260416639110595432085512504448019075228380170084406104343091437234963935547777044560773117323745297150744896769361427089519332244693932052516565366349172356884358070712859463450139065709154872354281551226119561643656908675209721549800085314735724297191045106718728241590487941029735714147018874387068452366317108948176510496184849913836436499708211272858368329600511277171324670948242893731204163574285503035573792081240981437817650124413306749243981743927166894702618508231933831992850152355523260353042371114734513630419447851738198419150059582450930029911214561806147141875121185198051593524635481136836353724478101004628422952406873969227293180050491645215723062509735616736421087275787148273585384757580287417064056548784197216639585404836292608468142061414010857818299259114546775976455932352061088086638591316930555263899910163898797870646015250545066970129037076010017060232313310519078357273871224270972555600227377815351971295421224219987910138132082164579018124721762402169722338953823058689743840323780153523618480125447607416700979394949705219980354476057660581775236004267004898025352124217973506882312763046215150467066917306366250746015397011658108764956409409361094900478399843026624172869464428256923846873628913789349389737646385713824603264926833430562400580482413626661801390088388663645454650841571966399553001613730285007026704345071939811580486338207832545616353925086589998190021935698284571496367428221546093542880250904037901960530849232643659847566568552917065466346735779624561930069889545496217827254774776970493939493744133661963540636295325045276855872104892336737508299779071286464466376732291097284404685136429965756262408469647398555132041267449187835114438285835703789085459385732583369565113750870267923109024012284501475753324376079504824844897899597328875753281949277017856509821600645848162586786763000601002531812298210023186818654663396075606997945167522302377368068350600534032730869286435794451805345045976151824606663727280616719373656934055114760018169343451107578717770153175637897747407191443627728582237673342921948811354198039376667028317597651375990833564935769863980879875463255695070286257239659472373362975635473881054539427753682599151312602241755392030088613695464361370915029955083456329781080818520952378816709294358557797206035479808394199402557088136009840429452422999317662815411641939815120788570461116182763848159304924576759939094378343753753968851261086277443859767325534816840300317198122885419891895433959634660859029382977920200972870102465280239479950912770677570500425572508868073470645356003787441411319707204638957380516029249787161092940629648446663717492248407966436367731480824991809841051195964430007948504467024259906552872433642187211908521217252752948415850480880782929349654011201358712723011810342962134604848522284079811652511458265544876975654832895041237926290605051689424672584366530830148417476117461136893024597351363811221189487947758379674867559998573748911559756438585629339931518887674271830245314099006802548051928775915865887403654387770289388934244431597346158885115682661250871733238956244000464894720260458079804054947922324831061724655284416812556404777818665418836416101128127207116054302192550239642302610413024820733818758916973069495021919530511377976094466929088556052440932033847752636110849466976306037434165030611960839889755255732164158302175909709446947191165197872724772102213294193361796139891729303434315578787482536642115655719374394293718758557291408490580121691470945924495505280905596771772540124583636864645091771626579213088236998761942940712568202911906395418296542178719522951478281466241905124847980369324335899152596703978275242231630383744406339845439101014252643561800157642670284605033246966365509330875870373220442519582113938678961286375283183086907498022135563825560948689350993619863686970047817683868459631936468120690562577128134714241242996567151922024296746741525834725356820411652456079296775164718735532647176832767331931675849998573629612712044295419019109144558343808384246066069370034486019185995268067240092861896499978085451548448178997361754329398396868607247401732767863827709703657157445887414623653446712022874591044581506473073970429933040791480208627097471316665481440796524961186497571148671526345517773934137634214688620170183618425140498008915628200179405376341412673970360514449368532747674741665921100552550809786463222717036445182433296108564223654849255443430226228660636487798965639941550284907536519420505709878087380764426989109595450562935629591638186674040130902228891371101097021562926562632526370095578107312383106798097725217711722141799990628196774947657354205054380868263638155220352350404518405186341293024168513225539087071175594490369857074453433152343509015153926499473427270568122880774126942523233264267499898488997884638572941099303017136442189605893408689975818127205690062901257880326170220069636289237231455886488166291406087066996030873078091252187519952376539958978933818996037768562781417287584980065854820619192572619060804604704589583581542220734702245064846601559637679853488729783127755546345692599325460476750725661352037002681866847005307431520081991850609120478583153193583645730123065081968679037890610777801393765861821868293393656836831482005483799445861707712503185345186103527184739638757885606691223136327969470474516025068261988255156697901870417370732956349118220295475290062814347019743811106871789613985823090265031068189405456941919839702734974586157594170801558509397406923939209631194030022906404278138270065054708570541803829205344606714948733906131343274826661868281151296789450102398630503415699821682023991773278142338330694615325057041800918467881083169078229779487899138842674221166663330483968414951623144605003872214875774253979560219393431504466578645007272148064008969544218562374073696038621282169627173099997901137028936975541317501640089984512352621663455481543363543638502287048281758979274982128200610105467726690684962268152068891321699033671346790876320611476419618892778921897879865948623625635527633187232255351691342790027412461830449538419525288940174795712019816225117198434990747070360065722779474865854099024687967138626433844322458494140611187406650899272765107896305473528474133686343940351566996577393720187996224904360343713993824677052321319346873452017309347658586745930731390203166235858341834001352616606784745275466403507107473746891040091728676438556778196957667198963381322763489385444959761612198834220572654439884134913211899744323432653775583115662697104445012643710919096305388996470670353179005196149362320378771499390898490917367607303499567527591838429363569117715154203938603998238950954036959442664226303558050028665691356181030831372295034385691714507067003520358340500415540813233031201123684218122958411033028337395170384606886848093597341487042887580332991375849704129697625467218698186268883054476316937521725081725275273905711567882758215689263109768403121943128227816303687675823329802713596768229177583023866013726908198807779655614220257123414885458474142198597888806017496949495252237251516705606205156338701995295796956675890357098579302415994228464500215906735418156619136893144494124366047125745692239688269725202326768878745928468220443336085520037872828425144120371124380134740633922841091392134262466831377423832413210944551832332002323492235386070848339271507788867386291684733821725407572815765614134842697370626112762503839296413461787237701444208841040092155417216745975506281250619956319638331625879601385393248221349258395438681911575666639191434453649585769932073791029616314609890671190139514203559258324109447295615184811113756938432932670412450283746189674373758100403917164442782397967945099000875011959481737572394279805697757209551812405551503918586756936126520500132801487761413683537006360909944167999186662446614203781444052869839136334489744932246630657349286059235691543705751684758867072988421260726558195402346218461182817527236046772844179132497667415628057641607374364486710040867858620281052648492663772048478457617673601023001481099020483832635997324704269775674121507860251843668488156348329404100932551141098441036466711655346833501418494174942913572366028994117525890646174560561873573330868970893734487914325740488972052463700898247375879347156829987955368438912538809090221963444897296157232443386649670979023265977425644759560761049722561192144107458266080262959632296894303461220439365110396276975170958233570314436656995245276547109019633417955125988760540169674754531713481623113646597454389837240861102398535405042438913024154559527005488945011782492445225393897181257128462793700139752120591860417708755690840539438101200774795322046475590866989612133941928397635581190301552358522682904541159083766755156392640423059085160296055679680532024738023408315527771667249176837107688253010793241047291008608676728885715622153283482801636750329532264882942351382851718928733900726818207993673399811456701070199539297527901099829537200944736371247080710301300214583257307873655030416145274069100728024556981860468847280011442067807141838977685198368969682569937720886041107754700662627676575325007847130476079423085447596767534844180098329652854066723450819040047630162062334137580994456069048283598508657176000202371376790574845635704452061777563942486919924311869482860536544298739592747416141816003755927845390395887261186641141009772692045374839657971617021460500446501532751953903048905936520732246009657074109107036949930403815394787043816136406181447184602252017823712645649185662694127010983535604206117331226282626992028088200358909417515810675547659437960740802459275887594719047857421787638785796755735666847725051601792601156699685330671716548861394751351119188235112594799291095086399418096157996453722039892262364145653979849489533211079789282720408953699532833635434531554341721304383022639838265610813480545209926835145507421789740516860639181509536341647548504471584719256721134328371740367342738858163857158154131774944589378279965283864664873173153175607624854937431899848474152005315516650810401236374565527648567233303720072359174817601223617553821570714827541803950025015314395010892098709190175754866347626804079738848447825874805437242509502964987574055374880570303757822375190862391636064955363195790035718557339124204886559140832448258063405653581714277515518831580708262031159243620790880099662074093785416133169851208473591941269249623468797550021919471955597843843126411671576577767825326427133889572827474135748199715825285400075068154320759714396098314441285057953363096171124116610035608541657642995786739779440781063645339602338767686933170892295486187522648958598019022817088258400760828145068499643364771542195560383617521555947525077499737091952179533287074420849137048647486091930449507571512480216282497104553632720107793534054286923025325645592215099600965501824894760482696349511120614456562904748863245432046175690975542719409360017360167778488651370250192995384420708058492381266455621721329358113331402145286022324611459881725882464974909836818064091603168910332559808607082536667589126534678766515244587012132762224071026868849430912587920495537845497857988738669554851943224504600744268796301276968100137189233610850130600891478184842577843589044155473155827359104781438611349616540624295222399720588130845446922913965168914169983343662858153713472248913329774091044493012905655648231674501794417931601953005107147110213660983160747273484118516012491299440499944926862011321059586099393774369142702021174326373741917196051531166975444668538335886446704128875136457618479956192416392589147107317525410736877464050030828012694125635421707219253821683433932548213911422129358137207485180900508894171921105640052661030146396277096442486812423308580443266963843099323673059588360961778214767259906550573190147905864861341774051642774030618902591249846845367239541540876987632835497746388031999510422720271977289823039171049718338914539404835915896917794541737944459152186759988777757292593300689221892323442344673591077279749544031668888890246027580545652312877645276062929241095427930590300701608994411523608058385967284871392122244243353602923140192108559143963597777499830778602973811362797213102827058651404474515244665170975434793099690675428387175911061311417732446342215900136764380673052220641659193569495052287133051296764598707211615742108016424885510272200175397137271149981364297661952114984732253327810948764631520390036729204756617650537173865337261298857476648385897754403623483619216406727464941721304878044424186660525415152550400613161778293756869740848332562046316247335305655607185687250653480086761207654647424726433772570942372766646791279465112577330215344868134512725539960489168496774474373374241256217158401705703245695041719320501462675046715744440868481619740147868290890253071184081422174326674428019473358744637336016045854092357182276416540266918298680072463634958790919045636978360279261357396315851471167495208454029548236729630790537430956776565495796635334897380674480134157711548847406895612724643800837355587905607184044366832192882758745404773590570229967807648445971554631036113496482869337086078800641688943412085145910151323822931973972149242186473307966598473805816848176460357174046357520250161115892272699070810362965381865929971685472699392248882646325448871683272088093075739658466204753032579659922298043929468107992611270137901740609653214657454380825426707361150046880132089336636914489373637790635974662848149267119620499596822347940681649955553547112074660862820306618612872188621615267270387970345199600022873353299072449564242069774121035636049741003643938982751758981504413396356352049226607361686386849663090192048176375180119808131194118416842017768843367110906891516531189607517565559128761828473066296972926411765216548778471900080381634865592111147596585714812386510808003160092887301544895403504986387274831570258630956541019269199761783154407324845273790520519698996624660904629415043343576392925049837285214582377628580674650692977168211785156194651523916039750346663864666181945157066617733582534870811721334343715920541304377873891286957900132940907506613997446633860657219516485396271985776064798730711837324329162509644427221935396275613172849461787856185368109057892913763822843699714810032097152417331865113794071451641802156882802202651893673140345607520273887523818514241860098523808590324256385871363380016216014095142983904527035760175077102537221898963278287634409030994404285587229423458089578735227863766397070883980200291153658350306997479748460848712954953920859225186602338880030265718982806987002983799310305642205719068561101647186000087469103642972986170090463674128332863990387882409778344961292805412731269265691132984325699887131199123554568337925324106248667717128034519044259103428031364383912115947167643230038148920671081841078240370131855687180943334986595522500451476012266865417965583757141301046176596267414159770834527189765455672622976722339750638088993839340875090041081553534467653715726205234253468180595595898034974099646105353064115579059573253236693968264792985442881466593575917850472420574741403722978262442619734010967509928240534969784174304585485072530734937295571975001643350933266330794597608686651382377059780613945652197821701349179906356265931641589810182317397443230948604367516732999449699260365112537333882459599434806705339088171041850352150611947079048072779680707151955047148906165809131238465000171482798277861488456303551464542575069857828154403267314598676360672216841841286925394283733718800855649319564987482068890175085054567260796201613530786174780230151076874331134374695029314890033859481814236520134262002640914265472790983747903459452830404430302040873282033968457929891799874645739485109382771655739748219068907047600245812617438315138644215689811748775626734154788313182537932483369761083874146019077983157558031820573880607783527894901801506718115365268864709985997950588261649196571365232531085293006053729352147271636402005546457266828821009213180535869998563069054512790210862571471535617058276404747575332177628495945704835302095192073058179693671671144042753994852168710620072928541582199445252029407674515982580379195705900920279317688677560311486704130063669190793392106239579980285645429484311652418421094612339198221726141343993631371240241509736542002919164342185052469159284007787400968978865364480766823078208421281611450816573076120626145626069954801773223464748556611510875525523054371201585003450777674423149434574062191877158325735965740256806505400947884916437359827597679739525732634545590965437479345273143142095657311667830440352651546413797975282966187713307821578704810453750488379803344847985937656013310939416599286915517294459461924622583442641497757976443784735296719292057843435683083512411629872373436228190882843687568019318210506712568556102120895432275130434362827136197753704301184760108211171800359607475420543755104786426316141104130900865206768501822774338021675517836020732660440780444375828582542701457424980439509574228530067584177691325574901255336577207886513883935820059039996028368467423729338784257893569876733122527436324352053073857887538317957773659974685572645642500473253461068618489393186167179370379980475539044694865717501318075093354252580387147146777526173182117733617839932449287154784078315869733511029740434723894270956171236013238842114395148976074540688162424469195613800719883539604193007232478170603433695902016797258472108967467738115626874671344350055084194719905055527558725585193774796736722957876226770112692286471451784842875368857982101310780578097783586831233298887072560539000298803595882281695640511726081194181942624519649958844981737989381889868634540726088326351346564361323906851483664554140317773449281969960934367345302457794136918636369536732531896821401641684046584225733465795267838869052323519296663494485937242863978022469725514140802432962292933774496501748291600710488664570807750884466592176898959586162210674952447627316976733262333769009873538916584204686899015265642190046325724647396180626240940199665650443387511051497901577701988370999957472506247342362115855469176447494143341824718565708695568915724078017142702723352393107325508611255429367156270953426468152614720944305744764770672555135214020649069709419169437612790134851321429947854404349506783556548788526100834471803579685447468683409978216381189740334396660813324728275431076115401047135573042868283158884248079646039674905563304807803752223193590105043121286398747139993855569612513278289432802895042458019108894817061317824733378454384662408483482610686821955180132816342058140178958533696188798714725798354306100973800616624997100300881590916445197479606134060643034596254349890363614891912047897484792098839464062543024188534905586238129887421231874667338720417020770428336871037722002482403842601808294076241364373637620251175114579488384068601712017806989716921239680485413728103678694809274117810503236910243882157445748833571685048198465228079125822407891523573125299014314804901359725793653766999369298777569149792322177895772712526085752812879889174700652014620497201628043559761774873413426969504399837336200013812057209609916955553410854461964948564191719017845758081385145342118392113182756940018631457992188280283665857667147295989613089625625966991192187110530948326855460595025591106435380719861163655674562461505797852842583281350008668578694911286765076769271694597411709780784476730345289129063382893374760538364952042168691793394333844761038925581540732832606090726318228959897520776706237685961593420693688229123625250239749805456866459059858722478915697310568196327997215233881181363051438822395819643250373416945855667045949751464296511761629026698368522841237227152076654612125461541995513577175688171011140947563790293570823738049549358369980049883908281316459077749290849646180741742825495234127407777859051496964366683099491772538143753530563887666390313242536437041361691964708397147703260086789668196612116144132232193328227168430053036463102413641450263451626558346041665418356788775058015766396177922325014814657464612259139654399427874068381121337581005854667679724249613413484633046474375463298721250215465398232855582967966480977654674650567781219503205833502792031683103099336762525993250215743975774993958313982764992126646884949062688494274812704100110279079048015784105498256925032939101907717309718645074290386542765631438128986319747125290668832016284060780917683844041627199412671253896224853234489449819640690478115108389820218800955290181550835318526415848056090025142612350758931871017203636480620343933426469071466970373300422450914421230516610749946226311157759385783567153555531885012339938351410601967323616979265606317609662470906686252734523276714440117019728462149027335410385174322458119664030599059431408534100480576967973093293218317256522161417251589177983050252735538510457367339638938915198444443308654242455311605404524495341317869185879714816158576921784263905158165135318177420262280510479941206200174519007665964074145684857425370962240342901346749262501293598897981818000742768136746447222211371039709107563067595235402578012185868658051653815608479585880681922443061079707003873450296062820570548163320890230507609780340851268995484352446609342620169147289511855220170650830750537773616603436700443930309747583056486929241789580491860574096317099571272929967328241975143039407140735736352506306809069354121595847338214866707560010814605248294708339122079187665710120526601673763740531238057279809242657342134367947573355376698330280173342111302467113010585992451819700260434199852532458781152747451250499740050830575174976549930475518098053954237924952330908890987248887176288903075388538194925161129921328881940360726220545936052850476497021442513775702595998768600895312123917356123828375013047783480265465867780945479917386343804849693996663308343169958016576357725419810081359485565277817649212882052765810826644549165404466228168685064743553618536792279941117012982366313972187671901031621983854776878162458666876221132642405198706490137095987608193994811762731955522640728697444111029660485524647228338866753270728679862269836600211337964661403228180184832909407154224396915057355914419670669539826275542715935427656229316800301493741733837356183346676359658830044790570785308397609683672352924058378230068799093770031499284469028189284183076585026268518873357071758531182247920991902544728067349862365177939091235791022615854627326204167174075414390994124401893709227888374479347061964149232354969925609121822767584302176468388653004685271354891146028743036428054460483162021129636934493952020589969262262811615209058436441979537231903176915869440265853475645803587028751974977063321245539510542239816302066763260566381172212699732757225616948470340269253037063725419602362798935444120212811456437686612108964955876531461169169372493914497983571522284679567429287057045883096950723710179343274911467944080502772815358339880258513701720207130599395761615994526368145763336884091484519006475635794372840878295784187109222013579514057732081614706379629102259229275376588379417462230833767951478748885717835600931215230718618611134183615440176576538429830110774120141904666406981433999140740938092678675371647265974458909671113292051788554642241691944514810978147180426954351913104287173620200113642372590288406222043379738221079421046943407561691400276272964862839345304859354855418000037908804119426612922585201785475589322126288049339589081965933726155320178802892545750592482327443246448770604919070957675815983480888250797646018299951559127226948143646216088534501556601696384768530634295744518787835918031587689334985237698996175076530741405201380111706258430738327489936148553952920801607903948479548276582243802434480009867390116833615676464860953259166630036872841980813669834155807833756849364321308691294864485204419165158993415827997798686443974341288420714482961840704941137200866599697780803614620781187425936016765047872388811064379958489187428196244960036383664970802586118345629822209568031755448120561256560209812397760575300082849641136467712526642130942981176571412220252832839009911768007299248341695803129703302223191610494379277521534908980085528619447584215133070627635297172897551778953386673177208023246096167968763398187536007666949307339542833304449592438937602297579082022148152735575340447579160983260004901897558566787878179441013375223709675555871892947100839236161906063704982751290075491711085007421583740457117836190829419605793514194881919936201655085907736489195283919178678384217125205430084605640653565754673892312845409176012376693378449784613481144387876021468854395543768831909309688905755880133012452072872495353330988047033904480700029366366022937923589022761850350240070771552356541994324730621137813526377677712786657213269416790970891390231154565278065173029707576704287049022604817669990910480694566404191411523563689153696077660641972065313428189669921781834014805259569579430171080430814565580655394888780496289377236165116989300351210793264809350952901778133086709941487598996675679051392950004865078435357864321881363533982806466681419212649651901998325149251394250072349597449158181713868468283349157801907930954450979936952080167809088548742853465769852771337289884718511874701977256642097553110477322155348058205353295225993961134215531457917213882314562424990900858753205561026648969924173695752448115934751524836913888721306506086121416727242090618190451743029810237240599040890961013596562348969104599102696391580000138276071692184500820925798232745255074582184564265235299601477636279877560855073298003808253673566428623159795589925867514803523210834507979686937640168995194077598370793231916916292057524401109864472319470377140061532246228910851931557215215317335312932406784778683022082147077806855215012354197142717219354082148002801215539547206198425373777589289876748838812791341078412109773208914309232532967312895231756863298990837945707211883474044776334765868289894513295778414236405127768601018004947277011309126852703985247772307925284377166782710955056078041883748681038844848764328981261289342015753957141326938532561119267210869975125885113046136318230153752733764800424573006293189418988257310529622944085577680834707107151706563145702866664718887560034545671086252954117015046180286220316717005278384833260992058107890999862617385747756170676064485573595314948459824673065853853338992994585334689977191290480760424098336225223136854324975178641754825651427945061649410526476842264524529499010044933806891129747802058571038834017678819720490699674241167225205870480327501879829067527309333894231415379035646236658610760964540560099656943686814296430122779114795423631837604068054839358309083737533721358325899043128939973450992963997209419627161725314458911671897721142921897305866691207751189986292177747154041059380585502850901358156786650964936623982411598709720544485638924722442780074853870409515977774185407835658300762024100253797957143420718006470556307640205428501154654440485359750232017704522078542331975996445405083010558881061995525818972398970795362894446831505885954872179949566696378525268986003764205912215548050073624974238795110664078382834446469976289363598829588603315459022107931092903399451308653352006067164137691716431355063094751684907643190647755068077369931206995052955586925386138849820502066203441102139984192715071924945540490280954932842908473890486625748125956130447727901995263587371207339265976305613293613718400924077651312174198136933863796460896548327186145096527796896851667304751426860683664890044798253037373159182824235171500766847850061642628582353406784863671405837199532708122672509982939772419038100529531432074912076618345881713982396097497588634335819363432173197524294856778992227307243028407863746621991731914465503319026224823681789051890265033166485446067375674813722497496923545572373980424725447719228492141124843076126941075904153902660736714306343437453711648769010263042006250091482098174188507219857621850984646313933962244393018938982361910175764960818111539557365444737947164771033962355753962894180552857178037980437635133052240828316162068529367925379156748702497625413173397120122312795485139934561940881166529801117120538067223315707037596827663162485377973098419646591006187713858924381129847133145468035193385857544640626821924390070591517762401034636896957945563047669223882093822897598046195055397335798109394815906187855702743204309637196537871979779427746418586906153252863576955638480298702600820902484537550178159308256840220325094456435583883459662544296312760857411295801148082294750451301917286463658154355484195074306017496544271783114784712444701497286852926155344543727298239526933605412997548007528668839147838014159400294583390296506410889539112757182084433310567209036955399821317796041689007405064952636689754220774437167144724557919207044874702124964682603464421948929752063609232293269398599024601488629072245424563671469535584999434545915270130438503371413070719716139205770798431537898564588360852286414778044283407494385957834929301021688766597490006009615563437955248682977987076854169265617058368933421837489880890431017727007171107524074068710804522284175108336713260920168712853327099850588485206569396672592444338516438587080842955928754221035693699439725940972777073517934416986445490783815623550146614795654405939375720210557176527808984150451131239156878962152910061826501476637318913235778654494253908776163110023450436597005122619747479601684944897456092068653908272928196503318229669239860378220907982294136761811501071911556153011685397074167030474665836630640614749079176752941244103998201213332641069558928405512267386208956711003800140265024691720327426715098116732291085351715894027980867602512772759024431888993259789614930912906496864536354157074410421903744564700193805774239581133038694301310784272907492989000405399811938498192928118841290167325726107990094922700651498001735974312960985592965116448754904167744318978347054561690345115448413846515242316381126395330236472475772220386600271369307673391906648586118143551232209677180823505374798193145149427470011017708153485559728969749321724497914623252024452242935609256842232990943793087145302590264971076834078914432046620249901982408604510847652811976667475570117000423915278935790217925723246854271770273542505756718289369496493825762393766435419500561929267326937893188896983891727042592499338731509900717166800284483065135908536179877445908070858729659799911849295934786684135937920114394509573394172205288940399443286619757872368529402770436389281537242266665938372993445253194438754776390325799533515054331857152608350487744478965840483948822497025796468712096978796329133056578633222611633925728267480901730307025912898786670066219024822161420988201505727081044490777472665063366822683917798639799321113303195345544809304503855681167606517897942252995752323768131506925391401543719771864551125601040412732119890454648737645304185408480295733651670638766355923847477667364207190148385462260133768089323551231040016931315573755731529943551571608090769484142922220016710066916550387942784516408636260464481848939374387206732163399746581379459954221854362286915596746881689939328562441628413332543289125144236591820869509942526249263259322031922021051154968656313039677432901162259568085265162042918420286934831301930743734318853246103869008923095182651936841913772295447656726521637864934753278065633061894162798114106125973371250567290320755598876342567980304522209029518133893312817601242377813853793592589845894090045110615548304916043926582547648709000576965836846251585299180567151278323561686268181173359613081922740373249774074134189643226180265999717820626242775499824191003418953824270980101157144505614101160687065862854145984397743005361469293088827952699046422282031126707187337489281446613006963101662975876823831699946435990466366870205454470349134804802465130776921759951207672125839598329815971201688029721779439679450475733886517848893422249281699862829755437002014708350911078093611172319786834450173919872375211361404121926222332002511109844594643507693935133300939792468757219956084856904998992221645089233474056936595016480198448448696940743551009169466271271427542657189027432440819697840865621287100762389261048849862032950556059690570390699531118528674383324509177929990813473254583822130440224199456525522036631337601353916194928959680174437028254720352691253656545243676867990018656300179291003712684826768653026602970064875161134164993740019171328691579308857583062963528103721740770121779275343145857373135327773297984027165052749655492672170762773644237869840266367474783631038759382558089277355707261555156303989167262196820887621646577783137595307930238990621221998214011927873066304438772983789722988450372306541485161894550850640927239182864690018139723614147963432248547288203684038443722665150515159722633146091246538050130182592919441576105408405708823130754723835533833241854484213512366711229531103122724234394729287760570558966124277318639406059832639374182187631113701604254330568486053923021854451326865178474466520825998422781971401961354988366095718906835500610206157288926578466880009999842140272631273636773086276398636645062333110496592094737321832948149084597372672966812122664950277987298781728630723731469549160476301417617877597816891856465114471667268937761933863509574796468207811071443390733995733336600431728502295347794722619456292261751626208207492156888246958604446752296835616003921013564460801307931512036949019884746409231838527821947705580173485068760407161541057556501418729440160926194425752857849344493601778211889207852404551605500662498427712254297272563900749827606409601273040395550716975425376905081809622588780328874930453712127582802099446882251142208394781642544741304683109430072279613525500885214831576234416181145982134030434482570268348777334472282208316367286281634100167096835861679183449926100339498265703615569986603870991944281107452996305397846137222854315341907335401849838087820294075899165429939770585747085892881569078851873743665418707396459878071917109098028220951174011893231708009766386580732363461800344558280695060966696814351284979379523520078471200636941347874685649213090199454858391791870051622538492463245921257583411895074908383414382183124940056277442776607103555182933242385236549563199403306721287015986875908489870742671993143701373898244705354547497175382627708707737290301104400332727709555336580787485912713172085544362759099135725124709821426746437850088602744783239408264162916116731565399694300602085370440414259563466155319573680949177678518531471896824139991566150739823541500091901709149555590482371673471545678174470428750577544475395760524978298483236890197765592473944982380798968611076014947862776747201681443464601757236904526830832887802249249594246144478110665945345416851366283631165129404168330742416924736231102218233193500163330377682913785600851263136135105165173682744716270743324350858047904652075757339716180137271252463949833758079439890597658482078288190903388298728831867519134757983890698453714857609561214488365872340301131724411170926305453976966616199846778109130585748570723986155864411141709607407594366861383895780749336920618314560112730468761226720262720792249588709480623808402699394086704278038844634661906202255687916753392882433009488978657141939040761160141232133429644114048884247491151171181153410605390053184910895965084578310863017852448244886731216915166118272682771472847835270504004724575327085000445388015089992867602974809634968110714624772476605131109535738319164358387862108559048876079688113783912598964250489969417699926764690350181699456460662732233429983447122415983504465189608103660870906508366578735442054045515726411105602467258378264551802613205367569534810993226230980994910170306941929800766103264741969791532416842140678521269482391974236228148485704766558290675720261255992705470113226659192709159077150854329524158998804133375207937908183502215421078186722761451091293149383116073433202277638929859968221418788588145159087205486553284659018136400530934315915964563450465683109991347362877307178384895275164599129115661890319272862762765476454539418973954628052027525123868063276862365660810066513373636534282616776612102753805383490091777028299590223827599845459337814298819280326810861779803218046474163244115503337212252662916425801790461100979522839759622448321054772002886372886272487764066695602732508142503037188705918714652367542779333272450006406993049540833665915356449975741917971191879446303797372462376346027074403113579483121584517457005794612980524302214868438162517815452485679355185630763362970145651334546900311186870616930260232584555118107103435519370414682162843662744205886689043245060707852749381301305960325549191660684919489741923372429478773214199588460103152776767739588391500216472832316713496241335851781146401392601471292281228371417117260639647023783577356000293782789235235291090891330732316684110265863080576086129159238680073862526295079148512977344022406690613653770645109070367638075218969963128647536112018157447463062287293674597577603728047990533901830346851753574247973501117136536777076315475730721026704141494686157668548812363793484869078073319451654049981856033639890455365910411305057033145574357329714870328999423946476728014644308504897721544827066867841399382961370887777758582730638486643049660655620245966334653596374729589612775206952007944679082076488648077149604137229395915748071764107264294841316503226225704611356542751083598795122354522975370389017128359251815367486548584175463086763127466231266680604412237608720622973101317092953922079310471009667666130405558654645980611715009051346938758677912196845451045251632706261669312287325362778609452365989463440376070312398072089501633422568748418182341637516672575479932911762001826954301272377192867297727460279227662765972264729010255740314197028067590931474791442511483467582975777956985542997391786033741807348559670100921397431881315894243301480989563154743705692887934065819978123730224819515715543680960931367966653968397557947189166142077625386552068332162265754249245214752425494049780967403561237603632405156340427335466241060767104675437710796738179772900686406737273640245858737301590550174765386450925771945480117086381369191196648961360078847010921000826901714192238861099464510144430379854753235426083368111084775963311444126599538864657003694920257271200086777609824633244126770620296888809835996331045327984936382626974567402250328883241725078256831900714465375271323109074050145248437683126741467524467798340214794171866947531050606943974079262606903188279978722704241821501204067976949319872135196248927298805990260565508779878790590885401267203704660037806174080937536541359503735636916371012127732496659035074224204519835880723374129958351614802263639892177313830997116453655871386622987340972480577591157808712785785319729443216988900368842266578309993890439594335759146248811952432851461060909131034310457069738616863827912691006356265632899017448509919718082670209428625653358786592075834048290368687878477093204001748738645572632225826218013048153719696062088086780025211874434129052832547222342561994964098258614027345874480354157500532429295196833287367989061989482297128336316490581798999114512161932562352448845332410221546705847419356853338944926398494825889867476095787901860341163795853960336085309774653929749119175462701740466146485220514353186105033206408978595391901253828210150865718213637801246026382311051004548188980089983493964278203462449794294416706466928747980596251327013755146439422028612954831057421148933293571925565629526761711155772420247473139820708425004527619720492953169464368001066306215714662894801752509277503719838682306674287871434723138958595751183301614899358483096548683414787456406526351395475921870109538631167298769686871624353280965902909924310945959048580694674499869310826656594816157522155762957350585745736756576679301576325062292173010718919674085661837303672028436434263956124594025573520780407131123896655516316208919881944991217679612109885251472550599731829777200458691734779675184519242974660839804593751968905765694939754055075012037942103249317546228985045216328929600241853364286145732903939303474108647198264021930785946404489560953613287344252935958187372511167926604802006503974686435704793599189118875769875846289307250327387910334496303173346209475531823733571360020628529136963539044008027810543442703865758573855343960652675704964344891478464633620826125999159720572595995713984210780655953920622761943139415839137212974793149151085239727899276751316383711184113129125083698684963694493001234717985499110187586818670757837643263292924429319780832067686157077983040810848329267028080750722802955971233862895233585162676620847080752724146742045006690783505805285958457484421100310193523636940637973004159536512352628094129136267778514966740808288817693524837116163795793703451275007831815091486049549649848416280671894054021804329295178846751516038283518290491918086027581699996717896988300103546629591633343190864968192144479904344538467996647961343331344606516995383938846310190568785419561067223206297356388334826475590246698654028544453697046058217529249672288249427438420740332880402523829466890172700774683441643168554823738465039239175959755190892499504475851491212915915700553384434282293189643716800813970606093007067628790565796485265044785539245899899205882520104317859652013226813390022732395487412853246315634761429159583844795152291122237142424283552996023794374528364745986032136828674896555467130913408442280095696637578999317183021367618453346912579734618333991451130043889781000744943946848887566295003178658427472497698752935414516570332864309264920386904404069127504920944860184439614128293666123030797705154374219391409920492695751741539434175127349166980621480538591907025636905608141176041115503583190108470499367945575706727610106267700647815045785523019651126621672946616561127334572974028177952127042818375975456205154861360963936949288192098462076559571720995922965836172268963417777317331096676722377484543395020193771212191561544091921017394083534233204304366211358363474887325010416163867910524087224660249581933611124056478583992444328637652562097929480645988679590996216686187021515599694624290040323178043606268386653433895809485184639643413122514694820741740205834685867183268937660976137603818807577119918214728521612451747640906049572157247805867222275682081236835284534813052655816229134404104002854247801942084667390489372990699062862256442178067351093602498406575504238442360361635812831225052451292325610805132450578075844876510824149899890135215140398238595958065709273864233808255851320068782152262735113785595205097469085082040172996748965105208190022184850082668948713311970374114621091017815355890907214115105908803860477515436441789676081149778096182207373085452378250701727525866893771118423269363224222258396921218924274863981849817693396699833077597655324669331685587678661594392638395650827061358364873040412743766738028728589216884956382447661048786621856163941602243393482142446536015731407922159258518467489836971657495284459838295041011256420204213147780026808056310122601575968071169636186833186138367225999537913560270594860478181423115906821611383805878101661086084533877362745469451957604922642879427245450201634145112071725541488176074588072186850032426309430158778384040757559244143573157518193072721406385549238983037211117942243582921879029419966012973072824180634154811788284126318445803044583667460757863914656851279694617779518248616073800824657409345740545698137436909051099556831058547237839577059758873461110802829758841359023298272791864342787150286816458747719374205115193548776225451194181837842360357769912843091722422957366194377428744971016476167523799933188591070841654460286358783982769229737743923626314375485385706791401076094556087563612911226894753661480987115711982728190260118957827669138307888230883387206481371292588105104931198756889921595618242853769241761857215236621978377061898994502846231355945824712358701582230231364682781518511760937219989835429125290565150724353730650224084619291940155253545807188755360403491615899294600960518523929161846862676785231963784215450476610317386408053422312636796542640929819948912304469111137551429135923327153542577619665160536008356765622509054585241676858501106530618038101060566206596381082416250766128781644986660817712778106759930627288705048240253812355693984421532093667756911543372899566936027386076432777919796740931412573558718418827520662264530307115458610834100238568505960933377845639149684943865295509429510376916303732908633389189735497147823471615651643333802014354485250975579170261899111913079613983354609188989575692723952585230922148278755401267308371525134505721888689327653112215727478188383013848473054651162209500525852933588148021740468512713613791135697578409262777103370702342010626271082930074351009952591090944903791946198464871634300367092244136888949808561644143466968425495415288444440785030950905635061281665908256819800424376488099175989181039355140749659411791977707380423130140246815619570455678826476329929226095471171099263567905383281328367635319549759096608187114840994398383996822682754835686338671594281664335813981162987221663687524665661590918018094240762040254053965479040235039592894270726216067905894539818879513194321123822330728495368216653798760978489168741050251234556471489231469446667920995410372110238466608444932915387465141019029454168761749012971315120088455854863866460233865963882300701617685266366407301104042355269708015917102332399526835738080245073989072146912120833385085198982540342553329067844028280266774040871467579280703212175938248631040412779345791639192704546782347104440281006469347304840150388319356993293644990363798046224235600677554481238785913198389283363315397915581969971969482338985303194513146037666042586086326872027571397735565204180372705678616312783432079448054947045507837407721050532847959416499733110824574944171353047042205165023985154306518558017212999443677639638473417692959571106695330216459474611433203811821861968314058215673322057096074132411321266567056695727812713920499124316496421262627479760947776299868685534355080379556397231472286391693332740810462270485872560198094183220008048872860776318375851863467116502117713882061238581443454858198503610029817588550219987319933454938060657872507619675467798882096519203469471997709355908740689448099335449536043695631554727819757468434246846585591361800945441918106036135048157200000932938310466210036611054058349518057793044858936252470698071040871134236405722511055073016953807931705170682825751400428404503442935136565032399093979640455488959027206527893273472860260180589977029024156887018836555010297000411978098145751137101259289625962387685703182387618443869895057542648981973826648671401697468090333641286917963446152606149604701880048524545807043407460870131239573439630019986830213228328432758991316019909545222487568036916412617337555177372846122861362178068257118160798323521480740016250043391762398979652808521374095107750980670424372538382510166822038049504832231891100850533191681937651965997349574637288935998234697732195873865903331824331913012443794168870522600048025212876416652234021957796889319921699813897355915758461856885368183394209051569505178296587596899909084049570707257346026025824267586476740766414879734220535720633653977122619306517271191853615710778034316762619609419177178586780026494526220920450326753237350015442269156468699609984368611223800175210843135740159478562429132948239935260950800867329091394487926154221140284897057706193641126434260430527832317195965942653175001151691673988509798453374067569807385055216254203720982314370339963868485340695027417468557557378447049437401235034120345412312457139023852623149859851958140458845371892600674761286712522270767043298302133561626333556079752821990353865010948810992828215278204132914510251969886336823535451242761258534638619434370938452335997061088026479066430616605440308215858226787881265504205966669697454518072708700403030057651628908627779869637278963136763295832241274955735545134559975649052295054079592151516076462262403633526282176183317109338108327064842870305954638056213542845183287754351179945533337591671889597332245121051011316512259368176777310208610046915334503739134389793391315135171531194481406022616790369304799896767444592103793595899651145284864582675601844588327450925828260848393796445186267368101329577128531226749620125253755526367739140675249493808415236474371130814776925494943148741220365354654216393464544436211610807554696850103793943297729786820728141780016450513570101920271610129748395023665872784432618632730518268200206970082206531262641463051183769768732176269057797071588906562207863041898546307446539129624849496109422628999732631671716575889744043744638504136201995928755170822140608916475661888670073926376613470909167387061530370437486070112112643883421549079218873567273562766358131678579834441661792174613037547510497728998940091722627959419887098154447507558326803190141862509549773174380324416347982434298035598159419642599172787582674894631739829602137507457644952840064105503586434391345053457976428453303596027367875228419994433127244875468280765432115827798156779306095360320148656212817398022898779575118939797975725022935521504665845831537881923867183163123148485963544270671318865364540451388133439848436963296629336536458816327367096306188080000869391016584008817375026931353835099943728710646914190536966277462430010258802038560885008813610607202178597028419828615947441083545900439753221583844317301584973014362050230020519866311934224131944780757012565988960026381700337137344296086014051578727611238357493659752591186203937529835541754208019429032028213647028320639249543105087494095696883834991986587969653019346232158077843983825036259678291293553629796236085389162171333993791520299247485103557937265029278889877529437968345299405914605266478385380481036337677916054711121126859424218593163021234780910249579235915219118905355030892189067819717918013815751769167820229726701800926121519803637661279883040615069962652757916848799231202199923823549386882260292944152827647284289389012554201821089822448713408167908041946722990465653572701353186767570409727990423647325697376672186280526582933698351261068930598611521787381428329840032638176113306775406739628732856634812245166686829793514682858850488856565146909294993006790464627863264855686642195106993785115169553117826297193980506977546968776536341881580676858105630095766590529737786224378363222262972814461033585642289787597967435253048245943874590532503226777870537787678248117539479745319286188560348755080381285502976298567725210852685046152071380381024965077244709786633629284977034266192432726200100412697170227649338716655240915110586738800430961964418631419180720458616154284803981011041059535113106112992921144802659375326365979619805527233690706118462316710795194472972400979982478370563185943598928044217839358411744933379630789777833483779605225447139425841417278897529494169624177278105100798175445722343999743663228083605633773034538635299973981780079524743424148095278080665997733775381595301155690389985122661661449282298776142832769023086248113531858369802338187929373281771202638847202340965663763080096623951407039453235523893017347821865741503137325671405487402782999805205269392860122198434515749570878868937385093658629190489234994739548013256576560040839647718527658752291411336032792384596429778382671831024843375131611773135424387277764669504353660252930760671756893607430094180167707912062717999055312305627405438466839582817860040558779473042664923324879451470355823538224695122726183236448450374119847497860951421756707347434531632117182527167645960574598713600584106176696283352827354493289048208056171260861741923477335508153056883211551354652146016885396534729667929329731495776731275097805640916524491207128941122064580998183379735185325406005552702137492222332807431973402930985435539106197926898112195364637968730082207405087218873837466167916566623578145778153323434725170750367904275173642893426529456078509256593118133253592561022977111544385326994820339680056116404938439850133671035596858365880089549350951128254584438702162719919016575025763913374442317070096819300382008080279262431104655437284728142495947650983857666160725357722007124834846087703487366318286739061286850348797292028191076371569497712784696810871242606649865786139475573908131658291865606383393922262018098328479125282245537420873084061581090118753449118945367843356674711288916632719792281388552750884966554507111531795453709241231275730968135881510273833308415492176095308417427667495797413578360844285523423689176905357003610781829609483088814041940275297544685276508796471070680714889584896730579188073497424196130141443335441547396940801957178878871494305597999925806669781051326161280915314204415149686185359323708995232630439876699588836784727587203761020247792254970063434007441806013532029961435180410085383343259633478631578771724692989622088424971723422092968698009016258732032890227931138043113208356667862049588447889500594967471453401263031034504381749862773766574206079283314024876451463029102724901263530571193825341570086321495868846652979814379571377837374493523447527683350578680127104954048404846907493270630240593206150672257712950501843003117508339385351145157488558244101271626117658403820753687165730640509225481947880456510375056258189688546448680719990623064114043128924185398233603785606867519592339953908589349874668744084048622882379288011524065180234431248811669512714972267510998831165704381404171930021213505130633245875420577911643984031036852152086977095911665927458060001367854474761743422169380934748301559835068214327991512393627003334052830748802472709627283462153247631809287326394381260626069290834017297498561792144888584515153437582693817789678293506039088120889597344587937683364503625439939812015486999244111549310967524239162830500059608047589158558163801933047677303012127376485236185908708406401089143187718997499647095558184865374132620886679994340106826907350157485976310230544966789445068036070388122074294592812116949817772938991626818856749422929636370859142007737398677911904951148830161053506956749306662862801630598182363567671367272990663819429825770024626637926297236929621006230516105856298217492558292349994365276957733705282860410499736617675717545543794608750599314433692159762897902010902925992342079451756746385405222629928406242103556027889840121335509028056316826190313841624081658735816356051551274945338930917500101529825282814677542648604035618412139944662895746436487234948417680339367120852261417574682736527975941203507509077431362780377436919563267716678146679279310906362457100347583122860875241133596834744070584008504774144366669160552114427571319878507807852456230500159604367492378071851912884059743272126235153593268581836037642419885851032756745343255953641316472310723982102617698751150065835494531445441727789480579852295229353805867749828611346859379795321955368423622852138340700820009820819222975735150084381898129696614411999271614578663834655097398930011678001382858954976106730855923969664695354086923217995884083513124326994227263311487656384919153041920543875189786963746608687932029367516725613041051009264231287332220767524684962000649319205091841704844970686458121894216766356115416338515366971920219942812515548170168110968958335939395380287713051553481640397379766823559826607833051194715118131071074384573921195791037668223562343849245624375448762134420543880079025295893087246407640412245697587871804084201653361425094550055847077759674216975516929353385543529224952556091158703683308417322059376646488276443981956765209164215452018240689822482178671100134774002812641786970247928368725289038222111629723695017925483528335857065067292339326187230110384213823976532765262810507237147185058758861985246348725553720723010471423178216680761816347369449638337769936936944518836592392836056789067536876235742221453077682827997834243768153263068074012296878224973560204483661145615016637288209771144572971925379067027498820522949334392919867655705800614237479797572415470680157393870763182544248657649110605247386043973095434160304569269659842023462238765935581907671694091353980161524068843687304816324348047973476706023111721519097146961414166494859564935342948316212601074095488268774979218108902657204958526768791222230772477875885404428784322798999179690458860156795919134323079246828672062071484075395963933778393663531890313153537022944980426953994829050041592639296119802868174002866774476367850777237906958731927892761593880469206326865809946688951575016893242594372752934984207587857189425396277186652926452972941633852500259785067752643614630023858009036180385102223757607123080193886295920140342095520680914285776937194967964251123238893560991107647803057066681361036739209931159799380098727713298145344386535136612865553248685468033034548891114255215847439584578298018395586261227171418539955819108441751929050306024055682171267503673332418846608584654934414996397240125991714668353620644277535963138373765652880875005538058036492937755396253606786548787883843582364445831680262857394345162658199160211738813939319909642457201783482163006960717375843698615030430862541145016034220192582489618261676992575685915849717351863796507354982407032064527603001749227016766419709678434228524589574056848966795431245839232198360827568092338119636756988892597934826180839063402450368020383384783764441527582438920404377318898857421193355477819610333175831632063804153059951565233687923429131040125631866051066217661658637409451137664801080754204001309976271348534512524145422756438065875247358435949237870386642671869286352435142135831636163193327752051673056221274971106299508703977296331272345376170131537644246651871140531972848837155233961575702772842938624671350136001776320719101725009686462705277690753837236424932129744371274266340613343676075786642225527444151520254956385370597157492170271497682742170208001230769557131437516898737060683777324639663663071471451494719635691349255953759215184688555473106150595256066370326150969717613614523957476117640921869731182273740055025854754879009069112006798733231634163975738033763436903561328454081526552716598452631715594961544270487139907812371103836318744183357242766905826153859494756570111148510639939268745624504725687082229488636195846685549899661996472009169464700812262078644536515903149432275282431731360833659232401756793987723721357585897350075362427647586540288092598767014967530576314618654806983412983969924134367682168845355869937753523234240877975107481684540141089862367027696628272109016419205898751968303854926951565821167395253548497908261876960299938677299836526345237206456217438278546511908626438057163250244382757337723967518202499305361569768846054327715126918721921241194012942147930605891386481593285172333726739939434583670539479666865620803063824670286446399378111586215174220339901831265238376372142951215677328410572979213340780301891883783117665826793685786496810076634109869304125126313759922601804567679290037283524649600989463123244259838848925742869958177559838109048348601279652348699491994179150416527269657668397299476497645096792344107730254595688120386486086118096696443395916045608129585382394257220572573415370678128530383528213227327241189977917255457892333840229949365157887813361940315017367468933486425182267711692441477743927859434793067663235354789127019676584424479028213434716119867886728988837280271531840548298666924869498777417137951834676052688099831948932784386833206104856429317593659485857666468733273342367726074542577430744641870092328647325773575079632067933013164415899804359292186464171046434325407617198534428804529097176285686396979039719471587546863081510240871805083410689939505537509911939210129271056305339308281323524665037487081005523304124185401956226100973305112522558197743305310044157788240781421935445164381985531570750305643059983291250753016302420313702613032135631739642202594782512957863541731247184900091889720506737885986501663680414916506539995936159349788022513280748910783697962011648143834683025296360329041081146007539409865525335344723442290265646411762692425794712556619757591836833782227139279857022532709926637241014704427432028031260907638372724323502362214984848266747228849619390410941286175849235829182791303596459336174536192666452965298268107900293191531945026327540204938246998508070806774506296926468001758352033797882115878277202486349021498019160080358143640629740488283579821156908993851804721097841758618764547802759493456241185880806862611062572964966566670899208895951304961408518959769712750054396357858943527800893082047283672165597102629027592475513768274011372446212366283189323368709099447042715674319665985222603558819022153246670151537413293905362887178941527222878593870485610642511437850791638336331826926740510256942136183585712777376629509621196647714837850903685499227466969844414651425069490917088474849806231557071302314164723306612228450953161378778384167178479299846137744826092660469833985585238837339252800486074236199366495590787570728220460354789560457119508493993780676622630031509735494515726097335651795736233992818405670109849360325142328637471180645917552702607547372291235384345112999071455268230298928213894749563151967307347908874313195334737694963187428867309796446593072886416922519404209855464881970767137123545021447582696718495079637547337960666187491342863893981275153109385922166572484162511237854595439079755174471763932903702612461796309276922675969019871845275804190928469604301332858135080446532643412417914479073395325118768771978735155964430228599949328489203899170514401031344270823174305197225676411808844458200207267997892730562142801071305975425100813093159550828776590758374843644135186683062158928680022804657231754833239802885805528468617753814346748049184831165797514483173051535935784557265575453679432210844869786505879395450753653159943051837155258475243804870796742672135810036370177936710226933390763027427725586358087611058859494595336981440145617082536065238284494891413723900823242733023366871663948408711352516309143248875592153141708024866795794630130246999375979457503268259937301708228414926199951108397130253100887758837634980563956618518549348117591315326231507774328873543315415012103898247441000214470571324559176662085513660605913401664060121841827870083833565603117771792714483501821798203307824843757997111316038506737785460322446241993046730959608435225923890814848448658125257312563340537188496802572869391432822433927474395711456115935651913247810774135090171399738541866265822582328136181370614601550492201702304199997992656048279257412299731281669955816784144529078634002695698196872102779545658148779933614618480668459625482501975690540101397041755365997564721124353479338029796346461115671529444278749496097562970646251809171034138493487543968909820814116847294590427683888862552988737956339305370133047306656437590906142438415590706112525891205981337989072814561619531105097374855829695401169507540311222896249701856497488462435973119228987355410181296946498494142961275496960102446329350962692788503349360934528993378207059016933789016544434949673327415478363080569547051538387640457950258955364288069128175158328310361962156255908809824930763453513535650262291596662916384974625323841778800137227248808007504277725774783280458053309211562306181552397043294764124949865488190064809785188997238980529878995281674744435986220190920775142369214720142131169490567804766381911919129093655504333406181334630325458986906424747679503504448970130439222428366236318621676905652220019663918115248099512791551689416672741110484891511121944797634743726972420413940345021639984495776593966010887881660615738019398813159607445989596102198895142318885458977238070476282527256603624099059909201647442255722539660873029018239619097506323902218037285084590826599679908407498322710955843722792181639195422736933983743732635080741138858994835861062452236026700735266230692938885477606218813109527791707682914399384513585698442306412094774709504595395348406528476794263809273685821112311151486864444569543384446639801036773564391426181646467858701510277082409321477845622224449829770347876821546760218242156165092984518026999792354605651330321051962676164591961441087660909755303093558027067802102772649296376688775090725663632630586260978070111532085528989933022744489361525624830281950972758059012148641064709028398454690386646009117231096848120145664703522542302268703806572508094355045960387041101538721382116155651874890911540620273865513228319777699368902714316535785120060056697844157104852404473089731768694332571568495764100014491174546239162953716822858269002658825713029783105546804592093786769213354685768454814902383758648195893113571618843377317321341650561205173086373511508780330599301610775652771184676694284416480904229377795917097450288288826061512801356909368266081040028043396406338779252402969237487724159413586100789306834617640278479436838280547725069725878412913013753251645601778956485604720887098784475952523043096791713234027296286818993394105542404609620742681621560923058343201485118713292951734479243237897043968805815664314565250178150845565648877142450151521343325333398337356856822492735808511230646306949381274610399299170424491221313048684532771100761690180253876092188066936758956648609319036500892536313241485823367999836220302753079978414138093970782613346223221283812291131454461741859437505947897482528239285393264034143999960518737557561452635600537054574822794083987374929196159450660525253139863733957671333303515300430109919625387602822517168782090320133690797202267106200853543363545861925653631531791861070856959256666068207058482384408937060781197524755194833976435594636062411350574125642882331294776966126020829652757089912536287467730671530013722112200177677429237188881801359517396715702296745076362501080562731543636535298600680440357306250049967491953075832191094040952625828642034348819054819736334789020177532608390137320252940257292996451865103422176183898436913287168662316061593188619744501531012338232694068791834833161663272734868599007491745107161560294296587535195389371625986132168659586655729421256802694611544214789704130942311027032242210219733481438125744175956632456734981358144870789795202397817410371959508689993067268916522683557034028334722624096741692575964430913505076861618147012577313519633236263062054850768067825600793561691438876585494080194103834813982510029601938883666971571001094918977752946233666333948698483610877541972393964383393864726716600923520153737996226793660276603770853522905328386863986444447925207225296237411126891639108892164299293253397135813174874031504716735524051398911447666736422707744512394909002376438990327912841490273152782807076566729701091884539292924680668375303957234435991838707780808501552777595730771733397408407512207618050497269134458728353813254942772571134855574766306790387437718934453785441602369464743832332851551084473339949284149478367636874091374839724687210114915560799600083901210145856652065610619304851351702743450039757437820191546178962407270182959932611841426703535582137248278869161793709973381460073029809476286966056040390916529315324516828392002677272020940037269842194553593813148094749709456350765825343475979788323064389859129816866616905401134319986017910268517359574326555007499201621655278147600793021496137577995553048715497069768017026996495572982677148333049176785005450813289164744196022962185894694028574630357277648967535959078479465717315192529431475055727744276160098505389189765234016858955046738072261213691439894560712856297146531102235905670618613886140943881758743222651205470100022600317402117810872544125210674190428377283674104003937067148758443602573548551655390206952643716832464093284499574583678527997984690649733508165084218614945978263863273230448162368269510207951170488571492085879063262258013614497077340042856343865978549411583921857553667866329961112466655894176311384040403262403060973007130099807817831222619290471063527659211790064401098834291913098127088359599431656273526299678929918380340193481005226937888909506011114620372906214192746661161590271674367952180913196851220756191213912856063585212569277878308477548290844295312439636272536289043361204089972977141138001927055948979171572015979354747872290922770272636824597699841104838776734388259969219113605908102408949135454225265998241105879275542408852926592401501870010729251338152995259265640019618208530960579700321121585408243942960450475015484923922866812901814191399397448864766461577241725773350135809542901196917351896642956836848898634227332736100980319969168953835611310917566051619052432106082905926245148413623320370394661823689059648475496096842559759424396323686931169052038785168077393576678712562895723519601529823239368825870450392852729467939226002235356430822914943026943791936895488847218546104618274055841985737698609172045769862531488967887589321581794571923201269903717236241283329105627843881734066570425453364632432812582808177271200868174366438197015920849300655485116760102874952649618956969305163608725289291830663398446891695901633203176589570814510284889788039505723004904254123258624494483561579477481102010343965817646428648812255635094991559343595881451396228018654234350112717697855909878029051405644034544378316280528160235157222115704701887161916091244578931624255858867148415990414049089614972512443516459895256636131425575237014651082302164043751504873252532379949408820709335843333481266379738956802601730324625821702056123584320185727485337686609562367361424557860137321209977298355904169351003492452565767868957241011889787919128175641205530758824275823481429953436866465695387868255712596027799483807119474780829835185338101481877626189089552521972567466790190062959803747621323962326101610148846042946298558429156893789757819434952097000221938411438369676403192077886458350732519727667559799160907425256859893331269216469625228522025939739637467655428941092976629653561214547616791354275697174881629152671799433017088452717773820054729876641123359391774891803751746922227360132647598236352245074427111480037072190202067914667562481363015222872701496531679729851642966585814320513924510678361875378014181877799188590889895884925476068225615756435417272894224274078500573634268357080381278097334071991096053344081553343536069385596741976629406897513190502094442112181133871087336439048664595444791461531896193377422895961673608614579588395884968145438238684180332654417662702987335787794968872062963662160297311584400021199577449296128808505901762799878903760010802414494600024472277056503003427842878621618613893756830757788946859760303940428163757336379713313145218033918958258605214582167750586380866108510015647805952478790068709509880139812787531416357818978774966575090688645530364223465073928750651480558135164291487996913464821432642669345554009285988798129471116838814644219241990454870742951476403941471395539132075797318891005477284556993259048674945363760552154800742002651430947591094372367012104841881315102452551478417103604382488365561349221814074807191370876301895600967313153163854754376694934635233093790289641469273633440518482938206624832024768164262019783196094312711524494172009459767426345723903364977114961891300221388758586277162427131081715575358999328781102387176643869199761795977874923848705733053939808452808210577425646976800571780891038840818184034628350783903613026240995776862417600656447144865594088855300094753263615902930611846970036507128682491539049803461719505374563385868270788880492772080695842155040658231874589449348064115736158148094495679298884233258507146790742968785805560958414066087004299088461122802165161251932157340022383916285950540520086958670247251845167900861707955436452634312251922556136364704700329761614976602650605549501587221375425263835960370587282143408261229147622695801824228363380551295451948725475343625390376272558987417517933821346181581749258885657191523013348313142208253646269315145023313397547575728528902762673996740802109340222867703387070292282283979320361552508307583618938712752851575324768043219564250270281669097207443535948559954412265362128860922884806249524346050377185940302270001406338941859329775504699496659717895170056467741441437801651068071983936698524329185792325395969134971460514096204998269411166457899019257883592502448601396785603951271670727799212447541693347438089854916599039898122363375342139686049758024379205045974585684278839309704656182984444075655306486920903187049364431564530580875225230402794697752606870871480156649002922796591097373344073976835104725603219521882447093859010118656025242915709382475306109188882143566746874771655129518754383634682140470847211665133117021181363142364636935008674649237475897011629099707349592045255536851094002921946401858844484212861736997537080277705855861971069055698185742894053044181597469470699831430618475877450217959742355893860142240584169333292444542984156851569187507310234156618232196618242088304235535292519676945478656380059332201385903425045177525919775079120832216918559104118020487364376493787233672977629522573250998988144565928533455283621611332015795117904862462297669792576466673319201089417719118675576400389274085311121864663183576317001361514617143556256529255217273407678480884636527619005458499129241118707462994893143932556436439897558810045659532112670817393335184425820878733420823371050467899739562920067546295788525072138125484102911720443801300286483954448747249413735004202054044567930006291048814446111555417294684461600716629937256782913628973161122751593942191915379247893783679427475712493402052711216592668490128889632816894012509811344018593221438512219574113592491649497462834172740824937951070274215108493387174883101413936408038037320005248534396310838440055184477680357822751093209322563547312376648383797450961195058671922635424560590903498603245434097616944794306482019056950577772152156020206643793719641389522413208624794436942250416182135335881997755226116069331884243373459098387479744526169018002319124177752943491480009430471980461528801175573373147189235064230388720062440493902753415991083157789519317189063138332795265636107929695590699588855563683201728553030159442944369939607437347011839013310743072297295500469322739362077094613342313413155555981517569024594672878922830991714600180839960070241973867700759004215617518956884144965769491740684014799224135309141854125286236044192825368624796365126479835259815117024133613612757022144069029545033896107757402842302340906522309564866007499403081175581192126410295468711078548935294560099308160708570091089205912961136231156976429462959788354270107516929650874992732017361123688450438478009553356329402803528062526070973919239123226821462138980843946709261501273922770289145954151042206393091090271148349620320512426987379594963530880513986216029683463145029362315268805054558965551660339290430612593095190269286390493626464934306411641174248486718062004955654004291555623815839133936873858384894706126339159212782778018324057180747486052811485982688431559942695463339531290544203570761845248214562795701865827401006903400646634456288075698724378600805553163249610628882074679443698583586609920768439704360333144024824693875724540411516327592902683896447274989343705559145939686164657833354548906461259856460911752296500700277290471292440942970438192755247660884333150366932740988852132612456492877247331533692290074656738053366539028471320172832907431613708208336919790025795263193762114140638801616486395657253553098894561102031578001243543520262110747373374719741903620870979077719690578693947072052965797029332302739892611861602744905652719299384204464030582203917558503599417955075211528982908749708212936794498361918124137506066239744685375951104277486308753760413421048862580663010846341515569817802521336334786299487242230233617720483708683196254444758030138505875057558866541842855702758612778627158785368271730538515499190438876468367509669558144949683274615165565163924098544775880360402970569015706799586041290149511291102110116070084557249759139924174045193990484248471657441516458429062584728012908647887114006729927191300148812867139798074259732585755027957503228636272401217074119120202906704923578354336330734990257698130346948903235306846930068042401642997244131711093510638017243337497350834742016883291210468179839219656283228652469426136916973574742463445479597154738382803949137479159259268209036711916722944025778339305626601440310066765550270017694130008817451849635097320807049135265002129372088161825460852737028993108248751050338784004563984574732534640932476416401544080268515373275189581797856950491006688336478651368074402746180704884006029962586864382679470089577647498344499798477076794443042302848334199275272601698673609658026017986536231331512956500378206732720815674417520417659074066997781906938079058257466611453599857104432403579364683939075701363881706956731632342618701813842392071725593430569174875668056898703333886537342589346846123213716033196643318471140040365119960680426894149080388878236264730928199425946437374947413371730957191809187577093047989342190140936897865854155294800632431200950623132205370020121664990153046792814688342542296265081293299756946139497646937094799603184961465642821966732719619204634022867996861539308222958633172625172978236290310508732478911611783469074985830437774468736845942431014553048401301238165967236308062632791704354379736669270005414530241370248227064367971299883692298514473021911919303457195514803958473413291162453344479474857538342531736488150895908561689583232495065679479568049358501010151612792881219324686952020745138181948969466694718798746420483186585630736124001291089443242485080390992617034078072782153152674589083047176500389838300956033973894849800860154197399598782553570802701062492144149338538685317668650675365824081753483060523625343129455681083052369343228144249053556863857456423855843638091764629936875452346313426030682182658318667566269695736931289018683913132808872754387958279280005653220327348667349913470789280817279435837893276887749178577691393911930880277062906316992511864072669313615534754764301461475304064231595299880977744765100160162244224797390982018051200411719043773612196078066262740056931374799542214362085997033493550389601958787605782913404360270376280825166243334808598921137930116545887524190542091129813513421936676820438869940768110026348924797370786991757322421289651123797742931017759219273297494968895473505347271782820510656892599868993440522126432285399317467517184756342255208260306749813637762399465371432980710393577461584852249674782949472983812993165089243579957429144631707803743614672008073006545024981726004520277035086665480246258140774218393549082843229997163405014926786281540890036601410529676451881246655291109013045966481133381065830665549195336824855647897002408023641130719842736715062152130746122908208625711831590492689346682871284156264501872044623777754129499756719213096053645094142740069838694368283624201843054633328169588640662786124833297979625190222074347241410776363919904298788668434916890513249368960903216290968617762097830371829395048164867900409886862278716787968396713659144585662531515959679960629093010333957996303350680484575938946433133943779818233733981068462007499930485746404982985166404953937487317313518143835855403990594579519035036615253344796192025549630734232053262519574438093864341543783240867960700164869675466705886436402504764511963333026246967677637800507069338406988302251515904933740425610414629613309875926676312851797975301970316707495699428099911868304023646558433737716068715946262837099699769531718614426856268120249487291506616629265100322964613355993754847399669389152031918600175678187741307914423605554659193131769837330001414267819348209831918554192532419552639077165246344911324534625521248854944303628105425237969633040814623765439670768226057817843847300915291914853242754746541154867138477797226722716099131441319021213928414891783130600256605770818637278989864231105993847651211902906462712015550426509040453681334122590388757057018398052156123821266933036135027568904331142514679228405776835461170593097632440714690997369554342531170353462024019278286277447720825193392973379226488629389765896206717775114546192249866026103523635803239363205248334252192458523386938230335459027967199323281525716276181741537003794673829293656452132464229154900944714186785014925296996143241217638178481724835090845328985299799621854940256292217812574810231493189051537869811582123928962720073210365061832352433667750787959316667039701181204975926612933249784914039463687855915743449930704121134080596435732163391755431342400307903908435996034567248148855661794928736414738217718014285191758929863389525162926857156194374032613767385719807876970779407937109921071033427989069906883225498445250312563423387201671909766068382293738590937264748118096033735562765307022569337938332782842052033753802084409848266461467979013394029681990236410899870899714473859340979042652940014894588877591060637085584788059919427361322122461905721278457976212340425565005329803330781507792645324887257775591992416880893642526085552762579428548387891794394767292566821378855533063900568309446573477866002155218330333940233326125121655433317833251330712455707982426930042371711070768771360539159471194152794368970323745387728880496448813869378520088890244323444496533029903383729463807304237704719328917106742061912451668714786550458387396794158445780152611498733448907680268145348351194593963708574688714571382991388648078147730475283643394713804461818798671458899259873744397823607729038821370517687264299764704348673174931412307262500853702308049783632432876243895265817584338868904522506050438265497708600995783613518372836897402940942714746040376752315153681359181531558643044886536653160716587397863547856169640440444117978826747229563654006542037706612110178632000516904499111576540564751918326100013171016550638144641903100088184899991274123709699131956269876085246934065391526293354723818441039052042058186672087023928542475171529810453660286133779783987122663109579114420476371562899822097387975994264605095534854240045570988657720949932686542125313288221783154184147653456603003332114505753166313735161951522628824602218570982306695950995091466714716699861021749358044752864582217501862628053663792412142620381638787408802293122101266849015460535353051528980291832942984127319191566038366927626168671681626208918892753571640749784157527168244643839432854582885688564582235939994797380026268657809497007774336205906021024911174931486207740605359392726267529451191807166381485112729334434671273215049186418003865380271272481532136327953435842273184173937743670834321598373221333536589121487137899149725715019167043861923049924069236963735827582351643745589444217429328666007490101107759867903374071949499081199715520600801756318416607516960912100194497658303833453755324407297605639013760358026778809745946305206899233180859137709627143583953016006006335113154236105547282550986423532928020928198735758980394427733757315789501608915911794184698864736403291974299524131067726323323248458677572770945103393400116309129345784213704971928472272730116425633169925578196496125907606682527033044614756045260940318529128382306019035206089456504606969663429460778933187399468098672888073739908394264384627155924584891361767224977534965360193809968166196012689886653150510934081772759267959735265199289705617971033957153364664792589838244828491279264539811257819005675304872314105508385149300289726248726635133112814859343319210773692475543102504100102533822788868187598554107220666872714514686218392770937020277974177288449834548442632750839631185765825001071354548434366821020754049596596012135154876532483227407772382732165371476125483379079618502712113802390806962113273918278391194113752074807300010855284938475060447417398875524503687112824756229433546560241246883189587947130000636061465658616121165326657319195102517210912923034785780054766115706905217764048628436390484686480661359197315422092600211889634656005301910060944015846694410134403253646680546855156328207900929384405110260996210814992029643886341169483512844390362954579937309205893834518944775874500263882501597896928558760553091081921231138750675822422901039480317454905902230090012308825192754735600431624278152581020098947046505109991652727013602992919183146914237389810434768189223136409140339884675218930659854598487781613134678322025944162016731302155658749804372425967157507232873217290324565518051204033165721730080409919437375294305407511273592455016774395592104716532645938484453729302291449921996257153168192504841063415086139236286885700949989097190208679675792799695677932646169459524091921210883923926462947239010309785994291988544842737864589334787685559056500299822010783361773858508700938158463622804591667597581884198883617231508505107385427977816717048776026476092367130308818880267691719997673964073636139228602076464927547514937063870536533025249943592725150201742142027244158251737042132597150452791050996997312486093673507709193247047746459212395711119875651019950524419144204776633446081016291012805105290382049179856616707535458920591609307345534703857704815395862268711810323031424392089450690742964045555539801040304238694452350706967460818019336905015241607637483838800427160330893643953849344426283935531380390962814441537079430372860095905748384472470670554739028297431680786718799245407162669282695559938784627142014834511691918336156251252382599709141327677989872591078604095455188499165636831625102228825272006032204846092223024912382620706668964320203090467860777367056470321829196637760907960106548428298255291829584989528575938921555754186394330643095738617946792273904102456219508598235631457546746445771813912657028212786994124340848968690471627050266675391929765243018664949198693248627780634842488497143973045460888663241338355602899032837172804035277947631900661434575609247779197508052482369324116004969059654943545054894099112363139962399446600581224804520293472464922653288539074553091802573000855501104030207650440335984696584653254870430890808234198160154608678342008338661877090622303773389443993259124703492993042401860194277278371193487452947793072957804483305782114732900432968069638933408251803809062992988246383640966441514840464593622584526111956425995042781644182045411822519682005083387647296569174505978662044995709830005800978932736195889581161741524501616425489288559220970349135010021265290885001614293207293615006138411864392320291480610388334877204682357515818288819191389679735784422170253015280956343195514722498000448525122718041092474155045328436984851514137011529931012566828729058536686105687546560389181558448076771000812506892782120214322607159598807062949369988121177632317710558837500957510661896986379619738712191652056688053238014899870384114454853288895748724205233171717465773809731124520022267470070691861935325434426860625278801427696365054546106756950534765142550608109306889448284238808825018151424187395969771700789152590810271362587442891813867172146833590396298600414674544936703853833205167048675796884633396968485770925441969153368581446491346979756984526610199415206434062156338298478315722501313493336100607832219015054945430986445650925479081241120791923689367894414610498923069275505926967388042879749819498550079439300624189827158619155222089739226526267694208562615603581873729314279912169612573916606498377486460803024310786909838164066682766123984148271097960347409281385558173011136465905972994904095112294362242206425150345628942171301365046842196763300436611841053650363966986851182433644767945943662255372514058721673761481619075272418261932441332769291749596204836004237917526151060061110746905657200640116503088218903555177085536303560005873167816834521671508016344912686536913932097369777295115263485952940413490343270261713256996279281031732469479195183725510473520672819965753662119926074075598671393422262010998937457511243222597985322478253839822145893744282985856268128626311670268980098389325040720073419651583809041127579167966242632466764399560855060441428600631556536355438096230074891004211235264971047491423063071902311663842929696681600653246456008814248832672671829697358444578336548601645220294116775199921534045921162659991350298453993831322962449170198063268898845077575314391615885553773772420719403902247336058165701078274557143129959893086879727036425143983672209181695264235564119929884868900570980271267583862325844263595308474394469725386239284038235797649365337152871971632426136875024945655437894056613024586340013338792773729734622364917841854626579000696410158953129700343989322869576943811970772707953660122628323923137691805890358803280749034375285146708544493361691472789761313302029737554600749425773767946617578890423233443471242427413276204917137797228990654273388470140036954083243027775498176942132049568304200332251983460789818434480007147733215775467375520574210793136553010548399257853585662739759682431228600660347154351041518161148702777326215630870863443847951123939448916830563489253935275357433166749581127476546019318889420007420403789634430776684420917873308178329063780515412204514868699252957505031569288694802758023021825045966182130720152165295138027674264384265214984989449422973505854081191757956489190818423464123417829188575199806813362455003745723520752878753179504926215326021014374374027341315156983019275112255528419419391602975717339606916370539774671266995180428826828020334829168396478306331417746392954195426981841053109405961425280709668179497374248214355016950264669943403575234181012978450737952963575654658659130605044713315037195468431712054469253008014308987613964692888582257458064492956496950591752571948655377540360546706364079176928482053480315941936693785222416313285045394709932323320693765191923265496045130502645952523371061708914572915759107396247492945163287986722167534150971806317145337170519871862267865931983771425658713700408015990759829173772370158835494808871336502524125514843762516601226990333263300733910427423404873217955724768988606566552267108841458510232109842517817998304272423757290433298497435859497885254230044437005744276782077212270493528425776540714943877420395076365086718398853155465713277336655480605685875433737180868357518014884689426800155383888613073406195234561745897655375505827524622636806777940682450966956188133901595819496260886099072003490440521550759000313126964114023430740311336336011785650792264236931670442669778843403540398001575570212879817321589616989392843252117881563588009578674255379731439217478483273744552971740449788679035768121106502540486664784612491785348631774954242292144020161690065740518752261762665000825993329244427599697001486264568492097893353715079777909489917601519649665550957903840139395479002636507167203014197133152111471230111755188810294828209932696775962431467063960422060973803691621932094380212572995991681685711399448738174730254016358261689682676066717847001345493564069917567617141434004960955575682822191954227802147497802575926547887965191490660489297011599839789765606833497548295403555263674341633296946959767276152585966446674489975133530691379168064462633735015801550904554583434412041327580568877829570372669079213808307898113859946650560097524149677075981001921352996986563174957535570629259000068919579881228247486515353584866121786841751735330382054482270897027802361335687162338945058085262635728972968016027454517210146798952044944222061896309684688996836726621351126989264411027452815651421041749475478960445675435252009713690207730263638381546410306457984524457509734242195431925570358254909559241519014442611092693095964135886206148752582952368929751261609191267922128536766594116526863212726669029828677729671347669275060143388358646449658210445235551539848595001304248808584704358940249638086711791910231409262045578718706634365064937923094491673446519958866660883579404249603762214265550147365586960430464711024549797318769761997376261267198494256035839339878477937949395904069040982783958520587859353234961664569597587013168725765345209584804487079351461081366220080547972992075973960941916591436024613755101737132558310604865809207993904066379152617158170206820061053544387807426078004591894809711623687469010729375807660848128199806702248195720335473898625109033119628908967791933600985753525310748914668504914527265812358272676536736904397533188192479685211713465383920056400991224828244191481488142659187795152023981397402629419156218048620387885334062520000129313034563096862417970589646612668633011530493884787243297928051352318750952968238070926036482333857245173017991254229038646277817370797211301486305269635587501984948706754669815448082875866529780465388967950251766007157366860198981374136072483715128356842590285227802666503849033227269064484341960399486483152344680757000728961483964477808516026768065841756263837430265007533595933627376925853344010535332751872186251011816644657592797327934587794905500855591629459299888427664979748255763527625484027970481641800425766982182036764444942405120848093036350290883145669760321755050323779263881137616171906203177881488466530433026896381381041535278741842997096198003247002777696496641144294026497630016035493383155011794814935813398996888661184663744669929671372611474775519383929326272213437140143437583012895080705958689504071360954319720861543303600813929798194069144411554691700071940787759142390193649027037558398546940624524950301148189872707407297546120677003246391552369179736242603959256536266430358787621224141449086474372785050972105829734550365566562725985745371890034911065395080355608036673520313300510711612358188897401761611692494304742213499808873900755761458285111861226943834854822367081242398603966962608250641333599873872344914003631814255237879045048062423830884212791617084970216835694535530248106308808302274255806511531230336940307862643870520125074671870151228907815442177198010567011690178540602056468175979892250510022698739046933406519472592603378184077342832679869647914846477156314337538577551254475951434843278719414356116206402384951574257144061600184219994101051570881804059000021243955256548246795236443292315078661431077227830301240846590018116611181054524076124249563629159681504130180971623588215245665094248299027445334814598481348974373404725537933059705287450128499830017904583497272767754166312370613782520742987992592559201797041995093424598447624783524811746998678108526319456787301381257289829561713888661575963980210320644997559630217232559054651742206964409324393866307031938726322161533216781454453645442596173375476572445965638836284071150246744695298237880610888022874285912065637248832039669796503847228938339043149766757732417096645393319791482192535762353891902862202387990832867240234744301395916084442495027504827681426497126896768274655875995073278392150709402400160203096630259569256431699551687411482516389027988175498689210045649143735397060807867326831975326681837226645447013941983343269955076368718705988083411775855169143616588252546965200750840943064039055353989169072482526804356242929926934587842700188833857745010901690960621145715252426373927718713336024980796677923756479059011058592085230483805733585823941777189002877884051819987856095349201306957360961730371062356621831014947026459207700873139037907917528947358327292782230390142198646427441709377782497363000453696651758598065606868430562592423925377532456047249179085097604550327303850935788880748968664048322076392783204611158380349119661927989201697077140487450071882104470649283279006242002087707466780071888411526712128233785297916387611153566769890241934316719669056464794404818147349972344432783384535950933639600320019056302129583504943172148487042040140860645790977814499081705552455348000466351446840387131041125464394101491116279023519724755881330059537174198888370921737176680265417346762175012647606325188673827565737388897717839028665478369096880217927241852079921488901362652630131958555956745628573555946956538311546495246037205571138728170363285466734754448906389971106309891476894844956150931674982197321055506821027756296335924496211147805702051756263910500740743042565468047010888628150372902360192216370683757275036823946830540281848590252475238498442867416563236345441979747524669285736220090208243517708346705728470543898999934340822955967046938932146693759500059366664564581166575963383028684898252876178344617578113860036903185649248609130787282616162850558203724777363305483651742920709640728894451113881641265245428058895447353337082211878523556933555028430768963195484296209143449943150209492585248289504371278046658367959638888687669864377909288772651894792683910238740473646746918136678410812894840026909571484921878046007075096128925630868075864561906491895740767481070622016656936007017591381153093981820007605544616759274650310954868327654009081681337711365167654235521001490824604249842365455398559785566451685879970780483241464856888247436832531130892010038087169637950957034235897292981798594021217123149003888193512075361285831853109222218070343820658305220647763403469374021957406592925769213611665360761818646006036146180711119386390860987067852504743822776326331937864551135122682869170314294288021411762123419305465707057807749890011393634372049624568243134027545846230255650003242466565227259741277086611477019796533507121355756978211232353008226976034124089231658431746366712623239966676620042844364219488261942787557455740441032730484549325772539777612068278402544994735113391780530002752314235840184637578264378061788642653259552362645063437054971706391013138839421839589930546859962905852073877221407896309406868455485412356372210480197775558065924515481809264933382521141602487232849433419810430245158822213947057754781798953680540923853014983334047791037574878602789871559969699698348954906642114199991592696624200404329118232392234804530867518187269240829519761646642223478005147772262859634033369829429948936496184002404402376838232154598706185199940502874353177808825270579923710322263666697672597830669025606743806318846702981755334496305634860499623554498249919698529654705497041392945588471264722506819402402382227243443227028836593605389075600682134497474255708802074788120641273329246647806541943106143891736259590439343922920987610044758109202145984477515405711187062663163603927164533915862872741985109223268647098958579935300340481190321296215913048864058528851298523230416652790359681975430282788068919733688047632727402663951523238886775844906002268826971731061634952672205131022745917163380532789386934904501709643569596106222871539644642744322075685100461273336256002510643916338075435586019242911514160348685610115197227009203679199051595137505515646003242280340059579905481313155408501906638728135854926053054104548376874281937667464712853589194013895096094478630841396637872262469042469148287451520431404917094544502546650058883744572194388369474970833303740973207638646159244349667074616890218144395445403225616194749743180122489029742029539890038467119701999470271781362063437463687164096410250177173774588007341205670250676245360302519146894616658874383916817580857012764704871723134158437386017646557869056350121789156787537061080516215978603996954309612275709161140556638255420923864058873452919915226575283608930005081897480834134343339093023646591130287522039465525027435309574185976618939824735477588380627905132709072212948490934721897439797664659610184765398904572707945246434184880153926264202966258124741028232272251629623830699900131843175443660895648365808710734285376167075064303061142974036960482803820782655458261003296155152049423580747884979919806659455527976077907245417747549173345883480063848742148471644402825189290403141674808792048520802064847275070752050398199643545124121038815043259403626949655325654870021308113674967321530783052371084386901253431292065168494800120164941289860292896744769820505676815259101826018950679557441044301911791357510748722805184637090429171668840134816658154006639149693608307182801077837769534701174439243827305327795322510362769324686742412541990991705737110197571235173533463918753658366709133480666854697766777946191178471499569307117976161492217564953959256595569101273204836969923363977703587962350795723018368647655382335471579078609491243986530164925147956987483877433948553393733889265409071032312525783147280953154297521539990915660118664105070986995308102575579248317983898435515204103805437901145723617977597712232218524969546145691406411887664897622271061823957840800982714646650644884099245561209398061848017510866431839216950922894250950869271730083561703568903620816687634464537096988566108309723778409335543546005546547773263914952806400699255159752211809782880012656259898077461057379160736174029788562767512420138819669793885866538024104904305996526556474562110542800010454316372695338601351019081722839152576237361931085579746511247295409406258274858106492632671703659587546607249706087063308014376906534858698767757333223780258629872147811650140339038295284846630225537794369804726007059333797033682920408105328791628717532224432706254229616457207845953546976426452986761163470907112900726411318995187742937101207871916338953161313556296792036883881057447363287198288593217489279527428917861653912587920165834356802428555451073150089000255607756232415559829752321192209623868386409554124739647570431240902110111145094079983796436291396588856966899200194715450154443077689796850222316490402908042235579786937037285033067888675508186386013018784718443362990788046015582804390277783396488674643250469028244813164823667399810168910355632551586755143854493914380517763188765531631079620692255857478027676428726335102711304123701776963196082448994336373037723193315487041224173256768353879816825291488602781032996191366197490296221379047141408942543438477464713125155888212681218894390901593524496660117489175629187275164464358266512776145981735385919633448447214820505950311965285961632340253254583406604539089092697448259864611489711001185246777040562552312635541665558999663124624019700090358292388321385042973603717160803899170711410068571267191599699710323647095641789312178709892166232249525710871964413523261557469264527075911675951371574760436663726662054142223802144532107823002487186690448884305149439559838210372089485345353816689416826431864367587842780939621038280476354676525296202734318439347397017275899016474907135348855826837306583632862968304605655317401238085075352956933787309003371394946288447085218233199974402343991194108957959513916909401195969097017016503162530980424099747193563385470132729551456195143236633529190586381988100958105201688231539960313719697030031932148686890915431335473354360184100276797983497766066733706268449887279858994228507008119292410023323701859612987263063505590186927553976440583422277603587578211734593206251610966784637993835040333580193931664023638627905015185355213347104812608788201849256899152224853574645841949250652284388789575363355980917341673934462404891629120383617809946116691388980766544492439685661199655930168352253518648662037426059451324485820273243439605410162579728373029695696021126032147499157874503329950833064437107801794083698964382363641782228653081547826703684960685466837642201528693460365281168870596928387445252607601056276556365851959780794383875201329331700182761038786562128489549692381476784717039297637930290206807296937580890481401129406374491480074651290872116369435850055358479848429095562184564735499371488601327965135548383410628246854336128714515074407821924012508652426265046320455710032493788138603670786456249078554824824731809126105776857016126981183665342383723949209833078577877402160182751410880386444311960263615964883262859085703182622481487208059778359144066554388127309359413712130055549859265080480990775875507443900334541804088200193875594806727699677980490061509284264404252679316299894825307328937158354108688457122988633240644599787310406461397983360072650857146650266699425292377735399253506984834176258010525755112167780739198181989903516138645302937046446440087167995438363044761394337180977014058874555636575563014910080509616067160989021522856203353510058373439529846248974458233942272079944862722782351170145175786962458169014705671733564656551650012850423353940274642172957158842173030370927285534587297823284046667633675935728651866824768545913510817239738970743145252431667164341228238594596029423754842472489245455784233262105190696948104272444353635783470599127670881978686106704670278664267425455010728036884982359046527245769536919077103292798373279763678143721196523495935544146995981249415777570841678924207555456497515715933360422519497848263543685961464606281900198546157392786206457717030118268477414560830684813250017638804660598080631755064248855476367058584672028574970109655719398437641487452512585305630757082136556781676602487350886834193080815907872967502816882036013572519574449896665920846847426193569478028975506934060590078051624027215141484087168516183395737767031906853787256663918057944168313478445369216906544612132732510436099553200895121242666752971863108977535432573735120279479516539893779044868345380300560932188626155242897335675986343730317588753220083311378103629847471163334940408612496764656424197051897317628628938797601790236320393253953106799201303386706648400029830464600410155413000249933352335955455089093592243664903842515402820419125967795744414788774534543333037501504271756242978987031096577014463102774121053914361588119278205824756878161690345466767680004105115649403441983862753552366321275197364108828113847428296790198860837522116523214705035434670386492752632720390990898672033322339788617402442684399733465698743561114930840514579004533358329914039996472072440402667277281387795550916073896780016696690525250539278688109957756225704408315918851511568886709262301591920908410097741052479554475241001865733335049942180277830088059150235702312607872789627970052860470067219150942722882407041543830130333863025765439561707300937382458750917095137342564759725357092757127708859540972465803085572113858412492209263817329702490120622141081432827823176635287655572424516181388897025860422459633165888662700197031039327889388879553527774131367155082318498785625661540350172050021372245974736857957712060523258073338277123019246457766694516465022984083433163080429558524386679293147667606533805697518690286404501385688919257555001883534198186089085574832640341943855936677989675229474579912945074177656852852790431914175922767640400369772847137044006244934689572663087980561955561458855900547153450700097323944609002496182246237253509463319313116212346636274593594759132473391588339634674063728671451899752703700030831210873342744480963785260451504935546252892386647846288282976890706851539607601547029581314978285151604372979853667047375897394518462778884919158174864110790089181963136005828699678511620267416186588774725757553725541770150271498482438260853131088657903977509923256307806154097382531976507662927420000911875570036503451651750793390803835778179648033809054989581638982120584609006272750711300753532312924004496100556742267492544242412425719943715518216548438000334408014124616875106009893651844705366288319337063305606838837818898705977968684612942769891198891848159971482152365555108455657234078897428897506222484955282191497447111137004427977222108078937471306970958880646169448971301325602912384952005735596955113467917628520300821671378213442452197806387970675864378769947828993388729743716770984611906970725050517649847845002260675718149442858123044686499696377293719660206067856276107110721933448702146937355785085862645335915299165693499380806459254884933542714694530056480586852064188696355986089180504192598920397116474118058428815076426454387203476853351360586854675872677000818773220520562557640918989436658339031280736161301948228169460922435769630220818861878202450093529747147796470481944858543192707506549634890759486227819840447521882820077090886673901067057061952392851882742142524942078295076851816338329363946139588205761870353068923673398170436161640831018380592501273368953822144538706114408732899739520963969105651133232655999460143185991650327491079261952066678369928843243840147366090839359742764562992711525570108219473656800900254803260832067686953283599619016446936999566148113950605361610889414157195335456244002026661178103904002036795721857758752310792946990822004989100365713788811721625863949973349030209505948387565335975213352222943501076139817286499250312080221647544498464825305305465920247501203671938289133660835759643291913269300377397974524753858868668261153885606608733213276825896346589108701929337274714213923346245110916568899946591938275897028862750168611635412550225605917702255305689977690916174383332011842500969435518960437274118698215022974699785746970593207628790614872772523122966096513843167166177032608428644841553147304771381076996844462690764577639811491981814700207513509075618317883291462743601301452395316640310966423280781405155339493414092132875772161249969294664284639543232231313920408404615832361754921286961328941284670574383776208244339188965177239702888774867634979340522749753594176080186750838244942847899517505102643638104149865855700842462829572162681388100559562682591321417471623001676588631358971370973076273756324884709947056739121821151160168340932697165660493923956703146937464090361447318896482316002771220777973175054533521186844732274598467482112754876036137507360451783206633667809084937108662391423670737656035053691596033401138773338721446040190514944288423042235808483447021751108808362006393704355867603091864221087927427533339901216117677398466447967072529349282553483934168636814437429864019693751574207505848364910808766940066484072775475624843290321602343950113725168718069765584136953619046787288392954866649729651929905061148729391720229511217363331447582123847973267497466804971983525724464272148777759152133798578037932215598244982580373514469943901541864242580540802625282481238889347443866875148102820557901968091420018278223314182895769780981886623113776437886319807752999253086312668916946676401462253154855839624093800454009643363168235633780569920217330656183815487479261324287009905127656075816059473062124132382782322823332829972203289555845587871579681374710258082847787115428775796173801554543598334796582314766883845465437784439548840613053766659894050354925317659207324431346198103595695164014110097504508254922742148638591787778203585331162204873694488240800907137617080354514916064604020401675387603462789041869325955094855417345614698130900720851584878159122240718378880076393255835234155877706269892567084487255604794797459878818563077886536648053137898340582719174533806530490959266938222100319386877682528896325754288967033429114515583517416762977107148726461732949264341841513434940752691799618233307469760733754330444618068875354606710470754638036949836131200063912670056963995000799421517462365784970074831048621051434955892841011786092777327208429170416208384945030660372114462077621316351569177877064700815690838512728258107386930231035212163088549085949107855469247174907072625386056037050558719119638790233877423784282642877828089227255991734377266393251371624471741694787564076798572870607051923930964158770660880501182492037696483002297379063361236040903937332408858893737758872766572008296502175299426995091410914002866849713849113325478981497256299113878962618703323647109353344795106024633411132672186054894312656518257339873409462340593935407221785276865388574804026473663272491560923813591386992457958031419171128360753900222280602919024132081760966750475867192252837698277746777493517316440673972299238423262572933074181829960345899262332928385988495684210690010887237329942954391311582599408674106817176957328265410043967635789967577104021357679891830446360726008864926460395399199190566087224279546494592358038914924369996995897355948689936758906805447219118194617860549039919742216746544039254453559175106367206330092915654983924323804616896475557171741904534238601667318337080829480678121263467171336523089437163662919858352549468668509913863973629659028224769094648158365401852155742874606037097382533081968982466114814174806968709893423555487427717002918572256036411560164308483098585495591857683385862432799288494414726218304786866881257344801871109355964364718388215627693860805937735237708609317552394531299935044100382616159937909655768843585090618270256466589332297912797394479864813516351647229136333533296275218278863436454009640178301969329812524123192289748254756913913739010303586226074838984734719925557214020736820528130297362669561971065330056510845632546535833382968712183658595694629724449913822658356768599481553218121205769025803520094438702264626951727873397360055272245647700873355211149872796476035120571372244503831640884253868840805329541199086345978254902921534337058480881607235542404447087024301423289201553709135723565582370767494945752145136430374394215757673666989529184537323479421374172856485080963064536245485961394663497024745251287989124214414195145977460132098400826321497578879812823481291316602302583016697658818771450598257392393765273071208999002033131949269078863199717682680036800402051835608601853428977788293770827188263516565340129724933308245071345332140325644481379824997781174351201320273072760516099804905835226316178513639066197432930849320753781143718344844077559189994159095005147489921971502854165019588622610389271439788626920125769230462332156129907001074507996748657722129909486115981917249262424517344590144535668190253678425670219927409825753705742085028301799284134477605520403591496094437749657064065403802901123378310355569138208653703628384420445391044445533160042321083324638847304696712888747269003264444315467877383970929463173156813579750831222972264311844120169876620398415822121317337702954034885857390168704972770256936283250445127090034850180514990677277912108944649843139946688551241794731226561736916367470267833511189222509022306058944929945853526056137321298203164658281401367721862414821321068409584676860035273612737222016610501282694766391994463790619799100106198411549709458427182221634633661720737486424373372046026129873043423339526067329648708735017501312544016476047226431835608149742237422296320957148607384437739843262666574433186221044276512160577325623626534721739532689964631812576790532038784383123888538614049890145907218919301427242170167918781123337112756790128367083978586155237174390798780822102160303327838601765238565734564913574885576439913347959899904835959466578108591420270483272631064225291545692831997356347811056492908293398419144411031351166207939658993084202323546627840971911511368527983836617779321421832913342793163905668377169682047704739422725989817257233344425858353614624987366934408064395638492573556625914691552022739747141729331114746033712102948793179511568866324395763886536696512282539571183877373012520336356825362678446487081589355427421622374762191438464063414682232963167168135026264653347022961247035452900618904137696155841221392696721782061984685819482355855050910996663888444956280929362239186500403242341331106045468866707027936056446743295115264901955249091815681420072739286271041558949391182890757519791022160325109136478509063506903987640497402960699964485569909536715364471014992184863520310655888393114637870745957620631963127592489619841433734903064258844901866845701929052962100922158567320387938702442055699408757479375365609999467584159186085746273299263346174563847084305750848219865219443933139148964568489680329350864304582664718615163629876013004902351015284705510629178214808625814512284250978966022721341532056499490584017591822335503067503849860144242028349789393979162262746269479624511842659374842939540342937546126487179179943658896463626757821332804812154984598704725082177946894959757337003573872373474202342794752810106106738225385104559166237994786978806417267797418824759587629586149333020354272223220085190378569438936626380491988259645033459301375619580733262664487929924925624551983611915776628978623640344194378043007259592767502067109451470939816326290072279896414567854146155039674418561262929971674516643438166056342808502006434917123665079664896212172494852817880885438075174795737432620259821712669715952568442987609756498085542926576104255080572081178792144418789442347561823130018386353117614290792434585771106896967615382821184961245898559898790042636931481349492612725997224683763968532007563325785877698651869359963180042954638805193696951537602536311009226090014475180006859563068931012505346129882486046970826376261317952058543366286074328310470439415206123314295663996758603785307540821909264985059634109552068486426370093383481915469395925411239215132950518891477922326523277138365394145833534349570058074979317042948883809898961641887443525225538050853249724570321269703858930799849300563559737922082484423327577869771261423971827894495985594621620531839925426866349007727958965679106207414271751535385962213301740256912725927968774433542818118799219391832639596229126031072157632369124773089122864662735064435651909959123681641012387009398598333460721131067712310308839216370815229646901052358207687324892201916644406977979232349129130553549329622011894116798771199768503941701781620056285704426986027613770841770964937788120859422358645657324407373682279463910119433018234626866452417601100078199345475521549401890423689806574092542319696679506025213969227875752852644832963128291136477673646562041150028786669167650633409675538657615892641871620118417045701185106785706309416632505172180664113685971934308840691894635138541650786683646793054731739400180494423504132203269042061731879971686516851412396070896255960380194980811748410617884781075806377948713807197117776698196568704879390563068882428145861245059846615361349267055733010424396331154364448445823387621714985297849573882077500347064095535173928956216328770005993371459812471543302552915496231807196124878534074179172669099937514740864839487622997957950351830464643225027943588401743225315011681853845302986838647206232322494191926658219939377976114008282043549978577047662907594576642318076235763519556371422392041939209623328473772728971531357805231425141152561148726967481947890039722354489414845645233078171859173539648729304849134488044946949977961234102449696424413971561942925839168207134127489364899861304136071070187765786982829886656801633182124338561182119446525418778555520328573386520983120058293876904188066443719999281786588820131875814378479354870151181789199870387891204175485534462307403183422338472906815229517366765066671602281347407074785777030936128608467671881717129881165364345580402174449375227859151170418833571144139201810750261199252887355079450581988950405634219283502801200766212102831320104675790473968460519253292264410322983459091116472366539125660315617143724859931886890818115607059961773160485674866801730318683487044708745221030161415994988421406637038972119420823085524390022020060062408554068467917757848403027053806343063731833459310923930689012865399342842476738457495872207334725966413234866715857854106453280081245009273695407043478300396847974318800714752849417685262277602143811683308695540544730421577337050061472959716720554486635316889090631588198712761493331947873621165166743460210754060534638637859069137533228231330489030776018712044202244154216842797116414951548582402620786922931253289861497940647997811586003659322942410653254422509413749722154085118401926921649385301132326437486391165631953490615612421772147803940266000745685143984770613740134442603357386287734638897926269297313206034761738605308577042567695010623028654433189153013942446891949148292099598036106784494824819878900664254243541877530270152600400662306222834521862268897312874740739211071798700844662884681123786994122577390666760257277526875423551119247540624363326376860799152342179260854844656608034673160843803014607455169602824429328405029280241374461273916941281767575183880947390011747039548547851464403056114296171888750761057068823729566222366672885231383371797405737804432242457286477025705742743424993289935864300856440869093077568136975189261759850134118983153638112136950446700172639181874237848984140325669854316742424398249018721454349380500290323841043051839592959648201984403173207344176958208382813883475772910631948654786459054612786110335028660222780766869170899174339822324736091663032550977075611292995260717086906727536018354895942417645436282706202048537067059867667968823308455152345274157166372156218986371137555660321636425580816723559747238782904036730933969854656130860973698542490720477685830936421457217108366266960212410467742432833242900704019634214191450955422876524592075379231266695283098338015108663092244430294260026833405429636128310535251550151772057343176737226179097474532634139115066758476146556825886368538582490971407235031064291741130170534525602954950560249212428391462899357582283601456420076176491268327632825895161095633520498039046994775557753520177603617999206455290424955483612792288368523656574823004323070673424745378211547721231351128532254394585454064030608684582062547664060307460224539448769557290906161803675593616799433991172235797456902614838259816019096434718128708561169373312784441775969103919363595161142233919646482135434571905719028177970170046367127421525502086901448190962449572465779552194939333885691699531952254908078905895782914342054265504109649283154505225118726349171875333153416915208123850433904751460521652938407327097452400122156871609171017108364605832335156766130690063127534214312554829882209864681754819127478355778806116727607040219011039255204256378973130379559864862394082584885161160737878220494184373118968823008471413742086909362395450076958454496902982860148248038507455904726763690020169634767911650848128929053888284911940350238346002845533161051127715233255613579984681113704056951452223239744987163202348365253539524838032878587965326930216164315009371658065673227948974775294907926019647987965132498071634554009243142355796728494896448504627862467994283594053487490274329342405515082276695960243658894728524830346878478880898567825309335419693039931434733553093030366882641424996697803279530632120694285588947421057719719552689112262751473796388107148356161738320794733147995865172162524098010915552964906143210619332278073429132612013235168726437056843393521636265214122371811562419348284325066565640235199389565372513568512207778982305700734288651991173250333709927925825625448265321511328292334046756042297384615683092346487689956933618405939446912831866528148377586504597302145153914603096561319831088479852032285659951947214165757579429928621910300039704393016990403898805272965667042124587305462470283788088014511926885769742234750029187961354348754216524010175902686086113322564876281268531177227701147327517313908874414607132579247213986450670735446873389965468981653672764501556589587711815140258241726744043521435307647122784203784618237155162499571356342312893727080317801172165852662061770038230374871600031378815948584173362600911276175548928833061465531286878843723511354490735436300801250960372583712236726126484487171215915699383294871416608537607603416034721811032740135870098023943120322447538302511139670253274079625766164769420957209949407875796168407966838373262118072463892207888463123777100738305821245222327732027023180280610394743756966092797795076523303093195410650960266278846319383764641779414422343854527375322107852482968012289999479716351215232186499088668176657380154989074724935293551057823348284018707784748786878708301467040829990356603748323175690209669000244593035380162800140022168519055586458016975804818045083056469897463546342365315944050028437740046914730523168507220064342390485499603153750994537330456832577444105352639531614730488965412690202776636045670382118967139114002269709496255780278060757484364916832646502615971167612635330311578376528060034417187674652657474828281274204874108293007274007059766531922109722746805720469506913318521800428022455700959753127238106330851805145322307446732733403659447363203734213042143072089282452449660368657220642731150163286167838933485786203753168661355316084167801620956169454491024395674285663892280477459684591544800857161402943329069003842915215218997562560630872890692704518252880460967007595822334232115473398380913566107085903029446815110528062607698262175171950885038823398541454499962593691596899014193822297654411635289678383310367435356414898931203181891132735367577685829327640591540974187068604224105810072342544194509604207332872089947274143778434530062632161291338574742386104221308719223324124031415002160172737793789718363099595001015312286932635333081036787046326888922530295895547161785946444934352992886709998850734725709410843767847218158956553837961582689893057720529803816647275351551441245474169889500796662962448319529507236124159432707897926108680966403025479221268837984799164193010289847336452026648329850958060149855904913369900031073877663321611560518961048451239550711546905181627920889466045273711893567585064783782732086401571626896377417530373775408019041684809442956663329395792691497216796731658417214229563064918565755366868130630387542305224483997924680726462495190880174482854355671792218906339588791914766665684193482605350030532164982241893270396388016342722879010073813690238623608499544701429111723942872531493114575358578974493328034213735464638918421058087776419769759864898820467449932111804051767556887903734033941418521397629658679008665530144299139319023403707139036743540949022164991435825217947366116135860594966222578659451263422104979207199643392447675527385981041785751683928030374141096131202587689103559946480252920895451666493239300496535158133550408073842108277258940485081510528351280059003711473666605963797452805226730629962356920755496786725102040052482294589548389722768698524037296276188856584632719002178574482742634646838600737434889200361750878328531607288443712655650200610826684065982415464323981038153421977713657620014325588816854448677790872529085091887690396374846924939578687057246263672213187046158310320949165432736622096547253497241870570460199439550853908505611593782509358769799513722857787402687104765205064295114495116941472868947308643754265592490973427970734412147441663156895435117917907400906286471678707575910262941076577010900079326272443394835695246055799271199788849050106361799774155356278852633503295036441362075290253969562766449451584397704673557061791431378365005619044029882229174142713574727328477937126696826067324393481601558725140773318968431623182546923831642104838380297335239407896271530420924135655095304063283696938199328598737952521133877898937166373962852569723227249543754033316059774692129250115431350679890074005739824422162829967720346954203333580891361356711220939513000543293301092317907428918606260816570242086495464794670193447471679880215092144850565971881257728811330281550773637677879118717046611247031997689087860989143155618800290475985863383384430600878854854709911738634548897321755719386814604026012466345591654813554694693075379518134733314079592835990864644366382911697094289271853801815093614924953387334047682933579133659828198255476226887562402171895995652746568190982627363098634035446475156811535605192942481329883689242428493818816725818827284829050347405998343180063051482983437862340053158526031255534321425640126889958666235326944626013017390422989797031269201610592561269209130625198071236178598000114736194627308011387645443466288626979620428430063458609492208201369422482063966224913952818221905419795947135078855952066106101834280564352714971770789874270171029552835391768828497651314047767396005517342919364295400331314254614007874840162727991786221366617131669310026033838547152874207549463146539738894200401377281235395944732003838250831607080638873635163730021944407242628666550585377053912264607874989220552650831117421880243414851020606343864384319355504803397233248774511284038118902280842828912784134633196028875509990889874783777902277186472242599789687953244795573748848535980919318345193637411022823231075388748789640471264487810782628734696649171991217922987423464889712032234710614532453768576925005698622135635304258406498892212104961243318659479239450837457392164827943600174234345048189005367352521399958078968580614414291492149941286801737176643949831805432586690615083486092422349281781843442991967393157886504625711803621714555217246917716374369598074235140127205504131867732229730549595283435836543803379294709238825174062926981101780527369652548312376848564226199193869133817340032250395034483200912355667845807700319550889043981704269269945341377730460246889158011373773574118969444856821418304709846499145078325753243437160676008069411449997376557931408536866178427811701750388393409899084681320542827875292624163669455420113094434520231774175356490619287957780989988022323679345452860409908374012383047471599301253470944368762264139468333938047926288566865192284365619217080009474593883858680530441904901256142393758602101929707348845203742243554567745245761811128636019247215879986035185871338655128410627230244107161518999164350985173626738370019549781016913530528548429316159609068652475018402671250952674354836840061901246282320965560803935048078270720938750103588114622072419697602546752409204724089182811284345012542303818202056818362619388141345493100453540194692684354082756679747893524335260280597091239324410365782688858904858254123504531259954974632961586614795083827138893366513993736969140206229996829599306381731098371473552302238691712514158679799043680250532285965159743745145759357821180700843126607103674396520168176733616461795474854988175925522163413314682666330281168645240142226075892032017335640009912403940553446434236182923074948863319598131040469986023740591145213968983729287707237342683273898937435396224018994663418408289105714282836485939181141240062068189365539885036339132452740564880070420376037309709093096598740287756641570657305862660054370202657838394317515262512864287981260741993016983238743934289968189189298838813325693213716507154427798942625068203683157795818140573447259817770920283326696722226515751708724291733386778232960760950367104201586529282411856155565175999305627862420913487216700524752471822885705973291555360817917303672113990351304909022756063503597544375451745820612598466807700251103234489643217589697927186013873999960949697567033929061975928835080460523097991490337819823378351340514289075634759670586294601865535030017542537446642351362792524604153054445957496038624799614984548988787555818686637440717408180426325940263114838763692061712215531099134123210841771629084683615184572629758362261734502781225756932001056938003975489906992604004424249016945471409622760873184418200687472057005929811311773033481639751532409404303262393812898516737297705070335843539804339664299502105869814755768840132284908474134973200652666744715641509217500614860805273159974258650397738748729365622952821072483476034326957552649231049605264733461248186643316547395145514467446747065543829095758080847864972712157735806715754165215373924693248464084411017473886590021083181612839100730854248852883504712256128658355023123472727197766830930755106026706144716727604439462395257617893254891975924164080996478618751513146484764113341609802021198811585142672041631590299940134224470516259786879560085439173823509519234301739377247141411489567268007528601532566683742690479407790013787798789095244496382206259954050971660709056222121855985296269110974303308025624807634429864958092704946782616380211690387880331382299512107514611512199816841527544441449022458197929540499484423415249869467945380006580898909447425455196562594109881559151581188435181031727474989246852370121571757705706924520632961756185895047869152775237240295955219411927337019017206198090150474208648094020773153243567577303418685767802887906058765250377939424508813160926519042049603134201552909878044428407533796856240720129282879140363089077820919487199191163275963470194516756351959032487164766772650179552396820346250593900436750504698341683129754861650447392473966494001922191686498099438067255010236464693431169993394874412165663247063351005959264473559486660019541936541425991338562906016630551428327398493124283440497064953107959796530518724121576177682500619803165955515259270682068915451113137857523182855801057603762152241495053361032920173247950365000966542372589570112886061937735931615513865313703344443450857067463588095026514776008034010281877612916306620893515966121862773376462082580002092929763378828950442099751137709700922567777111084384204600464571882509549333873211032861829515195726440212263463624292937289531251710469197112311480827463589132272207895649980886442343914353523595148541342994258540629684742938244230647935545230015213022248274971184518266381742996475727236735051040990077809813753797779585327595409718957076283210956291233471540194341587150505635587910581223793715177494102130363198382746069707425853316380887956075729155389621617923357264956634712761137126429309016446613087426065533367773364955216192528262981528663666277199705197990659240687361618820499356038039974312663626698082711243346533864443263834053048787795951852871390945627811827985401424810583383442889974492986168685435146140254226083105679512977703556071594108215617743063584462950570062204192282279800596262737557998023588253356503607866269998011741233287292631188715390681428657472456853623554897061031397714075010100118698237757860899189938997277077575946185247153889275412459185858939223497196927063838348529913658456663030571784298443219943870692169822087237360475822670570305860933157749414523981522628890085168420497385047690584336323182958145872578067133550956235157295602161533731725980990627100393895549950289922419418415454063146155688631112547721243668489708073241487501224027999785441611364628680347725778668979384618733935197797887770439956640845995659423565867900061722681641359590895580143893996960806126147497880742022066436568040383275668356156908413421020778515162765898372490747173585761877244276214704351783149673798247046491645017704550563068972142215866346920520214536408446638818575277446611947352182396400312086832849925034399076586463546091534041970811339421777295195632841771040620177347313369491200279634895155714837995497825140339999811306865741601043742037515690241320720950286154384163775299073631868404075680128980778201714895927580902567203453932071619225474052274470692860996078811360170737527765985902829363572417861762809339935700516622959698859022135714623701101086181416044078952668770248938512600051509300701033706920842767418956885588656213618508100075955636225061916749927856023182685897552745606483561952556095349326495956064258288107537931026918038514863781213630463784796343948469308339225183985598559879231931273268572487601482138406789901268420019441571427472305244422221590638962534109772177261879444653349613341269311271430084682715338828646374478712743289082828405824399445296909098278223545262412121282606082560567552862738022923887723156613090712856806435089588136749811773145899175107816873246237897195511139115456519903264598844152048579994969011470954978302389653193811350879485146029015850237828106917043292687978247510342414842586922696967117195875924780937084842670284501431753533057070957605656357237838992601461339716962296867483758119868876472758339687348712123385543723726682253538118331535407861539849135553759709353655037611686699512790023943547457080353250457254960444072170243788192135950034624136797744742809192803217648287931236974923804140107356655924832973922331020024698849769135452076958230477754204910842637881883756021392682355629038555781257253169003517990424470323400439700752644778417191267491117459343605324108044175695101589988718823458175805838490783203110241693966089967433467846920671880818933643282645943396158371533071028626449025548824585439610081472846744068155115835809136989441289304687832585338239744057793344811132219277221194387459049424819304044745319547345124128238354937303019544839287338736686899735974609735216785131325249841340019428489663926595341743119701439019820394549901863219543104026481447248696197640321205459161753783137076011864833113729108964887098134897775317991476337236784591743603730386794336225239239721520921652824741633638297802304411206019101609470578707476569842626094233828737936535664399055669969777471686266405002593777076675785988950995659446813571984313364446809502466315589517916103678467568238545486724640703580417927573958583690247745345997688465638382585563316462717084446177608429654354450495006241717774796864372530957699787262496922254400864595727176051385635890790329244816856000261667057309406471293145900762084609149914697803079763663367604661777112272745600998423547828382778873134139290637642086449248766069023458893703690443282793300628890418540422024989324467775820861403424703632375685336695264139783353705610064232901343480092950662475630206021376909024996294296761618087540842491890436571822289938408206195340970489775969730202945113503517341740785170484675177403370952613085917471715596948811781373794328044307720263675769410094580105152707778650013607855675315271131611792590700124766129220181312214236568144640967812559611033002149817140840321749222673439933081741374426860776048746415939384379433421191555296059182564441634185206634148959325648901254633387113113037740265621588217348784002665913363917185366759512670651810348971330552244943499730967614143611248602676298221426526063450180666005553788602598971669358015874206675429518099807398495936700259638693162978557163329928854910788322831285739945657417698076938762975004768667283868554234162788986954578366358728323171808907778839880760984816000964398306374497837403337358483692833373211430725054586724751386260866862759596025934651992179845868881283611350329314282883750702560519786750311166490010637487860766673402816477643343743103282872343888900923033390909575014525942540776098119227919967400365008991407290857981354091466057991542372370024683594867257836212020997499667701144841127214128633126837632021055400257571103301108163478716349605213630899409473317806807495981192172102960665661852836841778309861537729456540078661411480082562641798401487777602424991221814722691867885083401005452910571290658097919950439962459101144025594338663362655035832672948168694549736969778096751355686421969973824431829296772912988188865520030141173186054184616281477663329388814265413825067209833790109659183196464469020779123568542971382252788090380399896450987181225280121449295931940199512768693117933105695942133655111940490280893342139428689913818433810106851794339135885805622965568342606799089799445797614452140550259860053657284255718995949275744477658599168562770115445301232247257419305205740427771960871186098355447502921383986159259774194930952394261508162855288422775469306017222855742091012391746083989537591522499852233972252281291376504064190721147292306539447562733396714880059222290403213802168401480143739798052371244513346470555876767840369901987229133950798784328150988473486338743887253260131081145597185171033914935390592968605658569796851986209466184754373512531938507712215886445988324581441640153561339525489140696357722869248775044568683554518447958063848420782503909022353988749147742659772148688414802663058871868542039595873134763091151367098366691657143299117845362851793905119078592294276284869941961383643646727726954212828618761458073152882194334732371287422356142287498900894693612408820469071063337258524390426901584975884147303959519328942417486397192483284140711039081042800390468625995948826647583014924283700625066509452272618305516564013915031159827678268050350059822573404259638482613249719484218917839787483863677256635676738666346403117755304589766720441620193986908835323354331505108472087161220873600561891559063550641010639566872456143679671898332449904466197859751638043120837872720086296945901579706948716705125980287843255083453836598997796332149991347135112493812168677222013630488397330776947592186342001216020241571942094360495810728245438349689534062766155462359891597871746384963143739539791796983558216410190505294073881516740067657717305802159146240224619229908795832078234384900825753997635556127891005632376132562218510875490089939836974432471535322414745434112095093909265447139785513183690009184301741187022986753840450401153814348699910036219431451402329206381491588908325499468998490446938489246100183086582365877779142073994013509874128253940500093178543464107237691880477970885774204940525009538807875445606955779244887603923041868316533697325284086177232084272099082837204398086291528909095815601532817954633296374702414815092804908152707772088887150460556744493492347502232476976286312155018300324876963296486524167031997729724484560971888024373118910274169177270624794133019520240861635841477006196470628803470543500211926099914000200130257550356617987859567468701774666466224884161263687184167547886744182012772503972815048064076182849660290802532236635511643596131504687387616497700724756542511171792834154424943344574207862865631338367159149049541738389996856490993422264191926815887247617569612893906994052874076288346359592357890245358018750638725726366360981675785548173696220792588081186012386063302535431488870244870858120377808309312892649447542774173253867281178016507522802543915305860902121535942593192216288449655946072972808838109993950818404931077230759866048056647934609297542003640604627092494112478553911549506883947165197571574615866509838823075390837362230207553388688473919231146056190790007716767817133437258993680629781690065806055447507806364582564926765085492986048859125857274161065992967269684757123986208721373944200735421204857481486219354235926155785764531951019304192043145917807634012748453647434380721662464180191904916442455474812161933170054892175094266392445192186203228159422818676716797317050385850455711954897685418434182039738408057972507669581266548589299683417295761496126872430162434462260966856294620245703029257538015843837495317281142661653557907011189333623342851212365326827339083010064026289128567898495991153158473900389887618872525176872785713917959745002842876270172289001546287072386690531362914959874887656586557055288236258256128011944598978446551297326640255181565947702274756043942199457324503544412584158656880126836384725420564133414450126956492949344480844775348689324019632569815659402308550267310880933333329427325994093278684993146953003543972514182233533064655545499744372024198319662310068107770908685171693894742618812447953573123884129413863535365452850917801250047372363363917556383713089685030492938054784956210794230559262875609057739120804412434959859428279182244174002209088987668740276185052741739278794246463435548415523537632501285903399067574229360815458065330824183987469581571364939389783679103058412337149665190999197745340564085830933258028701026281968738494244172764774236438549149302175933037708916001147906075907222014923975496178616925067368894281535469759321213842989708474292945186020781193980413495277781120353166050544635748985603750127971961454346593168797175123036179901300714113168861761391860084252006595324894862595829617333203010173876461557431893316480587382904188830828339365376918508817252939321618361390830284709826954572275224170116227712021468185451241777716195651626094761446008451422343201261995685980559731295392022426769713888577732639431332511851461921980265283237729360786275392972516239961226439682698571076698165840449318510327815270121939639095942673252979758910425470545049745694737972765512197697997290341482435811509069291232855574780345216121202051714698246638323759649534014211319271305142317571461088459614521310938550433831928774595363481737749595225603230065381568751507423004474010815008327954985492803709528840645105756145264293567311930009536543218644466631782053367424313786224260291868814584415069908341303092832073494882416567164207632753511412581395349982300608752118099602005204011565851532539011783487566370178072576612617581866822472923347220922345875631455033438486247467970841964093853153289181016852870714288214167508670606818508828535856207646288868267731081097465484564441817068710815827075091995142354709944567946809061117054955043461407358448707400414474062744026097511076999855909702620018663464353057527802333199413521609864583519056538579414151771805570132344972602862815314733271194560068765479584288609810858137001865088870892258779788366901248073468430919584256454678233888100567727931334985823716867187444020285988153810824705187273880946767937826404585394280650635168700089538070936223879358685190357217361531893470114081109708939944510590020080513405446459483704740238308810476124002071438226001972711143589192487997988193688853477291095872268254074089679881484785037007685213213247089643949740984253939016357971164326061636587205069834585279820626272476383989440184917417943044159634713168944268106082041791096654135827834312505741799779199849179173557009044876657337442538848060376142011012242721011392959971005622893682924573441734055603891320425966351606344662985515556390621882211907576657823501123127984554189520533628329416346394697510815505783655533944276172923059189661073583706391621328467978925170882163538605310035927832906430735165309830942273534526190536511427287242977100920137673356572422368621626216356303451434010098594477167599648947818517109152429754613704892340697947594809486575237301083651196749380851323103180401547149709639869675150191022282305299331140899425819015201853297931427311193189994593224083738435120942032074582697881272408242045596657261688847344915630361886856847711747913663201385092550093199939410288414384918667291217851511655935299117312042231933909287451508265709651486918539160698349896226715105011091139228337613107290269970235450931258010338596637590457290675478375714605876650164384311447051971239011476634986231074252212616528128348845079589651165359763970144463927203127135322824793586781927997818587756363001801110547046763015658796789789717237690092124413690130626886966373580302832784922809876727843563078844377571827771759177929623330196419691506831478069554085986352846584202450407398153748477471802580936357074996148448829985463076445351482625761413782310079253420337953171025533138822664067533880925197627494071307620543094574894554360416226946836189160877179144807193600096917594242688898427028703937486417858653378338617079796858600684929845762659292313215984610262412328658285739897110061303748696887602460070999152365083418701712679497185975810756205519782085357727431740488021035913741442026295685405715331060592623498860293339109993907399744570340217192335030119969080571126119721842017592196604276999395655465857674095026587872756606064301465233062650712135273253887329741558349655981778216670753621353397101374513118403224146351941856069244825928919645428847285763560786901607203668471069086205346556738965099813463251645900374815407464350188896106229012790818515290284398773649887608227775802777157388757712106562374008829625197095028052513738353532537445148547528933538015089550766446133652803269374012241647071600312124843482913524481775043488184509920716675664789977817581502654796948090513735839470869677006474775752497663403248641001930941942800131324991588985671355040400128927240460323659024270517309680890716975222705731256669431337491636761780358249762960308569942045404713087989074104233629231160014591322214249019778357922149806185607156650767245619846074208483615484542357895226237292091373502254999042828501396902166057396265025796718820309585979427604621463553030091377690385665216475816662988684883906231057992106536997771862729227806199318999595838426499076281091023300769635016605754010441998059105240256395992535448436635914873796205507142189432374366649811311577439591230703043484882302322275413709702078846827886055418587252429372422305510606649293312119772037224163093195204265170442609974688213384958868030339281312680624064450216718679885167990627354365149934827816313025713860452919083009999080956939196750981658545653422063994210490115635182956187319678938026749687035063992930779820823065475537146106755364831799523526099295751587255514276487898528958053143686735473051869153637858452401426349100622954035348010845480371823677087307515802595317117895657928145529178075605644289774862205976160104070075774508975725643712741888153192301246293609632001338829691640658065829927590749149862721995932805211935849195495158595916014184505536994104707571997870991340896539627906113013065534235444711294026894052494793588044308040186244921719585284360247395382752652298156721450282890877977376204451747289649591935189328510099842864294078454552162363998947001512080778575020425828334551775642604149967085193504413904476027355153002415351260652660758585446622930232629084848518197121777948393859758737076104695071578245932361202763455916164826737420958345582289225946318844592384087043376590305259972601064673276022711083634979682845468123912669758583109232479374012620472574230361665774943198935813547781339564822665575776830405978961300533758815040881994836533348557090880326881820563968599224371831503876315835327675258201633887151525991485160275139405338528313448595908696886143764794218784974341484568240942425113475216549693225268932158174999280711234048672654995382021670122214688601774738550046314403927430466437641067510813503188099831160550843667253691287082477206368684555153824262103733047855099797805343528973831448432256142464481310585141112274323334422870493583231361093785170863810101257799322921679410378655464879730473971854505780768916405369088085349660781770960654470775986498246113598286345483157695265125479425305498868670584500829351863229480397893772517878328847216713598715432608227709814287813672683616161813934397957634406799659582848319130607970605033829457128293769381228091073574813524730925388421677251523613549921888006456929952128254446987477455031405130552695682308580756766490534912563332341662088550085444786365716306226175280152780289614580444800188820956892300960600360901555529154511281993543334219423223671820357016651116171339441775682109263062826114495418526375483211736640057714334746718419683697934952257354301235731675320120227075763747812947176800124161120538949307995469623924774156987421438486655486496442168924370535639233646724065422777234563055646301811028680127176586057669657906543914373005381780405480697886057003599175294719594472242036731234009656659589614046201506791708928515715189373246929845669657111827403243893107207106021352067090985602682340265050199124499869495383446623154512197076084851245348180406229299663190167499154833170645155696480478221819386807949960642186829564058318548853535779398467149902714144364460678520848145990441492809838362155149882877487143253474616951282968089564447501160846025124643235806552060297593979109080573022951193718530483733134944089495686664920601868980679427209576908753510170837616268621584463547921110839902048213658933817252946312799508012690937735206837351965540416887750866078870803614659623875005148726982398854455400355143283408684407431805852770716373641727424979314089751906056758561239717725919839647765480377028185333279466713405064726899945827225758918133750155787635049324338775801874039201260484532694462410664173341702508713334680583954580767624457505216380323077788990474005120024065256721775157434863964024991224349195978853694725318417330349426418598201562530306296927876601892903834904277762142036576572457402762327835012990691899720744973796857496022574042571284872095266191928878944341724635379238321987761713815903883550320541291614685281176428172113599785108285808145497643347236857269583151153974742718384734330996379502041801595807105909549345292957294440114303288623055875986372795740250737236940381284453327089305899380051270829041241002460878786367841978212138092997297502464690945034110830901499708740447727137825365034467337880533360572811966945314342481227910448443565701906460881691400891674984117315607776063655561959191732495419220550356029458884221560530622455436018526654572870115980786036606233534595393872905968924707307926915336465846526597450491889370154000604296940686279170769384673372690110701301906592650278688047775435619251887820705086428224242316461679102362600216349207987035158196390769131700468803915809935483812397667149827904166574918565764319300137421712030894789977051372040500134902192965879603492948407605733982523911759180811773561989484211751214206635067171400956190835470035741608196560428239489570364356437243750330062442495528317966905879491525521614600950774723348015062613112840489030631178916344122409497461092016300603628629154436175314791915866962398592743144060592295448319011490225128684917848070291192045825508097457579631108377563850389917178450160443320216802986542525421861216029209256321301894176604833455465188018822456073584343286715032872284995288708456099621102792694219221855745278878243724849405072444493871088690848594306140754607436995682598734564776588776116725289404533907252479372383365173014168763885699226772735974173032680098853294918829646595201201387178838697561635190060820244222020961535273149800853206011062731910702888472894583806711157978485105784819557992199975101594537951570920418259160196418841517480041958257159335104490711802104202349205567107528704864815757497330885862592015666938660306909163536780664500535843234384690949336838553262751197048505938986163405550654094398766910875237667612832802964778651251897966822626811455292416826156243354929985147732373781633440753884043492293960389811291413681839223878646688675664667392243348828098729201588957328586419938668629788761126015104917592284415937974560555726705119123357358473052929343693660687415132345964881259976977156405635989786776514398273343187125484749638569862108747070911763149794393080767798505191158563292563798846499673231429405606969880224414701750573606734739625138205800532063260347620697683709272452967530421739887227586512614721399680072855259768376221390690137992062822566724920525600301240210701262805820251286955079182720717268922278115688345456292251782038981589076932894749230733252210984771772192418568190868000451692466875639457045788247134672670408278316329822089612126049867513365846265283795585302314255945012378348372776667776399251015037813667114198711012409499173287582815762656696849954396564369934402093267940861773473544185968370510642981495624226827028671830153263176421242541481005609723560934947395561288110030714391152352482444659131326372957373104990087341845135263688876587516298301407770220621829865314709242685582520174807396884929970513827269454047534486430705134635221810897904247450773098227387227827707885543916970764707711716673741391016424901063620147569931928618128157171695713121811824140116942504284186645516965410570421586670725411615015580849624724675984712970666241725667336673595008759137963312187134525722084473367883734131019604011441663843426801542074109468121015113840499290204981625877841682301400012715863123121621598978929394245973744007751071015450956484734033248968425114318158703483314620533667731567503802086821543669959848371117991645592071529755598646281410062351020875633823519294762531387181112402838844025861712004269230158990293554722401207649059787895527404780194184614906479523455332257490345408614022361400669747521282577610862585760774308875473502683138529499552378277058185708719894955770333390105139513172387321803900624734706414135068450142111480032832323406682739832054632165694232829630220581120603630998854102670578019638948684198366876598556719674390571209250298585334488024728269080039953623379021017404429293423738331347909290360555322102962820640760212567093854816336508490295894831404046675550469862273259231289537365958210058233426299386476200641423666305401908545744729695962124716794189290227256506329621097761327168438464902071263949010917646766558030035902821248364276405973751813711060629260389315014079512379388229903597597949632684221779176328513926561113583174494610278945681377475929103729016456159670661837920156769780526518043171684807453543805606296077701936213096761651631872607485425994640162491866812082635235456675025916137252306529919987335378762061005654941196974732181473648024833514037385369939844667502878625955726073416477417851740381515925203766052800054341729891432783629776603671329200433187579418754944483630718854053507197989997269306696606702907803341463693320400296890121241356814665583379545063579927172531966991199787255798997873713144317527901217228343955783548630038638266269118346383110980009952488925049862762521665920206177477266764150554317243711225215887857837335884866529787040305878068162003631157595463174747298310686077342326378863535792367215982098372789729666360901235330022542520698917592673024882005054402921480472394366920224992191619067256848384718505489315134957528224239639074310397261025080514528583563471908019174449558770612008950770812851713093037873125150445237922049237421902605374102325161471646923419427765713102251422377766660292932531539428380371071992960468281331899426289527607670462860445883491706412231806225296590028043121875846055685513042147657165444323385603144111155206324725326044552123967589460360337238242319984734542246490251221516481025601658999978210991128410061781363666376655367284422990537797778422809253974002036029859336791611193255412322020150280677599685092938656510039056595069810258045933155327079535465246752164639165948666347318652690354206302686306423848008630529774437620596704201007190206961336193873628992716419768457657962497633656542766755990715087575271683370544007254654555360569761987525737606359461878143787843826172428740180457645387697679203121370645702455040727981729918741248641343626612786283993911466580764371342921939426800857695722390082273979152711882363777632597501263226317890011851079605324939201334471096682149929415577688499920768348855145117089273328256792065564640963112705257774212671195655848047088754351068024275187559389936413616486393445742830183006366023920194954420054141260196741861590924575995695034802126196235511396498558482793963712914903355158983109707790356133046764905678324610966323243746868190400622965499715177261747433264214877890777393436258480554938852557671405319734261263569122036027239456983032302527346884640582409616143317175972409515158102551798573106986724997213259804052116981962028972167515142657587918357298205120346367482502807477068680760748018740073734330955965096499426016639288178159550182469346319042651593314341287915579748626021509157045234224996047401653904789284743064642433608901132593779798429421484408557400274585731764610557905267083824059271282545462540724682481366564569971293962168032888160535488318186787237933643330146949890942647178175567287164177136698333448893511738275303221501709894898520712063545490860142801968273339635224863254722486621182496956541608230235258428779603163744989143882421392199299278387223912717641957113625829475034627603010178795113251373048309100480999752464747745711901415070992622246529403528804428740009803710254810262940483933888992718980198726543215423959621472880866568526679611857821449331689781866661537207554109995753937906266756893536592156716479116061034891957854468786393764166515364685702554607867280478922722554860126530033038343779228823147384291994001107799772351098869736488546732424740585502677604455886997636689514137885900315667798261088764282808195229326183247720078779772168200348453614064315362746049107514473485298347830850794341259497331621333123291004254474922359603313417799427419511636468768145014629169126021559902702984730394284088088552483644925749840060313978571801011087595164583893446124530464701967038707627308257055656736052157081939861220484184822560137696132985524252110755409982202013316843521042133096537633660667632155007660578686880141871885705780059139871662119124004617948161815584508347881949302326567500283144759646632449412668452837878322004164430421606410564488447886068411316321338204297583092474592261916212843759080414889029653778065341188242706670717884151107060954227656491770888360244162721982297005179121779468589134071914222168378080665407650320862542439953949919295792634538094038887438992190114200679468159041344490729778703236186277281222665561099474518025589266991666058544984881592735002563514630288090984089130128525176564148809544534601374418700229218215360614063749179989356366066542670732403819275251130234252682527334739714266144614409487295387076379916381331988329081122451121393543161159392449580295386835121188683319962592219166091426801412466146740780151896503738214701129585239561882038082875092321556539938593874293254608130853306302759893521754630797459742983031283309093775126567793653599408454206509452143577205623453588914006091518624099041308919216819084703986206999255000619053688546328148562748285965677111481929728960271123622633470125887210291478879463439119722935152013998393052769778406289254920757632562849318148071605013331364514409306922318632924560230580174317798757053290257819806218865755987180103457567513768362103996613231989317682025573751525723972127719978643705683220996929179300809860905241982252321294659253439584601941987294806738254434668147669306387976730295627069940242624153740103296149100989029353217669920102967857599567803829863070864056146181128768874049757074785504080829976187312292584621507356760312136139801571636074721320668629754695119208686481490144509972281096798134322639679605936411833514231159630680083046863819700948606141690743501080360144143478297841257948673930535695464228283717156302866611194567610656086721610247828455739525140466505792658472228024683442343038355532232931721882751966081015437785583798553922144689388464172357671952097385870442414793219348243598877197674797503434940816884281804633864384675754901244999736510488323786776964530311796669572601825521690402193327666402508710709717846194890205371774994551179824557842122746361758941712594299448357854964372867063716964120636477269929779405339079628318927924012070898004945714302793823983718303346225684021739901807797931348523459493351531756857061518307503221445026565448546035417804856355937814114536014904447570652460849503468181964036062176621863579050896193435914068326874530403169261948421344550663001212388453442538516686064138743998634395995552208025940396839856623928161038878289450389074628329116986599068941272424348014959688103238651721486028833152845304606778483473746220697646299441069854853292001380254414164725382184603279549706357055962792351580225978374424828628753164353289783715534349846933627022518322337000901516634190286313280496900101841748221718142427153289224563458124381393652732252830371994458124346035440745775745132363064408108216986105282132856765449947907107365634002374111422860847012133125535442322275479341268534833913351540604446656116507985052726811725991880522147787628697164011268623100646530243116881209053373162618434421314576109882150709452340274304700708902381810076798416299880987416206121696569464075272683697835742471102510266853710081601230402969339215907853094209026311217530711549664627290185313898702916766562110767761079572762257701170359148065534358169032397174148908404577473662643359572994404653864886674444845145125301318732877966635830361015896405961325327913850296307202187802205503635807767565856543627449235036664261656577073599026877555386616262455837830159771633056480877150426370565113494962600636701684687169355345601355077957470633820931065444569410313721417611823465273419990994913843612853138074036945603154895121453530683313844259929009705830297824438861749063128819810643691996917638870661427246029458607914544343441965634528903163874782944955904829457420514702946777242836854566856234027805321744364511044347210866281182482643486471227564634598345583320683698260607184807601649712308726968480092459142323191915841713638890194510960071980626065048233225217119322479034567608318031489368373601271766337831320609303668494683639929326064479417013761845511402889196255071114491873972894957237064215087934057098901237730366102402095994924048102860225317102166404103702426345012544963714697105913925668730295859798057667508168206871403193366866627738511548059977280993476200565774470381790476819024240838619978309907006444018653892867350311088365129301532182497425410136855959127048490133727428929200445892503537401906631399026413719141196531723727461851931801566120677795343051015539644462249157730660018210755120325296016988998772523846125776890903171897694799785543941685353735734124093890584071186022772675481125549806807819685604070533151750412176511906784470720283066095454613365577501812074460410052947629683880387467148339228981091427185640999948211553451661697742436198533583898405381400229954574140107760800794869777182215563445984576007388636635529594556449872488084107128051798860904776902241384104957621087576926788536843536096809815325051108468873549923231463295949227712931798615726873660475270455091988014148856911516644868263998557352477106622182596942949454090806487910368040084936556212576709012151987376464689964700075669777497421534023783098807665548947161611200148038188146616319467556983792903064336797922312252791706533046113425800062317321632927023867233748357363955634452834047364023679949616145036926230943055970328742345707202791182119972430407560889314792582887148960412666836961891992780521048431426799898868919424874890899522533544486102584132202847334253998509581175707859734632342383491619484053778372078742606849430756670847542844425300183530729725123490784383478161725406023972207266953671059190245480986469966568851414555995203325554566056289140121644542480394147228902520530391998118940242258469187084313067853176960641899313286706118034218353259148965818096364264060877284648119945243499818068388880834913654566038203727768913390753482112345738894397866905944178999182401291543106142533636115984253572149628491257082483341172035702094563265868286530930869953030188986722468419750772675228415279367436522398197111150734313413092133347837822748604243580467786912825391029489383809523761057402533327482531558867153483595188991992370153879830298759616278603552791978873712741750539867825097558842804268533729234278926034594565491733714803478010236559475632075065611918129214909126175800837519911802388466469120525964824365486709099370868847879839986515901187861558900726495738117704776012396222400092377062342327194755446799468167284256945688557816331261631594971924266649977780411787158618667450876222116259063969695908981444416475355033844212574879114638827192459302288772934790534748529661969525714632962818348748876339697564990120725655380948377158312476699930407348330368550534590753178629633485391041364363151571273024730790802830395466901176331465032654111063436141910834425193385837774181298425212319012882746695189324600476114190071131755505845712821699122943757817954146298848171908845902265184282320516134766338981342084624005836781796007361635245793940133334465682787230482729110121099951526261714917225490758009466696062149551705805005618527357053064938328095592688265978131346929758948691583584801776761177403907134991409007457714751810350689856285616773461009176783068748117963684486517539655218518454482002191713703404506853182018743196800337000407193197606905090621499896943936289676765156288677980789043367072475240605284812761193579384805636987793096049456034778557342413179556146607756767517755759983896905416403697903483667002732435555689772900525649766069265915779454920236351845813160339708935292601975925077445007471556735527412670446386761965312429773855458000692649379115537165569812559773259823317815378572691505457977042703011532408763599006994525790604926868944306377496766655381382492484194623727468526959433754575012802588362269328757154835268381013931229007737054453048147665880847518839393848031558823668426757710063367720680247927650159633213889184019010565501350006330356231484258214254393189063700866119740924395848476790689783287169720705821483324941098475196972708844321140218965512597309988000929235969806172895843629841271840559622142618872763196293972213369775512980922796638161643944779296930769209344285013402984582002075941559161812925069561166321604237808543743047521587475808657147634456149546078919874125360095826735301253891265498689887460652669207518895354532238412989666548403400198549454340062216904948522037597166331787447722193532712322635371919790149456788289443998802501353158667455360147582262219501571010270186925400821430440017093730134114402103287144659175109154032948538279473362752143282614798947191105097967384154208594473986753372560872553013301908926711577538862279038092214078511533939919498192708987447876319382051366851992036285266342960940758720678889767277156380177923403543956284172882710772234554303759831234869607406219710437206348894608420077669852095012438585636345344950805912506899528620559887710757965502170634320006937011403787596480594447967731022527702652978085427412939037500085981712092862028924405911655338748263917607485691159635417167650736199187597688899245811028099187576979022401256136412720524509640470895564861284131321315941598919157857205452166917277734050686109099406884423617550778163782172971257720831770777650227815044756250502723967467785587812192585765690881901198139415743780574464579524862125984589252560279976862989810183317632731734474130797522125407504252007330854702114063280904149413224250634181108314101287757402609249999692989570349938022139619502449599167228347530599321120177547909255652557894727275827208184762529838105420544876048531805083844191254510371779382234748868163176665165963982941898955823366395873384116143203795318948856800052320229546626059100767977253675711507256685931053408372688390938942275522691142937190014797242511945035826893046756762454346753008390601553570533883501184176135897455695726416342473995652727169437614526108074246757790017759525711564557916454170034241675871721492603054953454155315424374026412970574375598031478275567331043215825334854296819636645268486658826338066823975115131636131607764304918253344169718593631396174843661624142920464688474130324386156469369314663280770614498716384050088121329592921381887149331922907501401786516318029804802266172359263379483348635839036146958469789777284632331238041319075627835522047723646207427966232966977768638582459404907327752961994012404968383609995495331513511930941322445168887514550147459721944101067605159981595862793243207306269412660015482402940326676750518902981722506101244672478932821056689237359964390801671519865004591068361126115393068511238853637294132608977141759560603922859372731708611405960708897658539569916688898922986928304909305522488275740211888705175683775534006206441002365186367840271571960740950399610466268203911776942506339091168952164289189036661742234481859051148712541004187808828305656331210648383585075177702876214456740087584650246902483874367485313491674500818795977530101508345291737377944863083221662494815185218242604212856543019127909233167271667719555789461651291302218182390103271684587906567841107324072079786170907553084416623306366823059645918619906340705602528989738081781166356316220449612058223592246258417645089769659966335397618313422025309563841677061514074300339564564063076782630236114739613677460342284350251676987566214625537451612872931496148847863612012536744338179486542319409392403313013764611950621608588199136712615900073359627200291437028188871557838673736421124829582829161114297585128610790384979753666172019796392906099144069334786647943082938065196237386851910987039184046302629477584093520374561769481971672690299472328975095904371387743943027767582582676366980477720089997366278810064636395784354268990665730773583304001462528656931434483807489526777255565133344533525435056036349605759521249239600429243356069431093951182120426081529063397897720096963401963092359380574079720527424121048672996969251047878760099885849255840814653521325611573194464297155226682042207694228119957586486570620370945085802970869048071184426554757752791476629789394508811317130925208873735992972288461091782173109261059006089847984976829892520260372155235340591847428393117244557338674836471052626592859978313925673958109701334580880482141949266948225940478405023030297002031096492132763395952712017810725367961942065086378148450847156991587421465595723246539570399759654665837986261884490862221625041258904738385006117921918657297091479018362830277584657960056833865740586488144750362579658830676961147056014341009351295815213827843375789292577719879939538392707251049937460373549618803319986819055413701872687217732409169823831088024649283962106291867000876258329350353647751047530675189705558027137975763926202197990709523841907449556836128045533478691414007257620399542888741506573711041173979920025446024932627901476024463402713859233402762126501845814097994969361668735886738075888395654332860651310951700166633620254100783946107296710081126810146697510857523253976989554747293252933848242114751387274770151552931398393718495671329307735701196062694979771952090242569849607929191110343398488579887666269863122256730298613737510052494066339265231053638211362065527171903706678729500634866986040278599815026124241201705561445160684316139275677298117337731845422675739571436923031205310220458928761595960819487750236746511342885168577584371809471482533794195994101918857407921831685002839244684732108619103810998121794120164281137828144491465610777341899262275527595021043648739542261687129461396764783100368891267848857711524673334452054187093510579478443784653514437407330160371905485513437788965325951960334602715359256441952327484991096310005643541088385236118855250913236328705993011511074926623656654406445298594593700247652882755896317255981642503171912243738483040350925785251080071525202407256119305383617962810669974753843911274002744694060831922023919106031232253791047705225471446222503260233168180668248597227635073812410589769651384866750828487340660402036324886225434331169635584093389000082965516987637530316531088255160161432473217706659694366219811994888044825635654945119693906651890091757305297530729826909903605533894768161786274656237510048716816259451568556652071941670233234603657946258776021509646335014738206094492389837609911527487812293740016662726017392072924589520494830106665130602073625659334473451943719546485135797341549598011840571153932448772069740217669063523513852729276731383199543732336486619780611144767979689671381835607764947221686329743418416533070596954197111905726906588196594830048703070868965317408702313433417231091274433882476747482784163238351518093768706551516233194383348493398335259090635224795015760129696918874015528965361197180548716750619466468592616982427905413305995718563287584134390736352760733770621749926975454213421806295591012252530444914271111916751009758162870543499156873948185038259129834665227377837571700946477737321621516197974189948617314446297279114014018352817466306885444501067093046385893350350946292689218997217009467020331417630691913892024828279865724679898586882862673958551627755590745307273693447330770776365584401848207781061682745342466453637112378655024849149283469491038028621602947537149872977304113997485397395539836471944172130690760776508733828191921817750033543557102170796005135944031714260063037077107836866979189323346120435824907214178988554264199369827163892835739584039047054188107005651689848788324364228239113307825661520226171156228617477582551772700175718802685793578096366616025969687208103796752952749880227036407968754434283918027224656525891537468057974423201767965623298491263337949442424283081480515486958565238791533377961299065106159258825841334025187902721132469471683440414875802953564865664871196626909554975761338321240489774094989837443636298121843933736676640100354289802959095984150719391262139148823740377197617071672595206896775816614074687470721021999777464400327476032734347670090205589057795405048770394949600857960884993643640634977856822993744435705301246311637593295070955218252390969441924018991215752949224627931239043551265549565022450769302760125432276942104128077562357761044115265560424801947810347680579494315221566779853038968891235376563436495336273071907663857971407684604560702232944456764805417960496639907767053107398636570422084133183630929385121286123700877746938603106647354426433325081992836068079925913302373386794738116390179510907912176904574129825521860381779816759095736130815398909534106770594104378339084334920461731210390573753224465303928402287195893622049502570607561998556200063644075348340336692916887645208213495132325383512357609195192259813892603059631215667291070768257871791556816164157405592770864727627064703194797344158921226338476544043747275309628721632851011686662701445058548142380948982810816526861976275510339562615161016974185623128768406425652685478118859774208267412525425936788941398923848277225782430766304322946703494844762230642147713330134326306421513598276185740705085434355942864260331207000040742701285932298657810803035819713766025675104599411178683789586510192579703959207587336596968678703869254393812819752678102860664344567072989894231234974881468045375127568998756408954497682362167406319919220790122352677209437608958409074102010656790973853927367503073184273234994980827377585868879083688555063744051333819364060579022310523684798889125903314458398651595960110136886124256875696826606799824888644736108315443445951493048383021395426214914897937692186761803171043072226996099221168003833838939105332011089476687713854063451378293609860769990078608352831253493887469376493040334752752783175835554262932808298675482477013381193716528113596520093127655827224427641591393878634811780654754236254047758219387079218155659104314651714464999917157908343705135230633349043316952953034532814944422225980851490179255747266928035999113182589720840094946118428476597360527392581634017729728209239676671007752131853512410017317148106966028233696983678140301140697139004576761782693625122831935707361897562512389786406023267990625308872386364660248598225403643856107294058482188907396824115139054212085194698232665326535515559818285232075248254513250191745877018013083444430686120938205822017239299162894933766956913670153969091443684773174683082425006903123354426606839049399194809460487010621181928845904140663855264134422780254880441332131166918885475801062003449447217823323440467528021142833115647713479899969794533726257854215161490504392393504137873232430996515141206866241310980802553130631370067338894251558714052633350105169718408302692340629123653034352090464325656589390359830897270842506237741637217450288464922741303990608338569592915266420402106258061076767882297186865837790388238653280885051697974924618271798944146704559456895719052717635831580349747048149133208888099703411607626321027917860859560712157964798336705651649572448215702409440568523576570256192964234245019063638878031745299623365775809235844403084736714816588797614206539807009577855585842058532975441239843567161591512458607710461577570272752206308343408888066726039129125817479458155597046169782254127049869918241978084567936320469682245892125364124814144920818366880474372521792673933788554592415466528371813517328500955838443823880543661548157007551558259331623263239272821864860098611605595806760246961417453838829862189800678882140455708929260369185648511681433770928045499825481030840802301019074554375742805900138351743689410426875318101827451680036983239007813331668149608298123066272329436400925416896618431989111821769185467619857577478637577699656398620164653465755161234675351248056264886914111412467420432089381618140399530135588913302723164904884138782542434377057527584322817315114464838838575161939058230643374309205307703003985051027282482853692494952984398985213038341146994490152749757307732364205218771394727394973010551330198453462828596367344023236518834392413909063017215717490909084995752211876414435094574651550951515023763034727147624559045977177337035367689418241861657027399395254399918650380955644965676588830466234819309549400500682628455378996516402225753921558112663597763592339574462529395535053381319401056471752955790554576862833674378456369849454193111038562034305875923601511775906664992111015180441708846892172118872222772751837149173925052677712594043288926520022743164234441101714737531960218615840949889837824595458502364148858488089848627173860446216827974092713361900042153966610664487830857873277147045645197998087683863194538465117350046966616852916436783293868628647949326164663444313475798440653674036521448742595116437389530760975549919672789476881887291580258288062564802051962165142460100980024395426040456364397906518500727540083618222779936344685637974839895421246628207751229664649263932808404496048919238141723947760086873034728713884969027125049725201612205229340898939950862429935949921301641781462653168374303355976473151399504847052623931185262863837440178834837884438926519152354594814391080782255647890471185071167017725313504456365506523084873260084917137371688207745371490706229357557406932730068209294153806378124065572227650275006136818157468303069120411529284726369528743704402861416849126579314774468389159180629720048794537716987240229650782774806843488625729829743808880253385642443467819791802292174281707089409711604208823599176381527267671389331234437186180793271113208478760801501860465893791676666180017329811696825316258419744141410160251541995318056382857600877240315893732333126375287471413856801367233530687788845419390299287329066420901256639080689823738017037564728717972495082045835869066616601166424664968628494454313379427277792225415024600590005756531645365517060011788360904470622703994322842817384233387256421593810087954987745282655819018749764205988970620677646954759850712217362914243820687695770265199004118322908920449266992948486239314115247392271217196774320144178490757630080675177382929387915989449878672319550081215168942222478992183484843492287881033443963493258747556890221721947009402248372167269307056105898223352924559639681353085872367978983573553987741793419222744814798696396474465303028362758092762324390228719646827394134835761946829437205950497630221349269484316147431157640491469645738822033067055203126041916327847975425783338732516567586985933909929008630528518744584798571777877648035940133884438759051076299223272693358554945848670247332046428749774930058861915051444422219435678054652851689440943792857265389080025609183875734377570944589153234312139672495435047409388311260334815292646948828736860700445730963242933465758717974192568732088292628401064450113062283154624699783427409452606216350633508570532102729796201387380089284912060280360759685359455010245726222028563281206616424877581660667956534991228972289423021745475232666097378077181326841428461997446390897854843494874682805788694183424841045357941500030734239766253386637166336093273901744409130450174690955073825591335713790941067174085406722537340705936585348323696510586558461998320202781031128689139228865694930552043109187816940847370018779317424397752254417771400675405958741958375831991478548560303334383483406793347652346374350871027755333733858310172649774551632301013130508178954436691297773016770120224087954725078709888747572896668029945615578903262982911722543251384399783200116802054110927569766764258798749480969542180876185717661627453741460554571935974301220888500941571820747938029671358921399792994397369984697380789976639235667986392690751484236343436830436930226387041701022260247214198471812908131513448115789892401104644993386397233761004868917737756842585191552370515184912170773113276140403409910947220874806376798759170129999016299797643796306334092348005142131552414753380951207051012444438976458991265002153932893789115262285243374740731164253823641477582011448084910237182969584723217016361525547694052406883637260526872755926163523291568459493134395692243536234769642101939679637758850434197983090026705484466718473718143369289054128789296063667806847023155378605312075710726229261973004655322583745136233005643768795670845011942100352540501330534849307433897163420864681350190349306776038063479858175101271350695565619252173432472229237819609743308808854188021910463136053453574117593015986439430865719575731015738217260539531324223358624360952362160589111653505611595521896305921260708779629036358351037921560729522055373378941684446994580219845956691851751014273097899259142787855247352980103760722885783078010477360074964684255438143865379932462588301374195196353587101038782427203488496246465786630440953873368754166181245938042024229244670802245928109249587284312175501283329196953142641059112221786165396849691651600182278184764269268104173827599252538466766632709700198271370622933352758441680821744631287619233801123631291651919300993027966131539080414971991350192904418114392898151033292932052984887496390323492471274242448479949027449176178444536590864135072990345119816297408981221762202333655938087454292439206396294708040586700272551063489111462198162686421716965048948796228540089989151368123564648607784559276849385517794326158282382140867265849633376688961315278890393687980852324966929037661612688476735092325327541271632307412268625352841161734961098236162481499463292729930476753248798354120792579461058171139381322604931468462855185342538734796721233652358716570584304598046658539984961418053549385008228697662011879603374821986829453879320093673545553709629877121619968378608336382913017802630938368844351484201847449234678182820033847696264380381321428370592031516284473827424426533621075636107984513660781967927371190947404080377807074256175261662688314968681126874248181625669923120421003047587449209081322587556357982231259546044699960723860003580340709322774749997358070456157971991911944573851004585396172149956388125287277763865555198013451287092364889355161521167651512515399708321620639714249097043995014994110394158229238487373907349581143705992233715719014509252470308095864842555647860673895932375409678218078999767965116907270172371886794982130325819891748164307612774092857772747423462743538914979220474843098137256592529685682399265745808218240264184485171246679593502034448322145419095495601437148904465347686684117039745154323297555133995602311105831351860848198553106066248507237000886162061990760682647346472941558036757952537648302094125261188318685604265782153035561681893049531357326994746257899356632429901018605589577556061908641162480450239106426372484542484605207384733779300503662834953224111131694340662341143829283822213785614930987305787168703773077874767019353250289898756022337431363737238702001034137079581787209819768312098579102991547263186091019435639410368842991648579452778129578067024043553500185868412785820679138392284386808154777284859135625737296888116614885210613483479088853019015163686048164647059564395807278236522722508661968389948768125624466626242962322087293268864624678524972776719654346901839066589656403165110389089314600861607794133776010121551653667558117837668054463870190975746878754241500059007380880174415639106868382935874900794957936203500738160331005100462738067987747472185895660098548514408768227107695602226932641906205601237254476966430910554470504447078369490348452617377448860388765764082254348003141698035137584725762409934169806012138235991113565802049799918544281337537107602515717867947383288709224408233239970944049255017427547518412311504732492859160894433828178592916576914107902546809333777342778921638123527345791089291373741786586070215947633484333662873665479218106182327228419926924002587652212588406274238138481107784993908021367672113782333126873756098183456342847264699750982948927044343466456524445678357289726745586884269308572635993549908796248804771592814092400906115617391851810521201805324773586361531759932914944752740982390920268248094028878324727808202235255287713826581960101543029253298580340626609675394274414179124685365934365817080974820135284370624407627322378314693433490411716000367804534222430577244055616953622941208750516185505792872627921276469236562247437558691231843879972472447978315493293027719101057806698622547331879470292477936763744809736797979558754982850402887900365701793159982899246660201757064519729877562331648160591734269955465532928485285118655353985857627678591996612926837306954855263220876403542488703432886975085032779068974313371066387519738202494063701206709765937069419348480455759807061145833750651362886819202618670423390214482940342500203427047267613261984620288366657071220221280473836304049358247973196639719935540965682199776753637514610413540085343978928528341418346533533230881866470806764471671361326611075188304438688684538498520806987566581561183198098896721845178299048332834074913605914439973876302552808017922846481248989777397130401030488788609999687087368764387825875488247787657881335247016425607661641740898007878745375719698179649607802090727114440099202596588886131961693217927857572858399889560313059727877988785639580311034780597818299125054061099310620363871863850328422384434314328418082939865060993196460025299084520594736513326732775072183289663068011699816742977875037271593926975640952377692718617245355846844082447942428033263400536664846742659684085335095005912316035902555366705416103499317625090477299403971822868433287306783042763541904995124877037357257636515522991178465019670451489094392734443959519070772259119102359058427043479278386878184877954710463263483512400244356091257656401908701690210724384764219438385434998220411161898707629596118879573814167249178789012234061769388787662132550516588265353691395122021139134654294973813485492056639937234782621678986630305484328360372527450084590601354247412863675499995278893329679017633252252231345215775453377109501180431127804097439036917225221050938794551598951795117721731328816800223058585864007537118168987908650076273224345214992948594325307370370893222038898691298249637948011292970098491991653423140108201607619501707590106143874760003932732103171499139618246490562895865167208162880472895074029955069973556730034136396927921961215554146505751541636817894398885480999545449719768093340912974512706853458170349913223485189761291239343374613840112511326944296051878693961287576246488672072821124360346972754818265461521777432030370016911192663513847226464027737234521745346380377222365763590605470472367135423575937995751043525715987431453724195952809009962263935904683064032604818418544731064940502932716073141111757322027404934774860309038700661619754920100463913862207803590918106075882064118944038640257228344067973537777324967443945958974225841174609710329012494478468785774567815006237626221538708599489631846294004341632374418004618713047950974516634462828736196208782287352211362001065166872276906356922662432495916911713350007665476566038256282345455163465529554846273593795399891571141670270230612194272259663906203225454675552051035790458925869790642878621977404025021260669575991723794146740187851081455895671532213809692861004252196604889319097094665739387812957227987241078357260408144934066366014235382102410454040800193822651214024943181713011122583531626196681291987725283922394799889333767174114112273124596698871329133575489750719269772927009208396723915187879734843874275563973900368951558643759620412207129089495727824632109959484479009643923917638510698601525179008998060817229565812717338694518982212022329937961891703342568470370272166019251414207265198056249637405478860890567120193509573969315518869397269758607334614718595402944402460084435379271334135170644293896739575328962401678658052338644199708670741180604249427715359428356895182478768487832436471608940219090242733731081000267757622550565800632955119510018523003862310319929853252050951344878133391847546937494095664436180680065945892426393095171999237937631581825669379852022507973555529342026709631570598715320445074842319085780758299376278973679502462440246687802312423461707931981647081572366922072719756100238827465142540160443391995849052178667258249345099085369452103004360285155064613620119153709347923910150850621709896618483329197335152460811440207315602851740435157524205198932631512696923469737370069024129909495817835310533313015827603110907105155976162655931909578257537221125802640551057290074808987615550460375127675254635103747305867111948831813762190651973032070403580894046024351426240377456925701168266317052739888167756424243379194299551577853154503617471307560746365295645206082423992881513757293864399119383216229923365764003712887266278602591267731885835679442372553720921357260556660362593829449959860457222457639468898564669521991594821258437726799448735227039579007619765399871805300164521050564059973036402371145032299676419460817374606425183877107029933520794939174698480999847028701314416167682858368945471621849277559122415219814831509885796677942725742764156481391687603615637246008592074293363093754507941775116212595703881308899206015294728385120277190142533814336196031896433702697594736257591007482577145142222276662275019049062319616562325490614347796123527041908031154708759998524720507053231953507634898730160144914281407562721824751065743945446193706260753510139969584210234009804464369106280193698414943018571334088348042451083233595073646872479469946906549598613819915998697152440760475524208446080059988298175542586411527903240504824615359984280465257343024065303106408896827020043966882961427476246040357887914166334485687793833980084194808296211768886756200370273880486274552114214918417838641026438556068042370117604641850796401334254332964652089511128929620767866519332224117262756800029698866281530841571186979088726838023080192552632041212260862801466603658648152646432369415058310211709807841710399252868605454621167380463257566739870501890563935292269808340497031544207818855149120721818355140686520498617759134116099855299283455873645678926216657597920448584910561793903040305848884132092476891983480221847173006990141314204130383735461528834709629552505569267627850099528722119418966262797622679099579918882645069068870575394769842673838850690941228807488274852894223659796164143766266273557746281030472772902979822804452108981963633376194878776501585571497356670583401842440655405994219383368085521144415744345127048293809762812268102487255575065864119820045615130226133695434524003956633119021281461042630342347278799321627988288024553549150730783258341848134138510476950732255522512826778770740996022402347733484457616708659316859445908607835673537607720288659691831546150638521872924629702605730985283341692515891227145660388132853753271989537411741740235314101627391021804270629960249846934806496463930562914909650337312090024558788223334477085971741714565507966944891220526370162465822392813123856772665398821401068222254292312619248984891978393636983768710371858323115622048737022312504829291944279612760009654125023331017106513369311584240605878356439429892018013141243212767045082611395818190742127789504661330294183297126946478616773289586574761380573738311536199581375765401658481059734306611493604874244936311254050229471709937188253708794556965853585031064889158039348825502916202452358813461475591579087475157980502454792533953168733808853000775642318351037132676694961237604218763478574745251729415209663915934701775450087364583076632835073702058299848177416437046412434616875342473871687445558355563718257727206754698975054060377771739622867799475906780118312921426913982412250801835003391974383462677385800646787172023990771736610182256938435406648770055862614742573191558167177598480981031465376692840284591683061063973270522787135980632403960916945767918865838095109855247218251722183793678230006817230924595707563718690907426859066499677817670593831042794750371443548309480896153445199026817567325783072437788258539981896766072125800205850232717204319367568176965515994359942282334413455676806094317935823330766282533436834824887519897726734499587493194773165901367232173391673919006100058769551222203002623574034310138293853188309873818969934771435723860299852619204864158734988788883560340393672412127765268982629551012532607135216394378931432132091092118454087557049467558503579577075138347663249258033715071569350711740204707408316065304996209747398985652328136249546353575275611465337888041743337538692259893996161709355311342900704219544372167807192081451986498957113223834238396022136949579308711119777791963347435933529830045839430459749915452987972048200011307231575722005583161869551511489924236331999373928598488190840478378919369617713854278368778219549111444751631697426146346672991605894744839582015547113401675798679123469724937280124740660147952115619398428064577125223504171284097257550696879424333556756907791018621974525118770273145871709050057142614093101322463234985778338435338087024421765634513260697358947332205682388518038857670045319740213487511784246703525837741499854641172037163871717125353322104009147885307039959909189243546851309434615546845812494945430337599600350482380194844217012882881307783996065030809491535264698132748956081107485641814559426508513732128052565431251262366920629725288138924640164905515002497665492501574568899539593635359775585444066613072492227261327703794714566893432518424851973072916255008524848304674086358699481939885999813795662088421003433003644180542720765570265209956503995651672164924992743270842527488704752661889424758459548367955900270059145469640657168157490205134967089263155154562552873468094055750556494838491853936653462249852390691891416999275427220496075275344502420087770801148750187766680739075887109281520760985896414884016147714875517979189524456396324582546848568323229504275272565757872879181418210581261986727803287318051478535886224793704880316681248490168110116909075330255747006556721640655792336990179467404955885915664984136649439440377000213506889051171782315697196002767941492271792620681674145547784429335959683590685164543320436842348949745062838021705933829231088596785686902135718733589566695416893259317401222080743889982315075220125953723405425453858481014490871904233409887619916747675124421953342928899694494641251105595809741679191779743243911814665870079524923174647761505087657048199067811495415862014327557550835138037537133880492893584935720210359352646541513846398049391820109532194478853722442780188187313617796699917288625452590107659647301523598976277475857377023028802070640299561328495850741733289660671886151561812491148293472974529464223009724604357967770900238389052059611820829833329486843673896030173255833306952536712421777944225012599236646120203786270096917635234964779162568775066442846919935730313764295168965323404038774240442459318783996662429012583105483549662832110554238655406303815395332158106059272989745701948875232693284638063719577977533452934148035026305688753282368886458599428370309117390568774809552071070414845001198627599851722784545201965778550160259882912702442153759269665554039030007556124998370157896345217686341110853597483329486356041735583659690717616157077648343288694300551982306399773638318549563662763030701986409498747776290029462987048308275167679155612275374975817259364405425093850386327108172315579944505787503965028090678866778092524200814219397573201497340598620359133365341169400038275333526222771900529339497522452252711258689026255648950233011786004418659574147614310092687658165416961021948702286203570333319337975320045817902312626293391831932822554193517888959939420198452565391147650650557415581007983260786928835896758301219842499790005617067116858147214868313692643724032916190681213192025012498411651476296989277076822242480750745853204799688811834562816732395873850828667266730780243267109718756174488740783821229060022315323405726418440205343984324278246785549436646805202329758211995602955158173155542470537345489448514382342417985606112633802283567583017203334301865103647082391276969737905433212013404213070905492201315064937845908202374251493690553895275831566474557415755373842444492754856653596539906554262393250305880839832397186679785429499838191108479957140296658273435803903197630877954591925822678162258680316994604982568628839577696784409854541448622147602739587840245113311954622896177602451728444600047775474487044675625225980531147429210545462796655267273829519917986564921551650342014927130177966806248976447622757137220699886884694529108009821696928859136908507767720198901945764938299518270175065261960988199784479374553511129069810664203386156118249634140722688069688250547000897819751576050399903276333208837301333975662705005367131532107434782388212471786634170767676689774016833586572221156373812060347251132390843396526683301418103712361676341197978690434371181841437462519070031615490269144810711078851024498816550315794976303060543705435371696964275231426837507468572629673041451326652393925335151376043441253685399993180986453494507759914094362636343273316585923194689918612871790319087685438651628986313024566868750032738676806635678459044385361777564634575070768877682095543879293956374271001717003457663483201794624653594617563803721529805889277266320362054273069356630881681260638619683220231344693057368653477963733632572782196322081950295063737037261880404353401749839816334327148697941807800139277006522123839780964792971925318629108974692237502795212844512860005863062830868825369986817366096385314698588386331100080916237201194726823219923725572499462028694088332767739443020058979493624484424028615987503518360716149765014104603859737115693970288412692886801294380746524861316200791812373605234409544514751755444757528437185860798800351158774519207400941487606446026362991674384164906613445342532988761089828879450777413186073584912446303348574641093844642950315450818270931282247222047390354941620704165477459048808857476042303129206503290449801439266439236061018481851958680317136932245345459024096717383819333692194369034577298054186175641886129873057984772527393768930006536669662132912643205661161957936202100547454606995826865928941367057694782891328092529665806239769278350062449436701070971568458485249534180348611278911986204880257152844242422948334771145210802222314383730468557381612064840088127571812696242527599244366733308072563155462671666139939123951374853609029161896644082735669868152770321508863158295444765007251204933795027943002883085685506285557358841515589332977673797276449151598995716580574660442450785721896051594295582657296837392650200452655209607445416988515502697142788019901909169736983963595846949800045154020770843809259703603840480315735065335044990346979027309086489921322639803739540551341799227019323603338646876057058782045649315169653866373593568221255051889904162935153440476591677041318086288146133495492483388227035641032541403622198574415672592033225472811126574313515382448594420628888678422145803070646623701788860070269440135224271058988981426271458385044097210392776522554746698786839804084293145390692312288442935157182566625060940385929654400211536150140224904361741948254697723910592935300256874445070180665291928840715490443169726909195903378324762462456870738629032076753375383610959284598885101803442770524658862737286702836233499611110555371741690621865319542187617944043442053814377343194758733015924012797236756468979024996670104466027131163523445967912223213605288626953653338769060933623270631551077250093810352687628680209258013749910661495731526808771623267284059922924154520583808442319175585662909806572763472728200749252839762924618641135709877780990139793591860043556624575390343703316033792060764829051884067805530444687388549428092491861368532735673811710392973865983489617512637561482339077931218311126266481955889978463200187932420860215417923113457351826864197816447523981897769623609691588601631396096122869102732815339137315923462181061461336611202851769571832992941292759083462873477914227106469300045762791991027445060726405256516189616812078903061084010473985652571114386358811796817506370514032992070470474089721411120599606807010530206036258434050499792964349253300753134639194543501221814109858995705325511132957014455788547195802583877127399749195399257670039482888822046599136948039016065811408951789050195410828428756549207771653320892056730207904079120004418849137872793559395500857144570946324717923586670759343779131694397561865715461154602998734833062208329390179005302202377755784038908699123742821685122442707222536032512117288907401064881940165945786503421970634959328716359492622163302725707848659634928426184202973111119697022512767833108911822343320369862288457465417377776528712379000468200598976314037197959513537177265624701347483091931479273538881398228276086311292717657550768814718154858278671648227805678977133640606862573552458249011680696243932610333935115224947006322023216776879451005129862885757908567553445106414663993079217807745372561376694287302145516351955922417520897499573762298123467716580241131137586981321964710452017276710806955610499061085137188810857880410464680639201098467198885707928028022459575336380933363689865190395732720390087799466098397914624715877962470016721989887247513155191933402047533973882051629472519365866781633397747792383989269925936334596576255862872976200254419760165423155152852794247845702503598162348169259205397912714942050874545288951313980203524824750945497154188092393184143175019338725091182194403275823651955480437120391938227947206771933380572458942734326757300829310396611661805554348685675768069594353657835663969488059959292511068551414939302587227029213642996468964665909806575696407430455271076475518865084582585846863327328087038254545857699388252323290719196279973077610531313017268875385854210911438392669575952020985535446091092220584290098861362287256553295471931926149769193999071445085340462128307069307614426768438052451693835155100241896579069892713691508969626643817516543195600109137588482492351468853709383827395439777693514049465234235727561532076995864292440821713676538269335162920302206398836954550023037923325683236385313673195716765729026428671387450479260700678657237895131378711592309944216501745047568237155589190400864217573791775995838393311269934583314516192038175460844616226961943942466748125498477650562232608275264406039944226325697140727151448211278553745830730234513874928337266543876971973733193911380551841815517781568614585294582759723683658415437398315592685804730150151204010209279485589383130808081306482383499766897903478545868786716278148737517935887112282849933583941620528460853636973894705421003694179055450888591478553680041359272175210290191204539387659685254915924827515238693627000152368626041541387690648171834987390613249180075838867439283266794331858559666828707677411963683995041306611236522739207107557920363039634179201655907377988620040279016941595626347943825622193210141448916024885181837044647839039946252083859733057996897695412211864732655164041147277394712748989396408877490331443564725788719130146517825843415267262438548582386617226808758754396473714525000273581764115253281556828678121523470912951324427750584602892966047327565997445833556838529461826493385028906604131203509662842356209333651503615297772722311779042912845570265441838872419566885146075921271264966156290803520602559575040808100602949257664425118257941121411574251428959267257214614895165754511035257864653723331663581509597020440861382147910815544172109863555525709630227553630329477355652255904635454233812054408225783437624905671933292368945499738039064886072180355036971355223053830891622804975872619459968261798962640820309964812266520223906975703848742047985408052973158647700235798740308965225386459249903169112832966767025268684940996905834615634265461342234162250344136082791328946554658655549206831991733782803787558305068705327653896848420448482153271603014629003606363398660932775905130393706315252443796297205120165440778780942211008362477674721464082569266325469081246755357037268925747370130170632254699839894661016132436178164530125197114649593544834791268046502100396713329793156394659637621729775679897209415083893002873777610479296149935382348329552225946017109279034599695802549881071442517552222606933054348208707785286175513280781941268756410023658200725079091473278653643046715683512538828700509488351323491278085893569955000645099916615809904716512108094352304056746366851922025196024852983550643392205050260522361700832398799297617093513571072231890191768613116472466777649191074406053013028926843145696317228077075250051633939065832527763274078436608343677670777987183440016318718364711280770481022951166984540124280976524153895323528529903606849028647610312243879007220239872110186160117154340517741757656595434340304596831263265316314035125468856259585838079607052846994495663387959042848273502608788787552095045112690410670721114020004630134861395944710339842102909625080728482324120855726698682327157861678678593438627177036651717513886309484202396771431812477276834711138434326653710486365878370964062722133803131139484344089393340321857378260518457354295614296648117159218339848789410379745791402123305337893594248839909756896491742753166548313535622023822820184626219240764007207790827447146287749941269688141334530333282942346427902721662370565580756640103822563543538666978583190994283934014319294722840680502717943214774840934081427782239257641280517898502896085130375073056360360039462108632856820013429526172791101166725521207778505411924059208281077730475815319495369905650425473791966565239612518724375072408128356382252453162825757726891348725894138620555734734368558772654616510151357549551050411101290486543367287075981831730820745901464593598957087258930805366002429350326359133713085170998068150701014560322227652068032285705620622144065534925324887622142281178295439665879049852180783711186114626959061399056568703925299906343507456216331799551279772247175977953425862192213064339145066855490933193891026411280848758277945147190037182692543587972425900077022025615240632750299113732886381865113385080192476730252504428426010317424879958762638307074334967774962473991820596003332475620218876655325249874502367666224126300306411971169190818943055361096230575488363553053043266445151550266607618315222723837830246090621905676432820932134456525745562666556462420237010320180015068660493016792638174345530155700762539194878388685664763723841246994153657865642222099701707954176993853012024630722050807666628187709905149666413963439737297678570630393245933998870173952943384262227260076433291715073909970095454288037372107789540718510928237644811408733410777795305446264722349268680403179016015058055712598472830610156746839987430528343021717225529125435875576172007720836596524392410033985670402966752519929562277739857248044283933492334814280508747478782659855641789044816450068410995314050161187668374311608319072209389163240066582529528871792727550646654419205321352727085591664147337406677865867519296292977220516576045799455984505575528062414333948502808497890328200550563416875225059097938599943107226150188216765663587445817667159503593476376679800778268604980908309139420206136176931220394073490720834558568751199726093921031480244544192495854491492759028870325611834587743571444729476750440626188583604432329667699208797923398396468021854073096498898586390631073748185302267914530768767068521917031349864223007308822165769029265576568476363127771756792920534114112823097038903459755701593890850285147251311288363151276176159948096480083601380257631748521444675927273020805484921016991232352233081478895703047074663995693410638726990926765044795139247801705397536990161194221600380495896465776050756713165934664448567160939072130409761276343068577412834580939366815774523797821288802372735153355438756759783188876471776219164521124738568564787039669871935459633658976135290762845739230181063661717017164930106384109125708116792267450336292080979586601077923560352690466303255443161526794079305663333361088840344574472301487909956920914982080405067518581007850883045399194887369945332919736281990210908140235764414100307557043784387161561463071239652610998111628718537756527203363752193297347752687314842313710654455652958339762224613706103015310402647036745766862126263459301152752273167192630165568879699638001111480291848852089478825583185313691963461372508330276615967922498616314834597138040169089495249031837523092069357062912370734007235548033950147217056937713371027449359275563470241514731118133794735206996792643185363120082924224955366347953621192087441062825924084887645423184863240356929242613280520512751686622465057176806022874969097352709146504294058005033101768155989590253547708361550653211695507764563438353384297634290049999285781430597187429270795883641804652588699207036910264294304614655646670364109993583369273578675605644213266623134081519361792535931382512709749559133698360791857567917604087655800085998035548207942380238941537674057953461228719848681372866121855051544172719109085052460390629790473456167174552195000983019493270619022465086100774940595066444229480047414525662801284772939269461245979919617326084794609217249873410442287859519641383594597375703480624758845113241186048724083042611216861610180932935890989013726997197906031815407166096558090218175307024499859679242449566544586288918197046184988827299389715634422136334061085527057816024125969445723705899083568147097067735908847295944196002255120462707928564163294975780544230700899381343397745414309272941049189521415200494336304793927881264234825194661416168827201003160730033206018957321176858399692948528365561706439858538235043726193056660751230282889574578022754294352078138521050015918895223710083825429640465835932369657414294958636704553210506994504716592543554725226195591762012340508367928290075685142025012385791970504143414979779666856338010315636211596542398480801736757256328700337391324733210365761649334418235011887011499816286851049712266202123652068562684288083342279471227071781760088700735428606423225375013542297842852091571458500077590400614133364244692892093086064909092227828608784931162227937337657600869578410446556188121898123721431613408302535143949371029360372319900277464396119097610353405965233627502605193853083493689731908708840517280121613660266603482916321815166012066329320230778783194348671976165448766670829530565922681415335424882900893740019139121763588721163271868393982448363052670661740756477856831369311647345534331364027945010171033590544242881523781293323094398194577151102011857360204896083981533486395161368284893068355865216747092278810994378626828768977537934980386360834785902133538848930700866826351479934842655354091600961861297217052922581941294452081394809293242875110452047331987387549057708529056760149111702301364653077910179739259337104442038493219249853791198277174911161823006933053363313272623568266621939868752980642773845720512102469237926129979171449317527760272932646806353234392830037441706637592850376177068735767455812633840087734069627626850494826617368868552057590015226706068361149710379416132405588034041669783044067942489652751906689466990771347481898412266857804582833424942843047101300169423079816215880405408998136085320355232451757710411922481130008613882323435042487107363742017833651119959593399059222502338126396382245125650315815086539228132188960520112880072081499440107309438579458752848314347959699514860726961641958208716602646715301360681702010654898060910404719440501099929904783740281556705180087453048609412826883298849401291885872071793008599720050590317317353074409207087879916548027961585377918025667457079351620132732565929981943959815295953898961682300649528205518284607226369331304358395906951209325464092689395550527211665351560090625118422592114879923916230512013181459783853657773091939994176454957900906817555728167106157151331693965979529768263213673828205664769925292853234901623637750459120408692403849265026614177108664948205855277379724696957947263279892571651228473350793554186600529035326790285834452623993494551834258371136975035816251000723666381446885695620488393210183998066899255680946842555900181252402111797543428466342111038812163865682715421464272287687486975410952610803607311413562045266669631113976835043711413208726992528572552891659415700981289040810127020655426346871229382232271967044453200565727654525014690101003148403424002090441158860516305450222600856145139113343097162621007743883308174833001612927813688768365935660950016791059932443678528351669938750050417471414660404096478224478975323125639647526110243964119863650553931103999898692888421698848955404308242065423464286452151661393681886558272460813031492625244071407932840505551000904795695257689504251160122666653145707041312053372976239476532832065751457315796770186875727475635601206850308214575811405115333818968331248715418595095738093853494842120965698719861780357916806401710804352202445928829942674099692050982808533629211980634252746909367301143390651347644725201250610510912371454500084594868724140246878812477205196899739612757285307793253003830428278571452807026682557935841747166771273194369324913630217924791374544402315598154636677418976543018143919577383284505448174260384465682371650358212496781639384058256830112114451465506717624578001409116287103207939386363846595093675212455572576796183755011739189852418798504770182021228319561355128435034574542457759586265847632118454322012283032182900451051431183163260887461689483717054084546884943623039417823603925453201676968142785081050048949267464079047842392109094236078223796548266852973901203890194493765445118549453175658145682721604706038865005305624113112836726616027739888679681380920945898328902497916888393076504586526319892593278226233768399455267941780398507486591961889501635732032179287050582343745054140640419012732623105141984728921675340957887571384164368216520997497258650181927089116966736488734069917615219372211554762080729992056221376144737489591769795083909841488103182763640538669963650900899446408840000623546490817655550225924038889630138852005826128333416142965830875884125864381682240143796210809867935533735867184895759228227899858711379721959480169402177952465270725488655430697625860867912928183583827882343130713329465876090767872607684996816911497488118789257309956402673705575471234987880773186953600175561600510881346365915841227826996050470944334260475784896982280336355505381755061174534460126225639510043493331585790886689867315904624149113138371174183295613529422139839195619332797499900198357976552853556542116665523242338257376500607354335372797715476564975186441211070759583048080162048082269027192581351093885598503507828668120290663125850508562885975089121632623268878194653749489242770854583294992286566578057869241599906334568515709156238160056074916614848660493395640714342658310044684842183999913804656974843285913857702145862917280839904935318820381109658542084497456221976411055042192900553568338077112873731098463707217683060322634602878264517306576374711106652221928988549949057943929882613209235300523140119419719490578445808976807837002361888063280068855985484820905782479725339051407055894086402801237890027605712949829640259575929541317093858097818823712843093073959043103393014298532027117281137223359529545903088646381253538211493662761043401164627926590363977390624039803051672517766116954157625448807139336836519831593349336176748942620279594369895969818876960529932827547978163964470059752213224385473129558253021428430474650718165577147404156959373777287298778074238164659863033032123297558123775891053537383814579112255546540502947929370711157350201659951988474908344245715061154101981705680324941805602340536654767776378644561720086991825739542249319672724882544044986892047716966872005134823468200292865614050018374404123923401875179920728661544936219974047360787599721670891144559278985086705999528858874792024518733084973792815507203234126712726332801571356470332857280099650312174723222940889095228441276991727243755359024719739233221112928318302340501173993261491898636827324562254013695135365165557488740933804186010025491315271145894300071309894216392951466712305077797977706473665748063554265971170947251128988954615580369845167784481821547282110693680881857149146017808030006410791482294512528767218683773941061770088347105461375919045034610620918160114892344217071347157325288539451604576131150063035569033799506366472782634943198581509083573157641692200857351900880043959628733529096207247300097801202485191177509667078135521211615524093110766322387408515606102488876403921874983024698609184099329202807995747133476111420439887778143174865946352701431003314151382584611103514050645265229454955050550295644512041999046896307096887329756922309784791996661651127312513395009271568755106445823245405377558209276494400006680732676076072759263738600501932103989321123331734956046799350203315012488084780939092719687888192175453132032437698839243953204726153353188428917227722227012629835278319544223428000851257469081788211525017018854423031232380117714631294471375034970552543567010520503731358763966886223777017926197511409764037870152277096680170283857629249049111915779080425234754625926843792196192515919687098547534837767340207321131461072560477683870965784770943641403808090840588353178845805947510400767225968383820003521694228540115682763284120018922004337540655063298420270849579032887217762185088003034682206787189933749187067813371566601938917424016036781295410067068326027670447200502188470578764100675135119623980623526138824690995786957235337848112921240679597362047069423221828898278294667755680090365095805851994685026437396867488465213352773658540084383466484129024668776405319633441441245495711913809179150737296224829501034620945919141450766864852845751191128808895881213016961403842887509048680126164641886185966046102728803996825983484659755863064412687113321407300064872658148179909128748971263396674619448952351209752007036644359657642904784478331839043242360458160641187994652682024184121691729514915394885664279673205586074239166736325982612836922049166225048340699648933711056312785410253416906677227016606077430268998217136455835786160831510828778157477521221682191944420760360830999104051571686761647826690696586508651816170860885365976958753790815325891360182056818003001785662710775017583723189169902743592958321127637658701130272025222520711933609325968321824503991183735667777858808246124125917951970969958143358668973926932119412554975349059242265512667755174748262326739806240388200719270121648193674115647897248406237893352953515465296854789091564249987171757660008935205749542509249573788856510629475551449422626046097667351950023752314140433736612743932405812978713655029163163236004888199826034598500697083857625447746505842854448844748407705645110670780316584576400696920653381747591824507005850064983378301839380784562208371853593587853935831457219404105404458897624262877299687572261496241936521115680831846863213468840859922565464239092281369930046739114759146861748620411993399166459231986601235490199768077674140324745364236984087568696157607767962722678998085436227739821847424532772661329999940223664104992277399795211469199322942481136382716703517013028309252167108275170081820806827002450423237498219569528080546871316925379389165023891611693699477591583544466563945857510066242928038614968358043068170942255683444024207721385770334806594006855577339400172899646213180164978584411212986113877347625489567246479368290061640849621367171520106339577027707475254391710869666742664174545398006578838235528279694392069380162267693776646526056395462497731127936950923886870923653856055598581711863948955382050299032968837561975729867296166300769705581808534564554324434204339601594288637070690105229281512735725816954590312661956440119695304153593269822217110490695054491341305345162778676415847237119797335506805884725014020629336392831261860560511117313884617206753768421597734973866887989314909586999595253021427513091397773226115093631804693980005953273026435457870447714505038063856582274850385869522811921310006065863622135974568118319722527161119167681600042088876888527634408293847802665121930065357943213883967752657470766955780285449160736583357112325691747495289376843259690688698280386786042985048625032714603798223744288036967787322968700820107254198586254987070173819239318035904889060019025145729798005096346482450521696001566975751458833034242513551242888940575961454782236424959326698938182347483037666965660830011682193734643426406380252914262208674395797984991283167588139756704111410485560931573109351253392685144514947259345308818122777010729406883139123088923780305162341964839711962662455494793836007393434137537990921246491241516448461669341780154977195909986888338388369403286911051595666954733251560320436858248620240477820581606112683399970673436028736859452423531758845107451644035726262303663454344554685720718437781353330755827580224760282662172381114866592708716691891054899344241471601182635113626336367232523688620110855829393827409944030950702618279729890056960796344290606528781367310762104766105277084240332987721824030796632020603317888382104075054120813703787580051416881662832296187825179252746829643275810716983136357334050960995357146621951531402827812268469618249100834476980575893685567477861660339940463956217786896822399590567672309408291311221712426674303860536064294815025312308958996669432520793218709522643499693719289499266493158907298178308579389929514693878498920506434040439076972547386693661031146084092876449953853092303551405098582669708802487350624032800203102402509581592564748400704763672516949880376627552535849827436719244765946414530040247404980184149048989048902222302337373869245520652463422599411646595014697507224206532455516501991792988345246425872222197469996241355922320617961195102116602191803972231545187740658396124492561518042513773486987433880760498650564549487275632706495991609113547441400558049764127450460027417132542365208295901217831934634905109076706082907814658123537983335209725756977749399164936180162554059463785688396711631556748767628399093036770680065200314261752801340830394763701824599087555192050502631148669127476150356377085135924079362176113848968700770392163102048980437345084885196899416804239438094925179181616934757119938026439567620135299119564346361489726567663935706155590839972030886379122989127486069225458900453061614828061540242451413012022685712385815551312034131930118191390198806462169550735473065510963059799814573257062629442227908197050854125313921222416060992836336094097395416713349403202034091887797245602442571049071536290961660677809756493170564729027132165563847374978885309088884775191563119020971424354397056424950283642412105635983538496273757455299784760914439478950961664292688205827823369842259201736151994036627905948410808421693548091716455122791889926935962175898205721192336013922219581175885768436948832539161858619195280289201318981102768447054259059923646971451099082304723373556956931601223396024811626316414695708350022504184088435423435016597005615321069232763754450941676265597437031562335201089637033122151566546146277200996936823928269332920746513798295132799543588055141286496667507982626829594622857409295002211561906725211817561073549506387391004225462950192306907839450436742777827971814988457133884841825313651103184372050189746462246524904935716940863276460048127925347590555282972922683989493177856960220896556183352114307038577394416441685080476425698754536238473152964745852260237063024673656621150259224372998082275475173908785669310045094701415401949055437320975516963580295230859726724596285608784475488081496627963666746272615176303016492617222331591135842002687021902398974711073476121730685669569123159884129781065567366712801996132863678080628074412591952687921035798074125669158641749723871260071541032062569431645061117098918485491203510150090606068171405612781865504316597491997948331189361488141721299977180383685767900647070463590108511098866519390575142282234103366044457512292974419232092975113456615895375854938217522157021703376405805383383136681155828655868424571583579889656973071932710702888018414319009451718666657192401726384015254788096981690806635486297884449190028912914705776675801128195798939788272156910334251668927119838635021945053361367263527031639597918723660743470548307982715562694082408208644334373326334786102174251982705589962421538955568060395057583860087737408387582798531762444921431956310418307408950904518547856277651622260995330037359531095519007876780333906402891979688372320856069783397187036189958763652684771777576197080958251867743008100207408202618653345286281567211653102454729501231221281052884421864126691869852752429157929956388514672482352076874615662652690291455989463580643940215455700283971420311870273490355575550207672091030088477609323834739128975914437590180160321759326248013928187008169608022628254798419131229687824440024594211927428549547050905663958371984862512279161676458877000175984750450307033543930200202960777369705572480570134501994049624140622173370133701442079908629063195833924272035381579154774849970522807916695406833155297736493558704694419188708997185328109004844960971401813844099060013161317408963240027100367524548127297023437885439937229482708801331379089555213684101885560947017913720855727465244138931989689026761107807755591352432137081065269481102413415788715493685796233013353255685828797091299155361226078094306868960690743414102304344415768473061203600781446935283634169671315380331992806333242667305283022612878582114770212153385962102898170701914124707022072518079309236193908763894641509191938291849121203423073858825163177461473194207990185038822842056475524214569026778594122970287723557478759288972765144181781465538056231177460234399345615300512665569414413229279101628213218568561818468482906708626965011821940469628494287505151009307380807922780059562079118981510747816910167817031451098658800599407068198271646063126611316470911747934261739540090356617388876725976055578705230095110476969086462644989929515229698544808633401313086160606037673310889427162997493281091869858015413654229389686535439563135118507337411248783011639880318736250121959464718313088199631055730126494858910723999646104361599465168333757263660159221381551313565431492004120315624359817816234008937501279228171895545789038613960003990513341703929927412247623206185722873543683742404770582520030452582303050971606984049583688861437535780264172634253465038869800358361044854208564093027017383098909883752457581656650320104392994778204307791734510516344944572010701094989115280528918113120070579593977126916722092205166284433515527332011098904237474709958506274655210940342295204090875858373918993982120464648266930188335106074418394642860213472836458485285302673356663086431264531176511797384704864500329877062488406599944723941758922298415720334539717857704910396208290072069838462969048803867584423461092746768171149502745019927555269204454222315066967640080677195377267564815860176672803395172702182911412697035989564896381562153270397650544301195953408162789673692187819476510318420093025821332242878637529027311884603023386229296788050922693911590636032044599901032922168385148459220641999007096997194601185835617934847252818060931166085880193459369875787439975710833573642120108710644308224281389761676056209414618539670169483675987352083464109696513080414465562325647686176331370226859792991153773864370081960515323257839377599475874465392169769831474645886576364107852460564870912774380196905021939958967763133006226919263912791105272298073685065160339200811817273877627401877583884499072231181745722643983686327376875951308477565504348247428722974842157960498514974715716852660811349777230325563202830969622648764842383837068320270663817022627441663119377096829680112053015060564202256506838745495447497902900127047584139277250332858127596363263756585784403773829847121723098880576491986251005408299184651506456236312322508848434314348008502093092190818846848725905947470221917160877832480402962138919427099867541301300864135989746594498441877433938996417246657745129923727544594798387188254112361163114102722713090979936741793042450274367643456197277201994400710055739323604295725986231174198834907611954940397598247426058762218150180284586048735507165264535431701618881536600893821492253453251842755954548836407438174981526646522225504366583062255231677359859063646716143728262428923921204620937806635635499148877064609050090568873075252850382163091701246563523419877846937998079738459706287359835122283261182970092347890329239259491098787522131101744594796096820390149459180234525402574118039571247994682018290999585259628966028957819601577701348084212690170225037280754408351494246090370993249281186530900710164790496981541550962535097740717967056983358324692950546527298783202816744880119611718230256766583240487598995686535374191238264295654277203064374471349466656252070403449504075383200596774365338249815230068432052722412380711395841474901240399540818160649141728519735352300437898709526480009631331430789205743530163655164218517515890751133563266937908069262904709128415905013595569868603134236508324191795129730607841434348409502833797717217060271610988567093948454557758617507102067276889278631702172106613179478362401397793242292084227683159824360378389890221374929312080271510560414806036182835685309498914486276413742616374408494189835865687823180202471067373123348801602146293472740757778557724972764044439309298524771783307759977614961264177965769093125894051287196358835141801883598859747504638114818710725580659936059903416802138191827420989142256628132677311656128478836538108123640553121005821186726897178410427628036041123198088186271349390633941476415816230541932507197828688699757911982844073066173910877745891480848816940330111533003014081482634574045208800649909376209384087834032339771112718335309753154467727068425818686957894288724115146925109781111716172820436245589226135635026920480543624453794348991911098268652637912549047489189547120423987616625266093913035784202437499165388790518127747281028124916514685494045585396270646098376164884262416997222989662010574077524423646460031277635766890767850341444308353923987672758611987282009894432402170198127726886940003790915660161026697609080300650553867423811054340209470389713322809308988480156703357139210318583881248834260603296693575832460982708614881906819251299854071490546287237216034931122407946316397524454786213825792824545423224839749519195328853228887636221912802898754418081542824314495787697501091955745178935916144848830512964735869501589255939827539214710558571919432932979382379981365307600322366777914017963698813428167241277609976185088758437298260478610057680248129522711149649887174661167928135290755596858368804311057741707525050305708601278834621716123275940554889743718041284603608179140058833540122521766816268492188872039384575733310866271371341017492175816889659065555065542828718964231214410556831468505963997518864835599092824794837817912044526466105907990527817259254682967548695354476054922127976008106976622995735658804286243680126917088329618332511076118009729071471297204376987091007374984622201136881302807850538863184349682679461180548222367358942143251134004766198208910062590417070540985453037416081772523735219817639632685469753260956270335776431609057194190519498564600216830533513349814635486559881045845521855674234811507667335179289021813816456213655034962048569449886430096319796266860030504363147322499345042047277189108609952975933938186467670140823494063137811221655591028171863948061640873517985102044008225593220485635878354942109020655261751581228749611571978149313276304534271184100205611640900511915283638627567632646929744267782604267513064696540445598472700055145887228614219736570495859461848105261863367044914970152425286962315263264666460173795112588859967072186546917849511220091446887926152094407531675149747698512379236120104611062519235902351078354918537547466528510319527585230538073077810902095960145412888403679375871844113746776334406317061780077357466413062904478519531085318547476739589861422101326501164804993298809068605282098051179877295998535738030783120229722582501673455606803420639505257887662047782489518603312646463802621826468502089650646886006796179864557816582500369640173731896393676745147671651162051078206685923502118611412285925292110934164325435263720646292469815973080106908881203557790736069449152705544798275206900156305802995096746587473447486379614883747202703378825885312283990229356141847211712833837587866006663900289686872322167036252908505882783855108674983260512441816834076789041034447982167543342112988827902252237419051940372237933829052218024390310513856131457084220629752613169530850556718177289966845349875906274345297098493677747470382598855482643738749069137771174418690205015760826915626373890290215318588873604401027458524957562813717812137074537292306442664000063081678237192077901166062740225905343088146448188519086400981355785658286024329866753211870917630734106327789458048176173261792694887844747183960424595523947396514474946429610425775114009820078227820314284515953340768345622221837911374913841761329130789582439685295889342406062328828565532552401174798545494335886576721214102117408143133128959016704324462538772216364993466766596227792278005788422906631738502303721052411230738577584426627229505899828040033958547395149333180804759538867169385738408928015157975482732002910497703697157789021052362736645756958352267476130547724011857118164115064077685370793824417040378836951091279244292509615417310024134981031398763311365969463961033647201143800450322602631375435495763210476316217590300208810202964523429416920524329664721776378724534444923190871360866570702386651261479444391431354092051906498608728933985775694814781469408362866551290897260365888154584951758863277825618858241933306856049330010955095822882505033298063663959857231713536556533787182260608671846878828918938115187043346423621451966545391712357728250533873877335687422539104610571371783748734408281951518564770031827890598662242231850167662771029478671597229283683332485950969245897392601436701042459407365968968204356133292167680678386988363725536132120917829522508320241072320391429314163872952434677730161958155854997255082107351712919333016641155852466156687559752091277513238077207953175723812388170174793059838061965845081485625527511328362981031343175012434352301881056431688170492498671140229869767896110829179319760837741339856291460217921491496160993405385395935418555002865022907414308944199182654987966981939764221220070511672781911808076865374066259070761504946460366778740097974131649946595211444335212859952029465802934757579590963777111799376171531285641573425148632688370201932984035917658957912710365634056083037878239246904464301006658194006675685800002303573521608069998612036541515004014715406110138505018849064198195323745931755669320665155020468019316962441133718464099064969751028576753793855451895877675033152087055281466969515216406483471811713703536318186104176907194458622149246192247018199394554852137849972203663834618663849986484716990947665227836291541718839856327097554775559989771824586358346855506317708072530038304077223881038642410221147180856238620394978724453962645555273501843375019168689616024142235289985826455249011479571862401504159626980682134912101909977054203749548836762387450017798602940786735265353932506603004011508178375346023065372202431536068089105303958088667368550981813933789332188329554026920885444912514232211837890221135662247329848467511669961379566368900637769049001494754838933506739242348834380797471994912360341852558488192566585929162438780473197364587535658124021584246590961315953745188940224280239186375285613412855671294261050364731178200821316179993307607767423869148392804517275160708399375179066983181057918428366887705704317467010440368543452127108074000720262301326097791139784014380743665468867972593536210852204515825077559289091247878711394111709671875389416000134544851082451050076017297708955816927591518230589926782396900397905649331975447018500619559214130758103304497805615164177619748869163425533571008157228549409871298173462651803914841884836152320090627661471040701644775086746740502841053738269721722047524150381086817661294194020756390217301657622249407671394078016496216993251927528372302089623651340019957425214011544530649593390219581597966850556704075082715782290017578409448513732059751526660176974654304887731357404181990635840987591540607472155709512528794680673221762735534915024411494604066813419698432222564470851156955982973931239123625639489194742728050168267176516604857184837415109011161754049082173124376593403023274838022406606005927061734007557985646989794984573681706506549937522462111809551248735807481557861348768453923180498281916853693733757990521723322715103973994904155526044786616179581522550419566708464115360445220453349422583049723659273802377832947249081492734375704992929697351568160934707562190966921111193988864362989018391365716336499115841618212403256129878269912213230152374078082709928159832729050645762748511183535211875015570516514110726920081480316599924714805435378241185155772640403493130349422521620725490183219818251517825744579946656994700822005362748124023657689541954707241787670545863020690629232773950486251741845025741265794835046716244126405204470608763842260409069768508570903654373834525663802772778951028880726671036808477438011692918442270046384497105977470858593929457498286020632148975324347083844266797336104909652761145731538804717907378124794509730722005512101032437853959585675505028397328860381502185386357652973292506949624373046338036644048660587753418322171359171498837047708630195286933786246448312361311191435346861471940851338163152504177523387463852805181605133804986724184791025647692585610713498752134806474113134747519537619569883995875491412063833079673330947369335311482594825451348422418532814324431126657499938017073376358596416197857635959513797155235757922473770706066819955379041269966072292376314770974470124128498116682080029350879012710569180564942921653766996481909467729586629852246255763407238811054789609125842423938889379535327332132060563512389645907812513060436788545689137607994287342188440281066081346572198551581260109314864989383777961312304250580617690241012923466777916537227972044155006794486360633682014185101669046443203251022608249465136667293904562726847617914731410970244043650949829762272583695122014390600158778218752952860249630170116650991098761113584364839018770519329045089697965964539031236668547900821549245037193748602304715548914169792041911376530743637697650364616343270773616649677718041712217854182808689333574204500534026162007727641094846687716829354050519849525878046628494414404972409340726476586822037562940258078043419555799269634374708061893793291533422416122867814626447326956869860091407220836005186392003562932567226571550246482558245367408571221182565183880121722431629555383726410946840428544694148543965740391194130788295154532322107212703246442088444971259419927270357210143655239634070423993777786916462402575397203810413402043629256463964440894466439701345590176380272763124769966812864968749484885060902759228712579542625123333024238386594453078095827258963224560888817295695897432204795267161102055320889041088664513224945001458125596163081969615911874360834380546572989432877671338740056096850998127372049450578450694219120367107263203129259467583470598324202338693843448544007696029128840411263999725352817736499727346421572379106761805755117652754804698084259605615842366243209752303252730443123646907869316166755940355258550082292277492790709246213926947003827549410704633385493806382498006237483526652675041084090420407128857214969433975864058861476865813265534002292755045486137738053984054160695104210317784844060324334709772498680650596601882424270222681987953795855743998778644687803143031045939809210936165921826889559673859887046479555506619268427486313001690801006031489621798150897542290139341076811354879246593274472180688843398867737206242479369006437812338794103301530031883224190392646540192045964099138902620844383403233485475464183357771220537476254304335057341765171136758593563056173931275569288904917759765988733759132877883850732590500330645767621661465576443778146742172582257756160248320295821970788552209094255362306444072712226326477534813259676088444232073847596505297529675853082732028138873594442113469653978623426439803629448849504803449312151560638574136832935593837620732125646206431539339953135954083538157229937460063838680339276886775585775486475694929517215633390951886932526372262617448973550450546740108325375305105801994814122555055575620430274872515728836753468599016886267893250981243156297310622871837265703983452850154880439627972551573479488415287704390744628653447631994652046452931943962108792092803504963384531347333949422880831561716111859989746602236995957757269360825355971977082268684713766514674981228601391539621879870097872760036509236172128411166352956279563897460946599331092551454159118532771941806709392870834481168461104041999928448672212460746566320850464840181959229260850909278383216757204603980087645874168274133423202807499111336162717400531582672910793802952092517890133134655580473405883225868711964384680888827995970360779743965069876743234324387986292986616648059127317369481109368910241838065164409024479360354355288818596066534116101023732387266683717171674028490083857017218999616437133162749539828351615798580596356449451194597352617298800598042523264470369616250811786737921032896556522262877685581991364044955857901589891090364391939159341823853671417079042100886722639578936185031305845590729175807654542499258100573942345256248085055599248806759780859717930284597209458621924371400453240953102404142754326383094557010166530959765250709811912020794453445112905964380387279984572065680321539423963573622248045692513785683310711132535800373617274098597043767947102720170688957328214405251519440263683666627464182866748523921376997543633455837665281598355796019152873099338599501368350439115399399868033410425045676410618118859550118874794418611638275739041434474460210030602814500209544852233650677249300772502629501350380954989378933998638360032468537388053012348196608030326446094132170309724993524770387005372763245699291721555597910668691961342274070842036333868047650202724543501794400015593884286466226551831409604629119591765007231446487531916185528315734125869861082413537397290440815603919780235258013890949630619582514184881670694993552133869557575482599548690866629312973189709999003931099233017297451801047588152514218589755684340485018705659733437037267138315767086724769216879127450767063392655694832220618002036411110017864864140728138920709684830875445796341413086641411270253728134856583321378793864446814956258132265697385211958236280788487742720559333724578763245052731820571964878234600304707289741761482720238245032571001376060556643284415654864341394498574505413651323684002983281991762618824824682953826324289587118519191092185569112691039189663253515811803111668674114603287047558110156709170664411483764161443862338497770473363367572434388294336402135609135040830564870034268886645929884599830811822184470476227189028944917668016285906839612014101404435123194583259012995983999667776976766805977154169512162841224085739534266213253197695586304471920416348038008306983637997553998132885949728590463668383078604044135254645769282901506007097466798042231221341193248098051797761502211931748839021219453988069220465413339285042891073551878595377002601683537052009243327347189136550451286384904077078745658189397189855183570422433241304584639437660963976120134939482814422596290619676841888348112939109084246298891720953844985492725879680284002891014621058687194444637150815141640032480420537882940728733391261059141368320654964387472286347066091724662889772326183421773433112552166602084621977995325799449925298128187111084143642322895430820041904316194078487898826241615697979937407931676981220652243028632334969868857828449999817956595871806393873237512613885063210853763726578768420452563046557708980796043848080400522494735448849134406050654074210145069802969746636274528334636126425246902579712772084692958630768047025074983072005297688128849887098751110817116196594870178047704872040442878196755017280581971689868096299328542324326951846784093020872622542927571811038934422489532426949882520755407190772467918595377813434457368260281315490957643182440070635809947921279700994790054496847476885041715130222066179393228369334827603984225940862009981660730239401790100421315437610782116616579568725641063682148093912945339575852988722509325032666707192676945575250636699286730108171228654868408989502119931498258411642138418324105606941099849624780301011686721274354797525157931187133373400008804216085931242319984183137408587725668787124260073575306180234572040854178701515237714305749226388624388017926376689821044115547132601133763089094076473570349594582939461822067908750046031277616903906359122494934479439667501084069119275602121487541633308544173441586899344652588550935966539497997593644821705981163003076631748121972333695445816208404772078879496556113028217888160826886780828869452786702051307808646028877368014444848859518036022228787429984025305080598442097817239658598090378510391788273188679203232769885766838121523581482740176605296675728115103080717691038787128460997904142931249979626442246490881734462339311316334324437605213132924493813536320905644509075386071624201089314823407658119187634185626711566719311042199446737841908503611048963819338961427095700267730244071952945054857851782869391815525495544763328107530466496424843535751521986534035370561196783063281085554611218754851366770717450117651187786042344121804522005355337443997459261380714360648258113894060080682174656304715514985932208953738197841685549286792491110958249246189475165412122730671126872762404557032015789127009708569258329949308188113288197720271267373349153595064885230006106982875918619552616210781315527586946148393427588850062620631553263202189290014544708042015144915551740587983474198571229471904615646574083605900213860422787399172026866843205679860205012783629856113313321742178481593688082477221246066591470756964655065987732755861113310144320695926535745934861765093697788055987752270361530570414893376882317095118849353822895246082319784737770856350678053055568139320919156535647373841581321457998509376321401125628197735660565397862062745196442151090441171779554268499193387336628199391259910655831290328509906852620728175651023044468766492177441838889335530691979654748815683609105431144432710502491282502834107891824641339958527357202639331793412635522514807994654039848597118099195127911738477404566337755405183280831358975861754892664131400789726444624663008189724797011407191795529793327804991041954070705283352682013232591770143114254311080357300761406467916530583324188805598922806510720083401331578577100917300240243100169032568844822610919094139001782597076115934278884169985525176474263837741413604389451852024726303080883104595243997850913696066200750267752378484686195420301885583370766953240062349363900539500760058731900841189629436759095532349405088660018934238549903944821693836189389368471914430599080229690465781346674523393279984129614278215481086898396012460938909096081133473047221482545354849342265789064398078613171662495254256226837849630251370503857681192487841987632444484016324879500375108725809014868429959505319434633980888534965377227655483469760201338854199150141282022326562740935525293758201253921287411172782493867197477197746728670464687027932665271821681609445227653210689778053719259437600955361328986960860765765516884637453775816787013393821483040959381825878084510517700049987081109266609598036960652798241163406065602496089249227025322948521611830564127163657543285076505954415504785034251842161069416129723996435418431057404213956166057176266028424948201483255960178026050456228408409966251863264051571067191730326099436155937951472456793763108513282752897082123878261130188255875089065733894650142917922802886269262228745131576887647417244062436876385549652117173473153307826817180661818424290310627525906566416789141071050463448704507562297208954260816932722751370610725191238865771373075841453806628390705002514187275289436738313343214072125784031816190362887801178098348751608876666095542633709060465297630626765825284125581612513123389713995614134514685446984442956201776745854759970799233581754816725186625249050480057193718474955856644308285817281398786068821960386392124992650774515791903376090836162396438448697253643059122538064584620548238700189457845619373153189046561926913005140216502872210905751947309870559590981204005715041697655433418589519023635541041047879723907375200791392475895373307062156988162917865799818801416839456140423146374112569171697425417838874722949910104549346223738335070827647693778578834339008461423086268921411048311070718385049676011632046387788214587255698035288523032075232799801769344730138158113826117555598386633411694930171837200757348349450947557086323753204832290682538668661184033886857814970345826146364172185354590432957567141567404472674007345988680182824340130931184990951848151970757640888875759362079245641626746123141693809485031999595468772764000829381252652065554286839090614558844484715372826659332722996058639703420461778714965721285395215633798985901187522588206725051159527312081921805879735203281411161708665359936879705883104251974724334360360263721654691062018363212761622593316106417654627786723399721996470929476552989229748539414669030740756285322117600358217932236620978563284905571535929969573262479148180842620503922097339441233985101908923443617241115877029485472674300127464338696725325329928795398469012805549941517666790354960978974440147859649209947369429401174970574577438526630349282089163056603410110732450864923625027623011461464835220622147123796506294419124398784086912263252170312221404961595149899975439095198754230986118541011591499642820619906332275083652364247723650577718334890353115811336942778003366308560521286148295293020656569690527767230298657223280022241461530491216281460628037385520485484598719375217911734992629869467150749764945492654639534355578792411320197621813899913750002548743670379101654509801188369765633582441641666870869863625673820174892184579648319597546781503468447943034859900611064547734130479832587360516095725384192345805828308945281337355803465631332137686801962637528265946286925719152336343305466273933769872081628530024328773637513830203084282635365881440355300678283178446327402234247457411985801617799757288962161633218585900709278572985231447879047821113792723436978568400722017492929163400778303140191998742141860851248790697207769672096285714278760050919450350799111462484742610581964904852715785413096319216695098589346056694801191149441191388475687661028276588204173025885072810671661625048550743646620866293386788588120860132790468941671817419681737521286122987091474042420415244971193711885775035427424162759394177958280958994136058979350254965166839488367765802184570846915757548638520005768020066172081835218621743119085905627241209035065697393122864536621271708010641226039911713423749563969297436578703626230911944442631068292277552170769302817908061445386609710464736208080376443645608621160206261086214215720969398315460464922896005157767671333828192154803922254484093479977300371870700799363349950221743524751513775511701448358842823302061965781832987911846219039084941797356460877710426783483390986869970177196159572025136242916857846847391415989437459536821525810453048577497213983108940033671829381471203359954143284503527741247310273785979406361685261016111330204551922734539444083927292598525130468070775092918951410705365932261785162456795006137503599873938884662882396466995526631520937474293747894394202164234173568428953221304416619475918978449750640273683543634890842415299945609542458306475305309082224687830265306602486253756782699366519720566461633854994986396139068625276759198685501433914938412824172929210449388959227309915410189789646377791114388336809169795067871719142534808136549430448065939006809768666857035087387587353549529253687344141246838732321160851811965385409077916526369035220599363262877914040265203539603365264546739138851254296273121799408682743236903876095463048901647451048764292728011956753392009817117745588677699715874369740827709021748071074660243083232915798591613561359798459844677707184330196885426464064254261442843487172949379113433200392267685568821264975270514016508257487416903319000326542283540746916855033276656660430519412648366861256844385352569267662890137255396207229942720684286978527789261123585598735719023443529848440534094005944940903527040634245052804364036738773119392682294487350584246830203604027562895840924154035860352912767610879510588038402539500543555228319351192692601938304304020187403756613663791907129487528445505217979159771678603746340332501992599129649706658209471448773794699275899861812680257578091995351419514281494864413519340733203743658392054453422579630180045265968727401351611484489161863785529667323573453739356112609022763503768726391180931690612563512986192764112975200939053732774876356197366901051544272977883114958014790966687462527390802440100157370609832413483671316199678500171494128118371197368521564819701468473385183892633866879047918465475784881156232778667980227059504743488560314556824397678396342095270640362987522858764315544445814484716714063470544165245976015515570056173370877567694930186461462719298459692860819284557593887538822632208458794589592976173988588935235191812044774427005515482262422510541521852786797589323157719211194378672441909298017399267761630371283944678181578846210793217296207885376866128554568676692830265412383143587115473191154935051261516319871588283983616471923463194304838729867512465316736125456223806787879739753100168018738749267826552165066356778202426397141416035381197882024919577386713325944856980124590173447618089224923637115125933018991767947626227216069292607640536543750952976350302186880250336801421203385232697199200745843553832338338883430871190945408453587672187741906315511001095244423730614014339049983580109943939748535663460928656757554814894216135057582110132689816429198819786625806701677254041294769872125460052708121215580956031854712187602894991901601544485016719242327293349639853821479949087357279713670756919009868082214438529871915764989401959635076341340065280419063844404498225073192842616425455003177283675891395783752496004060566555019263076092968193032378899576491359907471864818508338006552280546534132459606811839876825862950777062130532157810205536002143834641488608638366638165166609597929192790488305164842807066286531724882263520898959528630710586308637297643322361711678046703024560562119099665821965257400356472039821685175675795668606858238652751365556783793674086041343847779537073609458125565754025421298885629072223192353351871379687128218511174493312642956037491897910932864115501901148673668538048977283925006561540786961425118453640427594806621958634510414275362221257904849289157498009098405784087458821719371785916559434307691142424691052559854534332347308725056285271451684349964782273825328162030762215913585253252414325748218839191953971699580958839303604134855022260496016400264935115738151845278002785386291912908437762820763427896278332517664300029073772405103344981319163061792675806131241381805330972790277926738034847150347941183082866927492346484198545834143377789751586825660918819787530724145449680844276760805940658956589166511357960495219975753387746483378686730024559037137830470317701666172186293772193315947341760612929660616823340997053143567318260159752245189009415094223730963649240509048479892589531065696392578526117270227916147601125575830570561493973316803125734522888922391449034418390691900883942428463004839126643235081310456891417607049829360524344476876506104640899951107618878997460304412628951782055371395985189488906708410945217472496894580184382617451214846053365617379549984998299614717418445623001809198291128988449444832004595087973545477096834120592938920465001865751932548080285616069187980822609329408405997810319196780260961908923151610809581482556357106022932565798406290233678698805620448240031359839788130813334239694379320902229924626596577823261250633072815546751797583192291416676836846761376969425003642163399749570148000655084399218125452544170483806238282478299853696166656580461144837341026715920347315758684136215479991525240163160675318459691893166873385859467709869988738773358508331688256196720700197061640333963694428533663714593689646069226621185227871246144660076297839315106604547738133602626583837295025259499187739450696286013346980028346272135573367275630810374808393588111342209595701058273257293714996821130885594603781641515410551971816928602382028231725148835846738447643436913724353935364725147428748939146361317268116334146979291626773830850906725834851213971967665551320744753491057754583659143115384526602500734163794609509667047155892065038215236951923238466081152248217826195329147590469649524635312873909591683558987201193926319589411352110840512766075883607172206452335609240042238001611012348896378539536004855536684239458563427927860308035260660958934269419318284191707153769795495168087846078530072794700137585138057817430184712881750555423411538145695721385577680038809184223584593743051429109089091154584080346182737060407503551207990359362859305355721105552283074326538964366614697861609800026487996144888300181032999619099949898680794792840652809589306919117478570300422085272048680988088197061166770710434961381451841274602809655382529626370675287581996524800511247604459464007935111865032730981050240851765606231779146548200453366302748151518238833851135306498242497436676683540110947574373037645435339426871822957285099009271764662685211953866061010357496565549450771230121287669365480319399124251972985170349676011435026809384852120308521553725188352669199197344536933396438941247134408603884946583384150385542352846134530825747338745022488860865914935351188870730029932258011426530225218667908879371591194395273471835203485750582444076353085861008809219809601208506894821921797082921299536630810033504511880908703766437620484301503344649620900190878334984056773749577154748500913488408023409123743589700407765663584906101979360521567087153753557951981970815877435544573981516115630398239478162969845136814669622817906950685647549817172433754145787619707127917838979272612718335638421691181721309431386192916218081985101124063019460532424330328084157926107191609183064890319556788114467127102948426615964938321591191703869491178419593187488430829694664428478159980036495522480852938154982103249441484005455704396613817919261819723419502397441041522002549658045761444024998413976431416055960339176819809365851697970315045728497799751488200138309139068610519520267342953960844308110521288157561364284757341086476418220701510422339419714279077468670326805975945444407851104595828462797058151476586015261981395440111054141041280110141596809258663507095605776798986132716375697571471190999680143600552314648195044332697056134706289988329069782278064996647894738912508291904970173060286990280056514638607978789515488934501732327686881074970760757281316855711855769136874506998051221774146130121636736696566338824749629688462639356462072890314009763730931637845068871489960203161569653746237942430417293628510871678296626901150299154096214871083320116751958076859655006724469324938471024727674205602743403117306203146856136810132176315881818300919910634787902951277936419944129672761110944556163253153347781391952978391304863094096381224067552134863527736359903342352925518362082182856161913185945406336133208301350128180213900753456404289981887825073947179810833671231533993018386864375337993092491567203221413718247973766279623219765910979851631077058275666088291765503167862709769940545380484275492411890563023589529319804716322545949389814954805557442315091093169209320361723991058241176134783437098216205315898240730289329432948005659950911589232712130599667892954476072530645876906929998623726827297590894997115233372940921128996510414946648652121043807534549355285690435498500940131437817998497141819662139914243301442491346938355220129681310417329328426254889570301984679727746794345736971159633314694631476023147276783605682367966725631780834793725401529858266073694517288186376331917205038892185976330325908992898202638084596035357256453293019431245524295725389907378419068451437312129702560129694804944530318421357216963991101574777325829006321392267034588188700279044997627211793083085212400468444180947783781546783790471075233565420736589414941868343851905920442646742499188096320196901110616057424375763375567695485192083787974944921162823800963962549980975290447843380681369980136576545731690973585278234640195057126324919044085815348737549235503402077938651392002793702027598225784088368017702332723599077094470936086841906940243238234068845556716734920897652310473022626028264023152662510314631618685635843481862422901253461505969386842643764101670486154432782958220358237386051795476535057148231739624804498471883208700635855006725735764535454990607003234786373016519184859413239598127605747015248970038671743759322582362645963751147253576357287695989982073386108564398598309267494425437880679990587132468421951732887796653961000928134403056790359387584065039351551067905500137020029021612340550764594225114602198322715259380586393503907559959195609805762282039360096611003151392255295579312515320292850282816490186188641396386017359247753974644974516994553227408172722425348264525961269966545382092975938490356317945899781851353690189527996562789945574052076646763419185209589996338134357183798575290927473075578168206069244002343015387031983070565612809763432399711437342651173768713298765532253732505599919388647118740220335376573863355066847417702247799768069145650957060159447256449551384004300805812660978907150626960139729766006788025902099826553742206944543470276096155360841646773390544421973080117816443231807104322456960169168302044570066006587187986347002660741119787218713492230195265619831034326626985005710693943433110073803251720002610478603253159816115798730088677247065091402654046717356855264774659676632226383227093273115235833563395312311072265867198730473522406931755819099299474421517554337939109653195314105554788786310854624929823950301687951444176157392370490886953737349517336368874902466810527205143060276626056495392449895071509070112897649119674342572802871279861651401466621131702319447287509340459705542485756829143355058307346770765099586819405633331504779360574628147027300989491525530730166376759710411457866014384773873838530446255673830315231974241219188670886207354122286487309751788799046571472970449722591575806278641734024530534467892327366247570464806273840580635749323140448207454911332125514500218521147201693712345042608564744719835236265235054128758968582418144780936643186574869816312451517255680025788099892903022932719457219577629101068660198443260822687196478161968494505069987263789414614903937175807419050211416256245214707347867103669478049888383741779757134476868688839519320786027614113819716659023855636099207281349177462527782897470155079376650956248774999874999833842319447948760934185179041646308948452805266794369273266267412591642625808106427272955413138694653227844918202082950828967963977449351138987089577705123873475522840679537593133956316204859290777775645379726455359868209563986787170952945887331556941077856898703434235113495001194085949038631227133471558880476435699773317837915260119622401076359533877774962438541320840347157452371694726511830750373859514142255853922738945759292996395283718753866055275615237277641233880251580756122264687814969597356413116567948572608956460234024543425760627533520352818059454061672531669334959810865865311154627729173471275586680292667022780804424827014915818453465576904891379529449887914390914135858861796675913993415252038479723493210688294739560640873717931418289363297296531209582816459214807080562933445647334771542285059757941518003861248386089787131074622458234093582390756583433015200904136630194894949137575297127394745834396657925095532157864017857540614498238233417580396826573426943418265665062280014395734277225234407052878211723018303458098658167381211857232729163909727977763880344524418947203027729215544385715920374675944724463216395121110479387895272114741281237586672776736194242757929327615823301479083388481413617063572924772068652667934194788049616850033508029390266805963640956415389337291299509073674471153177029727748380850565400785471621757072828592248838058116303268875927142130225457895144667652509099923316647771424242248938692276092347981286299944474592313501578524560927351886721473548552967120573139273188363667780603725298730207899580913183008044353167660679874387109951683378939101869531788641711207558995836017714838685624140432095084711617964213220387115981009170660628529917744840534375371019015571722832832990085033229228596680474881528093315592029246142261830908599800212655325946979497316458967561142592835646081113329497644367263766519935311601178649823998944810800587968846534506425035006110978558846660065727773548327830301836037373054243070550572705226428812228343862084224692702732897960984970713813460148040237359208390293370677662698199634374391343700622204017650656744166595312812368181628857750887212075526586885163840507329466723186664809074047344300486647441986639558960767350231493539064419570590843569038812424343136363628728478090319205263850932467375387969788115683057792070117581705479386613220084135797226418573137697275621616822489899497722679593569082318649193940624482081217210724049951639500229570223972315220007585267447978802730370136207732975700752360370096663921406021278661031825356620624106966037819351621264049735290987597162229248237611890406193065366870962394299453610303869692087568758816532852248446706256205338601644183367192072238778627287735211646173346980198102412783494594119024268438594251726184040400709488526311966314724883118918102950943882890282082677875318231792260083729257144100429468979442585501242704781852438152721824490747135539273035851607345453901261342953572122153847363335616944806874961225991135933234502215593993086773362418247482678870692937585133945024337204100019947555051668027223405235581326945762037492490089719232310669520514241905214453703198027807057847657635356521880848316542504649070669859229542870275450997473143856308539720237422772072770501713956778679438513704652307376105321851952001748505755853287529612633706916816708080823148009005933424328228905246715402161976853482685374046507504196599704880020822074179578189571650431349350760482949803999600774200015175982593498339454848736404347896155517033052253602147695604459435445193221942767454406307592808910250810184806099509051406907103052385541817226972747119735959111537409588857015714096379839581951202227290512665358968113844937174086964332309460456740708494471037074162630321635614181536887688144341428787799270698715987370512187821073699225772724971860110118043529025134369651727068632595182391912440208755350467425466078224132101497434165592872079689405766035573716477260989765970389222290748520809899205991629954346598886946709564907900158166220177974151137400904278677077078830693240670244594500794424293729717408975423001718759548162063372881193960864565667749077847503017873941884967545322563105097763230156698798868472854553632491990198133693400490870872215650373259804187454617493746142765220552533286557670173807802426757473044962890961074467393390578300137080583022819626339344468617177044838736917901009257823658618829838166681879554741489241184625486720823591258154830708835337301413969388361958294629377881530363468567792210674343916095540238418213926614767381075944822156752046933456276313916112747088696380677933030813535150066711555306293986032399200457081462512280888950206564351202888456935857506993461210340517172819597601695721307489196378285481159112590376139360939265522373150229785428701533023339927376949614134330287487208337162758398100592109913074465940276150725557984325296992027315657403705140944867713492499506801405932443827931449063462071028087204432858989671994768120974994271880359222729450140659385444705516384750745789579883734761081765496561875028826757232763045108506355667587692310770971252727259891693871168953718416314793001421460947573843295535226514244376171732680008017695266586614622460010201027827092497236164325120522060426646519379761217821113039882482871461681882679597121067885083111399138762551430437162535529256190008190972919205084113047534780682330556657433390032239981367460568335213984439555997432445652727022502117510188571531172275969298513632023223569889853647596901949528480260143186929186858649998774556944886602039598667682704001382205120909519240302947618411722270278499392584352626500561366360399106467459059977907505659407276373784410712421188755747259771281555613599061239162187963709189823732626128705815903079950086864925481264572148882735542187059863076348124564530112871029502559112148338825311895120784641702121151772555855862240579335740271213356616385604029028116054065875466640533673412648918315014634611582484615830593463096338676649774642281843042539787848862494580468130374114505626113481418089024242002733519764704914551518708239709046043916058426259179312007126173246115174761908666021655918169969162843034220723216613963152060804528541315043093399680549434216120315467540783587807824475483904936412496713979054045415870081515987643499108743316784844689937702836472431304239029567310815877344399182851143802157191824282761042487724778098419915008314120686165061819058514031606420367950695648684911540495209578462392222901913896975688363195971810421420243544825911372458097966220204669590530022389092186757866554094532800237036470761611126227360138462815399187810452347017060882855302433227821683977287729352577829089219887946905624555126683913584537727027272996707799671817595825216636902482760425927633462247245412757323802239052118834048187352888650282251396855863825345606331127587029596980667961343570510772962028080394555086405591889653228318676611590513362139300335210610001598420589282756419474684696504232913595375241870305249925888912026013079159395889526075317220950107914624135519429807577454676184899969752711763918195053767983065370142151180595920640971129932661528307343360765688463444613764466985303729688361458991038850481043421643806776710263932181619536467463706216894334880316369157961630651641903759382558508388378966261636220942628613891657419690266883818911579517251515134736940372846763327177655143191750183918044233573860625639609284127666347140449689405047773791391490151555102637246027348758408738822746700653487019623908608840194480224642338616086528537761203485752909633282062639004418587694848087751025757270250472617317337379554316638566956815181439197579551803628341107651206311146807809394395500602085691081740977784682860493546804275776762877551160468592606451826803692741217941025334074177345810137734999095498533186286972554132705901740557985374103233687963861449617356331697712211400117495465580419061860192256048886891554257601559215894136722730741872471022199486340593243593313261902748569474996494084145339833494778541565135529172778083477944037444807551356691941107268302540136158828072624934358472645462910231999673756359868236415388174484247214086833278215693904598920907870429134014888287517030326273893366639712693444829129066613716834784054175498345836932801309246793262945985079926438804705515386427204221947172499864914546274372192875157184096638141705564653900402866207321822687587223409667633674050839621332404763053332402665232254347793268423849121605533222842866839773716087640926581659964045013449856453220227846721216145406903475624518856983196872810955253413199551275524670446390633984682126315942943619820827785935548076065658335919926926428731140110315144979468005615301221013483849264846930839190376043295519944256014282815789000396179941979176306300203378038163436464414052193901719699423048620486321139012784543297228725888916133028136001204822808740628091020157032093841911776533812685070672433886261321408741202680173144461697216640746204046134114557890335112100691463360342089957217598593549829089636958664153295770356843474300217645059175560604898166267014724640520425897779142146837075456691982269627621412695698803888709143076880762313808520295325616160846994531872731722438040290542841532875258712649311336766736201040502774623332936721424092825837544757980503619905098819993192631938588436896031940421820383464040382391820418148099135198148153381560321597485359851119035114878407739075293885364677578725068454557565292148729490220652625622001438178273185486027086142298219755822131089552989324893309484236840772269484230175101671579750314859610803831506474040784498071163132499531302605621591734062089052057550750533855075532363979369458443507200723768548416619280119521150849478820270068285709939959840280063719312369393218388534859975823076417051902262295752063925939115332724424690447038038548524860121321832951702248876569644873254278319555303978239573422775223601694832317115837316857989928469983424398486406856379102650007311039105688886644351390139307787319940335793422060368780577780655952109290351009605609552671801219678372113530896287082703546392719636025873606858347499666877036098046459626160087692724872559891503740503933280316795286088021808814831072783821082703925372922968602306090642228832174285841741310517757642002563298822793174502931264900717494386850757150980351545421398467559507076476754166463257639655951160482257371592773384097471269876466033960989173093406105799164560154075282620100730506191783933049100923443559505670971269797234607544378833780420312440672947993049411434010547662864929300828030135341722213154883356958002139152706275792123413322998352277523537240683347428030507535723259582476625988514630862024382035029919218409492758010333638418798759829909016763317770317363753292026323575615279164770096959215848010568449593898481620026833318302849792282317035319598948865817779949037097813277474211386444156092051471734902687489258292158392537004167804074249790313467078112244762837974100842626859637341735451934026581032793149236358547173790240914853135165117994042502855599218844377109953063412503615045874929074752805460612456731789287980768817636332323688195515571934829800471292277887449005734488772262746461393214755618239590287356950753041747680800226596662910117879668736523086983259233080611211076276971356239816695910025262194189101819718351828466458524895024415610454989107643002652517726207818586230829692054887304036010608388363706847659168297988072974836046931508637344495762364004524044548397213220234618229142720460851744651731577432472981496792566290038385755354055818720805935402114208407424342032303122840390123421054582255206411611480320711912560518866966133865024720888263621616523172393010481612816579340469783832213155355707640053490321603260701826701147897099711314397333901505479882705084107289070552930415844186742243023295942993459357836466973359591350336908954453932306848500423981326056947011494506862356803640193810134710558988685999677302551485836833479755915497437543375160479941029130212458605993272123456650526544656175717036775346263378641301669894744713362240522355472281301644433725578924466371606195599393055401041525604969775937403953293411111680844095854947881124406096929625513557353043528988825303067704803258173904126508419991369067934864695452795117937980315790863047258730278521099004094129516062015658172259886311308360280930133096252684245562055183929308087688242802986068885099831738983296799414651330686257600330205645562437433576213079046586382018452186629134657494165275887149077829625079535776900025628029180296727781101014280353445685153369593936156486205746564625377707578078188541676500647801621696298297260414248201556019918325742871747260426722041111460561642869257439301638821870428795898831553623765552662213305864242622518385794856389635234274116869820161175839475899431136490918984336303342191047692035087778469005707385717134810541391599144678150338205134460619974987907796488728259777524847343688001383441028207627493289741254589878430954636928594931196327158041276195870268474376703675077327330832921927593365735602885656830999129198273100249986350161290660515894904099158139525570449243595033708675048793542181553147516883306649930755436803043992994739086142565526904760875067933677337918636429928986278444038551779542263133508545561837127753287263505101716502805370563062447088907077972323810264146738105298782615089488710419378493056461016641626554450280485507377018468314799327924959072206866251559044260660331736231110931489381840268090924400789122295395691094841195803943017724664136251872164617908688991271486327124441558489482683153415345592400100248070739301660465094261326173202506563873103938243793451465671499926148022812075259376768871983705031682785023510564241893485265225503085319760200190737320102717260413143916845741114336485437360358541793465612363314112220007454286293489839660121978982761032896973236074944776587153448806331990471090668460754045994373858263781414929778843988542867651363743489041052547653697071196476196966623017687328099062175393666076921389006696781072470291188167505932365683586576055087544536692997294979917644226223322941249369988916873769695538063601395412893969932987739234362896309408074068927968404876236964885753838504175896488916577776085661504538316448928153006584221146977210113176857076820068980885797029704437509474455489641308233051184745844902662766101320460398180752066294225667669115809192452966121952901041846476111620365257548772347602371393827628739579688173486968946633249770296085547275212507241867178926904519347956963717947454907793673163132465518302574117678388823715335303050533377110870549627709628575395686478187272336208561480361128641348233325839272097024405298959456283336696026272050129682965235815346484242694445560086247594644287330756539170596306901030456655036325401252974862026482650862659599385163208208983566877166499061256383064541014058612283810613999231182040193624337203453807959228725092133016271620913439676947421645984375910339476053477130617980666956969212491619833061116459892257324772946678435084583121953486440408459167990577564261076599930670603208593911818332515936461303099989243647819496729728429288569580903517908616561277973463689975535141952542953167079844603265967280417033498413576674741127159744819519529113823312898313339779090903365345804021083011108355717858193307501823269429591622247471106324873692378798308594020027054993359462596996582842251737230786708606691786135758760762221140767344729822146500674163396312045715328975958595055136626215968249217783564404392526038191254597066275155260693325520416907880306743565891576069295536175405733718434456802758317432458686312283624762436608188024599932500266227279514707155696144449525835690459039193036264063881546973434640994294479144531946719814109486769717666245923756428140950454113263851430867832341921609922674926636185315194037090785977783510418965757313390187478433923236600686282898153502937865781319787840164956651994735399830900044739900981104140145636826030047907947746406496925172779847844066202948122710126081506984585488793030448920093237006551800918935706072343020111088148492259711277094677598225113236567203540324761068333912554692023311212838701184227206048285367937725182046748660981245250286850999989166504286592835423917342617901618766100743330946511246754040766453551160538498169365679735018301026251531787373268790039071442319537715353075796183956291248259914898533059987630783329870269756117905948704449193295767645851806003632753159326629651579729664632153757885773357092737729981426630747614776353707834311653770131634410833596518524842328610604120119262685549203647153129761031936691008517410379140216124317782498396674584614291793166318517996888859081814699094207515281354511724262454341500833932101918752408837809997588585509571751484868951847040210946751213119438942325408342614106685471142392764823981224749756897050720680225514237155039532844064557955304015791972710350228883589647056155429720557951394786317914070879774846484918017728978862259761985921064486173913484384577686557664492916129539024414409178089338989425653940186905104888459147274068654983415176168972490023673473568564732214617556505949486808055187134879824022055666819614231816273063305140498438613612577020617008964420970819295479465268308783411901628342681667104365858529472759697760407941418636590395379003461411061919465089746490865363768661379597031771893197307855206330297260222226184451211277326324287015518067027026446074495960822568538695129700945311283766057407216624495483487150880590455803109304799086060750985657594687049197490515667846294527808715838663810595511895627296465369737972270084046643039853490829614002440794169068945305470047321980742522713924644700985637213082058417280480733058114914868219054426121823818986678026374094036005833235249063405041027275048368570140672272263821142512868602861900389901558406234398880975312527030551212135941330000039194404132476085578494637258893971406069810623698359034493440050266999999453512777647863038525448022330973603910683824175440268615230626166576944753231822802791218531565337645402865989724897680734083895951194947120005834962212665139628778883946975977663627603067148772684857312808528265870067412653916474084814343313587230042346145293298899043470460791975550504411220727193427731526481005795341840868427950274937124333828234245609656749030566100108018495230455132987681039656984598690952066770172833746753404955574471324454868399043155930227210527326986433873216339064413736466984671619796317948861082039853616040850577122628796419912768223004840955797315145282441469894671469832090459338916093712517147921455527551749911146711744694942777745928492153740037108605386861703192637205798241843091108308703947208121440716340182564280386043456141296339953809599983140623200001800996532155917365791941206895985220633888767605236637791397075300194406248872569939591509515405711227702477202368020723638431690001040189776169548281246854118783645476512270360362966466974096372301952883305163569682330365297633109304426806152734606540203420338807079332709622884639005292846356245295573213420576923132305174971691917204741930162406159718671384202382782598212733358098472182658015570511744256443045586452825572907276076347198834542036554945991644713136823297732249641844652736543652131897833138475802324575783752867470120477937210672746456742944573202240719841667676583569179521970760058956129245448948630088805446514561257630660521950497514612715901805529752009709605292575085014792726674381847087515468257873345789068120413637501024497907965016832803082343733017934934508244666027921028981108740661353834438984688308302531481523341326318434682929283385438127360277485831368832111221453011387323240386118923561285432180056243683710754952875797184638503202266414931220538750531595616155774592016954526131443403509930106820078962159987654895407178964703225224799930657894208198581171404622265948224331137105287129503084561674985342532411540025031226182205183703042608109753381166139570305678067679153794168789545835285204108433169457871702320938588448321830022153262322648154481316593587508431909271086836718261138507924356460129564298812959890523156424198606300948954698440187412681561630537274607811305079048660251137345366556746487886961640402866670715560425317132438732700960047451016953575791943311720994392803388171602861563814455082975521522834941591029018674916116241125880060155619568113818518874768801299465776030531947592753002541162697542394988040470773823359129674747026691284379738500615261181125329548739521362369920806022318400643701789530993655155631198201802325583788712902798531129448209329263998363368815677187185471869788624152414030447561468321021415607083605731253632810136001235896229013539062948245140563065408625003347404035320282485451533252903351380825160602503186877576392047496488792311735124333456276780158480998043765462447722932873617876077987948975995084490130857735114761384460745413308777235218566267937706230028728732460741917562540002102078883085552397531966416094796021757020615555257954190418998622111843893461493862761202872180245415064850469068966118347066753394611646045633093953980767666307099395402094378555691764689026017380088251264903584545503792128628090845587978032804887326464982330354863772655676348735985326514773985994356044915639528509360439756448642870819713551583756251202258662931151482742271302813555597117022502685348134149644429063375776456752505023809698472033266286207855015863929304141284087481393448948251347317147395453951423692760803732413614577157186366704432361346801044012635600088472331103021012537468298892360950841694762290029836981361451866030959294127644947376221516260072828772463908124841064839208177320513880189216751737244701067032203337998055177770974194642591780650689365788470348157934204577881691877500639317449837064305986501559016428041132619519016461624705593204353906729433623479041236540828450174665429677783044642639305468416326292381987566936443229110475147273349374666104900603925304503396033262794561314704253342555760001515619384678469117492979893762987302408176700679459435887210667915499014634756791699840117422765458498805541431933756050746356436610331469052366217374181769053519660102157778836809055371610053929778812163957565735189981704501688471949247192442293947116142418288226289833706407994092604294048751858580294694932394588473293291536092779287729445812021401788215694421907084143703452380536025856699415097937305339472936666910115369190831922469481626662883490931656589124277892409299642248752046993958658882399162348712568657642830108677485278266728456833350506396979971878488966179123348894331513657494864424694398029661335640388296853572001577132583588262931655588740364226433927848364256165642900357034848987552747723037314633281095545682238649790392912886992285096906178382690156062531316976630545250586329016074915613428092979442075163286417929430698588483919137051975462072689885921737125876137181846540458853165947352340213151278900132125133877611861994158589591221761756844778766322138992520816799485279076209958736149235095424682730158336882025301531261057215712454087247101723102177889080089965728867862200764912395938003933685892488621959397447896133157657710462146078865342723224814245849068388017060586413885107605413409182417577204154706350798710778279379655064390715403226586315600049769042466803238062124407704446424746611453310993156950151690519902436092514069153147539129288871411128184526899633529583122848701732500733397170274666080901343631317664890950721956985257683439870099058852693669954768156807050743343619697911979778337384619430817756384802058247498878756834164422198266398549405418945032424260594254715733465719845066717786787556860708115591176145301442180408142186577417839906277160949888967172060247853277549418317659568734172995517215540613622965651012331978357654012003600631534139592808190252872402854174887394106764745996892252606277881130957711519432108838077618018313411734456407679372495574660543914272677370697539533111989208489247611392131333828666682869132229079606962821079916895370250896603212499999251024107296952627466861403974934562021410098238206894819427091717422561358710202446518270816010600177430998268917391256171636801822854805132335051116043472633330469746449560790757175644232911532055565993821484225168011805721369201616342532105153676783620012733310238564609304352136910589090287369025267561913672602346111571194547256781593168672624307989002295652583377453909890455721238987969408323552177206857246997985013788210973610004958677949691680669113970578392099135665547948107198276889874810947619431074906501723195186206052789245171172150426176682018368859547010315316097855464612778178688698208998306333664527178680462460738972557465689572403182956496080717316350971671250971733702968667413930352347223734613692366456829675151952042913357999651525148344785040329685687394559073891740673146960345849478441009618342812446780819038707477756499062632167338253598523053647026619353964973460056725359561810909046833246924366478436309373752733351396659201403041826674425343085735593826660732327326806607266802472126125928298862440848296479583872584267034859208288089164156388858406983116008837653571380292392327583223411750782511130487950853654840007573053325633776582704886232943567234451676584747024653909897863055531247014252246549384833978293368353634677293201978083712456141970885313883976055702761594855966503198368423655182633296187958390019053516846494815053250074046810931220758492478944470443295538026239794328805476552265652291403901025415883517775087962856590943315711210437510657555266108582473924246288906983961472363316787916881807680204288292180949259494046462496605459022458514286404606964390082385407379522639600625445927739822372284256879077385822329278723309745607674374627763789326488190539131537381010229858958464159143653151987437207706755297188364363096160262921701003364537398605255252406214872138122807491061320277144354250080697659069517775710007225606901276519731606204211571324589363422549154007108915183009587163722023882767533988410318513524925673191152342428005836603079884351662891171497254894398091306527854755549997443111540656610911219656992198048610418720558532352895478623314649964878099818008060176775799109953416010197516065808937460073295991350114880070215666683416034274328935621419729530898230903221590618134066622497629509452296928392414404596806291387849827797700159044550292545104007491392431204195899310609030663432330276202317705266600200630719127512992331692207463529435578240979335815901786606201735116614004313326880172334800767778656763765619802522806918856173884493163394400489360513705795214940364173639051940249187338405896267460577050536063873241784413489454290002219641249332772220945431365696398848633856273884975862370139548050916847899161956023047705611445880602323672114691355417216252846051154261060890074202176711166708884393722459772274333382155488051062313381867470373123647580797041986181945492485775085494373967889935999551955817182166299628292314375635179733807537293256851189056309371609317567964928559557063624125712934147895812417992091352659832863961618188730107354418373777814943077621904721770910503325554368253061338607139363930600354513788955734773146750995198794853291932457333814442341704902307829905127147684067285089184054682989911428894658872889678106505442501669342476993562099570419295205838569945620025535174342349564529455317468982581286739663510865892844421059516942533008097154882948840099861585231967433184799411175133165863871018705613200390393686678370892417225464548886474246874534240330560696477787198612277669779992199021174212474102354772438217015469270312282157080778579071789671199955022549600752155463502443105106316646827429487161199887781222423905193710593419070412502676556072297782159153074844865856913284448014520788461537371924472604144782069570608756156558872675153962824972785417650084771269790899409531043898523720391630589744980052804397628279167844817730592144524313292052491812853026347465815575142156708088171060719340740855291573029730062222297351171601049333705758694450539331107097768162291178628004495552686973749455288485230930292879771330021455099279160370945923190023307655317542306614614421141123983933508891377625952777155276338515607746647474819797266425206211258638559791083843174949096286461259107354005643188530052160995350630352331997270053254954358223354721769379073406568358022453583326606153488661166898123417650600013416965279330237447914697287014557763515810346723987617827827932007025023876663192373905493611326306656463274073158486902708520813984746737429813079282558976813715306120788100844413621075835593049413590944400169960227575057474030779825144666047690317885421294602091870183953880097691513884066402664782061683636688098534477114107788618869887874625502903092580276749069855146800483981460827424062804258928266904415217370687809804256667155141380826888983132193821156615598476722565033189821628439155965451622980786972213983754201281133308365217870198736564270498309286092354213717943745125970143657720545975158654812852967000442755224208113224268430313987875940469064469857328827496083356872729839208498192025666555974917489395616126441150553935590236159030448372059572479483387103253197294847931607331413707179787148616755910208902441980006151473513883935998694233135164221514740696094199834374162039204717751472729891768035673573664153461622630226616191041474298901987286634958104486444921309822184178330252757170239832690167869750882386052486396087241690690580314811097574757186340111788169235546544863286458978840929543362659552857584637899645350452906321215033989778383318858851241111652002885321416033907323713958646038886503278629020383255839560629516472952195100563482797538091874614926481077376166851707709312983116431454283736353779581253382704713098570648697633812368599869022576813033389465083242451669328982492798350398865453636352167728596187566598731699979268878310507267588908321539209584351137896888921577235878183083606885623607721695976679178614950707904914770117545996640142739788695900391618666321313702503154566140612019332282161836892519407166154228689331853124726898610442239651225673973908633526428604775675965410591615742816762358928613826613616437859342381797290606528058373177314131494248548674727174569699674349937662134567640178163296107915406784951014219870823917747830271539892635888332532889806830363161934935631932990530170868749829453814401749955298613653571986831564911995772279197824903714709691620426303643364761950631507328108329670373595836955884489592873290778624152588593472532649565117181239340804691282280250475406360729859575410502113727608917690478755949309578365528925379907800347615204842076262382903254527524012014382324325510713185222261831186680855941109003211365860115381723258771240689246095162186822325421911395233009067373081427554170546993413113540605917448742000479141384468012472834434494283138830881505023194227541085798369558874326580694921857334742778793797082941204067479603190510422751390847247021486542568065730910940166170475810296870352114134325787565628038913094728460742912574267154803395483112298516982611508336226981511594993920119488099784931549893158068327740326588653295942745748830351175415386968278551474428856384687651385139275664795290172385768195960473564378088287491795712986570457351437528067251522407078107445299388842338693120420145713894541667422559330622458508007191695549030060320112723398716166067578480068617208919182940633146416343529541464963248593572093131849203294415948815919571879838017252443503600776613746570361212712907280437800380687345587846438868849550704323817613438952976648794606301922221957482637548072888520751620131820045056721606078458176416312415934684737223089833149216152321192061890435673131325944476664363999194399869615766527462619973340429648663614374260493778973785598113322113553990515486067125169275945964323658296672931600274295049733677189153771392986622699704342064374007423708339924138960799454494401973052267842541327375547378215493797079882357331735561755044309534228378840833221781505954912768203070491136905093134191760406058704496390684817201955824450050655893994820346972573442834267028315502535535607908505655027693313802814307053934177115040319508142507506454536886115944609895670082771546314452328031799730430751433641494449633985668020043524659667106264403970504302728877794901170993434647027485204659479956617722835356112453473362012441703165822341460404982155881111300200209861571400080844140539843447163262509925277732768518441957249698432292792900420036689282263066707657275138972098794534998391042098980493437951972691192273481301952989066439261264337272214367604150445864081739751643711750149077048481861273229172173646973453779949509193062635993128170646896991921776587858054695516635875385991857615435323421487628903142274911855628907839395164240958899630622065600626908101564021327421507534797971567080011442816518405706299742021753827305419469888443943143148196438889044225423445410816217326061165395284847093761002885055075807379635396546681096865464652013351524664737250464560295682196656237194112147302271919072113128799312087712773822779218239577192183366781518499269835321410214483306011242137953482584225939484128184157178463699198133257058155389837182283502902780677299843709290240374818953469988984041751077521932581992302010614829031599678344654647955087023611548245825131604901809470806264380657314937848071057696461622508594317484936097637789646630087281075224626994661081128350131177426382866076041257805083394057111386979147824719516546842673555838233290778971601231687303504844811397114546182370087790532359056271806152524958651339830637784486861855233508934059902340607013652266310922155080474415335369935843328072006817097548935264057043027786842535248822178415676164370331024726204136752165772952367468281344024624923457077133528679110405026279842994310241495648822180723030974702334682682952772212301251867691125517665831556412213609392878658974582765310277910305754719094736250652237253308377245342187870195377960572969272107941380373795600980605134143357936624883144780433463287582017244115648076529403526900027415262864416303910489028481265436232141903426550213936893461982649244261177165892657277289789552104094369751580977078376060785518181202801691364831811029344220810571447872519349873388149950811009848755343948802541358109090339426985454012856479781317071860991964136599445817461959173161881369001416630490967375224607054145396260028309432706984783571252120751985869112410356691900717291338841992830022107163747624134697274158661648168753053562242516773859694145361174250537658490200513940823749381784623189350805134105273730310234743729221473715167449814594734647544727277387362259640946063724003426812832695945933459828765873290143358465395268366682692256472873139606109519206329122725215317927535716498338648419062731905790248637185548023776483763703000101241096354807014350278344649725151135136677070746310288130255362108852347099317776786296040862186520918284534685933798887306479910722364265814232557562162003029120317075827859558347637974944718219683566167232659945464804771773150726413903377009885606158588584147326850424183106159745723934357552817045077458640962575744613019330890419572537831332720041800652426381413188562325466617849572921863694084878353569348530334996453503353666477988837765278679237474246145019661418115703844272436193451467467724837393248148942245548177182452989659222652432761772785106568818051986322640701503741653079053005192264114352668974069378055176081537504501639899545973129768409771148769740987874907303221692794702062702435219301752586359719789568680124682805075276925019153391753785619237098363298800757543361881854626147292628482690913979448424887930632452137896510009380338283856939844547556443295031979859524598661303273430950188375972370978319336112376964070453220436082208301565825115436258427172682122963536010424280745207961439115788329299333363141506368983806587938257116969838593097525715132111158062976841924335603568428372073661840125688120476928826280196554461715464256133561350472109920731500239015483871368275274419871782241650747577582023367315209362783763607691946521866006866066385954580796284480263618730101127977142671982653450128260273935565324292710272362219890098429121851945951062332853667334774418719927516634920134181304045485225904341223959146167674282854381820290215802224039210684636645332538679262002592148513462071709128799125293429265915518643231823541785904094055016825010704946283359555774072729114044535402636448296043426428993764503920870437510716434537957737229866632959935365780927370354703660943693042109663269877484189014034043692195261425714384811214510747861669991010239258132400840796109815226987453117375428928641993007249237492644914486143298746887739923190562178601911599652817493837521890172265216204915756181067031009629862921730443140668436929839375342734893850347842138184635107548856968666249093209162560719114978082526194461619702819151297882375606509780882967460897683558581110712746324893659630443241883235902380876556633152092085064916922640812172651821303379507890416109834912195994034520224107180052661140890914676194493178853982516719488848637259983843691219562979658118379346257365506827726304654251309301232293937595246845617388480892972016337288674668022800499455143005480709908315356229012643539484002321395675579587719381645973027176231902853051085251579932064221675837643771991193757400263468193154856755139421523023728340658555867164301305579741180911913496239327576477592611527539398382152352063641496112086964911002066218153256656449879353408238624344717330924825863213456347217046811057021108090330454785249513169207943657340006749517322520720753015403960346701046800089520308854043261020425049332534298857128370715870241352576345740479397336180379092287005969384565201906918997631431680454118215072534314044514513008745472765783033956350315755065928338084064196209988482726357885486498204745627301346904093768061682609780644003606438454234146763855696035456599498090442866704338749713805398455227841589483224641924353573314822798454091842767888764185606751681518889371039523062978240065349338390373761893261524399860834274510442753996653895022553139302540221827122008282604352209067846062255478312141927999145778713261772979963866597329628692696875381991922636592617893565561706224970521188576521924645740820851123904909462283794881408434675781243439035145723566703125034972516776004951508448115852705455066105357738531962892745148773905358615009874807471750963441660050775279191469103016390716028017397584643264901755486038645569373451944568516752385837357485815256110790852917428697184146496103083486457908693835595108000240547380883111327199396993057319751753459373955870696006878160170260394531938636306381440294723876417156478880298680555189228578175261716218179222377868775252589637328921721342412784101941997032635524952925501089590037968485527177299992154619959944571606008079826691394495496738748857356878335140620999328481259325094631749095072503289207416446941637401681249520420146674021881850426199525553613463543703988732919424997998702668048025973339949046433826577765615182534882616896895152817945249703671051083273311360815786608584138266421769229245665485997139213346111823620372873914618327587049449176848082473397905338692921694676929148610358969487045408927454579705411950076273358336856006722935818383039411864027433983712468955698124366898765204030457857620709338987101932257917572240156645783962698592672137834474745583574669323545228829834247997143644665903084091059811349327624312013593630160020026831814803770396355722837726563786066469730573682292380054309414944226135635592177115580715235751788452519888329565202019201148500155744241249549965798351615989501615673752318395781004968221882923814332530622927630749806713219836009740021032815856298198111349268799571700031544421782526393450557666616900309061065557447856671901325858157876228618656513392211836148578246105661754039560146816933916943265875935055423877349147049913035668322184565275481593211132679968955727589649688750693236505598093160932705086360296536739403279471768865543899384520769837799647860731348057981645707772708314477086006235811449486722520198143490727003391541143281667369480608870461707657814930770645945498837456155139433070586586700805402961689701461679622605869809119127901221398025164852760480675327411636947542990887773927205639200453326857062876067540160825293225915192425754850589437392522515247466217261392218629090695833783271771846806620010316404433533180515748546510892337279555434778898852894664843984351843313255730150995622777476870937573471683086955279368386931394454419226919997410364591442897782403254525227262114113245774683436251919665579232129745521224494067112716215685872550664429212509562581872351572758033655784458929159313489915941202752268452552931814447343488646842688388216372166395540873161160927864269409007076360415993159427628962545563588294827413830761447601915358496168804413152426289203018185213986079356530424005672410116310915411874533500374366119859598835185763701682091088243658472357579106677751052701896416193425588233116123299226999840412752288557735156398686883426096848114703856707760101597408980087412675300863370547650970925036202096759267227045285699476938197959930651361424928202130704528281784601927253419782430759180347579480369942336793541638269620986685081034308775490817175848378660017029842571847308388428499696444350482956701541260048435316101745783185907014069410071619668469643456444798652452699349922704299581545573755373983270610533140236949736220437668935709541220367204055667471285568304082501232099643258371872831749018104323939580725426043657482425701269971744460609415340037265512035043519078274623065693361236979658474852076072796953638393774998744794765086536804895701937994394098943146244403537068700850945068694391519882818272040884615496399322267168923684275666641910678181713546408067201241267797765062588150211235304268859504148663267225518284887120176033599211483599401755147247791840365990446657729486882103918056476674374015102422542763377037165097775759456600756640702447707641053254592250307180338608682756287896167543569010112305654668080132530419151937729955197494405499800392119034057404430724241034818989513135858225530153592217633156643060208018519555440492934303022153322678472311829448159300271757857316647661797989667484605676645449876723573623719017397516449296735183365481555971236082329251163916458478114265107790104925731267533459789338663692341358734274103510790324224301876950701978946775961371342227068770967392478572051159073237861556580731762892138417951234595215678306307749225643779908715384507503750745551609250109767072792755126183032132497427586123923663185360485267502534998670779150189187302847075818800900473313175709391754169100754585922859826903523747111701730080985456314909113771464476315854763466967924228065295836204649053249891582924756327064971149092974600103226143949473533963919106563007826482344836277849917706407942877657805834773805415448321498608743544386746947078274880469923262031283383601824952069620963673852649236445215902252072377624421029223385879188663012494185260022502289725200121278516831804727124916619246224249522806793522252250030329407443377348570091220281379138396022985133687943254502133765245231677551473422872547593869752839903533831248448204771750341986745006577558825755174976889398408643046628122349008304793968700846590135923082089388417289762665929111742806140582640002122874452620101516785023173579636934162283803862979877645317679429268742899168303110550503748102476719297823159733071359825928737039192949442911686913385468747162235782020390700254852251883519012661108859652205888839123490988851479937221718917648389395998606162320526499077949895809234101024691122808069985387447384297104439201784310189233554400551247613871736223906924632372171198292394630931175643546572955137508053182359157841104500438543132940907011395990199386124836576792032354562600568128144409527955725719114484171290591038684410835870158679081910916103274613552016640221688010673783648541620805580736550245620796850110325810700446731559636722234694696516051902302771433652059220940305976115650622872832591283255732617068120648597025436822650059122638266706010080231297707413032375415923834778270041507084148769581025159001034314045764943517333471234299427125103192917821416901131748281299323593735329443377766422967511801479405139978664352261096794145001003327344986155655434394679099090227343577002746706626745996241743418641965023853030602552624038549376112408257002542337103790761648524531927991268296900966822492679161051460579389134727177896822620175873627625322557478939599647054085381548948476816955450616462348688476523071902318125326325394072014719578415029418456487801126030183462262724087895882812174201574175161250029047389967417853830109057560225356680451259348170854795234279747431876703099711655990206454641074586995304247877707876311288678372189991614835420937058843072689727324922020486507242493813964822501337910981908931792250650695390981985417072723557438597309323152501256849561553396339799245774033292201234467008726560941191547833774100684475707436959790688142111532817793605493810408365805012234740345455193752279996380135404795081376190757537296120772729233554262334488652818718908647555037587320789210509202280238667361705639940570058528394298112548778716629183714767569040546400049397651512410228597942489613042891168843002393126451165972958619504001870920253667622886482256999908178657052022519125153010206373668067123595534000096715355079248450514890258588776699316438189726718422670237788866613202258034188347712738291304215815974720449318299498201187647919771302268378609687345803966073944984520643484801703388069557794695680488245252075362018731131060414372717120186442361610960540155341951373600163955000729308895872031776913964830747256823884216517866634130265613607255743175023510401529181508483418461041653902044887113987778464462985017299235995618166347872002812594511298193984994022748005383671126237737630759899552695678401503771874944380055692186147567981609738395404244589015364645671891938067134193172395219163792239569751031679207273857503583394587311246583595309159463867528289047791983503746890138869866864404019720322245820672788214568900240729241579848611270525979565589330616934606320633745455309068684700553781031206539548555978489107196080401570661421314130030638260388617217804079478393047386168733114235278360400174428873374777366810608391342823372718302287317566754436336102744233199881674721532433073787947783232245918825134351159044460298105365759115843672192870804692481084095151213891398647384912513594872017606674905758937941509559641394136489810263693906700966217279657421087756793979432791878305387281634532133921626132362801694529292397874663153707347562835984439448880496860280636866693720662296485953345389593075146380743988371548046842560852617686055292153380892707691495750486587982485034451690188470730099980019478969657155148998660619450187430170854289390600165511085862841553786440115022599971448250249246669576395593231609255818006129526605561233905565422547009396519281883956345960402968793541125364465726390921962734817046335849233287573183316704337812528736422051903239400082866353673757838303322465764947173050942624400671130247401626765400317749923120343406648711650819336540382083236145533832056294643359435374870688107292474413691741214789773461506433540239326180732818799615760821341746257859432045304043179198233254199535332401645307042265787616963083837608811416238705227036292312264191854837097256927000827442268838845172915367667878229364056959459722081511618962560770977881581299811502666060955807442303915652946199413171327643480718731119427839124622232273733477512982569302940190224157555188870950662338051319300910827539371333434886572274383267621693739360150635689057635637524382231050834059797132667801565664443130124592674568679880847953685209762055522156979458102759374395248347445413223092648565897313939060417883860010404347043698219913530126137237589733772135023664772318761470414733986756154920191548233253107492422607318719826942033636613544872556557910728091944421704012510251447017139511493565959725107739521197295192501043082793306243713972489678228513672911066719501611727850654949733046591555717968353324165021831790818668858877158988438380055948683141962158514372734339893646255433877315705272482607359614451796547542318579981468037639867678020278289499469646638052390241102927450959362473954439772806685133548094283097412837956281908306790455176871226072443022527027355775138136258423212770176081665176167818803943748138749448505578029479792783936576757488643094074609036248535243168771963722811548124165193525135453232543011094241295078680407126775857370819137160800702551735624768018631339320878147598117907478820387310433519644224478354893368837453052827693058613920645160323390141037150055888829810200270137478558538452177564330951373384870668013104900679676117381462197287206800025605882040437894160658291298686592841053798632008829979182141661857598770265851799081831056438595990599605542416401563343152777276655040325783091261113221191093905294502011670921224960305154311513178345220679064485624009692462043238947175944729508015615854442036532347252970068657704774367153409848486628630830340969936247190542173455143752488803005611684500703369321079711573232095570504910197119746439412854356076219986278183455708601096763002162375391726103184148463706870186795344753784424264663271047879487812063286065554600972003394318785625125823469049726618256144557289856300635738809288580410259989890232267124666487157326546687285465999496079281145379651153940417817619650956606072984172545266868543826867434120150340490408698087011277332400704708641330963220737926896520319097657037132780503859701121004324538859779974076397158958059294622336836505426936493095745362614883519610310623985810505233995270511557426123032623857056615882524898461942818657729505916025238703095172523991884621214026246462451677439295813369080231490900551886673210301974742051054250306338027241313890587781664104834401865680814294251740022290206228839156832242252211642099312766643903642647910653699597852866906492744107169387850904028075920470667249176753645891135371009206269884069897879604666476470299743680965477765560690990107798992408396730177586840072961385935464215245004994835785390745487528305489905326555585417346796028523141693780975553757092969007137012014358165800269493292535326638280366925996072498433065894618463961656921074861616193162432114662080679597590720814005967685416027730958882234837004369289740407825194143566461777363029504955442451714929280904623460961854448648824386140615458231065244278784727362376583377326611437157664847162686163350912237327040823361871733875232634823914100454062795390450876333620915999842572066720605175347612108765760676488594381069098659655373705878000438312731161842814048828287792891788090846476479345465902726682473389066373612701816668752985169032966210000185483624994535980043874734099234501550894230884986916090473851844147512082711218558368775001186040858984098572541656397467658510409593832087371818402468067166121635004049463051991353358127204602383849804909287227369851924015511879265044077773330001484262235862255439197888628674131100589744246386798524561131267869047950876145369377578446992039511749436322416232710441548674703904801943699905777925902166390716307956595919727370405789665586232096025910908718755516260884967204213899715432976849292998622642726604888667002787369580521236806431890365233442095773359848770242509469952496458735792986469413315632893534678431555034110432155004873810227064000099269858805524002636173987433519248957814305689132529261383411216643850089095255272333990550061814324070343063804732264240456604938587966174550710810207705236055212579759629599964184441267039338054597549522349615371540654741141158824336415944295000262695278964180556701254498789291454299719633825406683163625003596764128694497709777291612547704062709292421831986133676263305886234579677376922318473203454641596214902590427442578062369109902308535606537244227219751655472717660344084952705735811920181798361419238183040350463723789889404653186761931281037268667060328624873765708138512838399318513905294819107657574480172485984407652825115703981453793043664265964858652776261210189111081365307554526961919012843723075995165556142494424010241244185700591074167392660547018741680032676864720339529332138140955397264867474614870449772515627614482307359903528160775289123122692629763777341398057251718308659417751559292016638169887570737535897581318970468965760334682856811459397516973477588579465539896181432946969829539577261243239657631608612531616153696547572200803924534161648970835607968615431019294350796655140553512885312548730760486283320854804971372294029635015086715972884353019081752063008775966867180671179231547629839951739955938923968797388728638439947866960169371093096172006478782691284006175989513580580246496296256264902788868994396283575484832930531453502302681257636817802155600942118690563127134052884920317710688821391845420081268246938116485378855628727897148001948047188788951958020882451219992448272019587186316996713767503643272452518893830764228671421880385885464276883870012949103437794717153131873282474323541527413421024804295020394382044385758793920130822340653613575231136800158543970888147128420483160558779073827283422546154049547203059551042584623870256540563950823302161298280331305114553227464812982835478926862575840414607692510399919342441708333831715215242827090018402081409487088501984116650738677898363765145534172785548868300032023254849765762438704686294491324814567796652860756535435140258467284731619678931883293862229569354470410105601340251824813112890503821252476332567440042345953938048459696533973887583211167474361216595456175410999271084870409438072540237135628050214701333889582074268550669091480418999342377019770395845618645221098168509679316409711410797827707928261358653620917207671281112727392864239238924986107907978303020469108512582248990131121290996532350626917197727694522288377664456006862519108780647408882748946269396530132156076079447051180007090367598568397475178608849276267686479454305917273122936141690089237093674269849657839260399607586112337706047806271277203540015531420668389542351224061993072628186618697322252102772844060574509109261946064750043880320477321127963936798904741645869905200503994327428164600971734104911296326512193128790115561456892355352919834916410787229262718714749054330374601555502580308463086293548739881792633051332218039122869241438721477237616626723685505866114164466105667898796599787085774717600022578172970911672312563412176390395715506458676341063365059125503837467135664395471894240442911912660117201621061878363615816131697788947923625229718668609163636119709789142790091583444907930041282384865954744398508434135083426729105932724943888062572621558208409523820175971902289357943393969583574527073363041308283294424355177912430713119824782128272610619490526226950740508783711283898650873976799730579489003150498809149697915790162905032307673201794944138241432590172056376847152535498997163188511553798353827765474704621090265054601497541608456406113240851193370578591709320678886876682798619863843405458249501649456775926478558243661847106598840221988358462141164906671912510001677595798764889937338275934696986226104504075299800892948204484591392027365617717562003456826123329564231018465253903927129844713410488474598127897700416486761957682936484273620292020357919718052138528060835497343949192324730001904897277849421019014579132351023408645922466049335311573523000827636001360598461915898485598874894819886313899637826492986145338533573989340113154662045718364263751342366024529406908415750391615708701825892005967494271363302624283762798832257329982719427041164016723396151041558624795179120987186578606576478105164359014648776760489848742709018358143453897971400636204828213920889701729311046659903997533009025730090592907359311813940746821180626045418418562596758493526152560906578890622716614119053447782975745318201853917269430011534266223836476951440581803438613362996331937715396216304194743671663231971893194530459293360035879595347673437126115914985302067213368014545195376816180675789730135100330837442397572920934886920455244635883008911113008568761334587601326413135028289662302878380048358188743696429457742531307988970657470135972896287671791579166792888448623392736101502495961317109503472517061917083578560328576515647613631555755742843593014243438853853575311809334489090866765894157283455366562660095261039229051018170960612618127309621494900146289407106204628715580178407023477134595113614795570251400807313142714003713478238359509942380245481876819326208545423097892841111445531038009971661430938833653846748302040319081590562578185608050395773213399421422039448336568772883243551381476788378315878264082300489458642079824350735147089297201712134768501180217145877648311981500706043306932216428579049949268797865881844150077250732279728633384007981086630976553480340431522013491596497134178856935655411844769492378644219289083537486501112144551061642880250228227264806328017687916466490594871528863965283343471594013516111023834670341704042378328225201784726891147074351198109472417669816660431121742505637462981341261474480358520443954077760017552384510728837069857320080128624857679230346504438288965642308683176720676418838013345553752086771259595746712614334780138541723175709579052651909443973449052676966177258742324906050615323135426432236402518878428137906519838858357367946147481718743056226848315631216497571574756759028152230784405743088911339981616397888237097227831006567661477177302616361172393183579726604344660789625442091523857064992403368376909432603340922433436822544532095612864899992138929237489402043217377515011264114554803680591667213583436902933747191081812224069400781575725390715022678270267090341579457395837867664295385568097400051835812183007695636599103163747295755347397775963112629756400190874611932555202099917325013439396637753924875855366935578924714066466037215470487724971468585540983217047198544481840961940413106738790403900709121874836586101203130253156049043136787150228032903458454062998004066632857105235855718217094120318489434933540532023848229956925516270065555118513112005975927771350573746650371629572856635434878450088806743658658391868211579069641503116482969076567546148102260317130889132816305589314455613659617084750556988638229975019933209324411372504346789229518001584807711651583787793669029113981697228675787147436441095084613475717614813319484140057613349969166890910383766845141089133415884590726626807376778152578987861157197754425452528431410081146221367755062180322850406532269010231149411337164137667460632158167289684984457640661100139769600502739822965044599293923339348702924567428071076668158905048346635692640496977394048541089261663897414044363985582951764721003594175108141912961809105734093040722407390120960921533799793288886967811112888073569350390648590577243490016136408913091083353932733392893104763798244941280823648777975917090458942783682774370407490960174131253595685709862640177293412921029553390775713078304987722205214934174847165515826765220858356636384059706308588336505131302963569759867121862587809736792412655683086484074383185529454593890426158750197365316429774748497496552941409645252043119873851076166898191396583031747457749156730516649045799561078130486775478124615409088295874292075610593847547933052106571965041282346938131350571054227582161229694052379491582286133897287337945299463619103419837083715920184317773806383104435064674887625196806281568224806912434672331827180443836631897564314723515425724674134114725572725747087661486706276620043721622280507452472724705748756993344871565432614832059683309285725467026122965184604677542611350158860065762100322571078498744445435843579892444835068270151572988380789949708975060114674658891135577211820671756122081968173455582950893160315394190906559153771151500982995433345505536112276576585104927910485487005433830451210393336597826414073844822322124923591875262743387088212663436002222820554924450641330731467197445880156743956709678228828697641209144612511193482482846403885199168381935332844479655484677557109049578821896909543596806966739108932057851577050313821160268665233858123128151435634746289759334472900028384051765075463697066134476247925534546791050543263981036387788150440478269802675281365730184233485250837665264715322344457896060403603403451465060636391839505708823344521311575203968156777809408891201644882129542726282728437210441466097408467422516797352745586057191601331394395504754307221445515501473679997798229783188243511746903921228778960333590570799387358167211737827033736081839784660199855913805864397182797272630613627119106012318690270428806464031651971634763594745981146989090515092872303477668258087451882013966376497802859423716931987563704179285345489346544605327439103381742277767785644014586260627907815556609691862555695670235382346118238274617227428605032345706672850469622875818262646219967876277925618264171347559356581806370689577707057342683708295118172079351523519702469526876429958676881984425760771625756920478137099414033562961781339857231946842529669589769233057706604862095603030259630125939806148717571916433496295132480302023205357314414593635319392457551117102009502458643407434264603743667243042546414384748214132697840602076859356546435167376710812217358673249926517673452244914644105106268066886938901471292773957257186770589478643488783696897239276953516754572213298131997099677165131895557883274169936274988709703183653966736590288074499765372178678616158417557811272194092993254047448736401771305657995629380134302061872129976640476203198594519437849569688717467714301087431191967465036936959731613718581360668215374297661036771262214008289639942213845371594568532385786239489823209577487173903027162978894511639452772752387061858268014605843591033008217546726572590473139131711151795583840151551065008583201437118933317785427688729742093452448834832689716695475997378330271195019340047302129762013506503055088150862971082437779179003553923780474718348687639623468737869558369197095566977398467992127279383996059226611039149930133396851357800681099521377069510349797002900244416658283980101380820269924578508530827313292339261090522484375585359683459761616264091859100800344644519965406670708493135220389779170887341803344029819607635821652698775537667927547289253538382432450454575948209193097423919160909505611157821075046301205910068813930648762090694132407107441906884729901877309091665016237248635786556283743363026644894851970927865607832278071963771135448929507355195903711883674779436763145719134414828731418041519147504593103488136826344408815954538257482640333911054281391846085597911531455923872602034920247918642433128271413522594269566563527011988949117879821135360848358714065505127559648048662573120067467796734978593522162739220897510816418516024590131526464849852537900368501227768211411635064524807830987355967580321468278175658389890060243577319195049503230164118898677556449394349031062460825778247303829222620225961847601524455045627941290084712064935351417566044689159839498217634860685836830125536161866358509724392750894872733579195919160073157329761127073535508406265633338434219785332919091982007764509517058633164479993773289263378524121889485992657219192142784707230784791293088140059847483154226412051351332108655639976078342451945663444464973011928627426526675821234056875568133403320601443221068536034619134725812968485018552836006145892872630993928169070533014651259125266729731810608512613014886119363414337463653660603869926298141150240310317076092880205640146776478303051548522769714020476977212391868232724901450804409887424647359354683151271744606175989641357151577676078764466859954001911055546993742302487450498915291030124785616690657896131854672910064843121169901180513414279250943196680048979780140897271338545432065826160602777058718457355105876519212574717580491009414992828678026317696146070697356627362671609387060316979200790155697725489947500272397803832155747802232307969963046353476447144224242653470504027197642668817357763605291146613370382556071988862955602439896770675373008023545682189901576971738777142835297740267032125344701811575850713402806808577978997407660918931280433092571177173066199846656098128122315916112494486038075647508938613285961939936310944897516952030269398263139788157753533141545143227127390008218179164276409159255658869899367647992593334563219610872856795659563514667118427395385680174028048073056504929800403222334837185788747220183323185317319065436822401960656367831362838431415532429557517956960330176761829811717307330661845172600596534698519422247035533112750232902634236132355711622103380802355205617802851900847038769453650173594305227351276528741614412133204493672184191819063978391261979503306572542572569202857245251799482397099339494434762902042792613129452332864714821110735915686489656915920526597151112871584455819067018350190825716017537815925109788620554961048263921737363867713885581930310378897612004716675072554191972838983195014479583851068614069652455178534472407946445985758391295996754600375942482242555212073677111709587200394750131232254942922538590734551775765359492266119755529499066347253135290097005272717542272931131784047660055903131404105330241133246032590596837072874327556668615293163568084222997052327897935099198949061608675393223579017643084018426157158841785413430057222216688514589890702671954868680877031286904154705663263341877177316795789145493255301076982101686997961023401442329778668692966150265307278576031185485680229529638708276388503982326188868465382199617645997830174053741490316787793258265901302872159967620460607266268301660463637070942856566447989848072299756846515382327956899448805600948095239248266354428247384462305900861360826028146552689505955512311820750680611150858485755736064053121632112664933020632899746734235981875356040871475604334967917750866514874134876820720867914987336916770945091281580911894996247865367035651910772666241952201749651216543499118714797284841423943558465458618842018321888598663773134909078803500286135378541851561029843597298359074247414949361597012312623842217245420287946711721573237380360271531008577110686529485892764387337585386580731197385988335050271755886249434411318838188723578710919318761558621547548599054940084105065085983095083533810128375837505201076197721368472561952777713776803482255988203735455051569518126847742004571161183507228740790529217604856314937033020597728597251963956114048594129485853944754124525521443811434697006606958612401644221560792707849646323675144900654809153956161851404544479817085957770842043382261581612642043476864587068800870206745978810617366277295088310321553364219706030388693679650481636462395322978316437383952438782277650550366347928078977084887167207902414547086928396976638122127865560492698050455490497309177160261867152550921449454435931765222327814035721803061261945322351457158606467715207028823236855011752911081851756944019270819817792863918184044106335851711977493426050840279951390780185610547638485143094818572735456926904877320318112613272846583766105571894254967274606796910856452189552818549724553013432581492059075406176852582034613106676122217961901514947422394876267422605971177580189318010875880755510681758124143655134964276428234810812267617851697356687559511944806801052678241477080003827994654388119132817351052080483903935834078709790436442298932529895197815133246477141937755251463540910116177598186058767039354925276558855287563101204925458137228008194707915204632659049344413673892789936386666854475474931815878812431064339131007144668026724958997941335012133054397698876078548375134091633276644713704520062748645284398826618031488685959466591699714880239800710166791239007424386353506049931719966664096128254556993729285140440450280795691372305673391230964851033129759917413309680045477084443580575020794822143121314999339589497808456627067825509478373617154778925180999982294631634403776912623665409601235444593087124289806988159026150059152328386333006700136446820188056383797309414995230164281853256937380709600576877128292639078256358492011929383541770722869260567125216274196429024093774387325175389378472684312279014280178955110450820224778950040146853387589580322220429145857881899873117142659023834312221293357553968160144173451579094550315646665300423225023790349062252987424463136470361367209242441331329249856532057733146795180241900852556835082184376034381380318621738616909870405429126828949356928393722585559559303129050277562639755358986604150416463881116154736622553819933875838532447258769056220393111127527030319233818982213221857108172093389762033274803801674545901188923776541582407186364080516276902984969639520297767595031757244006205855602827889636436786695740609382620736204681765440509341453821730235368426290746644426746895759532298794714885235649141683397538939418969852507134697351272070558485855554861208281988541808395171241725964455472458080358165090493238739036989262242544007188825043105529867158630099572012254778775630028160439859289957788186513803464156134057828462362481091268451351596753648303909759491123034539459353143417318344836887427983823510631307271356218802064439277605245975425157598471996681106210578542408773909907321370855998217162929273516733333333596840212113170502605781286973134234119530781353545357264174315719400465207322564658318237380524172537301117943120789615527416175361100142615207208221386758687956689812115021096707292695215763094598653158455112958725233674698089298333380770456277439831069052261538500449122398794945447719264506846673794036272377641250639964876801833928582642965884029674804050857667442379462606726669593886158503155107069082987347540966940330213852184803148727282245862838745711312180681405970153714911956827807769136699569575194581768657957797782382788368803602922406780063982583239845173797326104595772722535042557201367559337900949529799352968428784912999137650400164502083311060650135037172926875775000529558140518863670409554651388931822041489201946131279784546763055908599951873226295572874440444022602789069410980800166054628394431649747148533058939257755621912890341105192216410460474709288713755305116712117193847467468434237531736273545214548924475287106939235419661085173816749396584347746205023954316237392226614524312862549170309881765656199148164706414080242017054750369731272380763363013954170670553888770173047350944778810059733285710011923169431305747882302196421354745299007874199125294872875951115770807267247809858653611793172015437877055499126941727292580068486084363717107143633378983378284714653507857149017759851519286951180479037309736465403838974764157758019506407756565176761413737091665224372617613884793804665153002084970415075275315376717745499770507611141539660952874389703621462192219645328978632995841039530712828219332196886372319771529763019895217460056341865290663199356470208641078442730286850989795534188570800045952899887183388156725404616598554177298330477042172592079751055112406875647805063859900174063406301800438093243736103240335435432992957517622528037988709257548587637168493696382250036223434712931281512520144380835098026598724705151222110369480493602616297092657788808615757398933250009647541450640726747963576135473198146151454997818502537879719080588678641771779617473196236745484392781568770235163689820925080688435556584313877067364384880352428903731458735308737124332688512151205172841062819499763917371738599620829732750156412876390116501923956051993289822677445744573518338597946260823663013443184910663668216437092116887896641907674665710027247360688809958377368154632077017767652952352681957215790598086932731405917180653149232977077797771198242562548840984255977002238011386890392773262140740151018747820237475388981095402185608581202048188206169124982280642648795904740109405342538272613796042875557141913745922826312452911039114720381147076505852632461725690973943899220471050689076232437763927393303996834782387683246341031630910936066939201406209836465596002767412563546500788300450958182296700089788836786030137064755856879944700729516129401983214343095633071720802784517287273924857472371372316071832074797020079673684087008838554834536459685325296125621305970764950478678651322167674672189431297868333477916931220746353296362579634537181801489866807904487789066466839417592393937856145640370232867193150723809437269729631025668572413212394497452371848428698383882975104791339189992897142126089373305973063518663239252070815719876527416609761751537563586138531087798607269917403436173108619677465063387628375572530782258733399723471118387743965629603166773200316432101475281008975841170705109187726697392296048275995316809163818728719897729620270326704122169920662598123390545402028973202832718936805997278751074929493122847041072685693321749713417202348010258983546383275780887728480862558994757971389066630801059882134659196782447279751008152516942409944434888405049366225136991091911324280482933089099048162343953410604914025130670400206126539031029712171934223527697416008387069441801763162072629060114969024777693835518398232892701597221893108029099287924666173002099013417479724928488149006616164045107798064089130304766142263125419494393850251834475922378764802758299290489742456372441331108992982892581346411922611542936628700076779726004419922475506232109817054032937279608736328412323668817807458436305707091657022339581805821382920307401912716557093574255279465972990438592270885964779430712308135134823717668924905969797354778256247625175563510579806747986028613142430744626418909113077278117547551675157988540038815997606964316209438515123911427543862806251367562034524207230691488755940239828737695098515770151146168447601227501731831262738207695705031469475312365793861011170475115037091899494376705135144651730919383796380967496903424805696120322304938101381121541978353311465244471863579706758174421382572114644643604327729587400290350676293067940338682096175864076754399526336333102553955053525091936203320087334540563599298751935579734913092534264397943392444146649710407257379781105757607684034116407306915191957603493385480064679559715417139633496187150890349043500626153786240326307515324199254855479206647518630052013615310313512699545408354278022490926455947983918841567884423874848323985222530173009394346203675824986162841074152751665078053956158045481375132161210116058603968173800349345088488210719430450109611340228371841271874048024056062742626858454706893859680601830576269054453261887491023743617031002731158644346593627779768574930417733656944826674248042957369344014157749483484338138267525217418459954418160446042538517635888502044732219091446528350210928010654975507676539995647358448080832794279821069265063855277328244934332957656518968172328311723355265871650622993425489478078087623589504072196798203493164593189489532066895328973360384447443875817526235646892682113170011593483174289821220293925694507956407180613379104984745668151352103013780530696072564918128674016266451461214057920165153488304053193375313383769726297602631607585785813474561339399194414553304723572893706976000949066592474672362503465824820142050035465134143196134418641244428156363985619519037399918530122256324685695493325331850068632195428160427285262873938481206409073545669462716524655059980893985735349174889858909623966289919576747582427874219209285841748843742711332870118414694818071662541892312384094685708114997903838683294083189072566515871384503675994379208193155656929124926278642590208560958586516443950055121113616253607130421085148721355636058795420700557981943337930680333279592112525233268278311896372771129762511598995849188138356155448641176214735336311583678891676027970380971904293372788176119831591842446915210006128624374956175606707698047248651708833128615428539113311892571543431705414710938960949485677611298927953782642185291284133692892145295844021314884441771701528213627927047562077862822640299055981716440473631148194058713999071061155188024999085492805501331812822501785979535598167055215540634217697666683080222379822900992460609152482129483740995944905700983386061764817699365547406372892383188682068790538450982289945397699159217227837633909497260910415115078744427514483139127285559626296355754551830491974982674590335572208230321161525366350421673434778050611750154539030800867439048890239766281152276360820974479539309045361912908196434457043448055306480857118227508689342625096258524199116383893536171348827728591966317733826680944682957124894204640262667878939689337146656997162784725929828410627688382920439313470356839263120251394198014883770552383082981360558550581762042522166215183546736092629828449561521249420000077409518809350647314224691914078857462541491839891329135758486005580339265693570880847224148309431860126643185835381842115267890819418432049908835505808939017841657152540764821808681530517201384519395692349256161733719807541853583376279884281957011343938729306346869600612661581126199538386861084967732169870757889058470371620382434865738209344298196095090391639339965602118667565184312561368282476702206221423665927068677328926266629358629796899813693205103151144723659938817362881084994518300449928190047811370164602014586931308976357930879032707915457519829753848088787363307845190744257158024731209837924101086758215018119544797338529686080718955370041570507938362747033575509125150171635471314789604258429427001564308801308035353067573474829584297268087678062534405801130060182304793258797200030218079096444295685954832192789383011886090561573438127303807234943498237801811356178828973226700311518155658593571891546386908656819940770389683931991946240668136411312973074278769908403836684607608897173928700728910997920657384567218702325999641733637800317458651241656736013695355409608246371844427246861862103264969707537470456197604247400353121666383065657787940419976555417934809753263473797917510986374438519599812535386427449704844880575899848973930932384928838451469225424231977930371221604478667923982298610494013389990820549649764822626948452143274353268371045877141073461669551452172283355655286003146077893394831030004108152976982576303938568599918967903038696991499761372744104769618672498596595698868489928505778555763452989441307525705025291239365660681783304975421037780997203703706911365719626097316958097653813399939764476193712189664818115237313032132865945059375599947863877488352200606899014796650210197079793905041477817688409202241776519312503124176798204917093745022220997404288355186510829458762115942129057148864971756917600406554989463298080463398397965775788481132819571154548608573857756692689640553994274837742757051956375843094142462918463136470581766243904554797191602106471521825680059066549071864128819399915057416509651532964708059536273462121352093299904593110844186653710862551922095942510667061413420580225300634482929952110185634291472123836945601691422900764751103149406057209438628743673924369678396881330388051222629065252693102539574480486098973648770325477344196271523034119906161361040242128636459297313436127209044831476234212184174734291916214517357162324517462409580342389819348712694510848043167905466022966542655485120511723587421418625897028311298939203915836962263495079290960085908497992656136095570043063497904108942733172997355915863743187724191376134912024211962582206710509770634015819629669949006420126886299527000232262198005296283626931085859869118836171527587204186409893697965445095179654026022563827645945867344789411351931485758516562998064801254474995232014242504389173873779128473370950236977050136609840503297281378005224670798320146248595333392230278350051509981559322248157753291229149398264708495720404588874387167091059791852260469663689172518509390835286382435432005718181237761228493815370508070029428611144113915881063622803251852676814687642207521737584963810193902296152899350609302902036741473454014646833011932779712863833475866712900134130857216525506749497128164876868469583423527452419586410645182912564656265270693612200684450685481637850301658951351347388325655626317365387575512634841898125446718039613187211000403018505087774478840364047635281631354852424335173663381807549930901275522158643043661404006451235501093312152378869833886207108839331234071310647381677394686343402542531141711814256294122416616968490317396142910687111865255839302988553475009361442528707631940760502924012003032791087767913703982537217008280591985081787039698268828478988178918417238245566488742699720185256125889272037503516978251055516760848834025298282752998125048305363913731808807669388721859177056393879957178866887231917959881527642965017886635820959799105040155632148392180746089896094797513892117235110015042423415742388343172909655474633449843438103515855981525002164134267020826638245630493247117889609760429360731888769814314897838146462982048489394046692882694478706163131087228233928517611786135503203904820154848341885196023173019823876800260277382575915218086035643130393388490074538583249666377206995350852566240132077010992299977658321274581766330505559191810418223369867631021491014679795086848756114247632555290263976164360161866846596851369852417195765862564301217349802363775509639414257941578450600416757644268272306550114726434565810677493536462376353651157618631899240000758414960789531243972225093332011151378886829606773146414689933955763800484523546843322540324406668261350793263881673002929679901007951004238933584190649884046910603506319041044087551905028400365343504230345355316726785345300368983364238892809204706094715385854739592893260362121209285446656657513782868954522057311026629216942476973580773656482392125778379324136170670310396605816580716453601496805336020174545776441009800387158955615148802921294901541862559064734093230926567138272100727952088572930808052747498004873483511391595905087711901424532426329335194124662297049305686072593158214865401015119401450785605523799719366283033576540500745441532420012218955436320761532199581542172426007823020262027645929805118981562087869413146752205578412330174015821811438499979991180440071281595243280395614787768496549002228275141573691626492767330933998155171275674258380275035039249805576623093878807255031029589710992807778793970500316683690163523235545075931246037771111787030198302925628934655872791761488272684667238584080134263238272683424869537648349756266887271197466706771362855740442767570764330215703959534144708251493382963001694496137356447201123472753400183180089526148211413580636045774066019425925661991427408601224704548079208995809515999562861366198266184308680765292256191074362840695796367690709663481561588758328536213845018987310717579951654240497209299058242442549566862214410910118920286975370965243565372843839677581913925639025082226450660123831975295705633917130696672907995037009339275018153751633355379306512821849579016294993793023175049951625270238035562170232017464264869683684315301280748901567822252574293437624328682812252825845088434777940988977278848928932152841683271540989510654738040967974860774330993960057836884224916370218472199054899841475738436617997329955122121419684104163543210364326987439000851169703769187839443718506554014669858808339464781757256012342594761984466507905504296207116074828915928840664046652300060311769644086366586479372135418270771578373369296794774905098789797066756570608671552471084795205903892006593486992858265174462509445133718852834494372973151982083296330873764342975172159603824539329401161916652836536546719486456972085234458594871570713799658798405570625304224328688435041271681893114068445379371720239701336493853522147567479638557758138141803499121441154848009817021152678386161899441040889340636533542383306257412431829213204525354746060862755138231645926662326449032147021654519083527315797381374863479125563865271675803009582159284797950455391001034962989395341278101819286003174944613627967159968418853452667648675649721898901345432774440891149984637367270737882723857326644627854146512102450963967132025172944777464005143387199037038158324955698410585894043625005779166245818823778626452082525268214436502657364571749830887107067497764505258090807135581410398379680489958176615900033850443053898372295513066426484629543070006895613083072969444163179990183050796344546321290733305417062921749389838405374630242510734594776309599043316060309192234104511489746890356879944976918751839845759512531760742187928960599368340903481004786275095494529213362142296988817705905700985630674807939209036396401955311420859435074714875212441710401283614486222596554140202220339778359966756627378249811122197304117783443162727075221694796780451511854200301876305979862249416415819889791082826613610057623074515723956240526849019105696759267307367194355643642581024993750010074284836443085720451990396560490446453788848564748231718701280647230074053154813240714708100389195774809287535676218324016451267467087525059338964004617502537463643456608388459842232785575015781185493924386888457068048020499241787393172718980734834989565102846149164491929786129752164071553040184261227435783042540000169332033887322645072255711145468283836369357564795023471209758466677261464527886349075182544119980975780464417545405799285369001419965603542595468268910719854624524414635086825839354305783307470399508197898014259734667685428472267133742271105706444038346176780731966947157720197239192355232542435402453289972924225125214929541671061218855529384250328530598147680277562198048007446032360913867943312994005339352914660717603654044818450776960367172731210114921811127520607657705078250677596851466506317957293713733421241532048880557982319349634300526620472761135870587197261465420596800787477965722659950398282989199632062521860316463207188160138448832793756674093027596554661592117609585238829058197311195807153446213602302234181171145274922903633291893392017399708636262363330371874867918899421846653834664264370392319944770035252710479920096408687516143361755684381587556329870758268790665993892881102581637012577031626307568712038878468944421922031835927106397881398661915945809738538766479392739929913642073306306082050747215091884948975689611100114119418094306971960405672765312394768732349500129528509785713485202344689435477286456731252993291714957513105102835548589751778523068462060272490437560596928320559555316511646727649298153145727236692327509857466186826128466833754586232047991847325931946696713938012905456448066418092444655866080169135660893321682546803551873190311278685256775367531267038946684189851678742499122103738505751911257838466148317709576312882834479208931441032835477868965004913049970283900737268735347373813945169339372635395540866072965960699097663494209192639952180196118142449575026165396098089440845083896954565661672615498107865361849988631877506713213759485789186888702334332817110017802456204892513451085802570861730028325071563886784981419499359853492065392423212121689569624522200050824673564774005470156583853247830644701884912060812138257061988637209672684083274752391049940473579344985773689819851647270428194704202105431773424070281737269153170762072830026383951584381200251798780104304687659175552365541857288857318338532588296115957058033404508656260582860603716643750032146964857703116006407864022738309123545928218096457871515929883998042579035541874204756470342192474950382806910733108008169273379535750648524149613500663725769310421142129080161579270562674679734796903922697095576616729232741025615464914866120798454576636347572088891434804532390156335131429234557373113622698584772094643603893315853426834942074775315586364529191658863089592377092951981606535160495030560334873552393000326164620391493503376477549106688316657351325201392742367635213661551932910089094182071739423006365037157805014894141617042548924661121927386397567618464453171742335022020405768245030425530649083781698333588404291795895340801535822904850654692296749785524897440187157742431658143171010420781862638041937175795802046560139213166862653372379063710574703305089053349992236440919582740874733853991216101623322884824021104379693329738571310236970572298086614642005971600616090577147827510815567602110345915735755982283334634643367016041131880315727984540816418493860069839814439860494203925055976475914886523206605806215088094065038843254672822782820732566074809127302432414923940690038385048992673213981044851475803664908039670679149029408188375171427321000014370522082030077522340496095856722250426592844902019556075906463878931509546536373046644911713810598039748099855032656949922666866114208842056902551464785816098930266816731980595367637080657691513075776174868321679515823667401332752667231639491797285360239396928144728552390778708881297592398933197241396160226303395797861707508036074857519114859364592395368677321051849244316733482133418722669570054671159119761203118455238492290169559681780552018929838930853607079750601475319371789835632914841890208828540246399241561972029390951711370476622720254361415822636780573284611047762155679706868064858933415914602110110355784749775350526272005068569940962160829505355699746715147574126679478237788721298542426343139225559660894330771312640153011368474593416788887912904355531473561289646908333487332394246737272439012278661430297043329396084059930707580777239389987168654984634051250041139434544099901652295591828780427730803376280488832558239501361722162122961705430832819610887715424057859477647170036625367284866754917248684713210235083106435474557913601143438969857689234119204129182969520862941431030488464454499298144266823987595016669754007926470975566614364066872738960281902507106781178760711062150830724979412456408993760516592483776957016076314865700368508310779534634560091003344443114621594616262874476267410684203581104802183136031290846382440901433654343823841417176139560898774841653920045520289586782317295826835806136332075270500561977042310715621062731131157657616649666732127670503711426310472199851786855781253090837983077583067847144288110211796828363043808169523479516895245562430552149969993382289250118923900762516605593811400788643637253212641125566686667356400235948430362640860867642768587527366653522135116882447711661142547145619911562770470824118692215550943213317836535288675954098562223208358567658140401438381324353792379859650755987128283286010247695573583230463532472371399701527172587563033723832741985918951217669828271598781551385815912871446284685486974001638212389427059272115525428478917149172044848731800942813323433156198902696515536567639937816980807723340236178314938101048150082108195642023841114390538976796311773667707340165543241632918885659346584638143615350225760529844787722520215053194194217621320359808364793285310100307495786220879592346381399532388824683302066027873621441862448657671169193462981699242217330564844972586418513177507447666387794759861778892662747997931412893676199030199996775478846177549608266435076965181451821396412259434027396095350338496056714928929305482150689726013610175348673639889413297472719654261645835834793037024777536499255355318733845819704964670615232025247945824091517211326311051782495055154834124850308903472489099489591726666349239622678847203336634647568265435820806492212304520144925588131547116069757341934634508749339711331273561215798667348439247285260432569787966373380363969946384934064303578037196069382691691474167759600919374977553643450019083508200017782215626723301606345485269750929124347357912791175015292571188810595987710327961832613536783180866173281976944857918929520744954329510110482792402428726663642433855773786216943343980423199790621329835049950066134693955874786526858304322004110856169544048507978997486957111831702316354474544466260996323704811472843483479710654098764802800422865555326316357085398183001276047112270726332948992125617244615671923788406793268969532912324580486565984238793672469829319604226203196163254412032393387439570738859985717658338935764727327904043583000955343475705633577520319380630345300696177674479330013501176059043055529435809013721650675524124279720054015675784234312071357105155280299728503322454326850550156489596764310303232574444198623620982637486560369879468235907365372722907251941782138967197168260975819071519800491582996526206039512584133593927072207917559085528732772601232728532497878099630711938537937600456467352438972522101236471905157057755289718199700074432669765043056233573641551594285874576956099372067799467872461935887654624990668367906582208938946226800960617969659786463516116703940932842848055923335994421191110476323027048149366956157147992291793055188536185598574147622943959313317466377100372048001459544040558673796542985090826866398571830955460564768531588146365553236107665850085312523685096223462550740838276413621462556937237350400026317953506615935751961901873407217558358457442693450601408039559264981098916204597913694701096122890975777485223098157122423977919836798686472960005989116113230969133317847726357557401528156559363500731040199218276017794899960789326359159155544001801345247878179752497680887551710286168639211952824911521081158837973399666034253962062981137813570148447826299772581042476601784784628833277776806534818479560554644451952801437310869939818497527732138347153376715425176587831104589795768149391735701690087414321045455193185429474051842321993460901348262693385307263509880461704592153196635951730478785781660729633932294357232177277935285118169457478854923771053658545135745420342528817061868067289203615231877835851707527773385566455023307078654080114719801856103936230609782239201675872139482034692958694333574965625489009741233109101211812850859823074302314712003499135720653349572141874924797090805197621133148188720451936871059710867514340292995293913860432071899551735238543234248708111267755569203025417048348641474947768669743061832823872885170112485911449171757067081950853871239679902011284386613998426884721921888638487970034689696603215168443693138681262506413425601447049670211695240204670692798559410849335285477862540441462654739822277515233631653193057076143504298822511165010995535713220391518087093888913427342196796890954251475617280204302635790081523215887568685097833483242593044390954473935378842936383789722532365528414506776257759331159934985414188720467010278744008132189067479427011364006334870284040793612368179645325885286303173438841662369116443562672312369704135265194056996752500730404895210974547883316445051791720454892755528904943763098366732428548887422576852907849899835644563884517390102559235784277966400692902124762998847036298967858389217377228611013439820898604427422635420736708303795135324426441097634211181154206032225708917128718284149763332881991622449260428218018345173720380207481994243124629842073856788175076332088978624611840093080619459792731348604546898868747539908968440471249344509159572478618391492596926267551629143253178344570297618400341394155567652780426317845749372452607588732734000524731642962768544350561474829011666941277749112219535484318584762847571236694314847808247755830456476413199637654116714073172911020040770762106348008427142210224933820881660301296534849104365981061800813347834457256885738516330698875592160173057773953544453006245401006982747511761993372003091903395733803954110429226056428568736294695522532899651146987279081175894037009915207346256035014461750183025226943109155836428860943192371529133366726637266783443833141232480630647430644190357415508293514837852280959849379587856452841954101607937891891088135080238414581935097764849828892063186028634349470466260582412726820913311626689503188111193183568209802955821163451884698532791326159231187014353732784493283016353840599190787697970825560430765159743385841735610244962923139276379092212590972768703592062912294043044246789945114113553257285192497507324810362500847523389328807512870906773553973146299266720758869737794310753901770057316142554445545178821808910443923896994177063996146919240899577822110701135570579848233575892483670943533409980876235508361758744823070010160951461175551849543435517909076614036540425799358165959249544907951014177461696583268662504301660443125750476611691380321272849286642622959582199278498117492232416047639207426850188862524738311645236606324100455101558881248417282844109054488736188604752662484510192761689885857627552175913977284506459943581367984137537246155707464976473489490456618684931504540035655122257301536101868394148186928918217951297138870359627225581068241947618488485816841046422653483629559154411794062440854615367081507010874114468906022867697382745189424923621053126040960227165931280004554549355932452617185212075288643451098094934229212679727228901747244196224868987104976109500404423098430440647044714698503242064226187136413127074686841746931439397942491598682382471049770627416122349697298317671315288136739938424421661535101181736789492704713826685559189807645745943177473374293661416188430456644174196215350355747463921080164205713705148812743446040524613617967418578114854352406379638600124845285845246510476744207799144384155850874205325231522182375917904165127352384771221045371739487471182507803277928853925054244934750037911139673120766699709967790698493955699679886778034254313327256003673918031984742966858621425302172769733473574168682521482353927259157697589341641572705932540218970879627591666394221109220198700434050437416155247113855571290138769684775211662931809422573029050829756898613082232360172990643258291833307869507165987038111489579212272208336548486933010582514595725100548059904965964961920613327968572306367444693481050849002142075727453294546077969317727090710219047379563280863530984947481430217314138442676686764147357071754650944253137961253306083562480907227672684658609235519379295827354236307388064798185187282346060143233969722435226818915153455979130535272524441654610788509313228383115875343823355405659307541429520717546424056738416035950833017425272549596740128485651603948579351399164710382646817916146932617735589117866502331374420289998602824673135445852502717663586557959480284192223536946185169010589684130123742656814750472613506130803600293829590915836438471220842744405461569276495784780061650364987187535153075641726894762539498048602009895317109353275091417330495080085581006694628554190407077181135304170479455225399358850635692571197676666266015040444861559844413356378560435221720868988109526646548302615936018147355270550793026116151714211534216975273837942428509707093643694941627303979434698711519039360366188648806354683249614893649466724232719922902510733091419379608000240656365591918653016905966278244111764311861547538557350198318780906338037555246540960869127219663595067084869398950246965330445064031554573464263475997753273592747067187400459533312434084320934171884921618850866620547887620764699506324960294707831459583603644373742048475191519953013097268102341821355088706867455441912470898456929875868064302863972488565268786271951325945119028152139516442913523624771979653073833955384825576173070650343094188779362475258611605015553963993976035206255118471951575299064008763734839258598535929278264690309370129210631098189952380913691263989801946613497662666539283501546792218154774493998905344569607595056189947737267365975274826542184860790834551449556190054175847740643419894794337461358224318527288074125837559297510020833044776059688045804673685177042464494688846105254187287157364656668272080108556398352396294239843563442448757428548595830521718934419997527101523566594273647573243458282515925481913124012015329300319420253542912363512973928961982598930697104640831544792520810128088943927849211460443211867957206229873379346513326046313358473500419412794059260280467872661570571738328557016978143918290201082416258733479043279747121164027575552185782019189520780668097916696033724996046788267638677809736235422541313837435648027075379732355821368455791552942713915744012866103824822207047266139165883300857736871472420041372086095755048000143702649417610933792109856093424012801584230744023746229070312553002621823178460817714146003060167403579875468725337497491324205409834012443036556827390029742619013111134790350552497422605277219707704945976330283224418463032390426802338367822354006739644984155462843480823755743707714175097684824026079886142789731808913148132879322627610655892023993053596950130460351058178126531623681244944081987006269085203658797096023896593664463677706304991548402429010107858652196166372725976983255353573936417163829803474090559175141618371204322361994403492792572599772923575088096561831927468296319945763058070611322174844799328591115827095060845237923501983591308059442644504169818706362849186897125682056807556400798856861545329784874491902206630138424789474393798363901175447158259532319169610866961328851085362738509041077663204378566790646619353892584983022741519667295946699540184416468238799121063194698894304865651194640411991997709462201423554797067203815560711778904063191461031682470906975396352837908183374565146892042542134856639900542639113128942816262498724158813692256256977257019536280170445713956086335248380395840708992363274875925095915960087366958533733748960144401497984103707143943563890944389056531149978732724664487751486951562472882346425536800544501958667402332995293279826687420213327968549892447575454218286296081436104894817409877974138507927687091579486500452823410166017674417370879184980048010654447706305025313850230162419002253801227396338295554278898181724430507968156224953112078030871962699789895579258306133729446241563622775263720566671615156823068272291299740247740327213061218960146245671944988945392503310783330830286370597150754577399142194548093513902859468581725206341697585882896020585818487706051532439595854506180161405839252756964041143723599925979496938733529138160719247908151528304455983568137961462438123526438921439650852320487944264956387021976215110471126562324481138742675245024617816457487993838505298005627214823995078921063496315721180636717974011191338904166042613301509708378030107427006156694720714032617683196697667175565682008750766311151011275753221277014465739651586214719495923609507545663232811440894749812432066742131004128102420113910394653905223502029537208063223066572240558074504651630468326470233495055082588267880425547463246717306367640501682208916404412236409474821769339444729694815886719465348944095148331604318815887758910882441231746060112196530889787444917306323656609246170190909758079892249093705414353900212372038165272764040869066892406350916920164867553542895987559503130674355679242210407152203965170979733612914274178874264639479570307698741628627540383450286673987972305908300301372679503502903684028200013396333527402123293896753810860837441435548199211721775370657607547938526652341564420010076085322191611071291807005365074402669585074063444043863594342367419512983517858677224741877282326525632019949741499007386787828478264371311994932754978754312002505314157889173436239951525081025182466131846976062019698288265522597628131265587722016358791187322801056570355709272806977151744634880994967216345012823841448296937526397326386755902966920752763686855138039590765616430699881478597867455160054946238835210178688730288062122493407496398684129364820967606013348329338856401915227061298511892856417291979252812943226296286371574086465998866389873834343536599166225355230405956952012367066777536796080270904550520031667979120102741915636163978413570330303871271113565846510377249462896226891414555922191872598403177414299272019095753869251742693360585279207275233657154644103786348307299355209299412020095626247532679727975453507230538228731019961602555448233845973170157116887184362652307523281248416628811651146245584407839072151064977909938627637470020430734955488580020510437219915536042695899666394843137904267346228005067180672543392272154464574206240033211001124690883952276742092710146954070415125577602026625365172272463425453823877657443230678634417574270322799307443781912190939463265202010465847762591175599739061624576022091387896826960013321911645497824622619544572350028788070898316780545408705546546440662653493753736467860968852691196866869050013247343683297580512387485045563271335542698765117371951485494438540477883817498298134701327214787263148368412930853894812269127533151775835180729089366510304262571723148974921315201738892577533366603047932207004197362507335437793451203094188313478490754941896533135997706305406582969136689101898890162220384765120312738141719933838477954799700153754787418679246897317609455293984263578540899212329589651637611385041453713100485497273698839808880216239753148843059966070205623471348875542677127239074628737787170783305454552258897241188655513949187012954693698518971969011569809414012441931619994125519503725695098593131216386758359646960583192778061771840239756476164478774052098984594762420723584140845258262937058441291310445587492264845090920112000386398203719524646372106639989458855105360903983013996091035908402133572403009994320447553191371953289525873346289264712356857251467765073339177155625158895649803100339573325554887603745943550828608830724534792022812122903701274273309036727054693113142859909883871672758860664015247974498935572271980236960938760749332147902812385961893734002550773233761144801083185236615895058336320485828193010331109236938605097289451007766500280776951380073988547593676174148653066787362009509089244399185838243184917246430255222105840772640187074350016219630817176093926656783581252623255584945467691037764075501564547898991837959895620978478589793519441419577039770550427573918338131672901306765331993637510829811635383679997274129726103479624724415020083643433132182949150495184260462704102969188937865695745708936585997722561871504512351810594458879003642159302047877375757433205017630836594145943199084364864906938624225999622324826550339864518425144897189258764313509815560318555448847724519161304390897520042712426230395872512908742305406240598210526804452657916675099055558956468333065582350334898325480860879497882352969238017796086897490125251389692996415564773166810946297715805766960371367756073748196987166639005244961080448457892530887722836617707045786539643691581851727244736602427259520082315076331024226736537100876886240158346064972366923233524551858713940354651554117843341734072329276212397487285541940532691742208764170925122668214364045687401620158844947018517302491211600477024289512591339995986590227451017435083945856706121735929922618895580570971685101571074812918548602590930326780528750598775795363770874548912508623636668014185581934360390019547763357209565889632528555499479871759782664065750887080964464374403355320899576231502667862331758813811835707504562038733523447818355124193820848279447811061349366526357755928369058683200291019419568773804775028645414135285307941219479779570623869864034793040218774711638605077335092292236366987814504437289376237726702021709329478388117054444555233974446947989945439037020724830380733273698293308357585934518116605245433991775386781541687491486087859899096210163238307125820058932516799129080900894201203215296657601775768463339483211099126934208576305936552361686963394118505411313065126204959741639965133981031735425709863140856131057938977300375064776406218343835282649423826433749595012971465250292433159477848780436744023804929738858182595629537189416995305714798153915570961742442099188535517207323441185475223053656366331353398796413460927648003641251482767568419797595363914499806270457727235302987285760026212363838723613330158907000875783934347602951665636290750106835197800314187460696457358184456952225396920118130266492498515143821734127775180119539212767897260961120368994545225113740918689083409347056170057131060069770401660279347928047726463980480803282519011249181790349336503915721912583941768835806933997455846241411957108307937512579968284916614690816716859706126986354713589149871033561550665393538160825337263498761702985684679039284893626784500118924665261838610907955614299791134928242447875273399120691426217566375152922201688898949130240565057102793840928282505073594524253827808327200815300182695359079062121678304697904244470577478544425413311091621426633160229215300432907291892866783345126908104311807126427516201659105724840088122510267167802507006529854620452396603355033266504539240338486979719119486117147207493349847033670958684298947668303908908582896700222041020413656374733931954807436828338952079056247652986013012005817230997663424381655570647961957580374708947049880047730782295733627051778166890447412468701522689936496529585861345643205710537154728790953730370937765330869040919884753194557376992665677798225322562907885943690560681890627505434455963085424147685534786841972944957945917649989548898659590891636966682916035313174752713416035439988254284858255405671211174728284976593144630404886368135270306514968583840057216929647669207947752575322604564002146312947009025790414962866033587764880942209734442303271315970359642413085774555365293313188712059350239744191136270545574069807741568259979598456219020022437168811420705380854951616310920338543815495419554561234607779099267994151811298730883929148103900388179257787127860008953584059731494981855051374405241626940134823380452075959171336931129067036777666342056036973327378571623966777092619695738146293423090740182909083760775497421849382251405285280379542854777194037224489568879600808317164866326782406991312319195907237676062254671362806617989136835692321835127756865418709613395481903521663505449705667893882947093932345797645279808506689330781289966582130098812680831839690000319170312634685804558051898341113385446611893612601532799963925108320679350165041224005569532687294226443123688908885257608392494365689045828704626409598386391946268393379901892761173932235341663687352910922933672526950561529280477488146962427033049046786608082312265696156869661821821214019362047998623231580880796274807106042363095046790699293539737678843165738419317244855381202864815315556215659791890347334397464264904194264209462639562343418192302678192354801359269188085015308546658021866917817103745860557142595170128192779846463634674535664944680480973346309073806057428645870415315674388303391751155428440133568041315655635483056466859441338434944938185220052682871072297335459419568436571251306371155321524114341454165073902597900193497774616456783994477908673918449365090624792318790115067992947077442913268812208799450415209343395669973877161420609925793344214130148766200230230095879952074165809075663297986184037768449579113300330321114286863694857119267579419172832046552780935761115483751388634361210571574757468138374112622819388074387751510101693404622115866971206609701679525453201563347572243013639751849108586698022603980894555645377690558749097772527639924403940024354130237206064882208653549163512427741662363508646316118272516559234994635166315205104166426829455378189980953549160126033968839217683896710770044170454475281291478539697700854031060977083729115589067858635512830772600633504358008530165024649818950634781390909704687050317589626965665185060082248715051048691116031694018360651931951516745479837814723522197233642910345398985822637288749294600296533471511802215824222981614040877331466699935781475150101408538485520586582403847597491647494225754817645488629878188137461801376172513205691274222454579617435513530007067263770851208833180547064419034372483869295931025145442873936059796569887426979234245834449789904885079645911782994030864068694620436531027345105394961962483964883265630298395824169508370846954292051570720147194721092135686669330167918887550941117030450903156951723108047747620545259586371542041919482649704444510041025697086182668613416860670938581992713357776374965270661972781746365971860564080840196717257855136188801048343673125839431868278238233606099010757597764564292288110090821096369894339022278604222327292684240975114504018133021879351900332118774198078731958215832087820971020864746041073452758581045736425297943302799934152674471061090635365606434344737332776777971076589300050809637384027818980116911091240041329965427276548761597016217443724621306369451488913053380379759196526377297351335394623515983984216622722625438265758144663146063950161797505993267386695705648018107895028375145172467504078353255549268591289993984695514797982113847953299115877035126289852197599036976258333864545290432583217526612417031754759008151693002182521713881974344846446898464731939641779783289028880122857987494198620544977387922602565663201239472789972883139008967265660225985174600415073883496360351956887869221354292683004342053461029945966652741462014290634859851037824200374812092508503329462140889626710243589189015386974271988359812894500419761778137900173111458899182085340781750995751881323423866131647822445247219710634624581739100572864389262973922675540143040836275282461091827152570888246309277354533893338550159150127452815788770022384644571712829557459446760568223021329278613822772038104515202869198801983561123302143593310265889576842403721196105136389394936896330901492660071913732675812046556442176668041348017706096017785797213526464284300167277991598999214972231143148526293157392882369452184083706998001380589012870674258483803698855801843828198691622989424309382804006195237018502245672836386975630246957834714149281345885108982871712148357963708132411484175488106339395684549329436914929419122700328294503217320338816424896574440086855946834540806250656951747655788910767968066706058765349987123680397513092129139361091997048824287282379512213493613697194812762895363963933741816609030838886145528213343685447609699459481283436003256737552364906758003598339295183837710764283521006771325881798820854055030794278530534956393521334572244623629694494427608936318124902911158892107476589147463040065610219340167858824809994138531818121613428771728113558786298213870699075783900084084625794343006089612615259253403240484696337771039341165172080884250055862894244658511007355343136607201340890726480009665563716765675422853153098634521647086859480542958289545658991709487609983829930539226560000705912517687256081979666229771364442223091143869726466292674887951621242510775580354601898802938185285536624612149073431353136317232273278457511602480875223313546379060135447293044872856886795647721297018137803390924007788227198529585884103868903111851032409466319444680435858619530472552260222566242031482265633735136488413707430415607041527555288991487214119785675085665444723506663621290737846554926228640057505348054077784134157117263324639853586556728912995859164592894654205837246655108502838834604172031185964375725954468883304257038369437217786341738973675867726740095806455495898775360480593287292035679088478782469645376715568083583164644823291702234242330045950181191052223483294673504973449201411484979921834606841890478851197262704056200149469619755227959237776877587703618734227481816033305622713767376865136320799695238201300606918555785788290129897222605008499086344956012291695614810416552180096724763034078033841970535251934327165816791414802773157019869186136938792634917091458055070404641414523500222957095091572144505096620553900802466552358052792057658331631447974770101336045276563651609710277657654894937456235111917490895503172365375527089052770996012321010488089807022152641758271607574791502688148363978210204583743621782282958066248534104107691594378865865728844058886281276125676866974810164714539090859863750910816432953978833160569620169081670928951973425805038666513805254161500944386497264761313300373858348396274393663935272340452623537270822645891012422884280187906809132305320612882960880163712392556108186986414157824620933029616347190251959646266730436925079560917229354421116710495236972357352277853231247920634819129810217964195765320912067422091562679102816120216095789774975798958434609877861856241234211762742558062315033645791100772505248617515055830245374495604687087306801795601796637710276505915187385385402734218308340155900551852535061621117248936154522698115835855061437417648389257673875832983683065278602028962474223987560151183744145872724331767206796250425993975037989936270711288927613205751579695836802409979981818849845608195848233384680515960215568932571671510922177960158605047204617051232902128140595252024421750790429388455715779840609997393620343737247549296812988470088339910984194720278838981689920197947729675805228758266520663671238556745355607554586738536698559941233005572030558468902038400041782995856868907602135492041188272373981515791416472192761821740134808971568328939948059501065840141127153206581849909711550139260761382023156899199150605798930262840046359298622926790329608729445986353396659237171192374771781006628829109137820247340025692927884356273918083558094913975188028438698839495569587241924464959963501640251982666439097976020729353410230490266143739740860423556659549144549939822257435574740687157364071994874322404704052948100520705479812927515132793238685121721428727829290646776378718271518668165686883846612139444239899465216421738323527373940125058233917061555366075483009634097950588634394484721005005322068070876882765334248675078544028073183053676100153765350447710791979145804003496131634872726174139166626391344341917836751513046963506878723246431155542732600686006405550441464926738183477357980936001629610970123227020519510189271716985414249027868318094193661248579055339402609466695464369121093219287857161828642064331846129238566470998226268827078131029258399657483625781777876544221583249468984589450499272597366759611910395532040250998683934937925249757020446797057051734474880267836021536783789510358488017865430923040892220042239743085031504707770414192138587073723128115943511653421606373817684107545735252957196448490293470975087258867595854764543857913639213608027752241521808786591843301884297665390555580912914692547078187844684128476891183104111977432647039816403574840460926535041497514586721061243758267924114442815818486653409292564758090546129856869912134581928429311531019717585492499767056374464793182972765329709532277004733620366964227445052594627312894306925003724121841619585901095921493448343656996031972853959944877417616356064528912460106646881584143427587520997071359512294499276765969971428931723395783034200865640739641732641076325026967901367485719191907784528636019705086410600658176063838521060935235868138435572526145995360596645436867463189176180039021389326348966251595317466523738574281139122459030017532543040020457906040387314245872389895197311463748255096184112156717087491304698895774784022677789287761689807259361449362658884665079514033569879884848846929007543787052982977890499962032616633471818129431096921336403687459772603433077403741944605358481841190559067527494301652908303297545330851346951063712849341579077425684755221916680592921966335605856107989552020787113310229239922448357242663930845845048369086776793506786341944706980704164346940759237326128192927142943853072249462686390720900987757439111948227211437281931658414275741173808053661580833320143864693431351498684911185121293969663720796778937875713814000337808168131007955420929147246546659754451984459631316053649399784261337047498686208935746913481643493858284902239573515766565795172871660719421200790166284409206152829409474849255831021132821080129220378085055261917930124617121696242368104256777256255162351621507179111853956376691026669445106765101155401356247036789077339583610970336361703787919795610987025812007251686940573333661638308631487586580243342541176120576224268892796046986730941178559678908055654442103028716773419619732408500359097679470144111576553133767112005420992808263533495587824410254680500677667693425670116882554695132231217111377802472251308579245144685222467673673488820419245454292541150585248245245144478582640409146826864751798272517170058120999941460306440870824283184952389693713025456885735226434649898194238043728144651231319329523422281461842986111885298316824951507605683391053162802425181061151930778007670520634587272484575198375308504035959668791260408251951162405068248669583436750577396924618544431849136632769298447109707653044429541293073064769174365451569468291293300475809944394045822579636745679262978733800852060265556576907713685851990656457549349372508229521232835141553716447325219254025627726420651887690305982149172290936484388196397010197156256109261715135497589232711194662038951016956453061226385085981851406780832541874669687307292983342509306378201661344764091674121496290791755211190332694065013607894950499740598145639864922131962131210808355347042667738551879894815670123135783647753464238720025219198049812964129608097717881393232275280474488691221723122298811566127076360535122913912712393763683762237719558273621414476737472442404928760887881810702123713896859218339591279274943180021537661889059850917576720325280500146623865751287946064829211894958341002230560740204613091281220733617394716609364203811016611610660123207102210853079367186177872270513572831575037513495744654285909569364938916238228841603466727777664791542566432025113360522446745752929850448686756734685772961054168122141926162775942793303559871143312271095184853120452422404043190894330092379293284426387098684562115553836240750087883848920010743286992271887484720362266161903899193221669201304763306744338876741430324719737208747618004897678551983643381622906681200181703598380817765339286802311402229637750486195175654177994708907201314858854303617139273913903604948723448663584044408810525209185128448970016388990986010024751019967241113123934701094113209816722811104067745670668037753588941177360456682123315030009997038058601765300981400926983868063501758841403863194710078872749436580550862692397453571056097356854029175023022025384469862424303461099196622822880737005840688034655105164651281418742888053821443997433526935585539086654174020718579563284883339677514574772330885421934969829971527838020978273875592120664567041493958093917497612174965265272398414991855771371219166433656765374396918380286153837249889920835875408540393097412045713246524296947431503126663132067473641395956564697969972134750334894125704219650193118557865944474097349861746969336298048519263482086943047894964500747331865361636352007317353049555156570458453840800175869941807730314010394362392268892058215615503724559224743373405318164919653517405999944652334412762618487726250376777307116721892137854128533434730092672440304179427502930878950150971185427431458718480799873511471165358748907494322397163600609674925651342291786266774727074158428470983114724710772157925341376221930911004598127839017737380314215513226198327431671461220868615115077738366108228158162781376844434678749010339841104345289476999976121443248714373182346292343713042439014352455663813124574049693548731476347249220820818436312159479653204500517916798042746823909057502478112519939763254640940872693456610345982728564054873407523626724467654347967788113166944738011953848923901541129831175940292191636586164964908387763764335915670022113410699906581375625681551473743174968520592858092860163340555031976357811503394308461284822121863809687281340689535818020562661557755549344435305725337562507877866872698342155532801577869951531371464739167752979195634990330694151211510737286593755149494764467630661598644542543832207027219935073600099161248490146384571073508530958692248095968508912387001074959323228990957481000537670690779611190198122887642731591996847001437251071230693957038944460799323911833490478016627201772136364428696061902744463089724370259458784391553239756813751792137984605787829264055710105723958349175388239023118584354790716013304415433288661811338865964806211807447311716577364337185110067760254747079255530122312601759424828367365409336503477778455125504389402675940272047645411696832441840334951751315704718586477913357528152497599182232080414632153426425130082198697207942365495312604380046687720491012832814097811532338839883777000640806410475984536027516814584083199340506182766443498722512240577476737349079245582767627057596785552800409618331243691896037845085705504913108764113854978476975392292719103473474614676936236179036870267869318008277251124181547980851330793480343393771510140497776182288892370006196514568783126813507682827480243687339752952808535107188365387959256149726655985913568760150310728905720201643199980484942817063401688983084305980923100245547405807074109109713923132168907598650415101152920964306153262177822369813442836005434812823065106359650484683344912119527299517942563759463389437678522611939585309264030211956541763212114896306697627419101634058722636790950541431620013919133895562221477848904863280536980026790276842228254999322152000538951759839049079416330349595773853827732110575395557568599693532536467994480005045369580038552919085226718595555228622851594738637721549980063101931474085291323501042893844549091243568245222752524760156957081013223783396504894214935826342538519331061163764815606620087680203623140857162370965739239371920249556805371089910303497660421924095202261194628272878346933514110909001448820113120835080137626533792169351568183339838869709908533543878071283898499508668095990257416175158903559724795766197507316945640923704682861113056649696754520017859813214585465551399330498920614473047477724447264940010203443734635547511796945802072739861477601923911153338142269723440218643350603236097129210193367218522375823414477336200771576452387715558035332313347936199405060058260958759471596816179602736900469329017084165309119396823083510500593729275892173120283308703424990089237816110712006719488243790550203281755453826246521775665145473607224683554934993995164554860746909818589240481868655740396976364498818073278675095280641220463730711776763801622826111343030757670831085989786749762592084335871590667497568999939597940374052795703568995351302574426512329004457981441289205231418101516665388832299339945807913379460654416669700448289196039410142083635237282207657303396308786323838846325158810394770121797049010801886704840840453374926671168689881229460326228418481057180694244334550310693109978097270539922514976237235276623144821951021743657078194441641462813943511318149410781921483240253850475489387261480209430258071232087505229657723228061860695256163025614820283257809815452615338162381745166953263542095411936635812910417496937077597288808163353053343088645049209553428771381630332139700560898647891638853241734388187657061168195394492868873931364313657866058735911874202743191477115802345855711371903103557468872210966545591574807771764188718515052434737855366128724038213827284512390821883460744966162037171400234100147034627900217568117014820507356356824517806741702531460277772763982649410293509544422500003851027115975345633051073537839061256102288263506128110274669494349291075242352153712381459981388746432887712708493109139324843660751762087092872874943482747912518008538338514387030894874611032066878419318268188390699148761509383124561190111404456223055134324096251920244301996630455543506843012445996840171734547572109892080121826038497667705969939643819962554837316656122144874916058702098960545661957538115246624698241814792831069414452994646317756166789306154965104248711982463825967843288148001165772492554556160519818080301938411235886426011283288328948092747511590344787057428485075297781424359615387691933159878704008235234719677865441565454686647617397225247529431302991077845478564994871686012201662240491080616481073942248356791351078796117149991290853296567841250382463787469457261078509098349990772750533959611913727055382158320650161040103965251714979220363237674679197050877167663142860500382868672774108141062922264032837740810360436338668982300509048077884151823214957604065685843116869671466787955471361282434067786553378538435728964203784267355737416991748040287888972978031588761837827108560574532415653794240327074164195420716561443399907038872372387522507957517999952132915104487575907056719695156477255412840717930361826396642645744032839042336206389261231704468826549237860131200070674217136310953699412000038800476669113681614655545535709036732740779715222706567696868556738658096689818925047474971448598896175068766218195866198427815053634986345010604951674460510179330087487866974594247561571259043728250084944695768369295203003171781138057024895040866338440690759385580044921538857437694006647374861740437745348940620519358002013858778986981407597683715385451664657158101276022394797066980598401342282509793208583910362984656323225857941102268906878683307586653039180586802856169972142760503687115125584890622271416707540010223812644920918954102536107480468815125886545847103604985565585144583719730253984382565592431645438598410070300086764459362104279134085649729735296517491252114251887768568891889419160331835692968260626382096708575313149184065082359198373343971578259099238505734613348494569685537852077904331044633188278605493211471389462263563371808993042188254616218696123415125978834483589515627021682759435168006326071984449199807357833155601903194336934187066068544247747241764900749393350085404364673212669557547244669318562143425809299268015154914761680427116822680098435940958576100416660390839629732904873904378317210713039216774163243961291330669888453459229541153642559574174980108397492480662835872971201609624455170287048800534989401459697141939266890138054389445992276662177563698085556886782937050325260134641268284159861303258212525909816985849308851236883497058686646552415566552945890024415413671329891041119257118261978189825018360650223696519839466239278030140375947972994586914045014634585951146609148146356435071160876007006195475173282240140719082048901617819946044153894987647153307850732166313705734842755204175437586062339430089594126752469165272176715465307985833812502655676391445036556536213671603641340070004650474536628685167814315710109023810808550540700296731616422065630273270349099923989916257869197965039819745858363915789125160393013292955737191894099257629093648000342033271873021524989504176226791402772523286869508724111234211481855676535037034554731416448144156712065499709222410665303107369489565386707902736023918172514967091842011906168705985573202968867571646292685845757214985837007890614192668932751282180220666731224251484321930983112524923498007866664233411100994427281709525620691667628563007297384281354765168326719320774596497724868514029816718082889903725777683641954435748553875094876847796190888656008628585729527892828648193051947301665033454802088791532982675856647130056744479502348360287071125822830330861452374449050198176372513186138788364075025881583358503663142242395124984454152617559155160272980643017563443513304426336771984279313489182132668884380020924982637152537384547654615243480087701200632448599685963405913171647822892157808228007948544884352139620466926812258424601698041381717160345373568470642990010663115809674076707040522033603409762763996820036812281368934023603444141851563010182222104834790359956364956663072505674945440306295977173914983119498080026784019210160521374837992654383710218966575985646696985745722272455956975669205363679907627764591395823140577015041059592950914020141824019802550717588652981006516858194291187465031667552354978109191773856794924026407199614258183740643853724855086777890251169429836086799752491088100125031400356579462461433634118862442063129924203865007061921343180314677313686319732666384656461744588422940488974728073676707226197824961570682301757068254350876917603197428857689639642296221016250171193178673528559963382618087560935199799243665926841986105268281975889372283295139637658378097335581307427710613413061332706775314903430864782321426388377640963164437295624744916794997731146062215826988937386857261177885156583805846011719502150549924466469513169691138365800648017042004419500346824944864503798725368613015353646762356323888296457763825216032947119229866443776548319480494043098828794794109889352308803670589969212613855306943361387167691379999846428142722794912625747806242950964129889654033341519997094140238676959435195421900751206135006204031646051265243500956920961829309034019419365910233338304784949776380090147666124718554463325262788167434554233691923136682851810608007955467470941410204753440966052741861452085406948668772759271329432754304482275797903281032921806262781430883141076248202468869381753190035178510722856146768540672843700508824952295042159908855988179740107430850615438555135755065250525107778896238045773332788909402157748997615154948428674162532074542149423466373647810544585864430840552482329538606423822403866961143752346605498777787377309328034755481246525109527205674343526662749736174698816790930377979405026566504013992850088257414652648714130390910356280898908289727072650429449263215259715171056526654429176738290798223659288136037103396097721645529478464542119491600084139992733441695316131887836698356385807496076311034841005320425141278983114879663006023589152541560220262865441257515723639039821179709510423012397059996770043047420808506250744450107350896091762702001521941820560800140197180018753992929461372756071143682367806851058130924623936898789707096945546439489403925549857624500571082591217398718574971569989694201496137033187685287550970469371156294270963937377203825662718565227098014030526016284256434546154745498814013844047282679401663853403110206004466940664076208372615114927703645026503116504751819662432314807938922615246296596527633327106305322604237675859821204205208253331838688298757518326336529437554701041044450049312957183613675680242407435478107228422958605019325842850019625936234260020693408631237145358700047299002489033594603571538919505582795169186585157617829186049657288078004451946622516502849437447592822353493764382709846641634366878801561295346187629527705349008986459084503475958337788482705512898533395647849850251201672254912405342087173968782212309422479696695023155672555373103643093556488283305761585585719842292928296885900561879568973181918470646592641814907400204658221362904774395998009238473030666803937968582932989091567055050129909045422417548478224269628685367086479884824688751817257862173165400415762377897179423946652513930932357889986611180714604388694655604243553578583340323046764141179229554339849695060999170387404889850952799589333512951614501420248809283507715642307297117239475208952285851082444743261077538979803387958111440154900790063499825989163103066066849133879786223704976773499264348412871924095015668489273783450426495137761185417519167125280825762299435690011510286289748827814671862843180512066945916825441050729063495750134229841920232800133349775803633060868946073622284548983151884929492265920718900192161420819501859145829355139648875500037538222884247816373256790988082966409622198483196713732797709252887079333400257534421760212592570172298713960544437042967666113281190204518684200468122367794638134148811253876426148305429849272954832525060279440928029108625195674703879641721845395650378939927226017402757610595938524996394837014884995007594850958920765462126995667675613150291293395765599702004729771628986958200007478212292667919732315416826795056010730569917457520645403583701526646300019850298582971477615822480915990690298241418298141930543487030736850977037516909061196183130937844964993239508634682610417260919914647858688148560866112895323739824367759858172947748603896293231955464960291773578268881857041384382363778027887315026305620608726365719221982920415381296379327505402371699625057387876895990015765764341493179800769700879231163437365833250301299349925893828646778392527207511271685025646037961391439381644483836785724333079541536456540862882971460726847784750406016294983627738017786600975460592301357487419290144425537094704569034540297086185555999901914245843524891233945901996207128212995342340701581924006572626171838080073203120286605829106374149516165680461376887165822518313122808929808033576500563046697239074839201874365654277893750697220304679084650886598940219736959620214156201395449297860444157067859330750674530810000084447243183597226368848321929448724582647956665548896054529663734044331193198070648288963955765752158418737598716688180145609252166180032022624573646605439219650198241767684742994860751938866929205807127414884487631687525804968502452019782018955108897080247025794718845853254813289410729438094482854435954057640054967820366551183259952417034940580995786141274875729879007349200358496625191677510115489862182385662539763059643100020563178475505757595666904402804648946937278102644705756702073380885632607004393168516871841995625126357435128647005903196999779987801482001467333047132867881751332482281086733250105187659291564363877493801978821480205344707935660071220386746553160780120891785300177295118041571969705284607646706021270606093587932836190225485137885922929936502961530710830521812401266991150160936010068115643082612430759048906743808196263670691837684565113561466565708525154321306365187572602472039745667790161440123287408666035869668301516077604356998845152082580140828549839094308757944488814849809361989973223474622554435593868370931005358381520862977380637577130239470579219745698849919556384818179497331661332826257041494385073798912662002269957830781961504939328309921321015517047522921351494211672230692348341651516664799838697479547631861087869307153914463681351455193508083699205603199821397263967126824851261159059557321277217842031746021088030126171589056426614971569712778099618412697462732844542217906186266173749342839721878345376215732371133030015019479044915549907690250281849163757843533236050614167359257784734374219560338732786597664934188265595156102115486911099460581630642685968934190095070161876347379265335739871260489012352401240126638462813273742936113021505577568870883101501440636315227183975013204532245258052294417443936092204315945024149974489768840997505087600163970242788495789310798034721516787074882067757348738129615691887750463663827384955636996484816127134933942559373880547970571443783293116555409036165596570727509915007896077910972901362984049348696830719807398303129134235521562890540643168648263556611699651362352239695099441672089319191463336347123173130503474580304392950885716110317585367595312981172171575246639445554515622424302416725537956802016334964949082753474535942356664657449132300519061993989142352232760163070588337579914776873018806097869833940992245154074271327191179041914038604181941767983086679450098084703675806082959514541684141422038114215059271818797036193223025739223788778435900739069694760392653744167172791744197643007771589178326216991033937743524686884640818819726739775884122986173196995445209443449450915916386501350671248234742720590824866821706268175888942061294641587622855032532717042941969128880051959386250415917250615837102007574267948480240948028370641504670044456105694402174250295359437230551736177655938346451388105676145053423865562420801138364157610199075799693435150866395858313435663613271582869858994207403378842035449586123577852938119158465443724292048375540014543856387297783933449477081082953340892840105039575468080928967647670581625266109057202577532373983754992215153546510761723853865084832317282127075267854085885922866403410783109543032440089692841615553940528684576856508522831469779323817369634349399431245976612853477165924325995924211663133390597947259564835597333705472088749884572969874001266162808126819929111062861292550058199260003287165818922771489045411040829592462718477097809291539334236960744617189884674163916458109006542391585756585628973142571325907100652937291299032637994765102515801823263959959832624164668641096734532360421375895124267962961758689167321542657109308087703049451225932258600250167128626580874177837674874746808978711345315743918267377052530200887898485951080324051381091728649006480291417959893916936173925603829922429084071224842418087095572762673845001083125394710715687639790675581642932683985427924835055638697861623916564028580366949791152154011079221154073339591897464605681250822363512679218214847474432783768761338681323560340300026187694308515586419144983193014046392425140913623731060361400323633633713018392819274793068621374922089464075159778841123052406922945217216378817063262752096626492177722165225068568470392168114871364420857441420100030346724788034120779445896702062903681687613205815636481173766877100392924918158885352315323280681271565048749360454080507778207544947880081059636909116814779825324393231354676257426427752074219289489324565547514848045657278742162174049888803291503123208151086647742110816829088207304850620623216343680176948161873141449835565474314463945268398804316955251335285776882170281750052970867690981444507017682216757414790123440153178408198807581225079756437999868411986798032855916724965155802940722802683334290595913881687144988957662702101855017764027514285190423684158459651797469737293111454046696811100263404622438792314272552299866242608996981823367629346084533184540477478074382726006524363158634051147516325559429376742578080296649407395794716622634752548777614428447295605257936055100539006833339935050219190120056168472208790971991654667282514299810125881042642207508304331822406266018990594728085998173907005666561132082637222502503359103015519272689212696166816937670257321278012934437123454424243903760797956230671451267622466233835419937110779511760702132382555851790380945307197339794982681319271586532654777082380313792922089174611822379084089924353545605534351186683056081448737175688116642065178168324430679099209353225987626014653101611948330217410912266751414137528273239056904085889294783802201395695689629225361028143881579955377703457501432612584267222228843040735352149889996250793469955020250353696953160654996419271351229251718180544609088293664824080183976590105645598078245482666552475641973145309488423594383065926624538145159094148006907181212037059194714315939964353755349740157013531288331575451489244411530630407269321840937826808781486198735511163334059061635572806282663277467686372104158845577288969730461121941337526023468479074686259259744779679895967817641054227354376814774102225644034550405187735722413960244473437114254363021763671561725860874352245358424759262643495816182919533166445131956258281963468776010970580783197257877622188673697959886243672664718516632549558216342221970884000537477487606856146872140328812359309495600626352870178038848189889946610833795817342419419071437122999870437666298435411367862760730124489115680215803033881564276097785954636312522457418565984947119307644974376867806693269170738173561536831614628658475574478144336816391114998664341597681428705037821569370750525882681702879194345351849421338956125178506215178444920701830245773334152955823611132180424170996707674031215281100003337729543253715698956614105606981958025862963598872963938502365206390237719099576226208736152789370536887718981370515554516107117312473965845290933377367861953618854559921120847351329470937209230698427831011598397591047308215155794355210125295625715741070567418888670838269756525580453377701434935639237712961173915140500749489107391015451618749589113254532974674390045965664576553968441335857354209412743881364940685025646555424147031459274308385522438803019917621465505840807657977054459492810732974033396585731819686957842025695402668951031698283829033019479849185999518245861633869710802294885105163261235953629420645486973231967898654470980276255421367380297449495008178652959734281167731202488783872029489629005453300091231636815671265817843244060850456106347333214256247278943272975168644541590465911802150009503349711933874245652995760407911580109580125620198998152246880665357621254800137050132218239766569337091678593764455061164299708287301013855421272489603237136456134824698095962886435154176407431231457221512924329161737622494158986028695874728327017423865940523606041439312152682278448272158945192337043598816912389777706522518065538767311389269863939415006904517588892561351304713290057123154883041125897880171642621931640937412864665003057732947075790149145734626555901905328959696982873329134735248867153314801379984385833914550539573958757502247267315922274706175107426517696264187921295925779585490108503274177686852824469756108256660225378335287350343875500638708990181977369134497907783867532694511400998244644362961520232039832864453441159363086403275718028279919558825663533439614728004206009672673697694324584514831657046998042857929614771828629019024723749212127210074174442072134601205129508720722549847565945499556633111285213316759179054910749798793415134467301653884951748879066694428959743256842584567172053726580384495407324338818800954644997901118476199786310558455161444835494600099127445338866721299591679679015611321137988157108843414055000398944862290187022031227514534134346508369810067458678736929071520388416853000763012413024836939422373140649133691576690699605336381800788122378673293636834925277635708961657898679714338968566897125318150398562575095450789953121126577462155662329258994187699138133169113803355601750070785452127920842669466425676251692995420267917115063274846976942838982478879796546844804535664984294782432122147557380172365506874676146100195436950383786146352801527901891929968931664973275969521872563626704567539335693737012026257702264499722021698387688155355991205822680798953633280875461612150576149386710144257984123217074225437582248393773004437580291117543902013676184394904276340459798757213787335819731974036501508095554623837608067556022091976328481030384925062787339498758287586984372656364315731109741699851828933018644716881661407105513046854312072663681389410810983730529098385603680659023804171387027901947946124200418008735039049481211768286634601242826452579470746946891074117734595986919515944197675777582058287229355468227269120614579149041132380449346541054201176884738131064884965668093575790478091820369211086512156031410470524764815424212381149146320431963950631774935988663159730456925771608340198405114871150496338497510575432422733726729636643908547684674790886298384444395536351844704954633179746474159851524530253656181771719080836950143964489764904419694913685645283499515415991680680724505356750512245843087983070096068812588422405009962499641478709042862932248880275127370307293412392207058684401991359807549687111636782268936942833082975687062869602665701216857472876585549121855716457234282927836242017141615097656739904093972202945052034994452260457247948342691578648895195751802021616822436835250853958601839836867973209823744889735487679675807873655125510210179052811026437303657887955089094868541939336604795829257931260283282726875020932487618387166700611541902092351114986200614447764025965453179762645114167903228907406934852385055446272185561831995780736011215742663888358784175294923203544716806206323462107117330040335742576973372019059114848001451953308057677080130116559043016766352063510786650094494264288533152876573523795259790035213062136728974658842394001497506760919573077972665497605769021260666372824684140332169422174074363901669498420464561958741456448804201555164591236701426544972027121993451502982118107898320457085676713040594198385409489482592828058300734670096796394265717611175593664016771933739036130834582220229303373369174494288568973673650644953038124328257463338319129436255333701620672897454183625474493085994729940512614398188923531428440317626703427243840750923280555145428073606988478212811050175881290919907134035090922186477961329498303455924015036008157342077035868548739131865144689211763459472749677542513421770585879541247272337104152095707095604422750683605852201172275027767772239840076399615173822468729925629420936739711498599455750159712457350794228581753096023291568801285356195698419293480062160812213980831067928047145404389905485677971013732587655463968104024032528063877204278694233709357610100246156290695378260388367386966768012507692861159923275895381224032297936973210539005367886255945860645363995448819794644703418227333698503645881025216973664980462839208611121204433225510359902335243971658384425704685765888465758743511495565260079299775182181635725226448724110351552524867885901712347819337134438731572605044780007393763134243589791516218629653222156139421921345931918311576881604973666877453543188214831610106295137946952849777179742040017300179423399758592809764477580816543707747467704203683619309575169354478497057305689862250334707079649602821479133794044712470921649028672939021272696704941736525192585197999676174772296428861105334628255421431762726256085584014839451110883314120031105482039109210240725528266866489509962595446733489176489764656669620432238439221728355666223162566571458745616359138324755727705365150354155645077236854373437259323427274520031830861523694089433708117023349640709055289920595479644535913740433768411452159760057517406369227778561600660168811601590686480813118758555161206407664558008258787220594556750012350304748582881519588392042396502957916257884866314616719305645235992432316908457411607471218713735296762024778814620527709848610653239812470485886639608998966889110821652361999564426085596909865368724254514942218291929507156861636311767082510718169924917891059306445913172959451398354766932971956036911132697483820008231083465446089084950692224516235008683921658018269386760825722587485284190205868737169347068011448235028515546284036115938334540908567846875167205925774975087241835375199343752323806089262448622960616434981262243988523447941785724407646947349147955864436882188761565729676825965821660326827945892086148039014675165645529192407056291162252278013656356298799955544350665858978289616721795125902118055005773769076035923251711174219595319076522756847364353644887871820887019875027037637219539825712990917038588697919590792428023274928870853888931956497168833360325847607694012753813732323937155068866499551643825690980166444045127289276286806293270409293255439726363625068073638211934276607313603612475519132001534973684816857847506476270484233984271303407472613700330291830559611705285528891486082638803571448757387461756548867254812628068085226202790578205341963432041408910913796490928106025277428755214453493523377604173157600836150571715823284295021126620751196131794692678427156844465694226719123832417369290088588083293014675688002416723986523644518055194812381327277153432075982124013242092936077356509243383156430183699599905669182928260134043830600876708313515585383614064516969095306093037324120137063917805103420040598597244427995586590066777236391574875388534694379807193448010582083298466483258237930092869041745682243331951396035533294271748309081818839996048503660153920178369902521529544427569584905870901559578311735624648211233473239176604012126848298866134279527249571147744818301226422035756191976000916099032951631217796388255800590179612941329694770400531083619824530169856567402256867135535612279430898122955095798757823504225747647412162344881062866293246596977709370462804599890076203902020440892688423055827352633882184541581798412340918798695537145791178777954346018426463580457340188573999459162684762817509189410515012396643002065234596210002738741648070743006114074227365689859269551008324019165858217626328581294465909592552557506217812338131169760049869919404451373562986536662957711159633241626590218839546725636762693100881560622526384322142094060907208296746337730305183659694512932184545753723803288710978273645810382891058053823463140434421027004206365419399567112128733741787126137740596246997869981922898199690306350262497412090479345254677590878898157919498967265096343814355519172248011645620240498853703088301970088887279941673439659323520743169470848819150730755189412957094754490076060700351414743013285796449047096425990721251973511287744330772442602721379065086634875402205922213018294450385184192735181838824427376959439862837568436075180895464894073504629990371979512823465350120790246448601911581248689762748175562302653026765678682973907694215734240845008374019319498475676342310392473123955833912812042749055200332555058082572013332956955769353704778563977228875147266624223898284245280310091278379353167185035517505131679600823899170519285098808265032589960117577520895744494601507785335636385510144875363371764020002520581769526605902482586587788267712026622548707237646559937147682499099670818009974527795291217235862876540001412863831197658052611209573917657129505316917910769642492833122307744280191003345402273492317558127570831004027051472685435072400330567034377295504217360848088298769136508486592678373991470970514570699856792738610468071486509148667134307339600285373976593738334904786883128576736699107688681952352857665672423439412396903321391761554299379034903616982222463701884861240199539467795447442727828618231018966894643994836628583636402306568189803688962869005362283070151019337950614861427912448549086125662240114126534776285829398822300865465005803694007094236324168656354982532190328498401858662694409704700427254900367831045995075444235465409731112047808538599504123359077486555901419468845786575857722238037158362735607832468208710473884701304875248809736465638678966278481989920886107103425362681887917088133184387210568698946204625823886518792699136296939102283531611786840116320560633309730983251275167924282743296901910381811142921487983631831663283856164583724685250103967216730780652595053011933579971349379371559880340646303514438018084628899432597985259941714029720938769632795146556545628564092247867619475732886782531948006659770967690765686194910195526308388130769483368374729839390500364989931946667421160203690039975214929980825809986165730019967344207999666236232913961393794836193072322534303936492242187953001376963844599639990768580451672103630311513167471958194518558795929319381835478748922014339732882282813411550233490137463182643599082950714440055903685349174694732785417082275039575220862467430838522423300074590936717697617468703349426493668714282937449536000405574258972098852152539274860767958807791938645544935261024249617779440630618286921799884809941150196248419438307983578958584166770612502849832427357809967653694447171790135614418526349719153476183438926169867470346714416196878886157655515429728860418622425177791270943658470967827286172347829509234178143061725978373924559809303067446390167978774200509990941630540366991284127162186867686548934355052067039422336957336877450931003722411722355031319968119410554030450476934331101577166975777827320203317050259677680399744402408370809002663776557160332187311490401738086088113423500910611295633794253919903664547159720456144053961126695704350700013184955893047735478249261981138188962709785572095759067900677345988936023326720411318836920207172514545764630878251107669967597383916750452071973225934018424815091329671762589470205327403184463313153206195803450528634903439738922101178180787030102371344640963848147653038432781053065551976282229958521233415341794354020499776777115490562047721455936916489073361987517502705453872169837162040321305551014326112135437680491384674504619473506429269414948050210751968643092050854846678673351762809660284190316482685007005557484399687706206917648762050820047237312828644167761249309823665050320838253009186090941672981994169284783853935987842214797594009928120276711388212969616943746200311323522156550222035993451314579017447674842938681470796930861273457177520942723596705563230072694793675529008011515536072328440732282011470198382571384515765688651865414178726916973920824026477043310639638087226155953515190716437599418542761353957466478464086565074698151328795321859443113147460554066070269034921985256365672587931741984914974619038835793139023448613936983596692989976250084760810285231445600601496664626766621966652300107502182264377438558620326282909553267882731137130359754330378545293508881133315835963449523315954914898418608761003310031067664911769832354695856986559052385931113273806563356585177780873416890945227578083238512418236482705059116683023967355590685430897207356276368088595342183354519539303601386137441688192377071663693423854401285143338587275472129635987140453888867846448935608737916075426785063159730791763991705981558901004013022368117277906543527823676706812388503967826707847087860653907873749056506433928531796545325160480435362401408317922545551776209970106950255033021456325512596880136957439956101572832617539410093764614613324482293251867768808482084529780269679325030779520851841109167830821998422958661108731838394963955397219849831402913226889520773768512689266127274057002565301742911254862268711649381633351675302343361401858957818490627073991411393320471615610713865747149896156490888259631660503931490323023366658201290428563695716951068103091227770389548752904408577782393501363664157370007283557987399881648216546421427248698416614548812075222518978772251528693715031542046013703104689222014340104974519331713510615552986642754035463251336440307794829833305574634131570398768533410194066782936111289594833779392224743880819702464379754117504660334886528379480524137513662594663785151605276329628913805719111881567237337964281502692084706355800687117409040158489297351831913989054654411619954435249312027130967690375891917883741347539649927930913662313395561923254931223295761241383160890110459475267944082499058399105015278564382288168230350022701931321432001146657117594087627981057985264555042001395918260022323337790055900747168838911695066548544125386699112413488678896435074454652145835013737763600878359303618843402576604196949965962469083373589468846622327681006133610391659766148166942811780912996325528044951825192924093251706441389894490491134557755133635180977479735352944890440308975087109213893784779685737793589514504458788432855209853844447423221202813547345741245866339795626154415690590972212814278821942852951656660444058202868967820202509884248814208591358923426583942293639856142472965266551444754969867972672041938553125012726957750017280020845658507289057621528048053734212465698542734565007054427935667214048230531904050883588972874996425797121179751825831026680445681740177763521831989731178984072606034761596518454803164479537369039889983057958774069208474515141245723572438388921277356092211562309667833100033827469756924781097278007619533362573311418403607661429834060059790434475946201150319857556404025679367973462794713382284526393321952417574553883262397040261385854253825581060468794037582762501449641151093553809706034188045528389575994368144111509334782610925126453969916118395106617826166184401580813935162139404451530310871698498376408762318248760737980556866427039976535017399077164765924301483281971226786258126097992598285727553087735795323139652835129176365639175976968204730057650132851675262062746620470961847829348659735882534328596650957054629170095898067842204630990213039694028821892715010753203966422876325847465450739527267642281154272485289789583943052010158242199121228221729024543269783905857638751193526249338097121917118392592670183586751835644498195981975691668987277666716976267528749361419034335061171609555437268774829691355364813851777437474324137233437561004437786847088126182875851537387437657407075192807994606150700125496532029350684444146684163816705383706434782166070726537782832652060888721344991978272078107214326367906610415449418761499158015905805591508164411953352998784119301294454258628928694747432473936863976084471309191079423886241754624633931158751543056338158407024817795155740216264515396350613550964667465420978300895568863538993791801767106120173030269312623371038643354598505655799514348099770842447503042911547991205255516028651947153392260951269263704339798341288436810395918507333130406552413232569198786821939699156650843034408923235703343378643079942714091300747887124769955112224058814527899000199662160682037643618190651794616561288206607629004818478618854793250791221220194486818593959281592486729823213956406890353929355411694683017389945713741154223229120513936198351089277878904162004494671676095389669753476271131511191548322543572474244631677768463568429341434109247306939681604398049865976615742654947276226343813164393403033518481501155931744948112030723204477751122738161188405155839908368541807695941744280662796344924132865985351213876751519586165058987684917141036997863807303155807809282810977317223025146752334539612205535883392916303499046963403345174331922443568236103581349491318169564597970502675216083496384637379039771747457629613250122383646022205297017271317825010910605559466254633425594267135050430418718983358040366846238660415014601369269656916316712239529745557078898326793761458640454467839073383609965036579251616593510617810345222131918575563614635507852862632042160501073265250103324231592190453199888912690725606556227119668791222514997758093570546848835980622967243764987484348033700562725598874027573267274380407493779812991136943319152907822725744385358823743453422258746572991071755718342492494377313324412337112401733350144781118587838841796259337211684914496306661768145694397397397251180502525361582240294323146374408383598657195788994346309709593078072179761876368675522253038283645759162934809855957506895050690203121550832886113666680509425816383528761169665344015683465457988393022518533489744967156294093193868123862630169947232716061743621122255956752631112181837377321685715295204350396734295626745025280939039309195126734124432283745204392014961827706630142698097036644561396112894568017024632090208045914149247364989367346379126226867107948973507762050718331489577791352143521889278582696711138611161686957332948619236551359369284777040098965392384687440948241489195659643053183509149200678640753460253278711955007380485533079724584244027218512391282323399393531512893968869696540638736649862908871846180566500543807308163434079043981613167123671749243856597425383159434890952892652631662128727697792085360320829776640863115542087478578496777776839561162044842875719229790058640262872279712008037381185901055126724031787290710131668741551643457197355243100351763119663612454296708636214431192350064698609432802153007703678041326657174404168507513950679732639039452046652080858101815097184559878483050611057219758604495620800559726432423943764967254760640543362098340640224714370233298945356900375894347105608623095753570970667659987063581688868637591546134900748902605634894227412607139880981104156800952051643684587428023548835312962670082341637939135089828898224361268229063369401611416346670872926956928449957210095076962541794340790938197469864972832544574735455380171211449891578378855220566302525525439765102544358754131552781200680190652792998882734245483012982714413401438012352351749254610984567272441020976176318339862118337049935734223171003470492254398592223316380159540644205313878304384892612714907161589033902476684954242168059042050569983250668250332568964979325087848403991261039939683888126160479638335009599902270831096428069661317831288526641527145066622397705555393088631020432191786423044631256439574523709093477071533220011056730539363238557272484399956468749210894322902919618421525984894660012297699635832768260867338777186184551906356671531757439774779228219171490258052919698123012881909163790162512562778653308181171197491869084206122550207325779484161223217636043770964317871694564730716142004603466408277896024762321309791000593235838102978037616015801541198626663523171424984797529405876979797897652869747650406118264937508428989846948063936431967662164859318416626389739262091436783126808834676046549204998660620501458538661714061617904289265396780188177962671649834594298970299695624590337504849551272401306741620661444004688420391748784244377822749425200430330983944021351821105828148025919486850292730376547142900440717725790560312503132345228389447634333545120289978193589893711408862738393141562507157804871076068175624933187601164432655467941249532670337026446604426765959290811458573895578898116704504848210523482301049362492769923079687025468394325593067334999945260780191086326537257720037240016926469294650956830692530705944200400102592382312676295151545537795041264870292074962838730651502128670442189958356038913297036345940874163492558977987776994883628280654955487237443260806021034520123641282155279078817226196484904325216064932755826971420155853999177030060541159001813589567886628152418563008886759320688894780833468494414330210824464943141316035902402291472848954773502463432366778964952383589702104306194884136234926039507410242161369840012766365644660863913055107119536151943189799174551593531398871099468496121254566384481425337891846670139668893434346980635886526405951907104917686150907708040989513983627849816852118895673792713991952009815392305569723975473954225125424137252387434563545872786916451382763971930805548267771908276880252643265000249777966368286285807154922911400117849679604914903561679147880556634993889431758426144677809961781438559712668172887894825001711633516668368892196826671948526656983572738814424696277671998280381980287918353041878128505140689841272947737774769186295686717814478753505570121028618648212994897370931313802830211424922790968580708483939326391966696656755085628979547666389609635535550774069341736037752978593671553025478976345984701027233261045475440044965892741089293551472053702727958864405836025406102536076623005560446553655944419581030456279519501107770007732172589284072853218786080104223762421268567253900339510532355218306525477530663798355978921900990506896757421565451751535440096838554094965446477198487946153400124374029842355238737252612793234169574505775636193711047718713275261557524128190793517472833171918559825475684129683459984457834647213736243215829691107258404516666299039463453852801531200274325772666884959902553941118639885850719701932006673192248869313672612520169014960979342766786909875128010062274942686116807220213105056941196086556754305591891386273179992228351755796364867678282102656015815532921797297841603032129849567273451135197297594208052272420912011836789553054039707093307415209017267957341152424112063307446048039785631988080727500375245964444185404341681497590236414804662266633779773930276726683693690631360337868946187210551393193734196233655620248608923061544357373534947610492686762255849501695530941151931260798056021838973485961520401341534518698586919456410354913991685327649200913811182114260359693961294758674182567041981852179030465379355073305340203104589691651574327553326759738403454580262577387205491577447273451975487864881772941620504185884782475958604364631595414367816140261908608743380780611120245336515941100475499129715006950277216947746700335412306065849816908765442119580823349495490990973033118517826371917501952141638321011221511129996967396345739031152133453085846748765741410542678330525480428238537827040899035036207923874679021647864790672821318763779866950802217020046968780459659826268097106925373537076319141734337474513050020301251987524876241173989163510234104388310093624502962601391453917129684348586081104417992024438160630020458632948171811048471742045169884106544164612111296979298318091977488150772222228999859015085093254701280374038313818934666931463692098969151622686109847468285228545108078138737978163924481304574921646885142013704083903625090573993182006812492438723346105611103625399684623806586495719126698796182215728769636514692609099402429713762469405198199069835879782196037961656716682894848620498231418911336445476448750954062400283623009774754863648255086008826881578307903051839151223248526429888241476417683993157997601309891762043186512156721780037057684219220403537149702437029308116080070446856326918116351174827676297248937839252649495560355241312745337273049191903502413696753082756124875912335505660110855807024275476550971183652499256099888862116132854135055419618675687343353716679870234044046683474454094799088270418946473414639091087083869740186368182693457127265823280200321029189943447489170076377596212104531505907324441701572205592100827323104881656028166529727973792485785208637776770206986771357020524182514583036721819417541298160055017743585039829373963928238222221883219237862070047090618600677949070601312429302737670753825942642763359417406145651198504015158708542820948119564618947920158553799665626683011097377344783960675821854151318540237447965163983266748912714230147677099578576474174390014106144833862238469088805318528389550124211499545401626429366568829766802093988615969418495162263238423256868402338268170752483624057757640400395022898468155185356395206367465755176234761086484364802179811501308550673369990161455450295735017391436033383301691984909026504271252025109561172603868434126343353771897237020011422780745874032188826194566730510834699498419251842923831126670242029102791571499107979302092317655557327918155373308766365856765230095010233272137184777643513193793230258977290158274372068912822732392558636578977674065804332239586716660415676011420966598366124141085972357351411269657088774711514756305420525091756936946223639696168561066773913946628312849194322875503947992677467420076064889018755744879079496822653416610236945355534733007626257034748219911280609105670685229354762220969607681276866443964996951509707239827833036966201218179838572761094246565793276913965638613760205331451179066758961873445585089659633156265784601923560591638925057667078583082326253747385324203332172493198765699625982234074595817064616386892291156367209713725955293915330418382756830966690367435419492975533820747549085580624621857720601648957196229393691767752478184478285037111673535259723271217121884107681187394484627108502818561748817291047811720962127002321400666903640916067989190351237359923206530934142175110312051004186200606286254307562058820171703021651443982836800712874823246722202069535508645088882492023758913248556150962689994055696482004270211198876476830236710837020891422901858265412762321871567280062227698060563483248766729372223000434150963556992328990252115978627503303523904530107637817898491765021147470839421307357409052245960671223265191615932798703152806890681650877484364822841965000949529164906146173261925271022990233894607666319027848497234288542983367608988125046397608320577243764696797114179702474640054116734336663925614523164484746048286852431190941842872046068670124190069418387405615083881900173686020200806842110132864798327699931143589379691106769573158569020646433988129111509589023322189703981498285047733874708398891003498705881822859671466951622303513673682918845370680143062465508889833212646383755481151630100446473445085882128186928527468082266932914946920671021684090655442225707142212486087884992811183882197687893500292460645922687926323671193179735561386660340266081265295070118976115569994174773068099939733682950103392740582303010762082977643426852929471814885928523485927349291823564959851436393496005424384770320463983215246332998987046241705769393590723092829076440325436523745852436826039387446877125743666798591119219111660788220383478408768199865321900363622174335115949486015490468264956470950537233221090588946201092029095510626692966292869842566058098281907334841344990981377321733488721131343515804846896804755274683224982772068571173810113560917736132335059566880966543259711009536840703525725328377491197034608085447798153024427498134546622100640020241069508887039384285791971601616403168067058245495233043218789354419983597486222565847940580761980739658027742088210356086357240836721294809117564367246724847923117210207142946790385447646927755464731278983472779574924593516970173642625422733276162659809859532617967322316999792127626759023221857136261206134796673436696593013196268951107082762188899555469374020445986388172830892329171043630967392083249807016276610403783127967951949982167853144493399471419544212894291062064563798096582065358185896835342528333182025466891060724014674939520192608745353388309897773452748581974653124722676330895649570426955414017979808442926995755081273764103684250774580415819428341319509077256466917022580463240131842740021223898330983753167464956843863541780712826536747764817852248765443767554364928133328010004248707184098507020407887499157235141387991537226534468743206935065524640049739932306134278138550617386542121938733578441743703976113788122069565823432739177345189274031919085047235644484397279424204107627560806419226892478637628791036121256587670438039954716639215764724083889662925886151038861712351468855895167667686272309090778414603811676348836975356318037509524259367196097513814707418876345870503633641196145659250925584784103368547576502406470633095424415829417401763789709855378310868869021936848937416410525986367344019411183230849529501438912408063025648508384153529455969756735466938552742675238920960793648205726764158723288781936825387427048332299373409008461840235650078520948264501382141845864278355111657936063214016380803971705776696597019198928531082372797084796694930017569251964072933448017306790361426308294169456421500935506978211892196244937374471681865955263882165030519092941532626010339151868590062191079638832122131591789244388653286979879598432914134832440837692851101414350898762660948903455286631934766923991086547753581705696841338997622450410166573475580877472168289261861908177751558407037539884124270181777089953314393598920030725633428694315335110346649419245728622462823498038591598827624507531368045295322373041868907162453093723256464737285151249250061611802247343344961491057078048325019814958030166178223030126951214012960404002798886742927443300609270251497637473877090910374893300597019409507335096764408488040348734477557142778873328633260856366381080729506923920110846485666272060824993005531089097188954954276302557828507179628994248532725723827833596079331790007426429367895932594881022135519667423990604661491062505221752127528087027567735594534934203766252776732625536287968999446996367411959850013476681732547869815861106723242112958258474784071590046205222234007002608497242970611215311265315766896469168528427041865751168690466589664082350921676176665250282745618493032372600480485588870337372466792396475029110926226338405836851061477145843808821577729637799668505217721021616854781385017596178101154333047500843687238095366092753597891209462135941391180528782186711204538936982712211757209679004489148417628221594494658886727811090150031002310839088911216241694711399003450821089322304968960663467558351757258671214231513896368809050435612334825314649022507450437119614638322332735698459257072606975295466486196586928997110092802514275233553416721937812680603310484870826428198523993231450967990715839286997767056574212588116215418101089143464222347103608375159266596851162424715365928692939940224905609386212808361191253571001514658778911967802975806545738606567519491404848718840727842999127369006611074235117277681142576166443470985919042292141976107319140156579192581731413846123315069114595798389313021304037250909133916429075552235628044871758195187446664791526668474233570153130992714222219593828254056223438344263329388152748895851281795063878686705578458065726191840358508666179617112287180346735654825852066030623952479791413600301035831644616996563774808213056289354662535577160743272469316261913133383642304915125620404031893133483995403206565573059277839455769909035874527416324852086870093716055270236659061840807641848443539356523735447190713815529575913368543732610818318066228443216671845639024633287277452763017624246955503907419264517733755783443085597275677294668470276734601017891444724600516354611931414815731303913299197391338065543022913123159568310208236057578566038479284336195561533832181520239680853298518150392076519340849369956338924045992903527987499847631253869178223187241110434416054027530290150393731218542674356240274005693863009557452524370098455837668715042095486022132843179883714763989296471507849550920064481632521202113498300319418850231708329485377203054564039401562431016437858029495584481279252599256220676662832634967419531740043841827580869580303611166504789084438820018056696886541357364666332847850689859309924059485988926664263983633571923119251108049451268415174066796811530437045618332004356561491071624965237264172612864783219213047507931035875450902595636769035335032023993723154208406759860054404708614234581668756137855557994503360234712451719758160560974427577996726690280938549473217044831808176918722192759212515868715560169471518241919395749567688593021597908888148008978097863265825836114098946398660553619791683149085936605681848885338063355575291523645652064030608779822729749759130782994025840850931363497144188545065797651259090237536217351877724724342788877730126103386473380604765053629122609616269288763779607886316581932727343786284382646118798231785769498908433913108899690682964648698085519618342643766618104508914159333101165751952936546866808267683007080374365397541948143138912662912808679189697637230818212061759071697466776900399693317875948827467968560278488872820937267117479663813992224854129911134210441747822738682962852320729561401406734175155426306049823750650846972973027464046994531078984666602807245368601231509220740110694647453207701502992955985512898960637417916434599809267521017864295572249204360135341736148033933423418104720652752112615784292514215675519497602714181118634590109667454723194485080273885255647709272695224683648246072778364200311419456923355808884640942365348364899444798353448327630448875187688653608566843753014025596248409073254757457135163390310931216653975420878929995816380506471007117377393547325561360351747383864136582195994849297046889475114589304110283154813576567417950611630935555231812853280209133692013252486097516588513342344797959158443490792711829162964751267515452057454205630782118335536818831430253012763431952737413516909548096233070844641333164935865256635270799586414359249967222492938998955805704442265441512789487447691361303494073611659326367398303793539214028400697373111196687819503038982655257021413612586060691562036942750068363588356640749530969025041758585433757471136096451400462229108965670453400972835653840390836168822178873880302711509181600785486532638173396103927185954439669892645273955239883795087888926039039206727020444057688509366276390526062773018891592090745991490492044220372687040812096763889819723713043694037210610032148737174732743561794328905558786177638384929403963962018055416378148690831977068073796724366637425832561114987362998011468917863947904323481218752866089541239816865642228784711802831968232247747390973718549168933864753980271596134383968178371299516934982288153237495403740476189567503281971995195183852405574210990215636310581587822040791066491567519831432699200313200229101670650875446364254880047655645083746580669841874747912858331418774759607476748201071157797765147690564684374501886752505167171790731773970104378539110995669461701428583932122360039988192608500309895299435443010949648901538952468495873420008624426719148135174705834200116555229315630767774292163603969741125695479183558808834141628808417864660992042907649330662639841705660248269712422044211057662382752628705802239846690247523443374491422804561238351688078545884779758023667222595804651743709497863913442463447619195519144094240132733457819287656737592828142045391395383559715088634658779030687077236963943001091461626578261969594998568322578234846323661502256304357941552123098576881038795114716031012107889513272307478605296415797589652635198502329366578428040830309834275794583302706390613899313228534558273359634053752271811526291161393572409942409766833880457674517887756591817158365482697983227345909772496976361909255460529074728228710498381625612234904926139571707288358038857241771027927676360056689620298644431093417531205134051662970537471913711269883987723227054678400715091330991963355738987290246218191148434758932393660344801843573217615968341095455042846801820672927230871878977055374782249149916293865965858988159520158691859415788041084828083436357941393404524251962745748897816819877622879305449060010295030065475464445578635466857810101343699436252933953154961795837089742936703315311716602164003598453977324532872332072763249688665501618790615389845394251258675067130232551442479632487192378396642054531967631216715671484109601954107658717045977783209705034513559065877019175966229979457248087910608576168156686296807834032249610278370314211253171984776193727713414012148841588750904457782453342550646983866946170609639737239943445395190784155951521272887583822028285200036783633077545146293205037978303343770557511098277496665040119582824127858399465054654659777482956672227667357677179278552035951581711907709041227453695251589928489171880927392473664603293403460321980425103740568953050815055434771473325284054380069008282646971886438492760793551935940636364737787676521008235836885315651894809486451251330780369284324152465217544953366882138695809500075349594260475590040249803113758478924149123272646758907012622687870888191407829524236562872590102631719964023200102672357280256557541274113279263312261045437499101292615624884051488978484790428329594464311193237222890452740707767464759053332373099988027510935617277215279722300883343206664519779345862745096725585978886271879825900759680426710020139282194192861717115922003360795134991031793853716149874750185791627118434731790347682071857742389756556274721385812815557378104561095524814749738850553821235881005540754869001359118366565846414856750926569262262009966430425642391258810875842408815440555395508840546280339302075916152203549061377570154298666126911992391971233065351128836880234863149873667057999726477714458838244378126612604901683831949823015440784964982890366710565441635678970834577862737607177461802761324879537140911544032477031663353364461810891781690405603901933141150761882085138876196828134306299168926555390067104479763920482710190833801642241811521193421880912679311251029039691392635427517636187907968620107664625030084180421581254659687151213577584232926252380196427944302344043245924289672291402879785444923389549920208418550089873251495253438752696814443524449048561540120876949531334152240583886360959641732997760644478604930939812099375307940045340260255444214639981577855485402425324914359853463580870501583469469803288366886945740832688671720081841383762227112806140032926214648161853542840393743355619385057561116907723661933912407054543607158721316532492402727228383856081584707143940999802511071712052764886165522177176617615315423398947134446381583855479688975234681466176215762901898183588559091807599991483658503698925711340235639937418245507211439800592157869399863505515218788569358259425590226150123403549796731042957576850496061773884748176162774166209626933750422675459029131010530286763187264182220525137654395134468989440710795937929301779357188318996651507765511235226232056593946096048554430795743634600909724242522066687591007180274613598572461113449413971311726345016016834224448454866008055551807076360786863757220245604145235623879010669346068229314808354447698244059003358851673762835567878332281745492490838137247349906644198954269508065546337494367768496667314583645782371560718861411146489011850793905100379050170228294042679860496289874453467276191074952412082056727598359764778505916577912109590579009318400101503857538703382952737764420148311500761560753632590144955170354589259620821613139972107279693198350296149563787094188771177565783415406035475215965198525024450289926762791002920420146522451871532761180071788367921145419751172744664420017952994548147786535625269669638490427895379115901683222489852368159268760399879878069886691697735438615011798633277049462596862863525968040565784627542270425361072655039305763493694063689285903110094736642717927544426437964400631554185144352253419485665424984618811795659285972603343618979345555997272292305595468014073161848782756024892405164353316077029298137431585536192956771829673045260641906635908913513140551426314422234964588341780827772080878612126539721374235733902238908344479918407968814183444284264544776130173139701682397579524955157519499724425256135037924440133908037407111517432486025884252032499579261861681718448538343447281175011330068536070745673721504548165185057491778611390593582982000527639076339545146928389545325115797630108495152272282551382391172234555473395242696403341898180491018136647372037645066217531372811070396947333097101245163888488903395815479944955266448806928002806148276377181925031569241974606370725384421414122173621950016315024777270107598117301189867487999507544846924627009902591646793548879473138760379460993228246113357114333046369617225259537501932190086257985310572261990120778944429263614172430124906162187006431516679344824478850609674342366795781384551000735954049751886138426167162220800209205676205295735686043936792672266533790741304817038385192623735456205989644872820993447620603936744590262076443678154620561169627131013263463906085157771884597821659971016000718253817317913146273759914310695958815476933364781501864590577157997189962271594998171585484352065197817965471688906818140182209852281813300627921361303415792951012988224723413275221792162468478714918684734480885473912650565223966044297640518216697766488048321644441127032086211999949599580723498446931625128530307504471843030158470266780033931119857119187365601962457841164696293585144536008166902901865080953993826859952145955973774236471341848121371151807312182030874320414399112561699663769636235957485880888805031429868668874879942177091948286944418191398741475839526159537796530357861256830979269594601648211489028271546975632338007477878770753297157861324868373495407514975290414627816016687663656381793314635363422933035050023381949384836789546674311898349522377075936709104441611822872540305863766424463131120036060535316924826848197550283069624585899545958299103180902635975946067738347449246129275889896389973025570145274716019994234657039127757078049736211863598663262892420883577110933094094631709759806974179948822183424300639614553794269950431063805191413643590338656830272271952350306069649460821632290753084370990238336939690094180390206808515800556332159890423959293960983005948247696361740080512456219343830409632032834044862185874633531500734205344235078504781784343691383959071760440559008044551184221069220263763808270170719307737112859764943410743626622565402964604155962588949386164064745281311481337708899357835604404760132423048976965193852832768855303839123656919799191700118081417889523199968556148054109190177467927551026957847144153846416558154445404197264014490013723065128406739757344118329157476749795409182392495673597870105893531633772857901314916656846972149154614978930081106096542763807719039553234158021507526050372142370598406425399613590419337219804573721706042545151257584011825185791097859071172407599308568620850995118835440744221408977660530686143684760803850984673458098182996883723010276049584562306326941900010271754831984552878532472785194728919794174895249113129550052541647147331412156291819520251985484906412332627825624316358385178283126203430556011363390142553366495620610053869925850063939367565978391449487643557513487464706427635571237600409099023289607831069205470108810790577953786666396774625650478957355164526228144420502870841471405352652628202688630749759116232696059305968498016479343154883518691507921022944864070929653373768129778352901947874583835431236453660756363504563998595310981411052014390207364094278584690445613913020190832124542303903950063687248992565843424321241026414597396546424103330781895510814338646585815980319408389890853696188833069110462154860593162882862363444727391385389067979065738596316994944072366295052825423458241909411597729467986485285511656845895016770746897079109635815007860364736324422158580207726653934789267917698092487219331445172045275983276999812531595962363987047719839964790413384034823904302325000953572932440020140485763396327486683409942575779356089519362289006097231997989605605057398110487186788250012332189597447922398485878882844010196401591534026683255474800179176945735438054800601663034806058360296588609945989616576223122033938521083310576904910547211939710108108831482305887549209314257737276603639750183180942811503870349178758460701688901126379655493823308123015296732618865488456007014948246949307075331372947625582827817513480655398533723922651947753687783536088633118736136361735612500787638330501876369228416671264714333287132470930736067123513354603071381477148302428407367320631539942792008895735124580844445277986159993743372989210855952634304636568987679753707947888016393780287600674055909580222629110154074441717333778769832609807356240558510558619221371232726320771946084869588653853429493974204615633424836098067217336230000458078660399459933546535024734097096633395304661840162448831225259729098147579890822617668565096277358510916422848687529182071050622511063273356192679043255581026644042571957836802060894679101304647839580110701049707437491111483626814517916312119140233491107616977612389456722381307151683181764331724556032768148662927257006651677015819395250337824725781601567395105213305613502404043763610014004172779357478795133957223893589550427494893081941010112562413235978652944896871235604618827290821491563965524596914934619815964728347479583566280870152210168953709923844233300036607821171158453944532444729555925719954880579422626019384455821477075434540719307240262868600388852910212821656661933194160556792925956221897812186829086917146972380686616434606206647170165958217608128472205664215558380666570515944543553874641649858731852475646318768349588984183826974085288832187939097216705103934446882149869533899100163269849088537900196334320417194352671076007553996468996689388206889214709640226170815416054872132523604079699773863461479627676430616148161609289354320466784832026497156494726911259472218983617001258517791588316799803595552079172338531992211744079815566247826983796629848546893727728303945991521181609493219572729197255544344112855919687384216262069491610602622046260111888318903616110646271512877637597752118903825675839668186593234681076644216908351265301788891144385533470826221811876810230491932755649082667153345881013243630106638192096848140308552146582055377898486444140758744343077978752187280475259554318339168863962434843594147002645671894573165537031066047750854804320312423323685599851470274137097794472145378429169574137566012300267305488414898044158707468036971858452484055462392386902296296307051381598136719895204031691768581030113949160701847266495324976169361607602213560723411656054355554542660004168833181637669689068670543525916212042281345934886907617487274398058118195002653876074440675525016928822995292639068874041215369660016557368647665154810065130468213235231730756124542219856068006839003631332738668136150814492928385155019008431709064466093613006444175900453450524868186219952709483353435516909816934327012424295786465998132457920265310828109019743740339668285004415730983163049279462379984386524804983197151905212834740049351180601906037544218313525579528743312425648244996201084575402296385757882641231268080094254587655207171688521097294390296611042116203017356523110817417606586805042105001529722282660428715979906777184943369358894655270660522016467400773458153509623494815010845162556281298023716142260463442372605384924473890807478084784190630801656135369424735785225492290408325103407595936229348342731582810037172010916172631411818306136745025113329870041885398193037256936812119662547555042668396517560685002079014968491107673307519850113640541207864104961866094165950565976694975625273019614352701483017059722848951942512323752645680105414507013853799749306273106514845406563636553039270518049576202638605230875186600937006773465275242315127734451980866910117747236877591410673208232006650408543380163273795461988633352166926836369003754008458251899052841228842140039482004961328115498367104436458224626203081630093363756293758771171587275374623363272235776060507596062613207830405905528122216544349366291266741538055103704196302901595497409415236976943795387813551235123640009058403678932064353468810023296864572106255752801659620002248407661373581371842305573154689200844579204884848457968187167576552209065429596495881118191306849168553684965028469318243396792227014830030291177333785059125770614197699446725316120427125924400733472904433824055337245135859204643321821077038129149798571798374345886247818671357300410040024386681758644904692056418435497879027412329621443569423710223665418475802551144062343837111937412356510843934818123450667856535661515003109375890946246492395532486788346824461990328324656583486388633801668248520352287325314321899890124691144338907991042552733385790400733598188639547497405612955554629431997491754995808970821228389534634864898420574256145447546215921790314541402735125712273226290773467725489533638433941819723124414012485599808683063356721885155729635824491539125427091989245570184517286950761198077680195645809381116391981717846890141559918429045750783571818881705081608679877487172023133980773715640724239641731791963430707029732072813308847363861190492410903183803191591989044475204749999693216709406991798164843945112547369024524709377686077828398269034126035550960817975320083191596809835158426109025744292120212429335536242516816512755784066460804550986873850550702195568547855770544376646382433620442111433346237762544984225477960985811666468049384790970281807258683191100456047055941407485905942843780685371892176125760741683072304521737594170647920184837024854423027587106160507259940663370936924479348447316898359689407915877401977318874325234287558609337819521235974477585307825240678339753518301973181453651286143649953340624184427457707487701933748573889345695503206753297445350739137696631340809163685988789240949108596816159301163420130222625779790608305741589925304096661580458607647587674095249020743811751679278984090027721129011736771222915276510091830425272406474706596791531459218247102899294913946521514810996922339199890144567848926046152312682539199153433655851197135652636230057590649098325967954063973114864845881671046578270733663572058817202646736769491293312236515218527098049742109866197516158693125649967395384411710861150874210920434494470858599870501522243111026957588548035733613100834783014628781625711092215215369057047011600743370638776551784317105016989639068183012810599130161752489876374085776940531226481854913928672736917300657075810245487797245763025367877888213487558528568131498863277393157967448329152244253425971427616023336470857259731266780100341178616879429839049629169938939181945220126502717548193970431115881734356232684275226017146377631020169110851636764934453603865398088187363461252081115678562827004677162906617267107754743216509815061206424088117737525176276797874522270226312776905164359905537597493842149278992002934683888074431829699896476297064460289559079673483190103541218249629342340262472280307136092876825204131659834394666144528817987090619755800020144784954146269924867741184815120046850135008381417454286049679168050077357294779748958226071195620767995591423421948785576187154945437617978545873389137417383556863430040261845049342358528898529548757455754227942220749710329713828265755446072062209032518445565430957440667921627455170144907543305850095303842716052238521207044816395697384697862478539503233950480446473063839214607833449216829634345455064227544720921992170090040262867932977560501562422561248571480663046515354337689386873395951269927613074956383732613187952282083825509634258008614507711337869812832125178442301575750168241938190481221828798508629325340170773612983993846141822037357765800781260153878715475584321214265926571937036303345707911597838981126977596648462361669789819775738878621973685033785481772453977799641882560111489269793199168638989118581759017119432023076028158073200930698946798640926359908109786959377940736414380826955371456850388505051989683262906390700844258154375830900589399050417313643266211714808430857904462105822411664134079594185898834461531094661874677241398227353738081370337068834214888541446400058633582650131114390085655691585868659596209468071736610960128106232070914876049456055686098659541901763107652918422342238450299041642992625435071211856710529697112122936436900536584955760880591853180443602114331993959827286549282666464984862867920993601126920492820724155104298158962760303194313535189768095250237235845628081930946182548622511988506639455255821992168127264488834146383093539161915099905958722608860772760466795531759039178772220770052589917318645658793972780099296108079114039701385526846623277368842155237984744678634716362642213902491780674933670758046617664016785171597402899391707581018387881845593039386859696826011407825549733168044668026364168474333609834639852399269008919195616869142278952906550743397502291831480225545576091108528225012286567586612406844642069024454180155848548994023365503170438246184404209908719486513900415239332276170725527884488435539332149322973432407609312556109213782887980822305030807476860156557193239876106103178019572914487978753957263707774877978304693237150814938861729509281325666899493510412281088793427566876688283872513430500285264403214266044146415663691048669591875052481570972106184373975389258283921496957902534412553159507834824191416319286409678362746414522625788710736473174400467701143461434040058849219655640969275985901439153743287041132063706506029296163231943606942391477185599639299030136940582348754222372524920557250481874090664701717182429574472424412863425810371711070471733932724901549825084694612259294578833949462008198295562638866200639861817564299502600025027404179742917521159162293121396519752278213452150319555128849503192482341803433318972019442271286454567703188253324458580516199214675009588567399923224113403269928297576840053860160157338304200098456165418725237689292890907714457463215926880733485811948197415111458943945353015279627622181090135936955197495955673373423987314432692645908034691495839027706650922237782538024594710580687757821272290252476794798048468190980553119978041940951187574002950996737075793525814214896060673935240814764326419157190774974620101086858770145711801065486573674884746484352537016279283959016752666576161156719822291767892700633828143746545440690642540691596486719970372254933505587846122588788162037135369406784820019770242691516919994314984998384516349708017451800963823994399951916235585973245028624994811352158981736329891245083647496387123265780404847888953804068919455028476708896616904396620848836979453322140386625847445851945899199452149843109747300183484535326046671009516215863439093058469333344315811779203263394248540768988829430197238572118196740850118559881790040946467990988557177695278265586418267728495036960273573022584841535226023894203578490273859077555467251926860507317771553089459812205979587473821028263628491653604868265692405075933133808240699712155454135298339272264019913221298272495124074914652804644582738958692144151371769736961179748635963730634980844942238694160179791686630478274695121551529876682989382640517639869492296654696518689790260659544885128282064424691345695796193245551783997506095764517280218461153125117810949574573711008007323918025114249337682926085092379700484767996302313255176062332797289789660639108138607139987389783886594317413638160349311670617081569846311220526009232909286805231053020956157075851954404571291965959225036034758134264728037251799069375786515418047286487487398140830178858471209971230833869965766901517592866517106248211545260330437347659548610320610887505565222633200656425700615509060957352639807071751319610266753199771195832958024694206806680791380831515162644679124377034447979161452129257566502973189906479548166032953722958627062056900105552984940880779604370125894941374818589120235435757596169309009694906211378436595401949397956896403275787295173347470975042894438287515469713162187419352692204590496418933156985061944594124399102268943305787500379602827879624561407633512513489580382639810353508124687518900582372536727115845909929461691516719251820692699447638544781594834735864790030191547886531797257410611047770880755807417915914657542676274462339539547585935396385265445332076760544995434693842679991097398059519276058082401827655264471269513909295969216172901486197267767282819788431293731160083043613997227599718256383139067736191775460606239870827722018602087298594312553564240402234132343523166980126303751179150503667502189833760098143880425785015202287099581489111251147118130689021487027359084521426181763743599718855453643710336824435919256783524521907452003129848567247983566741131274875343828828288528929424589312584940435433185468380620259067789976712900421981061547465124175408146055998754515567537223622195406543666914267251534719426311812006031861033828860527573857456464416057027311192360989586809136153092412553052357725717099221505092308461632659713912904698463373174433908045020917190357490984594355398660843873690000134721037797691801686730293788769382095521013910023486864983974938247472588472796615074508102034620309627310906100923837695335206554442109223954697012479183193520335745107160473290443073152663536532022925137869323779169564515571407698880451261517664385245035187111349731752462730262165503516811995197188618492325413638809388266186461492062201074153751468920946665011955137429564622687495387578229185304513321578315903269619538396518538295576080218158138487883342582653569535850058099081888551142920391676842145844482929798830890396723549763889128684223183044096321165853657818654860303090523572912373150477274656193007920172409419625983210418677501852802655523662037722650960968566493502776272611494279665061802328821517704844646240789825854499814640040788012405578145303807444296815762887947247773537533347424796323101492925062370612935703147910751881024805249303794119777016981539025973470765579849757315566699901894697875249211492364499277689742640114602126703063663568778341724156856182126867041056249436157429973149068916259121166068969918770005227541705616070515792178153932992816996356388946507750881149600088308916037596750748181026685442634117412958449534635202462149659002264408097157991891729671832007145080377488346534395188236375259758508515087336287916384033716371415412824256288263228673854601784456824009739153431857077203241809392856327453228792194333502152382853790897641077097907279798378894207162795092498171042321684909122763831752067218627090018471132717384146352165656514291565015061915724464008457582880842040189831236892366179353334755378079162329839863642309286807995778904148639428224537632739906101663031528387564636429407098967928418530270368638162267629775638017974978966441228025089198066754751795011913339147824702056446643596274562610286305274356061908980576085609933525502740213254750293539663937683775748181953117933024518787478944927108868893137491761808282284555215340065604283951528344812860247077830421210741979465093355566891143694536054896357476159083824240781042313737685775774501812839368760718141016510909053644948948250194308250323828373261339936364903217306930150281862284947087718510817726120304844524789313936679712653773243176244604872615230785395261006078540021368198382780559204976979799238358686019471295561385433816532017664937367518872506350765848584904265987747079024477513012936307473546879631583605699074450050641547658954956269162548255700994205697237324535100575913265420604518158375777666457068134264965539854376319712351061896388937903300572582711798145564118565295664204271882714851341606593334391225600552642410208291417460685047002932288499743084701929484397537992883673560115827834972707595095978859576722166988677233755951011008962579853256551331025818283740075154047370064735796569392576744545983729736225211147662763513770901156653558173667044799876397287304018612785523933045464363504525597046054680471262181443214090464831000742182012656769054831520010388471105064605435017523826928971270091337171403755035968713081205627183865397392318816609615395799335723879217782859261381911262935674270660107361331529224431733959054724846160122743006667412067044451797380543413235211846834643020123060433744591882325102460109491822306690123284298883224965148790595808326913252450309764108871186786560886143017758289840649848056396345619160158008972425923821661791117494122827191250672462449816862183783661968628256938886658814827521340878721306354320431580535763873659750272270644573774353064194652585866489833770213031273047550504592407312744829372897182870942555430812218824443781774703216803790459020266254894970459818664383680950725148997531233245726748177570850737352075391523629964811820335011488287462821685547087590781387533690100564312567519637254337918300220371031807978646748645193718784391944892942292176946120825073206516310042825722256502780910409716606082404454205174585416184977647090151965714098072644504533927408320186228161059760807823000736645074719343564111315092418357842788579009446538253164036561719982099175144868295966710611638969605200676130643848491492852752334483687489944884902500149475460263973256386230896466251909875355167421734116612201888660135163389112643503521621048896671827388320364798506765645424079265240775192136007621658208115219134925603857295444286963964639414601906756371633392647995820830329749141440630087310849800583643392455417019930690217780996662327545055045559852433513525177958147061642361328759350219396303516120179202197085492703753100612644382687551785504337427972985023453415179818925807174827747006920206191921296739243615536325895450604031034891684767956509647203738182405384621163210351816340914308227839786334875757630252735595326699934727261057603090647968692287799378628235904144703802365236234187823647686477692005831451033283213322260313333515609077596130094241175069398710300601265159106094737787756468129659910440354367332527314503954576243482184384751821362931057630070560172214833686083413321149135469623583150174560693103600529440690965362223981619992725795062599144530405336573294275388371833916681753711334158816545080286440444225379725960254544561122830964012707975404279018797501097739582486647863898859051161482958190981733088322408297835020529304731287431279926400715886621547825750334239036612875426015705653905493481805862161676858002667067336942176022107016611333540706707336048528550350828699259834606752693186384679251893176744080625165647001351012631473280783065167879528110816356186054759311312702428911409092645065292763323702109479454868604085089251992151489973802805574303319588823928765930553465344144716166344428890410376556803777012729886524922228277466366681209800523631812634049299288701046504870399646112185547906693833339338674684045619930074810423744427273715850434148447465468413097932433119308950290992348465034484955351417588589654518548628891631740712629695185390951017763928872979206609147372451232247495108183786606509261127497084124364564380241843101219486221740426754866494204615804450330601579882461278039650657909503327992098823164491456762325627843079798430734155044517749087601367753130883902181551615925928402790607228983623550844639430690781952848162774576384563941327749959272296417247824135870849982252802535207885698682690737049031242274159602417907833212259807776111320131641664456539998513762226948334363160687538440091600306522195683968973078513858997093789598969742107308270384961836356054709057788819994001894754584258352097876419004234870704596450034355869463557042637381989180779226073599983652765595686192543299788195394767346769382150537836741616063103876830166293786594236837105738504533542645173505877006948121429175325386325759138363959695446819634500296257108042619112859288707942229657983145400719335531149062564610604465709383022611051514096255424965752624712625183613998894111876601574907041465878729630806939914491606704905188924022364440386001161203488686352266348385818077192812681641846394107430735581181818000378602750948856751156931917211822730103690628142000147500783464757031141329663643166902265867101417649561500472887517185832312888308125864442350299326552381837973861882014652223928132416808905832567889761402056339462745089604355428120680117034232193306916949630713223203573981621866702927495322514692479105663664976649486895890195743859057373699564314285860221594740889838229778052890728329139421047643296247072641364686509118173998070470243331077611816522452656773711727405276594447888966273633279266068008401536095275917226057302195593219823081192060363072614385331682901679558488074457063665442145783899398303200681362214358710852427644065916345595566630202043752592862715971993095323857676698786019142247980565738417608739578099300067626987429975787802656749126055649136829467491090288366573986346379783308073441831781692072604966537539145467942615231348972579560446224082874162066182263831906013772144599190729159803727324943223083833919554552648270782306945930525455327725788292864643426508430870024157169537197057902744255777838648238360698198611603755637342793901649151829375127056564657595127961394167305356408464084407534933942167331313887434194914757720268360403336279371191332557634428702972912071231710558638637569733235584030873042230478870020097860556754294294744942667070231204557047342668906294803231593879401328994914655370666162403518850762944559349048084585783614595832399366929077414963976429068527367600762135381613785646920928503841499533676815408830065880459727539654309381487405303370129429688330451922422249304106196210698331231882830905685192248163734206904807933759963432948028238562304159399786081363964482818412228051485888111553337990059206727316282155551038571504313866272068491358477254051514102856587141581613538033574829635120830391355583948063412758373402131029915922882463433397551554286238499955384625338137768156558384931105297680426784614439712705513020182773386610631174888519658355272558210937977788124508967659774131803522463229949167478510713573264338755997964864292300660498805690680639793906338886062333627401866376274178257254412496351507907487336316111331798343695329270564649613680118832752354806240084977529648448208932457699939064626249951799062640301504622639125187340456239018599569414760989065071318354497501473454775133616795267201695049461036310588249035853651125099156837160924200657662314302521718044387319822264613005058811441408158814219893938387002830230450624447671458787155960490373665504786539110043727439884968969033789123308612682544133437607990014510383515076595043682934717230069161138537260047969974524239871033245534427391994949435932227366439194683477184291988970744465575910297205049090639525455474328972725012689478967757685707692787484170042251486327885254041045242755240960608687122585690329224076089705931486533441743629785235805791888167568198205898325200497748909807235172282865311369559854852111504740262901560895688037705666946829550277305559471239889683416068702724441905015948504785884425738876396016986597906564900375784022536106472394777571515148122022497931314201286974348672315817514765071651934856123817059877802886128266963705102849657023027977434385878192866207465569751891581245380215086383484204411862506284352492177288329566518180528736478423517928997316948360380740415005382616619317188136388894998064385995296562097281881364036297357754621842390039939006262032362620136421427695030752989942559528511659625776470786274983343525799342150401730322920449424013491498820001971015081021100951258341230765352768127236457514380243031864010269083059185811873388675692335737454792571896579039706353144739946504959095552511485070095560336001463945424200787681091793382323576885241258173754671569288400991179907090779944914127440963893903304402360843036073046409175929580407906770529444608072205970161789443277372785122927164301388545217504431680475084440293988964512348995361338801073721881434990855386525881495523674115871773763785745088321674065363238955379468355033021629940089093878777198738827030972623700738630288450538372635651416862856790046857038387488948160771447456656299566955793150199018847668901686105136178010304867435241899815509065565147749193408571934577790063314747865897636272951600080778165470010264629748349448694082997206050232797395978359981855234351825814584876936061314514795702009016312473793625339931269689155849612203401372349972760165740875076974696323785659898932857963160328960194724984707811057422840891649347288105755931523944994506297611430664514717770517058338987272528117102010548233350164724945562417385558761339562330526394249079871008803636872702525105522627866010372052230575422089209941084085555560738162284031801658374306206010282558199443592154490290088497210903239783433866743696911398428064028240222523415697092436742002914833830882633558558370006627374387418649747589332692225746456503557344270523630019477913430122339637001617090556946624749578317191665463139029751461518946347548782524712484049440683622154130747734486680683733297976013202442820155816404692892005001408303592525918771707026769679469064454636520350741062589349659510685960013209673132014369326311823602969709283366940879820983468470321573394980615425132424025885543997078323922059213573146879852685935446889256750426471641794733015160716393441312460132308402101187534741308326665094223570582414828255358574278461087735946142860718877166664514789211723516667934601469928725914744518153722651621425844357511375066335911615626404768728196479845660250624825716275629325701919144489464796968841764261502759981922123542509576711492547898775120963736714264102019857985857286135190319493009987322487706469859154685317239344399221753086655670592656185735654302232500399371259298785860206566955549068021287178247115296562933316035545576436281457760752864868447086013684855571671991704350288923474371496262502130120773949099767322702950905288430651198701220984641283201793453815869599904879298845288961038937085207039333719509491506263340182888958197159340863504004514500692541387254246874987221965741193132106823243544619183792791040980582078353387129125824347237711367075443142721660695561828882842502166182449544441112724268429943302567094305145732392289529563921282586811842984732750916993647969304822082666432332737482799967820058641928264641416320697233161909350844924029139978290353900524603530328685151861360121266067113255432149775324045571983539890672716206540443187918239755739869831495347698817036787999493132830377808053947641562431579236453016225405886321421392413452165489706225688655450734648875828825558883073509991307813974457602426404290621876182542735678968881287797224407638735694587732519923583901290652235438574991455360688776681583630010484976050766421569088607538534428326008127587387839594582903237575921386721795836958761702024194564975299964325983704061348948600514664632787111493949248823234777937347743573233440983517076454437824031142540724625987758081603054683401252782569529103921146338167279056617702713051204690579559756766692634682408431689803856503048792403617068378578050172937981740599348068110125257143633173895215715971718956421946927744405082644980784349780147863693670760928743200606432657978827974686669824388052955593089209065879629753922103770654268581433910677186186820153377490078387015396439580479934678287002386230363869745255076232700109276757920416098616732766212486608903683813595043241815974040692472761501871030343151181322160377771112058918876424607239245174201440473645020880499692487994424001648404538586486169875615487676832378520395925044918023511865093805087076305926026598902805838823241551730936194351695624869789510035046512830882762913592804360606264139879139177765113682346619833537441907258798009345089846617310379561749950468574568178226720523877190959753869818133913374443308463933052005768538662340505476421115790968438981835883566433996083707901869475723546540268933850652318776972063838839667392941878685177483385513714743454701540736356728702082419883790838176015400056338598495071970260544612335940862862554684813616638128088916455341369135109872565322370649646928427399622957849407402676123264357064402926428337790130219262462544768129930514265284474450076878588142025532899045236257083810402518372359765918182046339160044130453915304182494322411833583651619231047130543932097193081997817233450352088010414362994048674583475652125372298674862269959658821802317426203731709109386157696733693281366429987501234463543891349420416894083324302285509383906949539649710782277974912934113751001582300892222363203172697715394078033913159749949694706287589799555002577859947034908938715056258666979190056789989045853682165394995030529630540540654172431062174960436225334904797002038674710571034554719846598748664306795124644022930325804219540240429508745316532674468664525808316275146133094658031877509505094787888799424832354391647932643718749158811412139773192887712094589656171554987651362348536620249541404286304146624920611147320219749331169488289543420639847593133288694744595110668818145185664379752393701982363898493430309901068353560242874259565268094016997713637386242161729676000570956871681180387460633362174013377471109972792693177845505628403489652035379014571662865229307255033061476523228715026741554643508257848083559984477136917132454954595246711068837362844292887798847424355428118803592881991183307016082171878900933848011129628241957753875404769873891336928336034839884613672139170113113497659402747744684307568438199354851341186630026420818472645212666178806701408617937098306582024312612515049083180626874932423981605267476375189954216022023633207430216743339896015713324561161850224619715082930064274427253226993047562318702475578828400764385127079341313643813635818855041205929805541701477175798951965907125138332498004867174742079911822656054990926998897338448094244094830495218620113522602337994860056073153553688153022383922190568839176646613535280473170350609276045595515504620072614655210299571109781258099215318217945693645589453678582322023741992906494327761687831209071141077735555577075208935195313280065082422384433240651378513944376465332482256159755528181519146592114318773951157417377694175019702693634050044711780275840299754037535525225145260394463588829847254767712110781563453589070705064812415926707310230524606128427178816279092329880696636022492033353676151913359134685559102256971273056556073921322369028258274464937335809837943445706819843055395638744130657223793948623662649115551274953132776926118393423969913799692687929904376633207602867892038231391700642278054885180847203631457761978543849807875495241423272208260886240592630674999964708029850467874459960343481858330012387028550929291351839880951820778676736256778554048765702040024945454076199374862128963417413328674672326168080648661439691625598615416343223368066303467247173818774550943568467503573250371305832283212534408820073991774247127261590940484154324938447556332921557976972613769025433757392112541573948837700885100979764155204862542334378297339117806891944224506673490585791067947444077563048838887332249431404402869705602830135953452633455278319403166342426189003899355230243297865490658656881161792307573512298848435977695396454299326384479561739038253449798460305375180509762952567277438166123406439830759384542377285283163384404023218791583877514299949353543469012325317328146213433562793478727647186342459430113002702297851833023202224888724580107812429502176530148739627721914990927411356425025621855830808171450687536245138192675185311442963971076600585435747374065881715574129124831127067879947347751548330037716387380188750758369695184820785092787809265923505436479132618581067836926183409544666708437247470114955568677583249380977226601435537429409326064348920588044448039744530861581627419508949180766462044444814608714948948333811477068666953377463856771976239478990384337718591722033423608363368332637999679309073687651868971404380849637264347420975148202436730165222953259686273606496868054980780255255966409424724927257115481818940916919822106181738853088856838257295720422495614714544596231560742863581942997993373545203708830743230613634087980354994139740634510015676801104255553743810302243824412325932558990771382733858188864589059012070815310649353435725142254914206874330821495290710754103075297822792550922083265429763923964178798085120990321577111660179809358473639796397913149316266263963268655696341598427905559073156417067236486740377533993351989559861514492336734487651899310547008978249526729925025588747562848384817588053454911710946190019649319103515027256975116162052432383823312098719414169050917762934120086615040834795183472928248098217658179183942024759643453016409970610222219808238728117224966903382029642230924303036350509416215731715474840425746198587064307999276617815986042047639285328011787849280864825218497119847972266230199985029012288699094985957732079254792234997059192111229495840855459811370082841293670304005896350697010195319829062126369244002031018361330295839774676122386308882019552696562745391263403024457403657875153623944062654474460039715400278114404071606117715674090714963512764343770230148979131886610490018406332010106926493724363020957694400856767352875699419697547812362472294172531670436514140533167144512045562278932163440080794239057065013760292515294624132106145054616841226677939376067724707934184505407877844504806961931054228443000983158595263638454874091734561086570077307218261301474675674802956344487845343590656269059283510754194457163116388411461370018749672203335065888006429940333993748608154018182297676292334015253254835679476362643116015461145243515436164171249384187990632037253617439000732108898089410324394875029021240794403616304083891599508383611828837952441428210073660825049495495488199804835358981920278580958715175883157233738041197955374650754046889594190063873922848837825326411016267583158310559617103576039560662837524209949861854707909395805785074655444601988983746585647743785345046268956676024748388773335001875524643306388478477186754563950334617574349609660471935924130918386474245731614332381284170319331778239702730163553561102855088509545012693826852697817626555371616690762463165341347774194952660783953948322187370018122801757426221359974755173828988860034184761903684071886782434447622665156393600190994061695863237811726770776718403329959605018524759914861299928278460061548111395033717331772331440080128748066877101982076103384607850750683387674490268170100087566842200316314416171118441143909238824871201147065388609871657864400761278745522567998055966790876006158711875449862256811494467133937292847943895957530250131406227485177730787801668586357496291489879884145806847996413427137724083647190118017165404960677426265416308065155705981572532581686455976574404001222530589155760019045705055419712347933208965096159387195736562563111862659696098043554261799971606961035954259029112427027406810944861822572278837216812677947314209533487176117571189418934180448291558725708227061016554519022457151896585548010789303060381962767722103745026463624376428013983858379756649199983193006529651595889809514063469410976734466218542182692056868155730051511549211302395030013002076837532770379099551937094865668282515451359875591035581342667937891678200269351354378052101632902906664921051512517188041850967950067935439225545708121699973072100217312129542476447018847320062087839235665807192653283595019653113263032423837357462140943275810551334201153321869811350322635047194881401061368173079905547963282767431869879694660141868167166146639067185920498317524617486434399266633708825392544742957883274454985023842101952875530948524738636955874733313636377890025933350073871563521357326929568229453188573431975777494243475010568554444601809492916306347444522879319993223093880368525090878918951492573476469027193290360965758847743231970629821245917355554078853955618092588708727558712255487167670294596697000765477340207290079441937055134856540798891994452567884218831143480510466231557236945414184241417557243157394633994921029230421309375506026566568594093785084405866824921379693926427542860650383413095044260640820715082533054718676630128136205470454796798130632081247229306508455348450801816586865008249235966596627717275380336242126173640651407786973173820869373626354440055860014444407207647333411066934755464636577629870890258376359986940881358011830237457286809433496184969085514606854340097476618990910911243073506153044152485200242185961982990280519123482859135097680394061641800954147718641058115306385750509458203202601882933252891112990084001358173110241936181508325938925474497552850003078008145119240696115502480797888877814931141836866487047260290568196803862696902532360592418265239193324159561512473308096966307686426700103587133998450603217084707182068838498059081235136064026207687905677252444539464836609605561711552077595803638032241868257980252411764458538535856850306056029927697437302283354235757494521274166623297371764452602134452702007719043155465638162862490951231090639374846530789988985366942390394880844664605059863348765995648104401649141092829689049265500932095215427896441043339389007060299742570754580023956142113044942045374813814129126305804491705500048031618188334433605212449013036115785548125002863348162640511491543119197056063382447094892337690699329465916537933271369865970379226511775600758877635092729433143321182382153150427829307991662525321929129040000279952806553582903560626665910391789703292276233330039103942442157075436784591100955007549271064245263543277740137304757157838987988731641046367257365549104699309638694577360449230492885886407822298405648371206852656828261951905721128441447584297505240577715272509398667116991213297199382206565327510651834058954432177289980712349432664867239770621176648283882404829994498294033225394288310573474360980237447375189793262751104986780393409292122615576317184614862688137386054879205762437414974625785508253511845669811502561429025848070552574637238311740642141909213994209987946684237799104700412724082604267741250207896933896857565278901098785924972947742149593404135797226358895775530290446324018504273705755770279778555199976796217506932055204315239225456216205118111213993535359699516088153958652128945782332940371184796656021844441607087736834309670401782431183649535348366093663218109002743097678026261612055461874272791765326425496662586285486621075830910309781099838229184600859552588202891516115384058555129789524840127572723983461754853782075327911624363140021305221782330213545853883967682689216697078479594548147320623564322066615694081157931365717421871263449233531594093366200830752196047211824452149838565182228314210329042529369691185521501772167602898830824246294720196497134510902242335963182452862354145807805125316640408320738552031833493893940333740986690106185985889121565369294634172455107780206184220210197958596599013028950030586398037609509806955905773497221461278059258391271838653528287808144861165615415154053652648860200889975535002554032139763782873806717048248775549298083305308951744579153258223920038036351309232803914033567630192541899688033008633896451469350401770489638260486754632278326800582820576993566585188670993449455327393524407344813979927930949387230077399544002655586871842777059521353622525093025278430283509983063028560327854547663978170719613729005085658894637343332318721493645449490181901837060909713720405748155957794667178536449546187682013156609283552029815829420528113348629664297761759020234939973626949776623718674721820083956549472645800251327188571707780299599464471581912489995695584107243586872006671853629071675550504579404979430261808024011168922400090622627291745571802471946660684072288092855502017742520983878114752960167007476752126949039479300952332858699662827932454340049717617035102947072268019157096105363441036344745755472418933832199381462779261251332500216750572102036902852156809137692803351004572832357430312641794169739371623598462335484733075188881394328822433854676864493394077191955014678640211377672289063621651443796110127347253785030900095892554787041343020753006184320738725506571664235035065754199568766867392104533767982434035945150159047344875897687069551475904076639855932307895597073785366670812887806708228602151600508314969513031366104024766375282284869481761605248561115164224205580799208598947374614059186174710355118059167865475103585203764755711218042282450388530594396423810700488867047055208106446351135130416308872232622794707356461962663542479447249047492902174725438435569276863014944331916903587828749822865766402756354945870308716771900928731555322001981556827464700934466160904936102060490057486766409040179322927138911470997436250470610435202371735911368370169429649984865106539990759694277507858211893018771839976042033764653339512091545677038272117878718632173712984901931105258194044420808375002007841146869500304469480641280985362559092560583945053252155214372188552677808928667346275443568315522277885233555435797014914581647078248206414458458099930436766024760417186937265528975267601002850942097299093996358369107100084695403905400856124065416450443173224437953554435959030456010865276716476822879804730200171643617928078394137610657207879230220729049371475287900689594201226305336190197352649449371302855101587381596263770169232023409741605965617612514238851981614017262844135154864986406172571264886258467787081158005483422252149553846927907129644042742410173084092329470283690953824154322919705715947315687599889740249940968197321231995300020511670661476078276802298303066923155110863597407306265522210760627988491975129404380048762515840898574867523678688377753885435565214451645675273484191072813521087705835911714997561522746533777252022691105247276384184198505342900781338371556666069923085237810563167062035974885474809946642882451737692269836508256615075027468797346484919593381892864736116671070729017944976439333067249665671166313231429456197032024752405813005891752521024883975568177078614457129188475122646541487451044357083858983792877540531059954684538713313438886202604238450059205206804964131108908470088780113607981666842401965964333016089859127955351352034520253720192576492911294099259616981151649061558883343178324791098297144921844085664544792022170153651697597405462070406838680530534804064351250021787501823583635682647993993403325053216825906370760363086883768047231575015368888712932615262600505243696715008623383310712080200169574203453103514745018552867324079410688587325916577342212094963650517725384816378552778444649832468548510191183043450103287447440631271523216402373155402756696243127974696477751520072506585770390655107045836290236616297826160490135208639577871843104489485585836069551363777404538700270728736833289202914335690481740945042770074340740716496049716371103562517876210155170035552801776413647271480996715846304367391727519863977061868840963811881520550682433661471207051354151305118579526360624925182866332242978887539501888826685304075238204080393738083776834093588264425593169619461912677975187594953295137367925199235369707201192099464771805570719246631572183203958462365954783291383409631891751424477253834704875806594849442507261299965073496540727525475889575054644193054334880462510114279238785097700950665168966072826262279650199528901383809568248073321691133107253949090216604090961121393247512353148297966647289279618630607159731310290745778562162853293540988385951442200370909558026115949989518237714426997178079715461306129554139096865283659481111651582461603720850309941289230881306382806452196182247157642429539113983727111907230895491670584793523934604798062615124448974796598503537600067041892512030708543229643318243450351234669679934308706086335245540216587778743381146939181519692436991289229059242634172938688327460246675990217384062967042898031496909464331896651221037433911400304822916210582848192491758997924640042690804661001295600462720467104461395850871521987807474973078010270849921658428714375242533368231354168466742926501382810150545570477407924291651477607978844372867739521337372179773983511831338398714455699079272312649055949606056023143219828613839109121079056610597512822759945335237973271437464913239118614947161717612452719659860757828201334518839983977817851413271499645750232508322865293378716992847567460452859086205790718238256064893319048609753613766618374099608735913903665720065976524430495954574695613047925629631691076015199572758511131864119422292251069872910807007384754344758131894248383930373015778936812541039183981028862615416510245491497358777964323092454514360615005589321481476780484372812055221548710320209561889330319350167240969452814997151002810519114427241997062407406075505407306948129861181814842190040713969651478575041408943207159212325887501480466302023849798419050169517897891235760978230777411823634753474010499726316701334864191526671566236140417289796808625889751235940587397505525819787025772766440224727662593251968206573382085468540901227290435390916439344530047081908892726689622027653613966663392260526409882426528707182918017944987274627945844232708002085690861130868488438962938715678494101219588884290171853980732535776505173015584104583486934543343219484054401909676342312309645076355778776436135232667021561313853103348630483305795111072613859554178924665040695783646687740554457381559899380061096143332203945779843840642450815537808982310948802533906115264212844640503469154717544166746423700726124616868436451472311407364792723334392206539475948436724519518187871640676826262147769766007715382833132508345464622787377086003224015528591640230603971658636217707839531757793326718564052608559961014720574891618608231628800559020603207392511289097371313057649366792608108088508469340487216774601937953341655975874181192977835245932363061991178790771090053726258393184156988760230271780230897079813090427956153341410646447702023107992428493974830403602167944855681857048812096028269117384745051412518452365650888075587985070678450034731631211823958910445557200277919116446896213478401856186931774411468842415823936214610391055813173132001450483450706457209300862647552806877679120569269459709524163404551194867942580990508066640136346907080598816290289577523108663439784994300193574591672407954866101273303816695258990601534079130422222105212915633402589817684251213683599159124284017308420385208951572879151869782729462650986700315308744282377189953918128106189332742149049979553338489485407122400505092290457033826779329311323865081137119053800150206825904539743153928377067988102060100939503157498960025894508630744403253226823284530726968744364423334580741997688301858681464787311938637182561598721514442899236285444739577342310645472257187223125218311071250234555259207165841299173761367657899566405160296458725675044284445018081760113242164783941049930137675742354503066127574234240017865577230921540625807458427773929097191008207812671123326456598724255634755904925016104964155058700249621462189054541278016357219699595722638978818287718592892993903283031895300153546564140516916377546998242014783713256486468134994438189209084624450096686643182158119719102066441259013034159167328781583254672604809376420671051396986808961671476065156087504094539945251690623319595550457569915957803612289372227801350950426137332345717214904659325013477295492462412920280992254835229488864979598179722384828881906662446269575670646807733406446459746397920211373282440477393372809570686224557545269833542991285332142598668827188448552040887412279612195748411630653850595029402311387792088155521923166263412005534915318670836140638554472224409868911723811351401544498454552998707360846308325658425877840100929668448096470717806107523347550835320653037723100762890203205263395730673901267259492998336197214021103610231418145789243889946610422892682391267096655963761409283687828942949031604390587356724601256382000004238235802985949698108735056389972784063399602815334529413846365050478398506614127319002219811875177062882603225988504442439597367914974218438332094852666475597060926737320612331059832451606564443507166628646770093884539219826171770340277855273839328416317915356938300348305508321343483171823926714918347945810941304781009240956946716552592589634541867177559741641546323006036153525962379702348753520009997632533012310877946132421042335792056467160769160052875015414741242833279212689663818189699290589354919793312617370157643137378853030441702947542073979800281304327135297157067685564386196080816567794642186194486924988829425146664809472248849516122487366086517194194135446597278497824085552608189729352747700121821329550437042937183406381789049421700251303707595521885118360381304395383258521626886478568346050310559687611881112860021699154721862026577366304664589340250601413230023635786207665338653450568983865892037675388786992135133888813450150233234970642821797949085751538787455593656037787791961386768777656152730299608783228350290926585807347895332971244258465259398879720458243279692432868365326287208651873660050824011496492927834056395334435784077021054487653057800166624600451493764904383247017061481223651096361664395571210740962458015915713609383495816398163399563568687748757057150621438574740942239065233043568878999496306764723897724073816164519888214401466216607202476037061288157514207107357666554659066915446517471250754339452992863484462174667344438972380612182216095533921209577887800208803182054866048568215062809529049110913889866184149932239272851843084742326291356380471127806155236117345221863076076601302170161248847708654427797554717584024708976901359454006527567638524342238038640052401010501203683606442912747174723196447695038296978884311791872745672140292813641212568347312978983115861286810953531096733787807805084041031955748217179754511437338373684397899906160988258184115929006366225873344719503241134834183773210453662331454737421994134153433994956845934676628460722604171809802602206111613588739555123684652325930181692172116690365434073140144862882314756634748756239294192916327318703626435659236781259319308024106661152709376611175027805833430135672878779850966874442407825055024902548864380681232124742173511145650663990982573096915480683321502497872318169868215813694073702913156805696508690969142344761161779169024568035049475462886614763810383481258702358925823801778832245067995530213155218943525530782727622400590190920250141733047959484780885907399966935362788444906774728925508920982111361181574508174796646353821229528891442735213937329296241965322184962863100088764728452664766391921344441688151645792546123470416453412346153240140769948889099042936763895016085260745260998783405104856713171617368513309467060636443338735419589876572193889411282644531523585941579215749566641518444621459792535598785190542719958880067008850106230986321796628839405422102225712848174124062213956691435532908273532709720180234162860403353384470722171301219058449263822218975425735285495494670291885405115366305166719279579793655118329609169189680116524499409911618842599681356560452106505209124140644874709851612482508901576148520548324086845982949602309456136685580563541413992631673486585012655689641055280075582329023768495153418947178511739533148716954088128282885528515755578375270370093896549111359751551721619864987459352103334846322104750855502021391910506771232446237886301144554711099019564680545231074981739350617075012578360177671855980593811944327178611310399317035591081562420099918809475279462790851531080786035302499538875158348996814997807497545465275954463670429613040136178079447014279903303910082388475226372570000057788803681016129993133585175737941937401839568604479079894030508324402729711444875437604779790017041870810078510577459939926866344718980728147211170515407938461523474674879636921156965849718474174982606283788197989836350792584022335649370654771019990950577154188761690950918854283246528367487287201931124321608715224868254538301576574987578199477175531195691632793870295132387399464873128226754788283617893258962956443642768797592216334924671849164915201991546838325267948350719510277842246985803868680717857952950666381400859853903331765166256190384359551180315286735949222202197905414653848917723581321669307961336905144787746926096980103814107371334170107401353608884764458979087582705784787426529440800410033086143018572074274901372950742735772112168811272780690553505861040541731503232575287887463527547579759694858662461516657750136891006617905099391556259805553449450376003043949102879676628477552277766168643169807344071379793050323395393773914119130901417792943911785939528411663344490028418399651690463113166288005281702911867028368565141292020834125539565306013245989821030145820234358924121834051739895156821565013508890577538263531633624874454014319336742369281949370395070671868210703512266239469690621515736336354485805075755696957931360671030052272677671240212773225447737020989896314460065104763751585297779646107370570610772930996232002462968085509643873319960555226788549139148262214668414672309926456684611525274245549954576751663542151742828551997840656947691502439808905185047155113310909940840541600143138333364035730365132571802889579172662861744826730667917501906984853573331998234442103309062350840603996591535265183628099090847634935742820678939007889569433977149607126031278683063318867433572252639183960837132227779583187917067250376558460068450443736793575057621266696521977884516990778566254963365700353119979809377086248326230281666198383423876226690708945255319301460362966543641163226346561200780782015910293705250568036146867528634135649339238443646945241866857122166017483711252983887893778311422691079723901825012164214759118558691449222599488999337419062302274364082321607925265947193762922670812975586518902757245599764874002214179231669205844908227835238564574701631388780533067394016289281129897312979338787401449751252450578460541548968061151010480372816137611530063292798839675262264743568887284034385894457950577760527791403269682035335870763320917813268656024285676831794467860294590530327043355596514567820852215804257677597892460958194432183524399937929124090163988339893535421112378916960575041267994955714868934574743272044045531431965417952125316563563051925744179926745419698502982768709971027220945108682282097667136160526846984221040183156404290811780590262252535725764604650878300056362698812795103898012620453950111102950349807251234531784533115585004580829135963380293132529304714498844500479275411903557070174407311581837852345803471176431366434256581175489473291720756298694625274886846631831353702725789097865641734975454410792893021831256381489135277271352083165283877531078342899947756661478088496756708974626513224672923234890440680301007665037333266523644595235581183940486338389614857482298540072652174400823345376182466087368440769448748317086703453456926790266061412297055551474935698106926785084566390912673579577339700075386317027879137429255612197512768753633777472232652021668966636206343127821333811301589909019188903539370367246353815486486293700141029605569266083736726071247040516422632859521942011762360527745639950675195948059318112932921590113945656092456015321173554728079394455634561628239845507290416135934784085113839706847327396747033779600907388767471846666847790016175157338903224570555954378843899812825045763825823844367362232258457794521379571617797333554246331119226329478282889700188842863455579914458104670036439046822933470411998945106019055178168737648862879449832449871618530767818358349876664689087087820080312292952444692304469799518789853361869959675730751701925738009668705920798323131069333642184469519665445609489683177539984044082161323757356834639307976785956901520283590581118806579673276745283030037307477764669891494754263884762886009755740030206325975426491828968251450371532724830264348027985515799929076104165219535360430891488439497668331210334375423567303198756048426935258607802579070902515334316880274574440106991230606382825281861997329170680315659552869346247657191949486096733939497352853266761101013515995031522156572772935043393939796974052916550665615007950314557336194900107732312042234949548613345203140710723898871302159984584692388358190918423364654321648252183543318498343170642462330002454073223018623101444868701011715848720979192636295774448636399792540406793881482734725415734821608523023728489376437447701906557073873051268823207427348627714500557417514349227717956986094132107224817834399315495032912041449620746362758863045884425981971437374188629331398207151040901412043857340055381195469462456107410670770355796210092767532578961620488398647193433978463609563482078853209494666774990015702604985757656473034372917456962716375561632047551429335197792947642650287653923895674904722597341984282216524479268111340371996430001387835181568894919626007177235780091972873546320543989866672502953014011371866372737093775363680430880116180438892189813874423240564254350736503515731756239303894387964881987462424631333865379826085255724494871379900199927147700871228906640702757671439441094635755163963137977229992731150600363698726654023597042437804384248546118923303514442710715332053921845197008911989794468890089726593028277095591709656246133076699205350688598709822129331631909579576986216770716331795840807904118341642966370350025867064246680800767344198551677381732185308454062775724960096875021345854628239187732499540593891133620999518681026632193677288317861527447278977638105987694654506714035729459979996574203836769400281307344445711042104868733053033074842709005896061033030592537441981756000373161360177676334377437270308243002858557338291180160757632359801702027237546978003985020862627479032469373368171394007871696127117132915227472441479718549532949330792849028463548379479800870683039865231592460273928464475430036637968663037860281731790655371653497349353625864882212401549079176939340980469507140739902997009643833900558825331931990831868351927014530165570538748808736611322379722596681947817623200318350814128257167916464196100452492872536588189369536439585951340285535498751169731556793996373939717130254684546568192594891476837493407535508132954958316834216652143733389479768924973470782985919783120718291904284301178170712608800723663292540377157287122270462239392854022013624433244000579910280579195265568498083402264175842170010332649009867158608108651402041292353044608981151900710805579508593031331076847361899682639709362640132223882002253115962118085882611446164098035367621319108573086884095252124273125345388483228602170785176115358394562109159624535433453258504488610879017123719331973798109870139184738752607042227710821145109601876568102283603429486885177190166684581515899140845654215827024907338502757222511163641652445111520581020283354637925948451406952665473973932994099584305124622003107860312038128238711647405343475845734357493350491696279496655871997819784210711746199580128834046074346065883819295016689085967987497906298102138447819773194184385123072411584105341115827545830797139030197354518183993655280048290051804712931555198821446028851528831705806930709007833932606857938818877364817675976716282796174626548915247038862057668710590527282757492965443566321771211542782517839583503863240289458253687818308842850740440992741403340020135171262695252319355675797117120061152672992231856177103122766476540944599726379458727820600328817657987854724228209950386594626727320712624898634499901733890719739370255297387297505186649807509845259103716353356839111563901427785894124208683713429385032659217019454980443992702906902606080111086540554616135359583540486953261250182916184173566484115439604902723224704016578960234766747719594894658535416386117677421816947941928587482492159573252064250698464605673399773997319056350008234100736583646508674641654383449133185801100935791161680775341019348519366144638115438981955126189486993563913878943152250501591948633166902119678204110980377145340410996283399019801211834177380151635026057257531743998973870848680117242507481295439059656430348586043294041572100255710029104809084905709929784424446696068709851519868286038408006508015582897988034959795549121408535103293501726609781494526803473461870234536046463123986153012371757261913299836807893986858151562023477216969330052445629003730287558875975174840790739892745195913739568672418150884652996086006003155114021168767127285508330301945264220690836301450113350247305145407804260429059050890342166908087453428877835787763513165417187144810633689783498407022165298567924141949976494854507798706867193720687196440281950600075686767996179713909046584052693150817645640985059381396265850066811542061537579405522556877552352761197087126653193052673934812636804332107645715915634568632486623346795619707579488075273665349131863401465476945226747643344521419432478203181394754615858619696013658773807597540987548726465309278962174798055159818005474288951301007286986793869280008950373801155891770915859773936835448214017668571745603020930394737724246370174411059612771384683366762327897491467916457241929492998796676602334817194367547230543985125709290382548364469889830392194783348592812513217568031685435527208093907602139813635134509616100203221308845227992490084758920227816645536531937198623812451882378084664536832766535504025693016894099619689237738536911370145250159591216787790556213695091611670047923039975648309288031680763575419407062794470980562243732742969478229094243590579749301256032092940153821186340337528000672066028587434498620118284976764364314185922911431339628267803355562417742884313690457112396642142517216619625640542731013424822882182011567805814184930537696963899383598636229824714750004384775751366307795205087720336591007065744091209947816145841689432365509773946218381028778315930978228520222893125794137602396241119362832071963853201869994251022984879495837529617109201337329772888693224370782379515182673329430230325277616941728669834336109123596217207707117950221017884356731273548432079107949442539420209539282518372356414072231579680752945875183876747013350317774138977282192946570620587818899955990983506575253476917798348660818869805156404284782556196397440854901339893443270256102005151722465748536967406043564043264909012699522392856990850168662025462268004636873227314617293916876837470819198065991360303672354771098117087563624332760447555668626717708641608341203181209600404415265790508956287045956001701872266226524720891207881891878837088056263780380494273726407053802533636901927577593943426196556515767082079333367243309117704653487767868233183367640379441113136722748062665078140177527065445624141216586113915687433452834581265736151756381037657357548093390167431755285150395205172825922516245457135847865752703472577487354243569000509062395616094134089071791240518530856674554480341498575812101404401032121505981314354294193132135044606873841848905007406828990495811718574561158718808714404079855175780559447110497629411166249704009711332812679601430217857911750662153087505929495869491923624439643718021771892638185648673037103448645636306555049309850750128390541638078448917974573023673570000484612010544339422290938633752865452400914381605687731198429211641685936110423755453691200927315631423937694808551293507768215431158004370312925892882922150867353883760212343936226515663286770106101618961868700447940337969864022557223255059128889652005065537496490860385631309367060112038849878773335938059106620924346595089647046457673979582850723792429014919696153066510030240363047159257793491466298597160225957295931975540755659756577830174284474612661903658757149409204418854587373113488342623716383509132055056180155508957044822497735818681396800034327861316178318006704555146223754369750875127925499942706647061984488592123812472056454889061098962548754978773221460166029554634799077405403986037756791241674251371127218218170038221286869828146923427415058477741549835024181933564651302196845520184695896828505426574095262746818502107253850717254011430836558932363045958831121994636253968870935027123313756772858144424207655157070926387356925079376660240810186125354000338357710503690854864279146190252041178340851736277767620544632603857194483741231821563699115804667305202649855213610934858326337549075103108556671161809295352326916715815088578013200009356131100556382214106438449306918008531201205202226987058006016444359650291089307303449872198509935068891553509760163380849071699310453497708715414959027340690923760262756682127997494594833620721539062895990480608293338095183275815924794998919638881767494460323157315890829048361073362791728786772091855194607111557098024638971983009501172204708395953816347952722055766549560621925143504912047161211531311952518863106849876973623359535178799121394293126094911922574231935540148178975785757042935392392216175142309679301528179007642864080141258279894319840395629763104284020359335638138592614132646194011341784772060918985080527660053294796672342629008975969069519630100870105035681828450891618713222356896484621710540217745983082493762494791882049605492533074473263567197390088771412012114534463427093092523918496590986359092161922556347541305643723712664046106548558019541007619242806499569712887363116101762564073305097833852084622217316697703640276108734152238658038963023032408090278116364208732130006147379942264693558756317357084354683067834066242411116966542899543669515425401386280405599061269697374535564329565866015570515585215783544352962944798431661027844570029886438771031394399323710680536219495795118368903747956127323237410273063224014388631809622903785218187067756671344701257085479835515541650437664885002756942679373384291913721414091259117588806569274525146382431684664291018470700165425478763615881001418865502926499491812114554613408544106429958562559991773782869552956605124535182449659747962759462764800661256940244503161048603851703750176035995469768766592970433160883471228565848385927013109219137857000954775106201095735127650914757807503257013148938129060582846710941835246288318356973335871529223041232608791640040086450782926951859325502969110194122881609615324086686298925499449214685002906954511924470061355246234050488791129618455684554822488874645207754422968367128338210276813817594845727311283174276379939989416447688873609001777602070723631420879931492274643153511649143617015544203110409390343005749724862904013804693724697279168639790692380872145784544659385594557972187249273193984832691495546648941524738888814979363995420078051777897858753252833244531542882482203747411423367304301906908356735216600439630505127412619905268353271480209682882390454906220261394900296371516968685982414709529200405817760171566144692946946882868897036471386947480658552458506246123974403659058434393164286690637703158367007873255218614929811378767741499596498579091950374717361888005210636821920661633580595822778086503540788336380870542014365345329407489426047128837587083943404213408906757981555991728622162698416041266075541911870804886813221730141049745038389933875521826450232418201336479094517000789462229370855548630875183242017524999907028518692900011533580434779128547064980398508965082283466286777231182013824834886717788998547355090128989140481504535742604717202610205590992749891097837837817294066617514260275169833380250943676981388365653163082924198401351897255899061728407091403118129728975888345649227631293814041093886869648498067272532580518005172506691070729815630991338445709432489435976249876552591776395589510734283693878526231619993054310586727664593714613256335876904584518088474325937727834050094405506415875763731808957235964216954649323266730697200381496476006137778933968647952971669184599266578554623870304656219583892442983306694428211471709615354785085513972535440914817284909263538051756601817116188914026190654759086005978381405913774283476943133216322587209682363428386697190639877062881257903152055091698753678108692008455521963828518984431571393336773214444258565410898545487011076363044499550203954852734425554899353962440914621158169603262467830809363507787608352609517039692964078997297038277448669681162918482031201524322572026998238092452927776550814897755956515533586873417357977951453135335041655479405834692587652749205238036757495007706568409460598304185928495091798676260310487168616784222423767210189046599904420259297734351832344383715160213209576127494992643468492505881140319587450334918517550266943194985296114318904816075627190763004653449050096655078342187371505064865402870111571429371110130300969951250513488005134955987553725689561225280443202198731463860039484691437919510902776110589876951732828407075612714843546797758290663853154986499020071772685051464879748813532283298732373536548762508074430567595472296032667005626094799961419627681796758821308091922594982370665009851245016699680537871366539993227523481362951219670871831039024675617027836155689918466806317530763298589218559274615807492136273078920864475261801026196666169809219485457845856596814182558798592680433701987372912386456298982905183981259740160237737191521278351113712376521149614215516026606623980767131807558917237240790296997382560947378322494513381266976645804180552233447423949025821025597424712175182443146503083923412395127185711361765034154415395313468807286924856823881435415520930197477269749555610473861121379927738517682901772301293423793248928278754097639020434288953366163576077437300687642043542202441319793453812892475029371426224628620812502196730235696915828327178904341057859454604449622140016189442383944512614043182660881696876813943602671311987176104459283587501104203439917428903076165920898224829058141137805892008817961250907309577542186836666668241044148812713565862628968523301962765902167321590546782167197560531911917924927899544077900945560334891354554785869197358275513903591801320170753406097571480937755606037060814189166390521036590634335284254735208013094143019222344049523884588861314065603705147102469217030195396277653359045945584041414340845544213041373761968151995487431255508498431526270669884815178221226109394816413959791435617204870891193391987082084666917269014722040258047028699712605653295580733351191110977289292416809766761890411701515368536442653561195465282812502611926386843405273951040978636580132795125360923666343004095001195198122097858919005254810511928603519493437200323383404705457411569612861139412360579410628644575106459866270276584182219276133069052171992840849315597526166822823185086331283952767097908377798252079897152903145619105650597093498310027244122259362131561660037532127156866982745669746528664809419238698773533030919699691117098845830319993197798842560923984221859168163147420064185563606884255610250754994718629935498398551523338751906957358796945929629068192249132958102552795921943333955681483136242130171832065447943160134482807047626794334394987735467696323481679102235089724513843964340498080426348954349040507436987785816220305431031032701012211242148924871473024384152250072733677904020115746858383250986977988262129372251975078036225519864255322813202036847676123920055140043651186216360586769063145228544202039746784502892561142474806917862910774100472924947826040875814377969267633497720921919249416305093351961386908001514114097398482114236121517745528560993015834601854454464776740173061470170014770022220902967070031652057816947026449197520462078701743804938451064125532986803219593575614241099246184024382895521616203932016743384372709143511000747872634615262626639348217912874289642999470171441898541178897812181053864390873638253812924648994393480216319840403753387638359969620298190991728006395813836164498956909245738196272756506349293881333287148837707107086307906620738174772654234869789150632051904761161195865322802534631079311889114355728344259277816325232858252575645248964829670354401948158857893656763520560825694039395767967079926318075160988134008121150162674510896362492063102138485402081347141378666366154182595180216868473168043554076317493175516049002695953694745635459839862661385483211736715814238137536329979679943575137379309707650320401191554836594032586462976515472295976998390505044713304299601409289710579840554962548117459383708129151705837208678946326713669231605281526464759501076515971272669837742662386632734793820570424315308870488335724103001848444306464330597328158629192256760141725585473443412542461442526866794395307561445850031986013005157673708350553248677510436885096841521952407807604960102214188881740526908531581462564297357319551245991951834581503943654029725245899087165537265758442541992696354013918367943065032195522666623404080639552180537672422355941422798604790632891241356690652693615349143548475874720945450718127298180478282756120222593578665726157899116973575036418984036960505294798563800298197203769375149298511033976441662354147969644149609365079015892830996923847892497446022766761555120491163972278736077781631135483616174757189868141215499183666504578432682299218014763849615234725416417410462217199838802248653138725651196947762844695773253061449079707175410309223502244830422711569493905536813928062385941130425668536271187303612088678503986142623627183120020717755917090436521368707700263924062046227404803797916253430426977933246144188221031208554993308751202463492713965525251639538744105357910119388191275844675415900105977455044130274571253153423564871649807373508477508961427167361738032833968672376433616879082155320596595021458216436919529682990780322786729298147550572018036414000594292463528410088281606116717086750706655588134182122453934374278582615312515975229150207959449755632963965775893535064096259949974567978021142134297470672490548973847792047468916950194272869905053487467291944145523760962050685751391188796489465825702717967041041287007221416208752347053872856141272410459772884744540554652448105186690316488485784119875826403617085634223307706982026482057641615879636113442499987197675037846855740426348474133934600007912827327426157620364348791195142211909368302544651575818255737715273306026490993026455970043595842192522464564010944091635259372295068161658550753299826359789864665282073632512941140081549513002196761812201437858085348886847676757375875003577407764281813429920362413508982310507329603159093779266585438613735415131245405284332701814937035400383521481551223899245108365046913349193905641820529614436112366505101774881197817243271551361557216962464041107674142735030786943515784754368529417650032457133711262146142280292417530510726590207338919047286735276641702956407341408531703561758706646150742881976439152991649805331683033435689715082334960367341341316719566433467994732020201409708498695023466739443328642607659593604654537460555229327690182405861469942971863249149668563002699857331639532564889741102368271990874743316982547047444958564437492317846775369181578463698829439148720550330762112285995816633104607815686722638939383228517703934325500425442185490043325505741689564865373231702850221602591403621340786619830221097947342091148428285686584020478519093965769410709586934636146804016376517881357024797615908497872549370918832284622369972795057809771260823648427551910469751943196259665038593629816007386165562031200809816360564495466024776886326739006885579923593409636056281423202206591453129938274967992946686913448914743822058493355967430456702753122725205777720413022857444921118881983977209536328259351241367793195118727606890944494613600833070967253840991885923322094379966067683269549125133152918956250484800750025213693561709199925962557183116210416848838082204834548102169701742008796308599879233591613126616433228578568862661483853094739104157235190265363664236112391303580788722841207315321955022783128071981348594356919557721397180384280412899149973782014347027390532308730842301539489095930191824162696623529989050329389946501315594811336603011526439427848529352650859369391281095864025317867404422547943611180439517698131548531591433804410393177570935157521839125120648872488752304420540595283157499747358989094379109382428928446347714233019954533376924922257088908946704031593231273108192961942122444416276929559639881796699210766120234089325950835528946384631637077420281758142263172085277769616773008248558300390083195891114957073273294570552402132524084074607288287681778345106921832636285028973247142581921952983373911981444202654928030090499010853242374189499707943772161305001467115856861324948739387918547830775128763190057949297315257678637291135687634588210224122605112422473187863021736232830891651595893189402121738205225738819730256807863509073597951541768023328241742077325390726761892569920450834566046060446649042450711195480324115399326681492593078809188503645636382220499562928446831572263580730526764811833220430512991612136471367207728620946510675631184838662314660483553453364854468517021640216063898033840527453516854830491384441521066000801243708212412987691118410347819299076318001599832639843423979270765405138260760347263420420792657947169140709412082376460635804313034362951996267637958622497768057891874685382535344141041005962609674793306056236736613771312211602568044607602166204308016489077033986052910319191485826460893504257060161577346358204235945426732034226287952433541633025408798705388137576004337542393919404106573213585741394442569634802710336955493708799149204410204380305863004343010962498147643055874399185765327059292979201081769161662132994232194361188493897688619143721308576795414821380257969832966585428108521353109373706257203019613441409375490587512155044749847974139430586232999078486742212122748056990411551018716072028781743618791788509287235382072845142504414602610820844408001739718209243815268721549748342115120392771737986141067254121023761917095648397055501419053864182881609099609999000259239495271744159030257198036444767880060804831322265730222551755272502952055277013852893634252533659940407098075921686540747829801954656970494620888318909517694008061062796305607122167221553353357133967732510426029014012544207919935692978742353239948650569994381209419956651536154769558896674926456167702366271797891035237399750300900948569368575563534665659917506328582413639182865300344447434733811748702906960498470142242238539450718630147623197353315542316113572216500019299353837825483207260755588369444490944770742102342702798379301738514481963313368097034845236078250207312637854957716996071633661673850708351951481023224373096586445845277113255088912507284962739217660238803271894995904076741578152249290725060179443684499532437421209597056479108932784488899997507291332295681804288528795653318018776072503908987702985490869220817705504061251531870900905644682531334251731460001733171106563968773890446650610959390848760840016120432878437427667268806273065825396610439852738048225370951807418711529652567268125974760895470431171651005255746994932728770594665705103209132071211145009588226870097056715067810823862276574888614789513358971479611419255931021703038268778145704537115503036352919085032637288692024921073716751272628723898868697005298336384833292522010503957805790742004125489952896000122162037153463275934179401625114176625408939798381148075544807639681510907177437603172042529150126328837042932701995530243643724513172165923694229726046474527137587036369626472825494041316233670353497517502722663201162724002153298445379895209757857649398838443834415940801319698217129065209505003272986416770162347006259324299317855676394449556315551145978373161175664295821566646443301515978405942032201663875452944595137839754542687338918135963003141509016132677735656437375555473344548253800816578156303027371447424560153849586106046488142240289117002861208281367587320263923429364713345705733879909320722769533345455055036302094003066546824698776046937302234736390294307645350396024451147798454680002567036589480842477668129203430015773144963677089721926348721256691418442673830589528114561251934693461316371649001187390568577736241976750520807080204106464823182597482106495626610034829034634509665233995284110443645986886932172031135442210004625234811439552419262607242679270323153068609531322532400206918331419259601586649615365982472782038581369633229911645766377083830625707184416323622074150942978709316155738344403894837930253576535717943177650118267402377724462775621735903263030056196107879150858861388638418671902825904521142856956756971031170824551798275974508754999572043516101205794391391607570433537270444410669555226977986206227389318139113829111937135398142090673909591246053283533256417928029730555877954637355562010366652867006356134871447099923992542050614804648808858694517406154614104309845615592250499413384265952677177322864380847435739385173233765252327006135856833217694068070591856001420928358672339898697356268050372383675289703830431442702152302448631282576935388240639218740488059099430488482407387879247931812758105366152915400229409647459301800130970710623536940061282774971471490004157426842010145406382562797812419293285528085777203636118969703932726925317664149906099122674347778268960907352010316275090068416086004482757272621127644208425425596966072318458928077633372729202347587164749793272491807333647309113854847362020418743932198596665050028284115349872724807959642150033311763815680688309672136493672585407392430017465676904245161232649047105629951413392099272458535851637688793175985488524652985206524937798090940854483115256597449339312571570762503578925012280830702226831976042740824810887780269505732778585855360265564039175035779177013268543561063793987965396635990776870173137484021373024573885815946975190148907844167112134378718121147367105261198457439435619402538948346283220831760671882693066729389340063104434138143354356741981150323604278230274789942109137506550225324066696026743233493799934737110375861045008242078390752846186037518374396380063117096075171734756474037341040673616759726322092486311078896872276096576657511503871252014144199468908601894922448226152354802953117620335674068559834039488021358288003562249092000117175221454574923714210197755635500990242987825107504989628827842306448836721704141114054873623786788688657577073932815393505823945553238946492923928921067200057281017475721804754309921323894265071882223815219829737806256779390006452118238938117906982358182747073467832006603568982159156950708750556155001538981117070731142992834637701214944596813386750679561010124617250507435093798000940947137472530283100656963307725261438680672614730839046330490778485759496275282921958624302542630171150727983734914906488386796743721069981681772703717272418652246741927816844225580957177628517879002457126438125778384962043882066600417424226838752433239184053607479352285201381879652112311790675195194187406265463658829851431256660227666998819708792513663992861531463909186762368395067797124708313600500098369592233736946857121798549488874602642476285836187002593047081201976636614032934778418373634288828622482087599975611165705287151497422713630480623114607359651373649395568623632394074847952661574793849397548126187624478533876894458245031878643418883688455800770432751441186984688880839045486838682926117401596269795433080528921872269598278484263273213823876510608097767506822733183403960864836080807270603152386900756956394394911347478340704287851553858670410656314436024752359422667758461337849773190273126453257099480876584850418735529100141281891577347018057439585897995651779998904375179698440096688500913474985233560063445413257801568586934411004346845252707312422355751213173928009297494441673042002502580856513610294775362128626505996320188581863689674355315567076716390556958044682531379592379060135095586408066530941616761012089540252126062601497378616084990419433743007232457593302615278038956518129898606654696529206497319393274227476157897198976258772392888481591897913926126984429312166898638294333038487478061842212958087051949103983951809414777957640158019526185211430348084894600481771321772212085966879377933298035851898787942840251589675652076311620615168136259914332520013579064020577437568203029452718953768936854466618423678712031825324380256035587015522207513166195936794723951612674537479547107587645967585060801966118711904857739815112727322978992458583697579318207963522387098165380787106831724273867228863064589933446155702688769827651967256906896966881657497885235842739315857359898119173360401546502541842724362542396541434147053428564953182448991449196336587398450093473526574585643714313187805826711470569543631239860960906491776954316657475991818430273090872648683032849460199957378861797137961902876620752458836441710232722611789004692851729976381471491811784915743239194849263281557133971487263125616852202037067895399919375498051309487731364467309585982185533142845725060104600940528843435287786414101657336791412104350474529447240463292380149309525650386828010337326173114564459220724700974694805518872202671771182821734911636217244185371419967379421769858606523067531467610986748516838709331481793071780603640836322235486402701537317155383275898610036399978212310588544230923966844481122168462533053480225091430555399815639438637925646128544813075722750466091389605914495184264625847349980538085537027685576253052143093238803436049691462330844196439851978864248552634568721507466301260132949066149492137297048127304587856784313102316460542719808242042513632951654473012832235378052565160686788131012157262078121632964153577362665571710379975680040583471326925052095366770591146871188865101441894577962892410713923100916641147208204569241077196247987519339170828566063074640606397799461810182638105855619917349313169714435725016749878472479103418383474141351090035376741243291353540175985281375536454229630780041954469603421260636476223392700738446701077817855961209699774659945640406504386183353221312584153984609858885279161192187761765063309503099599463556712591624592487859454350607660795387232750687188367902787030505376519448920123267098064869574513089028206937545435889517036713254136400337270408396355156527277757925485043956355556000646805452494837060716398515215554960945206765284401777405411278371568420584356728445040437382149697287104322252395279799570187110565071672943920511928400577499980929147138722823277678938765846412001748360673149208706007959881097920894867387389555337532615801368334553541225895232247772174371639486727621257026602906472271534405058576765236136561697133506539677746512742897913957066715531421976806196678040155336624686609263364460357895046856574026807008728626554652271588324522115595893523449870780553631829440828489589714182038440647253320629646707060809225704753255518111925797692534426688874061680432225014180823453762805922887506405830445654403526122723262594692305411243530901280538725465799825856884423252828297213712498359212628884910465337438091299621097952546406597661117771815058600682672955669099814968600043010301196133442842657380615956815552197064501417767871777851187894674224540491988475440277057112067783687721046506393339173364202243377751302232473789269713059510635793859219477932875535128317410575934986435906059303368636551345139111125808299004046816558591568411102589312838953404918471826326187224207026659829306538934895040710920989186494060588936041734705587212400776981400203609713405199784790348738756131868039624260529175402391342705585941192775911371642054167612662102834703025216387977751455594638573689628708056128105536071301361881769580184541905271876384727335610179540564076566091379545563569638055772643364702588891504165772208696628592986857322416839033928390832857874250524620299343726115920746595460037470051615554100600548108815468982011622356310810493876650858273638810429759005921737601981027936429253690846357248145914590447794661865614066148059150667440784561899439350200860563269508044155656181705019957648919975198833971493091162777105668641784306966372281088974172605360154458205269921413645144946815975127098128422528546881023679345473243641766492144239133633616418452463695149861014751256036726064563286734513319593951864595154781310508437984410402793067809669854936373035447451061072758672358602403520936657507542212438223757090344193817142807675186240095651535719834044249812557608979289539336130717869831172952415144235803769362599556938049923563566767642550697024576780184513151742208703511412317620133141436727489195404805173400961672987853500716776807299580050644027437476235747059393773602414621624221296631134720939499423137984597636145601407342137221633820550982100362959775761065388289118279652509148193854012036041625665110222368890575297967090869627558464841235406495107277863665278136683802629435993032174020717686058760910850493597281969974929585925091299277656244730959911178608936306068852338309922484597691065572992709036201255365350217326259471666750782094380026994395818696647804511559921956688760533391406384360323540124344017499804092802647525839955629078005712360025689014353361890515889305568968215877218074015388059280297002140562836200471941976573922575631222615279679024280161205837613347856603910203920244961053130227141734927480781116533277387216267781921108518789914364288307306787746583291201288112745537400756701346920202219205746117549088670225708289289358407990831577194943446928277889875095656051424284946588591319887830087284883017703586744930137941747607015906122680827225778559546996400301124121754883958953166553711066916026885880984001127963587903437461962855821666326830204313877854582249640867462619560002656001239906513265446835151478219231986799076127216891024103333468421671438269917799115111007127529538660926651500791700875035197177719280912434914452413194367050901511048895282627327375244067919214657765871244008518841207722993383086246582438150364402711390696461999572101653048962944704436833432326864778686213301142063962705047013199098358604346757777141267277134290566930046359140890383455764087580661364201378129340224234762051119964554404216092766405380910348302805196357978027106294995657267427542236767058308412498417335534240832494694630273803587155997913916981098579176135354867541145514286273457586810983014623966886443380995572748087221920984146383214544174084184821927162536749527460505020263496998648478644840992545450072390734098322772166338133993181925674716350341999295618394575060261783508565373618286311642551611088288652607277712197634519978958615530425649102932934850264123937262847841496941983989542297982676938802174234198051229712920927210161739838516162715617004515083488312158727721314995591775634727739265981069324478072089949247985717912466252033352140176598067275069933316007223808126048717881949663166009362664824164687589243331609657914709846657952217161037531948811852694837106588126968344173853499047815496675299187550105083384208360745463813185795638083781835090256433278354569546674146930372547637603454454852198159396490503169045943516339744435617481458433844057087822342654354340737342848513232690821532731818531533736798831369577130103540690782603774463407779358546173386411138778184000264527364478042959001293758048967221739481338404067163818135862583114808996205082445734430233851302885967157148166169185043193974263604277291173266196913765156647359817392316673800184811338984404418467365368332513524746954499675586533359399824162190362912297429087285099266870624566080994476355955787484471966684220103476925572747012952409030973331580455695040486286316625214897643309788453935479514192932564527210164416680741307066198102191839545872504730566878368173433207262866124423706695604217031427929716796922447000888530218213316574250118884719574779715694705662411511639877555434166064147107861043003341025774418094428887086082169420197891275702238396659055482019107043442695920949167362738968274799745475819802917631321465626040242769592213068182666760490033661043643733326639159634439439353493098288939212021155270198052980092449194672104026563292185986555303571253442724491745261115949777079841184962616790653663566512106313227867634283615097424683372334344321784184345894484198971904125177886596146590599801247537439867937871965953742358159426908125562540915594461518869425951664750490838862991130399869362361242809332153514173109380114007893809371179648978300135813833904300510412260699560777577077205161176737038288370081018035363867978906282729380796356094209803533729553703528737281182586122766844088261941692867862376707022223896033989892061748928931968443964938049623404833148610820053597863664380068407065566832464155701498497730923141390078192716412107917363957062566011764566190146029618559136576909819693130322999523392699592307634661655363913456000619592872389150926017469042368092077087265975958054063362982868663671553074223586862261806170717202382758872513512653097797602688777736250932221080279355652090857123590696927695147843482596408905452918042640871868967575596833376797166924640717192999649431364659049853200433442616799801807551098491093547184687719671221782842516690237119911333921208609622497403902928010606479417786235244149812454069526761404633773986851410594767739380700031968970761425083054134009528995636757334978153837137839863946717894119202392973511929832710364415494406260926542709301713912894611998238823767075729790232413187653850865003836139964854409131798880502200852295183432301469548534267868545787050686698376539550367653894908760321923196084876041174060425950655250311683195793388280564178841673285084191292296558681745506792705291585221716073981220154096311290532428385113973228555689482523897457529106662730696491159292802255152231156654915587763544692094976422450647663288004438570056222118714059426774905059692929999758419676274399447185629151246135201998091061450262402501786116601602897998899389957315061066725054274027990551800829041864930605150014460726703090119630065061300006706148329264684974930855498157771417371622239102146929263659224973210218168184146529483349677149142615661562570248774047070492571871957838084585465701147535382059058392432138260984117396704925710227324254288684759857221018616945459146404166037608701170952257243692906450210264834851837881993232035081402704708168233777940089268068317124656302649995884869364485779624063203502013918691573138905235684226850671140470262206327524401841934664786786006998077511929313837766934788025988609465253655473912959636367963716555746692093840039190389141804360552177756207157962207637715687963916851501152674215150692542243202307535526843832454256337476336382991790348037788514797100624913242217280775794828286642172914042671805621864175214430504472525845323745461989485737732142925692231450271430003140807443073655288379837445166567860416908783623487728038610688368343437938590714405911819363991722175336149779041088643937684984281485525428772992006946382503187532265936492102893625619352250617099286172520639830638085628399702679191314084219458029954204713682738832018826665405578569174911030328810990524701324192441552387317460168469058473016137281058656847667879284249460995961785097579229197671123810726858709535789692633969901994239035172563543451388431861066380073350318342957484972775372857024732777568850676242312949005590601873579344637695621576411600153246675278950764335276208879660116153441279306939595620992193814693544111183069510195984325075600634956583299752762651895318168933098127102598819754707898097512177542833571497324542924379333928172151363376520576433598032661976400361411856459802343420682105639091263216733320254196092549156360871015998525888427180525826455035893648464346522189268188262536904176006536980083538470755790642151417292771622975715480534172195521751414825385647667128774890439069170305619763549984427419862930577403753811870034072059229016817474553097454186775931802101000032443251883690505933415588074910596668361505917929830573972555154794027676492990183213510143321426084789682963220368594595116642656205471899276906312104709332548351368290359483121374639919026580696022773296715889492031952234373030168360096149930925708541886002426935479242529659973583185231760652917791709706894156746662381160854702517392456214160012742368118845488515424457892368805212559564037810430374480536856920144593394346502732527773011227036855117929329273643594139164750265374744370034190807415165576131974710700659072820823521648431448531610101190519710737013227570623777963970501941956325871401952158727060400782602652210795384222740515144725562548192694994865849540831182929846486042360608591085805333328634878299858850960469059155631480337796519922656174021740370683104342545017559151913377010540289634240646764580921424811045451370349158371750708087213425960141504951628862282075693945432408355090168603175460333623293171452495773334012282168894813854203866432175031572018339727100287223027131806590450452116259926107009250965401186658204563934081542195073738174434780375347956748698243485656445952158339611701041404050323430227468952687633429030757552510563877463521450768712010077398592435404014619974243125096115327596624491708790805323782699286951383132324310136953443134281111734983227311857192748475690500518897195365745901749751191104682117758866715742700237742718374011558208265605949835236231733990059269793725358078294520675894382403136568789888739473178865815499914312051903425357690326696094610276898132810367899249377423418418958084550366091349456489865919296714289362982613453340853698836172175740785222356355384503787649482902907002028241478920819228370945434922939877866644533243842165735251202293220914832887281283703215884021123603796159336389847802850287619379626542280981299580373381370885469726520976214989995767843468946335158800438334172399714100533885860771435046237667381780480303990186128372953504294229674249543262180192710669977062322226448058450047305415836707171971334766272742493800841480201073509241197806151796862122638684496955242205828392789054879945616154793416286723735739399031098187563905127865563652032445613452012460253424666310995941615433296816870748935356858095997777933938657414256617760073966288563615265731357933193700151290888725632952877321807284021368499818794668778835895938821941515202560533447097056737107179339834351207700662856981606416277740620030007997795502590900170477895506134098931550388288460205740741607689126098005550611524247007875431438198413575750703364251532195763023180339503458790078030062127481434265979448696588519709266016689612665206163135097874438382567969865710163822985044808492924784956590649621437875702744476058303482968848192204244564762887182094379463168033429997774273274264811558894469304052947707735968851287639476359613608122333865350244685144822818912277683289166446428384222765908631297783697021530534407696909103775129278985869537350554078084920753411855420692594567664294389420781319029747656911976237347378041754681032429543078011576849626689934387015438750282327196082199881320697421423496024947243104340664801552073500127009074300156233010785822864602902415120998547693020552656180055137225368892086524136315606694477986603969379036818372411008831831512529420394201372425174497993185073013311430663973244641223974161371326481930103641535718853272532538441044827401287037202624503268526575872617319542319334546689633962832865612598058323873096168757374493860351740872976280644026702542305765215719017569090844701788834168847777183351646778459778909010755971792592831359745553389622080368566333839731314824836658855136488417255828804826774071164628790835082909022142934056706324982490545503017771182135097966874126040832639113510832417742120059850978475576205627645164806757561958610508476153704556530774412130712748101966069271998010160520186109629784913723321100866069827230390186965865029603758521006538132089203548373047760351248589689288373617936616571602245847086445469775016382241020938111402686037511983220764607330027619506334527143162356252226669390483269886410284228656163614881366487204734592521277827957980922862097972390927049086956295818166905183027815898478315368295708141446932818243812378756458783584344405954768845591209515448032866555123514727868859449851988769234358265634675499121348790071737743952968363365032229270431804240898915175971210698930305627228495759936055836260856254407136549417214526558379819494676695809917751490004336439175888269509025275728427787216807257800191400657177634200901951816316551886353805324178161949042103898810973188319202809643197871745697783272212811973429677357504933932157151981814096248982373809069645364928950507403480851304032595478933317002179272593882021555746803276242659560212769250775645917482561044145141091129115373313041735401416675185366137926330699807918662308390485489164798878344670896659147293273881195830238163242308430013849881566597248832604384558410519782453651454979380505061241949736153300025837646332179166920362581658703416953157477433389355116069326832762659762146273196264808099545238525358327007641183208332835828211066047100544878333844307038020583862513490222285484453801968664935049290898270321224592765117828121641396090064288024922059613890168029558552595193066691959960912868269378730328894615943594454200864372007379884749615325803216129096518995372070250503342491052734815618096421266763248192719592270621455231054518260249703281835485216295119489120860638161473222388186032139191034985883782883620163030508077833418240710391980422653024328382772136958080753565201904232764824139202427509585533283154702230625860872751312502028823454553672646208390912592108504929806433515169623083166599679716139551871797048901095645078385845168078381296372916557635247290482381905244503909829896569980100351852201541326738339096825550242929044331172609132610331578237430379854529542147023213090893816821430395474220397487622874208616928579613531919019942345168685436482752912000373262781673895478840899349074281849338102943878446706698837580618567040003190266754155973033077578507142502773079762617405419334132145819970868771026891081778515622632734175832441548413750611825407461209830515697104089893013367067571124426318075779908515834478863426271361385422500640883069275551483152828694027063430855978531492951690612448908324859802913046643289405486966235610561161683040834780788752472881633304518211829311710258723280024673993103053814808114437233232249344151971456277819433795487843241781951855883230332498887143555839127321705206015826882945359224782484678049430189234009790936578134179259976344592562373924853394396902089340029403626587643968559032611238408309797138249212345574841911504334152939304296877311745034027949418679925901928751860808322623112039315591588203834197542064527024003048869839430803226785481793278083110817356483601809584003482425157046838628572387509114955887218295318890222508329484127543043865312002017699072408306435326611251600776590549221641500414314627175745285046337599880459215221948146570022103002259707410981339925656823227973028564037367061052811481177757989408581232270121636782013781714234293927960495891000330507151130092326054557932371640258692486169014170126756082905156850092947578966256356974921989003504404828456016414909702991662259566492253864253666387443331082702093832358385810604826383841040909456829807837450193962643747608849400093013820708127112900225296817212390301492784158958084963642893125246262584297446063799327027874136862767135273991383981057663476759443798164202962028415899044513946992142376752480801358046914721051566252323134867000826008968816552294645665123199377454061493768080039631389235429720425885857496737895083529078921803787704113073893402795174040665569615571103849521879067497199376938234855973898011566866933328840993308446250458131575339187649668784789215366722837649472031446358799025854066119474872734945570022533764726856009337190690859549533279397935836476749804154515604223584304175452644808111284910211471026498664664975863571592814744870716545275477225801344092678003652603452348193948703790125127663330029094228019095573567203205984709304368186957521628900534638675646831234025950121938404030241911816055320469810587472222118385571243705520791567133348427778558336700104943953890562981657037507320266211485204010485307770316168671111841232414425621040781045180320048549907390398044991211696589858255262778628424975116611837238422219642436236466172348763462916359091275727946275412948821849651747979293970369429318013998016862178200652090182607180747896345771457247689529260080868392238971464646918507226283861502198258882469610600900092843365902671370285208966959350210373415656846807501828632417870974319702434257946540315416366550057188735501014538821388736635064083802017031926351733144052657624730537182849166876726916540217671186663130842146655029287258127277116259997392795546803465489160088195211796263734883721785634689485149845189307246217236314538671063300104018766887384843154478464376031336600229921450348443035830796694400553047197577747995180721357332628411846632497538159480760608311451412444412498058857278183679755335999883126449649417826262024391830270863641762195158891012969242736222317457389898686065109248150727417647073955046841178138451356588204510735106584863181798855213360530794900934598048112724127488229276124853912919066005724782500541585389473708438926561593107196507202954035989434214032845900503695229371413412401152231974236227417064337954109078876155834317976589133498443070976748485188180466479454222956646382965957591098780491147278007697535736412406264991461985928344924002008024639170633154264195511379626382475128947714749554953371241768945374315467761600870212946683524147311412554476698865464526148915366458604186308861146303127847429233123383402411542032760092917645627761041212779081188202844689881970184637729290677303984289828476438209960470755062180973454314713155941722940076915346252420786387468885192943536637021958097956328756046518877945028107740438822608294711773548286658653925251330271994889312844951057496976606461679384057188869241500465789681666777684302867319271507503021931267619391264947009354431243846290213021497308336698926065747350936937066023062566294752394619834880102879578659704522201170027309027508285642637063844470423450825240028051505264652988513230532914520072815437585221091464735534794037789273961184059411572685975791165543741856797635984133679788097475239845428380510404441680107138352704730855938293985636859571738793707211990482103114397438636495971609499990491499971760271003567326111034229348766403398422956611437677245372169332372826087947520269126984391095362731745098338654102200119281371632543078154764090955608940071897453548307469490691801134071521260220058991814306463235739276415056509963957556869642447624622718895894065460039642720389297895161167560484565602194898595331913479090034582132476762738544651379669284762081265428389168835309609458207401735871760312806560478790255486226990426820568583734510964214583144274311496147998231960165482728299916320180057546106749057723758785245244307284171707914651146400785867242654321455548691976001926417074579107956265523745460432585952299150451396700600825883823088405696152839030308993455959090968792148181360736833079961251900661649575400140645786123929424328642636746909813301843588101363759899331395083969516804035033763387111911733372860095013435103405757224325200686877786134397059666723651647167326751979507119414003023787446032039787139422877787825762991732001004746882058437884527600733578582332812875015294712584513507800764833335151780224412630885277923010477326556665795045668958265193704059364825102250430054053167825866246659247477414423841256863620227994944997354938984287474434069293068481878213854179560451331706162010572547031875501236651010945043311836420872197789821998615678588206735049845253890773105162393803123284911774775869413134573723457325792610808600250019387764034829184525449410907690882176591880441094082213223859570460193650698758419234582610150315367727922677506432303784442792516390237482481577679129453305026516644837066349216048210720737086367601470046824095910526637322824329429891597713297189825184818896942903532175644755185535461765324819903580826316719695616250085493456923613775556668021170739202029999798387743767866235837413106055082933599612887149164407267054419767973617640384427078795002770939438472364414877955694570889938032032167836040351909685201518140549647246736625954002641360689867357899912956396224932170241904220437887516643870131327498361094472294197280424341195969646594636438492176792872264612092630356650883003314049723924324703278901180645217321056448129478149526614435876938167105422761818251622686878573238122850092500631935388216943942338221962116321791643127295897944318428167697184069976118897697123945383184173384202373738933491032514622925501775606111981921341546157198688356272406054145006592773701795439436960236959311311397691834772240498584384949925384080525651195121522018611751913146002191297191207139608565300852930535347021078407747868078499750887633256016797110815734691272310854662449315139728938930951217487846896369091736741888533287332093050696298837589578211760304931331656975774771546206537111679149120619246802238381573820831655139427985721254442405982471999505600993399094059070502571838304870224056693390040549888236542640825490710707054794634541145049107885548464527264080131262936879844310399577798571254557407210277280051806455997229912892080115694733909245403776476705422727101195004549108200476632329952359766577080518232283874754980157603411833966938125284426460845497546352114935654837421089211543071210529051422304920701408404873450719702684609844187895711844780774100854654340061733949216748471743648396890380894535293396172856593381158180256097758695856880805374257268001871092777664266363424844620558879371685868415555420679943144646567887728425405366510035537057634568846647776075947305631765005536510735941838498256322321653324236724277457408573122515730491657618730373737052254866939852414907817398165237306205452709740303072629927863407394445073654018505965051187055195832014483597858386419802777325961631258807252668512540513560341180632486551313201911410013257897140762561588027586418284287927747246131855151908953194631547931068772726200896155602334927580749491777029492111529157158330397842017534687383791556811605893091978955034858056421002262393103274286677751659457834089719365708283739316691023955272387482631880663410044796473485761505314420702779065360845942809298036005319807517967222086648970411740057352837146575137599473436273162246138776477734835798119691354135739482930313200204363936915821326669600097861797391761323564941027245739082984777249259553095309147789923791361950673609783374637756654554355911519177608020452034589600166014993380332874565596232333214902369846072547632338851967702935885456127310730741362007873992310810562118724712972706766880281595803267127046336952960940858300026499395473128464728599363375686982535206677310884589509292363219388288325967173168752637240937029223885827964267968056007841324439074140800621738974749099607593303869380481777972958267856153502385338498509921781969624937224241581606600833210268699558687688604218220184491410995732745383131643022653530023448452393722393983555869787185291803059410681334501989254942376351578540978237654827272964395963876638813194675937556060635694696502926069622582480787373447934944069273030015933779789630056623642182952161392346073643189676052093463139901239441294298671818808719858352985189912664824672348514997006150248350619723517410342515708699917428061802763464598718036065799120655416392676359121744368267599675234704619805126587530940903506441823649084215199751784945658829252021222236051731484791774907590112416242700014772254762733705819091717355763525535131759527409101387252908612058581458166961123046012479400658754657906798276828047774994799968840131194224583448716345680997954447544121834319907146683661002690297450792014419329714634148171868182918507028177126328705473628589085341909987664112078908758863750815383423772717477994372756008942178175260538904183907995094914323496052851526425586580950088000540034336069508694271620362687557519394023269992631420476939960219877306202054011851382933506497553746098281078269416129283398621377322768372567423094655546181753500175311502482269579704053388014841037272234688496905946998774762872583094212386829998946054333357151814350380275864534304398146472711460493791890224395805565396726611108844016416253806276896960430723122560642843377047619708483805060900140836580669774739889433133626420005732128482346814209491470722957656165128350318273920656297020381713687326850581106139942272388888010149464786681204810406292805270604043157041181840318877383548236658774234581474922906847877028226475150652445194755127115462791042400735953752509576823030847863985204078173234327156395393601983089777201964439506850739981816586177871583134927140291083351883625210923556207486789678424155919478318977695603312785808228236936326255798517817636456956718029764730905960800243839447505676741418715443073842439157284624056029006155061448507025136620216182510703054426730485451075333322750942882668091007192782801533439059939821648176204025858706932737820292309005395388718028806773623920228448436961258059236828329839236451063679499800109624956759536925519086593913667755915034470346289692913693375002872438629283640864013884807175074161800563643789578803950795567281224151928868859276502144893549334626430571469734556302206592220394893768493984201601437064570900035064791205096595585934694644051039702861286145668439961138188798139893822336011362025016455733798630634139086619930578372662460436634099718020880305685908862336581563444210790083763523875410282725026191652056644991996020022782838960586675517454882993436316235549348078311059085068933565717621359886150901487846542874543002338208231417954731496182750675600015631097924730005756800061455799015018140311243080834859862533323418092585834305694828760111616176121336648199126855592159730961833751367474045966011070561709278989180937645657329747567743999101388530588655288232439563205217018885847589058404934815750455092574254279884352432651362481697449449255118744005446444400884774629105658546676754573137698068268111683957998366027282268927181693181308249627408497940879839287683677282990577638111500237811000401067368655418937816907290376804745260702995720270268864952617660819464497144436303084141791686436384872466558815654541135208269955243770531450138429142477451586356388148081821046816011739126088010304687439881778141246093001100644367456577619248571342004076382174598472695162254474426578164062458436337181054599243206466961012401757678787572501103797587381266955334848367452685266512413369750505579855130351271048287251578241648324107285306900538787088312396539469324937991613890702211734013742470479957395705847278995445276691707465278135377065261906658832684756390142944991887539178950136934589439737457637247531399546725134187308632914839389849448219395070482287426042875592243249028971997603897431820615561270278180512470340542502252246170267490733145619981901983057511565462344350150911748450495965632716332059368232665909988354541318567293749273133394778847811424429269994675189867525322357117439453720510602461446961318196538234144876157420174090837635278749054970435706667635210820566494115284644978785393099950704689751852770214429722394196192757953306789716491190906332776105709533940752333934201957042038598564677202484241052371782380383996491991321331274884717803549946117717608241725256801096108363782000745986742006369031645769648336404550805212868015954054810435196721302324148467752326055597122453664571817572686649603532998755225812605899227319883880280185702438555491127313396299789196049919048992739977273867703645131249789825898890930860644553932322995601782655761126529524249391347927419350665441332934680072938539460654815346064884512885498540879021061273757284249582881172530476198325551475247836958089377020121813375013346680545851466777889986092841727808543759639249010207845291024823770310434962779598093467090110615144573277095780676132909013710622009480149674296560438538285720408351815055673387861126535008338820762653079064532952387309447136949005054654967525813534921715239158340567030949874983924623301553805496513863448311682297265105980440172086017760356548786126235510262410053109501491115809568841463399674467881843710563522040336858874148161888622160037306381972363704555404777405557182642838614505829998218489625666831274270167947816387204025631817805168932437065089694096941488877132639720192645553119393145644342761138555347038282358159318278057392753635847840868236947116765408640639362916193160519326686323865059213516171127215128593748648872966706157112288704889112341520485769601374740836654281984201300975495962042212564110397746041244496284729603336791466637614659325129238782266090827693537602100946358848898081406428201350030194652867182139854258425216287322441825890501313357642226853047308880293239466961392449434010862912379093323328335402919633210362675087555952505555934698646701194838463819456699344127063206107598041337835767335464512167506100353157598435640439818933762826822055396195507349432950415763532785855548277816473415450285816202048527844235257631641245024411855884692968892760200872137418318545480223379361506317035137278921296096680761517185756118232516252419920332251363976812172959610036906209182926986314520916083070666881346512879830515184179707477700828700227735253702589846238279808907899971948774033511863148974039728936215548449039237664996048887611758163689985304471065350374055929908976473161937921299165682437770655039946660267330953118141397203665301348862374803793414217483371654381222751070372411666030239811377129246477762948875508179105940315729186105287905610584802850237245485068981525855266249201995425880405080253944863017029732781699095711731068031541768646898928188816837501670701022636559416333242842682853094348206534057614234643213144577865716134225073008798694680629132378573603737843980307949817507300597650932513543047285957992694818025737402909525071887977928730651400472395646575933404795651447338292531061287624096566081914214694631758429710400827301521309517906806680895715464901905265625344398826231442785666341173815921786262387768826926724626568439360088692760741836832403720728365908758114840935348750198737412442704559935218806799396998847286845826393680567636908940293023432328217518832161780682693200571548853112553080367506294244002303856169468815586220645546476089866155059466742523962134584282858732471460441484612506854993277378232674622436108054109812285515061880227785307884036465484431716119759056127816602598220648176559494607452998252772650371147381656671996330485041294276976891498059243905666843264232771952214732496937789301562891729185094504718196892447775712919435245329146194992992086631414938345752375488322006333014221938476908549986919910995648539103983806697219991789231227708956345523181530427643765857572899846896060879833679272564823033172525196982002317310931340991024259236111558925003157081067811530893050562506122600985377533923572225936071359101320910977393288968275897053999199324609941182052746953225577516043848090612060760669973504235983850418706089500170989360959537453121518579153336492816567359270145185444686674562852955197802811284922940868714527430194615105657743564025317044180082424677302422472517916215657343365967533002931448382801442217034051336915714384083390061923396974626755886292894062562123370444646125789866452756001284365506035150252808945100753044375080382300700816628402137178661698869704618637928253307309804157724803771798682848327154273255264278816727700270094798717623457573043015935410031161791592969324741940842668867674941824151056558336393449414015337974110454459285691826004505934437889651509316328587416383444761689279009349637414955490653668926075814292134499662545453081730609610968742062888607159672594114101876690197524836614606445322151565106315649597663355696517535581698150964007977023807467651344754765644037593153408808385827948883044317058107820801560212172416910507981559469834287164702965640164230231665254416617584118834703474849680967566846884128915328594647873421613618309859637439737852776038619650536130459219586756846308173113749486777366792744847414001876638035325758474066765850197283965211798567087287862739620959796949258472263111839877811702881076978565513395059374546723124948696365685013482093129510310968574764567751594134625425120558478736989393568848837507079718877762891877879369217477608330498572372198469427256828365522125095660521661746620237813525307398156133401337879819917229002016092446753666854124592232792832060835006477572782724903070523111815193933531131987782396682130830782053895132109588786338980183046863694593346796764927992674661778191961724530708743267187182524375254983839073612370338002254570873764038103919349291038989957158221361128830111039026948277573607831173086081677525600882497823539168024493974450581542791653433364895043426069249132579877175800914341980547534647111600863975656120167203061769696584163762106358750186529850850728756517285446561325061259134796159292110947620614159321588271228308956831398119008420697273854481176815379295942783660685875628485498216864714163858622565229935910102410080987216305196169051370597237298996863703250539936561899399873429972928794672888486802053625315997205112630111071604853834678071369895915193969915390689319916412093190661550626868532494227969715145970913126788106346226441639256487221772533771535662694673609493500403528938679091868808860437794508838170969798047158698871229099770298428626016141837816973841440916006623838198478992787994329496150919322887961126691881639341612152626433165509048637522249247711023615187744089967720772440408936426082289035681437651878075394662703177766874166509980356333404390747065488051815817286730849964230379228389933010220220512281685944845602221250009359913815299228632412798389260284800868836909439662878964461541904124333800088220087684076625758214262237662030724299058391470248750288656995668524311142332500639473530265630850301410886475055897119140772898634438582537675694388149089908620099432587206679766825315526361056858979656021479123220686449988789069077266626117176520679293596932299028279411380670759035145203759718812577684957028790444713630192022025685838921571235291395775631287970487001647657106059319408547383870886518298009335303474631052921503959055210891682794107918750691779584289238295979426000966453854568522548092173783015745275183777919579691961740097996473190729855392316293940049188690656380852556114146936404938578773613093582009694022065081799503697345296168940194174443000703748937872025260125994258788035058314387334990525003172710200762586463755175929661717951069678440436085673924594960081124921852922209529653900047883803442589261330170459392831383804462683488581279275433262963383662039986087709160882719565235910420607477559902402309832244349414125591222645306331715101976235103074937815427500661485195073100847538469108491968552579221615525323449359582784446612348193152634864474940383999346672778073542427830797038770535246979797331182297523158280955125396660529692500040065651036024290477277950879876626178692519761325401420652047561712427787007882378877957402071272680008625979956330752893343876185668166440185785441206510387462555005306907268359965993917201554043489181101187005575557560270751134405114232984242005131933119367588332863750808477136752748098578002898867467560871421960650592212444542144776802672384672912629694174122766801478218007187381799933349772886604811213625459729929529968655393623679576621973717098019264193648510781876084629729246669026423605336986403686278640311304507225117668267163589532205557185085952382721939397979600859641394300202711901598003496413234799412551092684271608114154526101875401273232948714515872073740075027123426167100835252093780586532761879895565978599310088942956047024299961662574980467179892862703112057224262102080785593579120841246579723571572046030718496926659808340756423081049483739400127164601499680238780555001085548803338090356791938185371710833403256450314156037322314965582453170999289417708833440747536995264588291831301542689028009099621719542509729616543859343132005352812788945780651008639983351311220910762904169952627495225266183937480155266575441579553364438391026179108369317557364604129579887618111918426172889191323085316011690075778578134172791681359787845176780548107279116770622533824972724324380366385451183857889396542362415675722697754470452472614856868520053993239245254643871199550433435235641110065437112417510118884029993513519376454197957711220171062301575693441071476230532227135510551731009077882384853737184335603003123848268723663697186059787252881593457378224164563266844867503971565523552686672556135515221879016627458080512161015086146931048854782086998718060000822047746826545768577913092876372339346529311995721972845718620974477261187601637753702508646533677657432674415524335618545161125424342773742273378746232499924564970388491773732256999664575210429440362293813735746688022947352443960267445337206601426792289389694825889537376695068909752467041973104319107903590205328055033874136395633006917795713593385882564989867600314834281326083865723872533943510991757851418534877553566315352827787184223391870017549612739829882997598520797555592243592221663911771418978702761175492433297122044172751961840615938218179684775731143669566048592067345463402863968645576411725455799546329910407046829778744939049037427478624668276566568738319994368885647023867941381849145854771497404309165804166070818593789546599506318224889279328712993239272634159473125212657805971704347844290061923898602687280351134392617076311613542810354472029114924049691514364502549448316966952156850772822965839293547417673433127469301515754696094427614568115844767560044299996348394801982051717532945904352143740899913942646948170053530508203796786044978494675660015861102990931402330666143449028903176166689697281831933956435854245821884467607653870749306688815911338508348301225009579134609814869904611821741582538871759181934034989900193322085512103603204946644657447545019232166970355553745201874574281357416234046747856763644708916959324309221449423068812650454247412582362794701150917627897082842141569352839236915041120049295457309232539062510520391660236098525447256450300772296184781009082603383884757821493851790748967186464699695023616278552990784080768924312387703979604143660162185175145385702341464876058010505529795216400281433721844408544666606805135415579527824269162990275523238550943174809403720561819839577074995914297904910047097735403006315235521499500442729849347259405680072356453100713879320279962786649777277468649286815896681339087743518556946189116731219191082464636755879667041067321478061470328692331645238695515135657482213660982755272874461114091037710267524794831616346533530800474867954237590575190130663759431974951180150910969929438319522899176053739817428697390501422396008995741138186410290788299265847068186526865374191209914634240565662724987603396945129500915467416946275451468513269868089789084103009980434755174153662518404094478216185530332075681961357676810005172440859180449360483267823055789745769250942122312364541128738117370549757997798654306277975759729261244712059319440840409146359143566444282080593160553346203272693513770292391138239103084936275141789854828192977044409696028133626172148026422112063740682729286989998174405054501847663996048758222704314201428652924165552132052910441333871029401680492913557486342037191701135143411547508534860680696549349807563915756746943876815611142492400669223808547336355753855176061133934719996818359114957167733716733276356397272911652647241882346907134150636518027796935777044130311429259855179844255128175030913842530064094661626391213973051020742848982232148299162039397146074317282691399775474187487654198496253394505270484521031291260112764369859417403161180091778927277938424998766126226670600117447287195716810113098879068307830739456715015503800289141952749085869247529628206198736820422582483867593989048838697331781275420477948090800608998814709641689577733854103821878625425968616186716869514301831998689886734155515933685334086458401131045812785067344877669405060888187746743727781162924944965123551562247564711321248736313135560378497346683150420880986822291845894541441011044358484109242284792426327800184334941581608078987738561696561422371978673919437233455976142543138473998820187740304808510202220388850706855157997735169202807643753848580634147517129939395103538132671851206765732621923515969822855757020775419113124388346938429077412378843903225719450984217549775441046930499518158734845786492248221156976752317267220442196060538767390677478688272287345754285809765051332976574181736220331384847245261386026657658415532149680601920350734655210950604549866618601425120664754156876523879059547100938735458582358828595400934189559978205884686223754244370025189505286594408977208050009077620746336421031280138638223086970809578944796715010848709474500029605201080888636150303391156675202115302782927839605949233938798881123180123044242899862707784737040733893482489381679017232457345684867966706416422093517302361505564299975208065628596416131438306745130436371274602431774668215329183436827963965690492323274749696664422409519925497416879344528511147170432613954651184454914409108214179493110507355917407487090882443204778172225795018700532655898763533304127229837439569840018405346484877324898465785886717278778049343311750579928113936165390205010152897863443130601351602232352495233118257077164970876779372837081098477793216641637017419175452614871772930150287766039877381477097734976960752356625308945458696764646025827891972093899746984920290416614537363473965613697490879976246620472517547282004843623636218424553322062371643894136687636104276505903553674525586967947751208797764364477342237198436183088943663816777724341281837406729355976339776096010305478991681945444164938577276047831339818883233515006874287426035980550516159695431834797985357722422624963193680589842873944497816653552971410438429413005307892465760588478968287443636681942887392684826450262967488698749879395659194432301610981347255067097940682998684133150331539629491085146623049567463283141989497217215051466777636879702864718294148972545951551761017868555034216074207654017497583690882286051034705740329044171720237709997861863208926040608066416319751342977797364400761223903430155250645008092742996966140505030933699603751779283435009175192233101644801673284025443403719509941190238610380471515455998601176903781992707794190138290090624231977934880676214767948930161582065261373493122561521320395266622012486742448138915509518441493453253594245217856321548900805113502740564731118681517650918909496153320869062348097372368759543827801271418813446548723378039574512246152425525657201993976886895052991538001365380783497515398910398194115007610043787749541999509312834008161051019757242182022073841258472578511709639924729901435083910676772841469727987497749188261569173599660254421046755521548217892685211642516027187072855048462529982988671579316865392366787601940709159113993241019126208898145970421474903813149822190258382173771517391170754114265642095257853702472389032343286638991264483367340426009267926219325648902258676410769936439322121112806202329309784379354250386883758532893267035485018960161213087582923966072627044841925428351186440773979357214384234651564634415643300136807153762704366352497656393526853386260331621675198767802069339457231993271562536815625034190949359724705825501261681141968417815837765939328801661001861205289454161013380114837258228402636596516489822550946245762111901278987149693808532428072934211109443179030809495592728523973339023835476729624183768621518069969674042422247196800076319410971550537886933605967131609772688262440461811265658113955136844924205206958514398627988026008646246817996298777424963109224671769139096135965491502487773126881478763456045135296815383567394847860598403500579695921303902353435593937524437257050253297014048476615292078084708325807735265718043650550491216244093804557779353015085023339055387103678998654224664319498770625780924471541777243323273882284172138168125717264773982056191273153185664101294819634810658586137207330849526253983642471095523842798769790266076892579190680440058846196120731499941173457124611351935634812138430983686269317255054416162761217172388665194611953466429409811806712922161522964179126675407497564444104749038961819773429946966038314063187426191420183961016181345966267844147817432835858112548795180507246935375670045818185985368651730125462430772113222972902460095297044203291729071224005865372340840941705086886090197237985654058905573082042298045012797729130520585385480667224375482944780772491079434875275641339778761304216632141287558227842228452766793634381527751829630701449430600431373277909543068150662054526119177195492686090963011941292706583421617957206467367464567711698044089895101154483289584933068125540900180384853882437830919925155791872607266463776551531264885988205749310518373008472731529291777642431821662486383414933532364340312129407099605474270923717906101306024659358305535601838654026125517464949139544036168942920586042441633880151073617450634355371026647662510657156734862647594032220220291999692464732192933940940263754161511994985636196126140333270514054634792333876780457451219265760013531998637852608500971819433404256180651462275245471053372083242839606446969673744990356986601676884985850740132460836977889865886739290495083939158553106367891642314170235727997100907101606638879774723985280561342937947383588130602666127659116007989364991152646955533235118340822346523480260551015310803789082136942206483418549168087256909836362238643579706274721674313324121879333572414646765425361163916404161142029471525586797863791821871066835502796685345766434500575367295560188285737876193262056111165405112219798199129102300255112667481594047592321531350861973936386467129697160301834349720167543067352849074286006279526140067424889714236767435434609578000095553338049579584662673311772609138525780719637511521579853962363699210216468337208694857902087067117059578185528977858291878797648661886841381460486571537263013733173763355147168033264138722613699858112318088840979731842783110891647674953449185978487482847468358465046168609122468698659517953773275803460831332439974121600045598192025883678788004052335005915625627428795170369648433373945404861490362618356015743800814416642477210695013865520755614606223544645277221521203038157998260005130487243181541342145277546845058917993562850389128846848336661769778658812454976003538641570741592313225948306011952872765109063272849460923836471352416961579751878069085372505820681235375798547998137562090431811191696446401547005857839242301925981585215537823689911716157463066709171697109767818305445059292951392815667549210984886946219452779363438780401072395423084176360919697230108706529700232228553658881798859922768261630813133627097457077395816021922962063566251877215343454281614621515475751923291613462276318933771859710353672519020119491149380092699136264263178777795407705557989820356370839121159384528828951337102483994684120735618396115957187615703939251490602232554930744596813023014375866601330210851262315919931744974582410449579747173299837499897648794430048797504183661013702298142063241244715945815036650861249725583536439808782977488868205138201034685611986619223096182974191783640092953187137768996524273236415768250397732767997742540018986800945500598056180695716878559172336971031460941116646475282956652478709090727073580302645691267972939729290420360485534686949416786337493591936276069981643905169722398525716848810060123500803146401653520372713735264342209032667807415420077175405900080550631225942993330610988612646738029917057195022721947909738004600715778888722384098607700682546424293279738304081252246744489436354744350803077311931241380215642294721921452839409930785454469765225570879973764348152393536618201558250773401895430070659189503915882292052252912109655526441278636201690128375564937416943959232692741079219861510829827275723055145024410833131279992382009875848351971255967937215144540612032084480410470573030078581023649522161005512764854513026785669090433683586997040617565640780036265355462586029547184918423142052099331842751193754474749947673738696864757528474461804950619318491064683921327046776232678403946811968525404557398996683366222860623287493265305681091664931502160624300566729389479743961793282742480056013705362453770270944995800261082296504846672156094963435618427654098319079882686073470922772794437201416207702217737761271248346900345275555336545155673302451146628364384033977428170879009105805596775433016252667151690572163826600797162997538018314133996259873588558219035281693867472230495737709665947094305951904850043537791212176667346821028007177794250011157258981997918381727490423248247914843046405720231429615307169674618780055903942318826345629770350334250090486968274274933265997484558113066657314304128526330554932759217592652382800353525077459293533304818678826010226197564370008765709254446052623387811055409972594627660374543153832932182696568444265185873894536974251872966135126467178871610952077573958855111497703593023370532746607092192835681391454877257874874274459377597395455853092956461811752434709483545618916862677491739382594272381830605721934171132240678909656367191845706610618786021656280440558974369653101511108909956975312490707353619468347440634687728091476466938135789240245234544329569508630949032131595351434744861947579697962054632474506450824976416089791110033884414738050095381546095795115219341618907979541217679393259357722677826986219395890019347082527217449651939209114301810515545485247620657576988448213593328098625939706748786599616529494322299408987321136033615189661147175478162810094419529554011668650996886299011241027372289324909929272382425059470482024710705331881838441362761376632271286306440081808167828442868843006690035473783169822903389188977668986388386166737137946185016934532774834983792167100965101384876374841448569812527379285775636129485252926079378090505809171007639546801393076416617550707183371054547382998504636838509363358197330768372811460836758859382912026051168413186752406056243639036325183950693868921620854018107256000846739220143693256686427288138103831539205486069297175658847066052477565321450347055259186400748888427715276871363537704114395306335443634617648983700044277752795347549526350945897560523324281081688513662221726457562953745532901736673158759856161404889204944885726455234514264088896459471821554007220075746941966469411515427825606449103687971706546125535604222244452455268307066159322619535847076881561145342476259659830959141833279756580272390113482291161850142121684155905615657398909231820054711374215033966846890243621905777240782477179513725319736299938466483786041894620032292833536232206364228588086391522623205884083454394352516839612442047824011890287686231729577095211339034642407772344962858290490499136588683386796313987430313328287798467845362654839132028066598899621572953110010051342760541648801827555370616561796465381858789132661292779469382816698359375945629362689581789937303386373395545804138041746662858243046345384802711479451888767436622069148560978771463163600509945770416105774763487973664982241833413794453701080127166004072958349928293570654980069559450268148620420153043925026773224441583179356492256432967192519074631445825386649606809366795889815474381030493712458936939082178122319214581608682677666216133440055420602096927685547534102909614376718122774352477954879061852925590665222460423217548888493898167374317631747243507046247314246610437881506100825950755141910816014356554824296860768634084765095726932333872148645770119603167755002575012404646735867672520690850758024458190519504399551239709725833563983744543232263142220997925693129903065950510161158942113652217283690540868684380736266521892197840908137454189488916446083536370009374744571589062074208457674631217817165251415524089669341623578080011474761343549356788582257760802576579087613405640008496564327688959316230568490772417405173732074573032214077362751606709138951356029753934144315006982113619123689519148779617874610201374851471304940858905768643508305485437737334766915272266852748108626317343229032786474208713915675587529497668435282162710229269655928373316378071781212435696828947413492156690091467240584779293030755554802010904465456204531471236191830763439076884842286162319370462910651040947767553657953789245388547688143983059516921728876109200712456589958734587880060477959889642696894292938101206711504062606882461183532104727041133857869667035817443247173638687741783110194635387088682831442478850840938373949148312875802921225896527632004796074940307904818425323270677683472384517911663588661096853631962246779346499993869852520203407842949687809343615063856904576179657315834787614324759446953734932464171162289708809551048833239550388449094647282177193281925637799683257676395953830715357894817133784609140104684990070069526209404315519912106216657998589437039426216123775918791042456034006157949126416451647674896932083185328142318999827991540236512352795348600293173348880272019883829600945332121665269673047502436903264812612116401434147436934032028550010042415630880822331304839211390093951687429364062032909127238517220473070469234698157721385396781389762819449312744327036527377208993127756054375128214464384904850412444492393188762482283770973456983443917191132989874536855240580342379829905286811225580079682054274263772776344009685224010376992564484353891957472243606926714705442266644493665895951645073824213979879039151698337309166875218314797518665434044110836173407603678672241623840557171456032117433692296096165064192366286053513894546863420635577810238049745987302793817090961689640216429047395364585038059308320441035568065594821574344700343684269638789713787365421113957921455053239568142943367203059803776311042913128532713594131219168358857025013131915628514608559707479360753738875295121708335639386556815655840064874890982493434393263124324478305456253575260478410257808360515636379017424092937462165982998538596967228425948832849152015562749653027664243972306898286958242353858923725140654697378546703193314170606843084983640031005803967236422568075374519637548470374872479469058082068779935582941099978911313538056703774400899191709576232046479160136447429799138958574899668781996824420213246972618261805030681163317726069777497843317044065166191631205859420932750637769013351361737415599106698441946362596304770189115455015801961382474964207025042867394339117856766381835040238029362433896884259409798068121157822602527334178093154304451580608495704312678147275381828382162239910887537711638586082421020212295587974599280337792438587150816902874995553435044835836231575369736570623611333145284034063913020711667396347729369290972792814881234111015069310963915085713011543990886136824609307162108519091459618935232952797912609714934409325355301692099873887083423701449716821542455638349314195135805457026135107071053431894962455376052968968776740210459286977415099176331083982903717288836848901031633277502828931516266509207091006238957354359033356624268053635087309636919447744466341263296969952615953728213714375383713886569910246142731602902974374421063496668622850486873701887968445086081954658498012498963691391038126767469872001997152790332622449757501643172807779509400092188372685244084110947739342092570079058516466293922857645847173946154814040909644899430973007466230843198122235413303730259697975009541379523803819427653314918819976528609062315486567442407948765123200284615001010467062995947074292360591278824509925552044983712369803022680954247571010328311563341391848773143481956249546486889696746803805501316450884770832483758842670398183220352557584790251573063369036202954859731616621536581350917826177746581476177435627728634714018231576781966621512503733840835034403773440942042375033035155714393209104429891304487482433427831867542370556666460543457322620778980168000517109198167585741273664319902802634891025841868145737138519109076722299771371936671216570672734718674010570555831949122414610079917786979761286584945021149648077579940010689638913194295973605461598076762208256530705093591433908807194555128821293638871679038583013486973812054210480816451426488917471190835607089900211521543326841058356389815559239429829529982192848611840078156859584853256102184232972657165112719538853578266444431266875732950542412418093620712924102652074336769284472201777675344554779236839804485941137924425499445551880835229721781332972857476611269772925314572235403065964375548863819967552105806909442261077796458569645116752047626694547928802681658618453633560047942432938701747129085995350190755057555845181513805940196285685533643210126611713836170930610294905028887158992360026889304592816083773478084569388494190597949225117078628510052868972965673668657244220950706131722989807736714861882031611775148635427427644939410077010183334044399638095078290770006187396937152749053116532532576078320220263362291279498941695799904920329937498174855108189403403797221746144453135099527690911908547831941005137384626113130904861230947987742459049395956891529382936314695021175593953950879312584487901591291894529272629574080428759465657424390130890601425409925716931919131805551807636549905856125621089356034068350628256915242192562443348084992212783128935575302333605429224897166332845423000754508535530448086217399857796797007774173826725745981261190681910012593878519914747859874381574266927576679460854638074645393724950397911021215240456340009805168739710158524586632877265168091424410416382872228607530346846731841676604930663582494311831172529331293839085305095087091695267894895163085057330614610209632184101165410030381500196905097929696470383797424906772317706647402265621657915343067871112485148283504411503900555739176167871907553741558803347762202300484698427801645303456559695707330607816104058764145129819308438955271624864194700516114706226424776714928408488689631169639878331056890525013547885062732003552125253456671003090773257944955238044347626891745695152773260208123471734288621066875851409805910009411287487284648637723500189009448074141568039753384978670834959124473671055836844986528524208609166341427623945255310005826053983675449727634961230248130183985587195486817938595111026197043697027752183490206436199095911233605422949906705808212162732317481144489145368031605325249819860635184021184627526854291187599879717707279496470578221265000578599086666441745216096762590647366589244667640553099508380327360350653273948447679819207314017366850692204108499065638278392672271214929398958233940898117684340315254535772960915615217558318412760778030367173690459280579886844615830781975567835855668912157749442981541117596851888418070692531109111818844946610079190545396942880227630114620043373696988585474357265904508336404234285885800522071612189841400377669555252986517204324781228477627017329990408264631257623000320185312833326606694128969081826928784368909606226319187358395473631775644672818478720453544052770929892725105301468952233144557324601672175597383360176792834049957335332987557028792774561280294022088405597113692220326453991808778878453066823035053528316929654190479504201361490912872030072244374502322990312934469361686338010550159720332269621754681632569382440137238522848525611877809785210280576775742349537778816829940669572968579052775720938414619031432390858761540311806556707605447613786734858208421288434166458801369275441598598165687518273479599033538039599590463408199896881639149853771557450297279115528643735861942808541645481516151537167904927833859839631453820848131393722984678310918740743693332364361226920668623264981959662300774094393006150340022226635139589873348915315301219472905636696366658350015156157002087501559924880074840938750973371418236742111559734048590599992865146698322642017239348669272641399934932680402134464615542134693667247479887334940195362469447029035699080901828848959761482453866198410071637767690584023361571793827243677341945747299242088418553954672067139814434576608671681785707093584409227521072012618019769544019574382248010433722316382141430575736560912815871165004120681811914979001568403046181047845918397648241424353781177629665026679521702899306479670670559769749446622892257675158829222758450614681301400395870022860852683589242031779917079077981194392285602004824917535842981456323275690073356328675310508558438284459161318567573468910361819558004808467008514224261325275903108372766046070138465092403773506551225012307106138444927844053813213826279602302647140750650120008859856267146539305417069439349346912314231926564014314915178790400647347905314781376329011387062536645912821840440037512685466991726576071946433672556545060186421679639326412147370536585814110696833677581392951560655614424263066802565672411433375242163428514778415576745321537370358006461202511223780199350450791933066714136006208001379743182929144188841997384113353417512007733299749674794343558080074962181190056637651885103824934894453183687475011577332924276865534667117366270136496032679531313718364514853938582699686227544701706789020816668242864436761403284150868399240719285371936103155472840920974088294358175260174756761074991126916629499423793381949190995451807812226480284913674201460425693867719652338409385461105891463974824592971686837078437427297772392285892825599704059836424182378150302561803735456094207775797391865104697067152528568711864293184516040463048163714014942772606408920141760798767530366060883588159506391828831807925214162533584692036579573491567265795385791053981487050470183792846229561619172892686854823579231570735915906847604951475663013935607253244835108119900469333492324517328785145291369127029616659944825143078467045191514679411987728213972683033972810411658445387861010659165790915225638792957026013944850516579277732616487118864960161178871474860052703189147970768418550622560839480678921524719053797942932107934821916335719814200563731043986495083684874499407136422134686555055325592839034125662919231667943544087418024110903583025633695645326441397919043913093902836717533904068661677251752158533379021211264070799862514214718088306749427847015105039738156608159710187655962496502802432056063372334693582066385557617990453411880139819343081608462662801757057787470724662331235723835698231501705520263017055051676037184861562518637590471179331531239949269539875982687540147477695536228810679536387521679230450402452698946881927249730909813820243914167933528952412665312021866627872044398596835677618999135009913223300371031915899157860818929897304867614444635404044192362263333356292046747903403122848995445622518273892747872763481959899009523333408814591152037208055475634055442067194048797126810359493892002228502234586501118656038459168000228128018979498514078679526241721727184434418609266180918983733297700998068405329107961559381097060198896990416966370554259634274486260072149278845851690026072259577072223308338944939262161475561481472630178949991591230091061680872803514753138595981140385711176362251098588893480139932834400473969100496027675442405948115372293880576754955589068181932355924109307483189454272800315313537792201718991769282327356309463629961551170344211808763697195972717085454622160678496502932815924064724874204070466013561466893355741940397345432463284080983317345969844433513264142243836168980135322030368385272060501422915178096453074451391808105911307601054250482632417328711960519400312346630596584612255827755517683252618675048901752767066694919142191697536666561071115480658839229892967042338183120160720882576431974170881047609581563377667533897368116505197094892572135220029185542542143898517006857203336190575247216863813650704891212380044084198875672289273436594736358843882455078797153084336964884629990306844795589965945359424243928693625675391184240946420289982597979556730924093844700672992924103147735662497767030265134309804477958887933670540260437371689367588922516413416042219866179442197031002396327359259355631396678659132988944110983111602740824366086128901338496545209846602886701698108140115488680929952550186641482073019011975644712439860133727347888154928859717745294178421647432482219715870359143260442525618659104823298873907800415243537709947880835791662307265104648695248097868175615591462695289909228850802956791034103888167998669955826833411030113823591002189180045233270165330329247813134132421125763321783393702465801168052061811784036879275882014212703897740284494464082946221468371288433294862449404306472924266058720390820433572874967607953431962305762179791063795573032848805886616592371965461425915443046620346036280252749380088885842127851084842817592373209230680682021929324612702184633125498903994088457517694829580171508078339571679794997900302681668214830665997644825247390484009985819838067187644328709808928146356645134113528972897892699236974540711156609813384907133327086633941620597795137992770034654207608834586164382850939891636469730524076965073862188830277806731093537156763592186774957760385257978065155421977941904534996437861030075279545310756195034324573585850140012390860951097259193530968824656195654475727012913877692092398131011387737309710485789194413448602358638833625911663591356508714246436262028419351608033083870563552478358013043014145749935149002165705231880094815452825611333712032102831902697267633916808877687003025597015971927946021473848199562614927649505010597435695203352089820061416558808161790828935587281168663366260651093565245358862909204002176326909834558521918687565911665045962944515188225508389511877345564538307474941678229538101471028958123143174728518517811175776608992201175657808438341895636505701702234523315628319360471988638308277565023889045877418860855280365250470027326896873390966011920594569612268244765364530535717263693624250066754988132226693958554519777080283580641798240082251561519172548455260118450498006525287671658602878726130892722647780486448292132627142701320126997153198989929357396945110572987958542710687956301900763856845146303424741074385995728535392157569581111653697433105657518298696729475317704338035489984568057020065332241448500552868223179521424597472511505463635311514824524606408362582012029730885311666086358429711590898497691298990841111711137354932115707897222380358413371964355582514410471031263597987024734074742387060143527971063538431298731395109812206192554312933110993355778577722426802060529437338603935329183238754539579374844433367268371648924160362920563018807467811931246121566995623383803712242347310598893224938124635318120793722669881716592210327461164661455077181976404886745329207828616259569968604729965501364459187015071689043409059703038293807929981210983068630019919385313614514498795821465923928061868363437606735413157529699723482825600385595333608500752729035063868771515089974528104125532523386149577632669894566965228518681087837770131036620598870330981754831129613325610499857242553993908772744175555163750803073109522958883387458586739714211553162172553092542867909173515603475704343749713394180520369829920082226783317061941274846330300912676902094503268222923190123911793187088613508010352188637379134518160252091666950558178041359388228698598622110665435863354225613667899829461944449883612706758287631737980464351678575098747783996771832100782836253260463870652541452542866460581590956279880135002746259697104543096280239999387171984021308984478556590808918300345192108011388029998492247312012722392317684987925307607025696010636432781717556035590226949100993211734311806422698122270833530827187041902546385563061469292683728357661994486188677783724076646334813635922191122761478476897592330724403252594943757232868973037606534421873136236270253908645755853907063902154249910372275236724856506629078160091269593490667936762687305111253239076636560725514025819118888272725207192739387481630705714547782405613881853628276668245254579950601953331009351905389046174173843795068984896779778252583368805368863450301429656089819999026793943999723031092786463618978908631215860485257691993864928413096655499731722425311380805779072169680405106077221725231726498262620951827605464449076632037066306673587967297161135421202958508695596548720886474960584890218284187992643084007937960806263785964792829707637254585114453617736941630549363286733593210383282823924504228299372425618444619628069684985675163100464271306207734141828779055609011001363030333759298956354856553511042039182937397389731421319270365374568630714595157937287570164305928085250843902762626061066963288208704134253464039855788580923077492397464921854492122936898822909676059447816781339753566503990512515341891698351658494480045968542973013332561858417372579422553147599032094885946897568066116121160962612098915329867580749020385921699595118166054994667529695817961168651425960381170989137251836033049843695202322766111911884761480053096787822441359614000295707501223906220536038102559690393415796803235395465356089978686454032815978222819329096901880027652117278378188678722024117665765673855253486259743251030809334120127893952555970732454075124978662615725153710357385547079285489963770832885292694115884437674614419993842211091968827568222326806933053241128859081291374531433375294907242909411342184668735095571774191398484342672696575077903017077376284319647636410818666989943519185836357931987376326550846017964240421769189025452903187515760693121007100007182235366653572274992605738859060964162107863976837129281026103293282834566404611720065096958930844251190970688253995266209026944050684698102092019330103762938508370609070606259237544575483845294827499492296898748531170306305608562671890297256216063663699981618943116687554924942539895123545747854926448828596248700766380713482219168753060574822642919224734333304140648549130827297100146895903076635039561025384052178279487308867097721417260616212115483610284007661517984589993006550322142755433878961814112959867123814505311272398502833976642489381610774712862963385950231441271359906496747977874102089324359317045135720828141573114528150283103583694820509976870349069389577292488028707938275409636723200477378967524281832021454644187007138398448662217807094862312354963307810302756957069278473293455572091710546488227667632936680293811731576583485160934382384825468420126992699528499650902868074566393793743813378834575637622066862752872345339778425322056441452165932870578825713581887233386043117120249463845954159467103836943081230233477033652464805103027909763416571108788482757134235881195994064155436005020913001566863939390153683552158930743766251959639232654242502281377536646539974552404025948158622397183598491891842005432933550599964185109666269878934592896885853545781683980110020957124197214691565052050940530295923429503691355372015878908780084624220873806010209666808817097501735205258245970070937588455472220591783278024597452674860489213956903080243229255778376582507330300863757770846889628466753260002119259557735680935763975769461121129914814647940037542812298534833980284085325162082624192876749463649082680217114114551704291716862276271842733322126190435845554858051806119855644330257922658580761842762045070942358333087332316650122748886330111630123643970743532176416249003494956076985176582871094913060368681961548943541373134875798767126235250250885864410805435618349786639380778310395612986923069812103027384003541593245923724634182740136717628730969365634494313687830232357442152339338647359816702792977063130607333158620309838540536760358335415458749135132311692899011418823360322515856472148435937130470810253722244901148219290401226459648115895899685067252969538223177318038378617284386348893766610761001389050035219466758425864840777690675393068212817104835302815026997843725633767985089399546994902907603796702795153687673259029158802614154647516338825268414624791904324931452144584845502813177868258434738996896091931943951976497945364622544422814922579825733015726740801547562203450211396079218083236781161544173934062506480690485417810471824121329565151579544909186433920717047735378014082295632418067749616886263191415786239414531995881934057157261464595515831774972402410152762212090237823906471212862557160395577219363267183152168216882436161684864529126163972671032189035896546653444466273022386442322507632334157277532979282740273053437032810409266585011056849372422913536672883928897892106615033618711912363777153235406492404979417404523496138285303816330806454679514702256917904274982560375604658266131709071169346014500304100663757861179185312075228482494274286183536313373193413349903360109699654240494932838040249310165774419074826148740946334310656816778240602619925085311027581590114345390732404726518094300527355844307381121136329067560143171896760820711305864928089403469551669219977446813939184599208957349453532898684121352761689481109189625787510793784796167316716657365271205468518310606559673683564868101285509803315917995476865309111133997199701106543971227398182997300826215357248484167888770621573638092210006134434699275722607878201791665668773614128313742062515785240390014612114208278851577701194262210053519518015161985509633295227807406661352445584961953572094731224858125251182763188120943718252214854907347908444904311450052743636505678446383831416729691847564460435878037877737589806969832764039846617479267969952328937151665008897260417718629276855089563326480351211495911185449448520688062368642235880725637847368360034679299862612695347845912875617700975146042528371312214456012680251356575596879726696467550910408848967175830350053945322432829495686404985576431339223540077259311209051550393821706581501439525836920459718331273200636721867936132949121228706733334483722635477375955895070555610605511214874418571288421691001037390291695997996683318953472582081188769397477216159694572067381891557409672845787379640554249697918335104576313556936069431369393619310935404711354769778509110815049044588175568251334374998155662871029751186760575024910233586362851500202215475396120524876704856995703299238737684225850748065208388214394570977109242144617898965122388886914179579207089883957657038015093035468975592635361637727735143345310211204974621142632285590227052302259041644981186579130829242296162114621370879439537383774624507944375599792719442035481235601874340355615945953175031857686598133795002263819037084874291217009458989089845139791233860064561979798349146676062539899637448811909009318291766438256325693155611905481141327839812641103839804707581350691506167934335893836526825668539315892400277704289447238318846704687295258143179502793063032289197483575515386940574301987427799659303578701228482977424904174581938987397240229361167252831583566195446050840766259762153145069313147503766032836877526004172034863952228893754343813871797708718990893314610014908550845422014029173701841875261479443932839395594131465599637539522954148381420846401035789609602169970675466954714354893084486253340114268366970849521899864411565833544889066327841252456703602507646374314792175787442675306961557494361954708234341801007898299702916234005353183445537827087784319337445270452059796774656504473701471757782181198068884593383179172487427556816974283263036770394023204155931275904663434834283324880887539096774991833976363450057552832353203974210768960760533417718423988269677706064549518097603268140182545108827324324655638516661478892551097594041703150117373022238624014631893785826838479842329271647653585886681825608470679886013987448846032704260815587820223043302329183976842825348303684432170837084558956940586016051679751430805445099277072153520005249553211887620945547375919711510280925161520265381800217187130132852477676874327722514010638772735700468381801639489689435742861448763859976231287943870077978547006376572805846423215789603190889304580486101613969685263590197353328933825573038310829126408821788837600745328049028197817217254333323455790073254382194791393102553518546294914679822929092030978052712972231577716754033086638141692621118185702949959073927155790066363236624461768885980382860160863919949148689710340714035719486640621569251971691570638837937433204684200367239204080884329670534396264511719679848487808491244427562569947577470248782866544697988261854464600494744045180685449644445375323968811639016473885269905537569376542955825849081507359939884144935205625592317401123172960980712778860425894482136709737392454170538611284984628051011830732315245002027998159426364298157593584564198088679844631914489606702274375672670390453998368576281759743432396481482929727939132991653120163293258882822276067187529792769741354592455667474457216877691664642248058402962345523075013901281828217107114075646982520647559470923038968739013968301110552563421338620795108343023433265096025574891625877855314918578822315111296876452266283514727758854611151349911865508614027069557348083036745328890609940985825316302314140502257811759641647841582116276672287962263838274766901467951618138164683516871119973602919901707402722901999055947649229994897588033672169530501278470778581440845816849068617091964658171749919095193880758891693135600980107371293079007646474171772215148857089081232377037700261986480601538465867092579260054066434014674829353954701214053707859286416233596546328673699914363498717491819384816733970520813993459563321282746675115691401395246045017118803223250240123693036597845755901509336129867179919443865665414014344228865530195051187807740904896828685149312106964440576895309121093159103760938385736206484482561062170319227608979828202897030447530165106624394211512332558309945357942544793518681396337509126312277994238421905776562178184328692955130871986054812307670901954165165465914766530399554183239539086644549208291176992559336081520006059497182457801959171550855613045699353781874112676195428525555076049059528672953789360132048231641436402689473696284828810625676749768139648180841500240628787178317378813808667494990725883035308441119225581281230611600133672666436877455060398161105402830747840351965938246014119752317956260310114172453974095476861581580769142956695532986201529077858877900572414035444398106750023448828515476894885843844342290875907929476798987123723457257254889886079201884501786499631355324175032878831533591639574755704522441977630505115355068591098120309036082047973140683156430002080290148091703995277628541428733070701219287206492187572899935109560842619906294303609791128706627482883996602237153863326592948013337246293893092295545501539702727167276172042888593681148714886564706329573319106678400427481221133140012988337255718340502706331210584786385508507486671063974823976861031920232795358308681752150904051942544230585721301283768449923350542566971208048364624437945000699261990952301526550426472628070166980750953300872400578755164954982149283653645418383057229683916951222821589286129271920890084811594454319021631593586690940207086324417718190966744207940125921695918335041613423874344644667932569193081829873750231130138722676575022636256970591741178788248217853170273808115515979319787496321360409249215115886767982725750564373041607866752107054922594285865939527925596006377569030029196986175234664737524105229151755373371681226331591502631469268130862854840408646027835584474344376523512226610167283773229121706310186516479566679460307327950432648673560939070288744072829279725482770616831618142778936544788138163609171694873289881012210742840888700053330165302361960468187488886602709091224236217062112353277997572619947546052525959854404020736470278565867274828752569326628500223159145504093493873806892009512630624812932117973061382701083345076237010869735156612573564668313580607911887784824921000906751347220004927512192252460882774362700900574494945366058259721638892346175956311578811186815289164551132168591632213472062469883283072002531502839837823715632096065913946095891767862552148012591580266705374544939850528351269769412818870263464637416474864474864602129411715373240530702592931704108905438388174524058055149311735261196095655882323188843739299556342242766297310289872893258774694946925579837136886452724816202552681282351032358771714392423776208297975249806149965119392800036816582587909540050300745175379092971153741242954074248145663752281081772633251583640127923609772081782726103850172534722274452499576864703084840659470954180935683723442208566516034960294077116833372118597078482223350476076671466745159234001295262635932562951212026141363625608017544596202550721144714196556317718975666477451971046965877428716059472085780329283360720057036353811229731038261003536905923488830973739495614617572935549291335065901541472692399150239476167475657670147665310542424113391446677890973009813324545076802415028584036912741564079044206275692852090233769311145795882166200964078577951492921936087103429561065994452819715693112357716733534663437177919091265578757828013666229482270472436163480406297512652952101879864577169059702095161819612358374246713309108212782702659602342982979152652811866567879637325892130312197010266960878678391770750034768289576614356623895259830529338458815176299636447875520279843262396518720587348173582983567701268659553005439413794933518344613917343429301207615381034404072689629240795278972454781232230019566034394855577817522912188293085074674335695844780947970880993442416271293829821254619769646296516110331990842473821925221106759709237571958051192767995249307279773217204608385263731613136714627599572807152561230246038266709775012592093253543558805589634472253837412860236908589012212292844640248841591340525508002637053191341663519852245971132111045476519290972090470131304604094577951980704040424150304339155591911480891967968277825180199530276919852131772752012927793515510906699302027718792992844672568034413936445724198385558809803698962017292313159900823098553897919273570937027811987334930392951182796108184346785042269411317671187298216999127625657265079366131272610389768088814632710532333515662819265043275493596679546870530168100124876444062741253103919893178826623269557821572004232949038831719690405555538874952419780734801747120136780167252276110783491708438195964617853373709687958326580330271458051785650355537537065240773878019438913842123887441426253365789767208690227789339691813552357714658809894791509228145216325385328736542488191240791472943970232382233687223604685011730183043867102852311679653099463562758333318802136547178761085167763336692318344285286373550634697209545936975533677104500835742432816614249961874912705972455639557772984230229626229984293748534441005750285656272262275542863523437047624655355932066189156353050705896960262541964531276803166097544097392785509168842596995319468972308588355462743186393749412006454473723506642654820211813899481478557239647042072983703823899358721222030816216607158153451125580053808812939423015243189123306594318441948359697738864738324622969341287411581692316624059732934239785459339029343784092567939827755715305681795192275120053533617594926334409726897838275867854905313735058053910144565790322716817524635696349537995983911163781401605029060675416508149200058979991956315529432437703751379294815132645377983109304084051755396157265795843073583968228169082624410500542240274642237715140814303365486439026373427126854780974010595805426594771940806463674568946133627163391032959151896589851834216783625648626139375276861983422126476107153557129938746418894167416912274419163262944583881610855037018825811322530870887454795509097726532366254552473210777560011771695490741011931039120388210203323733588078574081305647515955976572755454293856238305456577056778998013495151746880158503292312099732206576637439981998263114255038686609678447430817156467011032592787068576614999609471818834221115335938556045771558914869026405126192032491884731887749522901681965881931959440513364816402816228006236896824328229155080516400699578716664359254389695939130705072314194867319720455137426707433843912623958064316628955177122766629566945610533671565855590541876372392829222473267309900863787220704674461270610806627631926550977041229203754798672486757323210275012719479663950898780801996173253377682167498970002031227686128447342621612397229080609604695993194332712947197557295325901320224037008808877344648554577573255289795686659826349665696566789243973635969843445647479077770934908297512101028813220399218741509407263781453243665711297450416304657597304449791358288041077226945531284485313059939170110444339424581520980785455526302275138307115908409945640861862266858985949581687009940577677210487203608524569529149647155179652211281981695556338868713426952784411523908318684434090292559417119962651586500392454181292221041902082812910416270989876317881479069452455583707309090643023988395009757083548161845978704319085147737351599456282653827574793874473856951170201459073980416285759233810321372349424988883559769238375860897632644456183460008779822790065375086730425837967374644034400055971229910381163918642121378581487405804008815894528023881669746104305679575093430715891804922673124366744459377830458419111949665907624235293876228604876755000827931387906391130533956373377916762712438987452435437448151099864024849747207252260628114047330928733152741639348832469880987718445711569244056941028338028458196159096757705272499060647799494927111759957528971579308919024591376727313545695720946397358990763061674468689822044669276622924055286530356111122786018755234564734307236786048972253742959096921092008901551069232832095202897697410279029502881658696457243340240140291465906442929812297593392102924404383694450327280269359808934603190156519544336691386053569177794461503665695782179621914669932971448394841303027128935981061150406260250904506983656273928905602005815554950243848242559128044788346195311655624036769509676932215150008980513580148737544585028483985799143591271021136867721473696180514398139984662890842787002549301611952251046371996012276568823663324020213633755390843956476311582111151963446175388692157750675068341421660384268063803191111115337903948402718026900144172184999720749359016295438143660448409655554906768474169953088830481039576995877650631994663658955160039996306774045984830882325266297149661516091831318600148587690081701663338495240726866595669704178622886097417476687259777479362817471231208901085315960565944353179240538816674823798267602854100260268754392547344222654666340095087214794737848993824937389805634171247879905451897536011549070049023472559755244341222644433669411694709280049552060640587768646683541073067368308130492562185889326317153727868785000785453669870157319397290423557456561948398939571951632911409362887991747403548907501653802865091919733048081931871841815470763944774769369577793965772580911320904813187402431768264959187439213350089362510931411675856098136956476389661043272121381026518351970895778775481005463712216102472896404160656600142382896924793594266365014572781957179760624823130613632150442509986317136874542427611977585278555268876768996369571481795352548339120451196378060860805073157889269756835323388618978196749321574829615882574594976618022174945947494017654771928346220142371476758544895002781826637668632186593127353168677615334794827100861415675700713758568286168499387634876491777356071660414763825355117802408498067741363613299556559987199309646257898918367934208538632019892237207687731386010755853251548373847955999714478310936017834277158928162603744189640015325361782388803210055562006942275041328599652719602441131173544948642430638395628137203874384977972451139070404083253366233097981473478207255271919240959699709795276790384493398955589522602392736527062208025753904089867445813338984181805342731846904635118456181276328328331033783949293794261534228964663923251760450836159220703403748156328871018780071754324796792728267903014754758449653028100730149427537943973258291213267850168686465834342037379569046344142518399107389886905841979211913291311148938919961572171606724465741120288610854371744983700537240175997604225714496328608144682102813644914840160599996090229397049030302944449798021999844921543645653266664501710222653995046522467812017470304059289548267761262658013506574596340563516477010608285396536446358834771710984203213336390505292632386486176352510357742802712082394986161288511238187310990739612521236627455622019983319805020160679887609139747101196273065265094061411251677177215269345862704837026080161407324881956103945514644038372331443880370666104527228299767638068017051809870122108873196469247462162622569318866583879755110139334060074911900611063836720686638135460587879976513421298706131851464859061029512070949475010512850243612984248294546134710962086120514058637302156589969561496669874647936580617857209907506238775615870611918185153765555571099671381891993925147029857817399072497032288802536357805373329023940921293343761251816691443988955786101162546189336032836816755682531198164237981506469475283603522615613081737556558797075071644722724857943434203198028808565149645786513363587332831731536535640844644033847242308408592178472064852358769098678958065010325043769805845397360731562906682038617857869210437016013616043839840333977894496731801644805000683835513399489402432291690138086614217712765580063765410321600714967492052871349339422703001914780794164849083137334845940556152394154241600648081447563948529552662556489776384282088201954398462075800078547666130672135900510758860657491808364654361132317271255917998461843922652759092832284173406189075109057067756617033422934858118230227310269583895235215444791504376332607453685608267460079267594156282006779967424045750283079240553765802346758204913106616106169307623989268210016195616801234551470499142670635224428119704455468582181579378286216195706651849136379129415751322540711265050838825267936680853957307261344787494156551027566178236240245094768150354243325721006740895689950541772708560949059780020793903644769566251285972062914637966068919208620864475748406277622729164162423583037939777474564727200493933299791783821845081274393753006428309356532032829341464399152236390071940355498421845605413851811959188921456111896460360066580995357172087718257207256622767750919375250085709331678588928917355799173466505685553743006001688117519768029747812354843318644544849637777953767990601838290885951837332319276114927618708678569330852806970699896194512063347658806324281921497012209265342817750917525956383085759503554201776236265672230292959643052115511211948854575608238367659945139081959610810979369980903696129508903889636399335419412462010266277962498399352410350853362000363438896691156821606686579289728840342294715768449406221845775814259341268989738634659397884542571283071039842498075594789411966083730295920269386170658384430629285839891016815372175039135561318758861050536377582132543195166141308760054261192784394408918492110930610674348697027459824097384289791368271475696201219337642916487977357177969080882521347996885383734358314450003162925231547925209329691209158962028967276587692647983830296347566765763071658693654502852673355401501439129010518334072799213535038058992246810074974630387399453022373617494359056377363128275803019736946881581180855570927775593291065851169157147789158764170424586258185895142842352440693376187323468428909178475724125214336922550241419457968940452379842969770987313485918556317732379355864799717632572101932680964669225910073856775727121481079725224712260996268019685198627038576162188073037299091373381336273037108985155551144209534564645441305986740517468138826306080187284644631004453270470063509696910027680167638450961828247220524878648306183051545783344716509737588003320491176790688388037699835499657833145549532833090472782775106971849903384359704131005067138161466436959573353538410366823155506096083829910598309432428542800630876426901358011378507193878789001079099238827094905585057980920576645106178978285472593808317479010091158877231766117870305695160144714180804038795831277621248152781192073094437231898598639327401790347810954697509604460279843179764334468809546089281175655974158147244473167076382646685718233354686446583189306062068912143636255799780035471258339251531999483082198237982483088621598927904546778046351125101650097202316421084465533706749686800374284982074221642257215114350358036946444678924216164344060681765592918003782253322195698895932013455461051573041049710166565347974223335935156553186100245338655345086722593919943801395305655835501332299631463468419212687497241270402730946286929520802447524649051228681417248212163916697896844935635035478872637051500334800642702398175388063239407373982097808571908379465539484348501141780275886813927215604516973024128238899949594371799425647139731103745893494202097181539257223640896316837206242938175167501463696804675280289019334855736784263211076830724042268720824571621801791539897560687868840972780795722535335235193877572421257641452031624276867291992024163598528039312278754786923217387818956286520110885579099871114578510578045838369551524361468797765539909415359905548284531457891496266885404458911145073899911034251945209442029925310437710786648504588689865200133805745213719090495002316736932772557809684724941170878749919924289189751030112432416109887881894269258766931612712892272096248063656069976635344752894169440846866049638840532450945431300262802748782001186118323723724985386865835676071925261702042935677949780091733440076796986558170590588025061216151372707348593062506082241012683335888195862673579677383535846634227845781391857473750454933228500402048099710978498185988688040862023289952925614599403861355922264174423566993733580144806590840843417196866297969606697525165908243781881569621624422288080156055612063850641345088896545622322553485406265953453315717333397584904166978519397158467368710864218449929054880268881914124849269268680356221305350894705725718409893161481034114985520224722968694450767884143444509046382912736504951549090512451679148046063415775884879849971565827653904836592236013384122439493902086779731948132314457288797800221319170430179929376843550717937946216130027900248578621404338527400720047662433046087314996252696557172262944853330103246494950982100236341311027193878558443199428373451447423932448007387491489877883868277274668637481161367033841929872679639343959823308827548156822762005753151273546944619975886196522351527119579976153553743681724637573780958265425430455158793240092718360052818769186764073402164774160958773581924731513086635629892762621121774759385305564920068854248317482583134360931037865942435668235353530447281956986587702448138424127784283666031107785388142620633069960247065338036902348754746008807526848238029638462659886222983838938524635061182333523167333639532869295066115992444213725313207539259933516652948109800658710072446891845883797173454164966536494562956824637962668520086341156101242716090553438355803618210904418382446288260540325566345119287545475483422627930994561183794768467609717182046030823250240007872456698241116700002604914777044177843597465416188409071658647115610895806000941415696037070875544409344687814348399533091859018060640392942927827577460126955092573470589268258466993426483027957243881643765977729628746093605517832112755436646944920161226103030796068461216533161779122930435601004418217223090783965210209250775128175716711439594687221556888559806140309960167565400870072424127542341799663509558244075172829501405288277778925404392941373241487441686524608816916294221558989466141009304228131979546198137218971941052723635808658385095445687107036924756542552423934797816793285311095405096196662386683749988505309985250548567307127781150568074367350579648095963154165844390695649188695419345532922921841046210440597703902078299488462148769014252098062982685081515619748704643080176985834818648302789923988867729357285856685162883456710356898357317765288349125216860137776933641005957571058148760257624518645951788613214097257860379946616425613736856926772745009535589374305441214202555364008327584507241212272181779044510096836725550184800117185099549746630686006963724612021605076483026146047448343825545394990251983484269590594340197485345285549027722648731000491607665049821266498837717958463901013994632188841129844057709823536641240534990910283275467654985087850055220499567392197324146916999433027884206177935205006325187212882735192956495910238641659064846966743487374432954785941683668484623947818752007242475482088276705880880022105770370719161724225554135781940897498437286550187052786304940272464706154608253537971952683207761308766930816258534723145379702752826096801337374758824837487309775696003564467378441617727460019003814087362471233197524267171522049289413766822061456580359051521364530328194811823820849725919420534103823598954163039139761588461883594951459430213414548848304339567369612844641970761696744394366560930047729285722615627201103753181725778183930984845533611214648548775634585055833943602345299672790529745611057923547818446681137730410028054098254005978910999921891956771874739521218690812468557951750838607911828924782747330944416083315769103794090689272769570363671416322679268393462955484405900483283045339088499609347075483540401794232160510834741428582554563271041698410368661288258924027824798967430372703970919746808887438325984366332376322919955851353409502604655639093291700520734581764862010165474931103603058961994800706094414649941920964284789196234578316506346359974520128512067165752807258026761182819695515249087839225050179975347326251748712161604840005628172499901182529102140391642124950618764442136181125883128810010145976984432383208847795898251920318940679709683994596751822421567582650320758118662903103866606788177722337367099658872950249593800963693121811613125570140756436369319502847148472660786759979669709248984899754376899900803949818141996712475827293461332108162649738506628209224655498335852260949752681864320883756133789526843441141048974356467987802935768113250722356159722223992474534242539217999685468993687986229233488902705082912731867125811797466906785499031541428046167231647687639246551743894161458278559180476175416229376867988290479396631263902589443852016102731883631041906009236070270125629983794513084727789193830811572614717674735402131926968353050711804951745293086701091868396495702355551251267836623674633952427468956102957527165747644630612986338642945768606698005381619134084402098935285843301528965342931304143122090206930878998252130341940461809903486861681932079467482125174530913021142966777422572025909797256287666557446822782512507394870838885731449520590083992992926277805982428337995486793572586498435324498735001902217135221692530880742975518838292556817899668549313499061942862673231646170927890946167756200271449141825299186076710404812501216694526945615171228448862841224566194080983427508218669368957537891584614418016027419986594085408635549644315257041164749502463122362805612227064074594874278879343946510786761364811517120967281127741238539732556778519038618168681062786999105898519523804197888324749285060020654359899684697713414711240387958640970115587701830755838464519895522067810043959494590473737971944913266863555420482057729524980485749912097554492573332411939647559471816636850160455986957143433344477483867206812249742993746026211045812025502941411301781144275772137107245016067172043658296409042521852159008204239445316416518214212162617132547221683467555725370351661190801763941829107980801534668788609811304245442164535154701588283858521499134616000767092528200797020008736746043730439851693125510190354059758678677818698147050403732991079743903809688180762637667413225888523459004536342500303835156629508431004963994373363687297329960803697416678201806892033144263979593950169005014296660247921142144092500507614199893312546768300097280817963170318377386246341598130641970620437109577390945092162059231206811404899225326486136759000696431094629872289517900627664244197112376758557832633027275016120962442721315389129173022677726331651943042665969878095370075196517845667275827548129392796340273071148826215713422848943658843097078840095139032206350508758749742424062656128031698642467378958107259798613374111908878196323079365429821425879661523463750781873514472342999742105507660071425482790575815247730348732641196488713994741206272411835975443524446837102231338100795590119691275823702160771885053023672083372662431415196414438134284875886289379965564354965610510889424710647238343984055342219655909652197728860183458307673913216762825441504967465885403889090157408488688118158678515112353282971264634131633229635521822815117488127188447608483552630557199648465442197863001283589690120966454880128870619928741877636979710194337734340898866338436405418697849318618417422689102283701060008901129368768680817591082677051774375155984856106583920407296356249169047535788248765818584890423049170976262189129587361263167618329594457340803183212209448648097839361227956452846122685827097209532442436888176388465921073308683917676299951163448440630324653604344737931741958508577986072989307082273511547636160579493763055560629562607061891675240345321541823221369212911469900942479705442436649795733307626904198961479598658643404160728452553880106640888578402201851796809610754784806127510135449082130670376761853394663359762233470466936200588616737187946883417741917837326570924190690341045386226296094866609121548037474825099640073653652826613988961841712437068114175695943812667636805271286353560648655573473916998261383594158751274785126394162323664882579336073829750657200231993271935758675733070593399023435439184304371606702647903928053301170789656990966680380975319897141132531902592427903701663846945090758847947286246485950196432946868746716040044378829874196065979971058228302520545024695892046033840446514887191655240015666571268114563727924654201924209318589907169664597280426340649806614337367240288132334394845239118124622013441004538403395667004048115904322701219347872930474349251079525636269844737150514892515315953119917386292567850155766358897428100400666403204599750680120073461628690196070266659133053479233865823583388734212004545375040462304617519828139128533318096582349692687714307608202535309793356257672040592784192449421800468428365171725680239444042931790969787534142875537929575042171637557657648054407371610457255731140253359326929070243492283034474946532328334274882321322131858810421041068638689892243144852276414688399101726415881658839684583031725277252689012721988045233273847237837657092585540182386206799742254520686795813131198877676555175378682446874294758864445980127970487195794724920013287224125066929873097507929888970820420617848844354553570218980092575865686332803586077783145558922680072294409763964092294167735397854526685552197102328885499027671659255952904260316031593665626554410275538732041120496304274691974582556422373545001731651141609426330096352600361131021088241721959481186867187998538901217028190234303505690730621413172580601972060870821583779538801895247694752007589795886572219046372486207540237717869175798689271795118107878216216100697393932830629960627739687575897041760172856047229215906555368090363976511036150592560912526637523271882280771626303124309360551642860175094556465520759015753574067398127115145407031978701274693218957096223392984865777269833181978439296484424664024365746866329141551740101290114900307629396238033552213203503521509148177165154464327851930493957952128166562872164407269488378139484329246815372959892803719252410599471504317720895179049362643654191004154036802782357143874791335653851285980227330400648619920490251610651559647344904477490133430542967545469374407057589493769331242757839643463008105849176469369310809318500651177697004423815786567212533663040770519778420405825378802573332833466304090901814277188410116881548845968303254395864328948048202898107170500554843533985895046041052713301156437873395815982625505855252416116276156980981121366588614451051204045958627658339671753911768144842230556347231308235216578028677619714591563605863512202967834506788324403577568259596085455891712894872021597774754007222533248437793469371706348457201484173905611832894586207976052838085193795923663570090226223737477559756475703310873246325941214815764284436256117338883829717570408838529227385063780319919781742997619734466832327292491601825362398485910971627408760555349513821463803282630278246070463817907580267507841036172512819040522298979186121665175364155613774189014527800896260222669463922790114436634380336224123515218508824001116068571018148367171446385174942830498219334787852329852314385247656327553318859858119065332386167325888009955268938780037413495747261767602241632134172274134799087112268674311290408910985171620088100375688622739454777107050627600199137663621458359504633496065997500164653470997122584617921195479278511090502858716647596107736269458044167682053472897419547194346101783491746624996913393300978544422358519757750724226716254292840646126743485278429392431858720137541781969705753523745193737404923060815228223166361388908892883777654249911732246426688925585073236050740514257689343005599823999246899904282101093908779691644598786464216102935990732952692307064350823662849398765748315940358757424395744012841121271649413725880411299135563989564327819698041293563323352643480742215880108935597854242050698500100949340151690234922357510585822914602201388073687316718178152048818826089813357557910897392435389264575545755316360247263494064825089908660120156066126379832065453701705761069729405095083451635862506156703936626965524406598311770065771607952334966317027663385129263719233536610267300916006198304530021603342657763778579672111676647665024903152113995301807097278528474704130180309470484767477748274819674108102443139257038537977756239043353178515452612497836747180032031632801854507796507392424913960660920695883671412881854943478098837742550141152087397056871247860069602214762284484561863527444419610883699187975887512801349156436514331679776472595893024113031994785266412871720802032355989139011775856068412143641209235444648046623719288343704914601761577970525605901318670883798456344970826882023922525862986258943547581766823153730314221233612155433613556768514539062237657945281196574924184398484613112587716205599421149034529106162910814165657657417328630102639298093786431471471948866762453405009816500156929923999141557927391272042260252166666133135807891339420300272427907329514215520223209472133520940599554156867973211203425978456627336924149436833598169512677056876440946348767479119638910970610804090640549602247778845187977284518345005359295652021987775703453957174471341188751289452264398015922206905881721273764388983285079116478085670141423176258021768177704259724349280127884587559239512612948085478597734351254497359264142062067341786562835937446330059356137032394296246261303309673601029541683684295444371529580313806246934562910652423930266405028906218555711962006109574564445192306672836582268532948436014388957720384314877629081377972916430556504132737986311775260951527928865041859458141211893765817961308259715826440684859861979138577653888959166060692267756310594288448669163452158221520794223783292877910816541054072745331681725377064169494648406039531962535935522142085888238611126969843644085275532533430735488206145022281836767694753875915807041815512394593717406216487203649642336313209293523527645209438462647009817187987981205532433025187034414522203687539038487604124304926690524803462374086312215673955340023237468337328481920502384874014332405542250405574535738296962583529797926065348961660098617595904043194189695056122022816627718156495332609664646391276513221685282388406962205572823179864565025049883427443237512102528954827165432604981308464804175663295175778860714978789418547753665609859825874709880548925906858052436750160325506597313953118361420951294283313986674935518997049416783307639023099564459957691264950540130171970142613904006031313770433499605052853761256000129663384472316545796304449893984111468237163114450492962783566143279528964392181483622099388593011829563480157767064364944702181755515693656194083914649452538138073838469984883653321825567777373000679952537011424890403639667544448272076523681010168108996244615279650550856011589973419993278046827793147829817869009712094500144620884376432351193271949101448159751583117897117324389532757798259866986400796528933493415901240707636021959413805244703238076156192037316666852409322037423463586832367835928350056938009600689914198049947293838513422770979700883287403049857062429989459334672925365331910693195015451723168717768852990994292540049573768875741790162354644199603243675246931079742797211006034662592619519673241574995906456855415590990449365929429319196611536831011210391030983989867646971350776022736792556212920326152250079304960579923869455243961781481341211688745374351621624196982766618078537134849145080662044153403205955214181206670666172747836433511874730787566810826463223132484725537927432690002802890793823146387662291251172001447615743360082134388334852581679994660176142018225239617896245629293135418368975638686317785208589313778099344445285546441915888957120720810080784101406549000537096774896797899759302217182681601816769487380555789570120924840765583668484608963856094195535764904894657415303744251774228603578430283737250890651434701290428244557041639351741291418411259153147734182659275183699622566283555730982225371601900127375726935524153248160916244719184887860184551656302128083027777734076538544429341695728507306771004270757949401877062268846085981039709919374493310747680596677713752473385181424399050416958053890417411177094989705417881643722734654045232455673913147329145422218238588067544878694565748113844120364423040224505483361160180572881916258763314387815083361812204750718813893373059140024798780690506272028324103325717587511214996743715396414911252423629589412676242497620286431766463242557582227756357694138429901939932919292721535934780352217697966054135989534083776114763656117816875571792256431092360401203881486527889289370560293238030428973725119052146812576525369335067528800012054562176404169408971270161426131577380664534415816358537156512862186364749303903343536290007860648958600494079162298008024141808187808339197882287979732650706893029455404798426252878845673628329067581520058454582947364208388735626895365297449891338807945552333770855915513409828351888013708345132479570063712731143981218717683665061868422960857070065578233488963081707673947087284480425468238685231029733372165307033773451023954869365426637265327457375073745580335048979710576792949360653329684085504362607631945392229991120945892636307470950680083088896440297991499447407345025516694294311062513025940564052755884122437617591604950916009065122578280699183990263548411384035947170189414391784450998476908748505041829375732682420771584238147446891048775820572205671719408564423159356629312847227369706242284173276671910883416803466201720470214420565117743880598043579313831194313906919781472000473103874314251888258964653081592620891923092907300174720873731854051927836214210141566278065085715461119636192654675386523300662904657573069703820773605628710941415757082575837130615227812037893006169100035740165043791767807782654898930648902099788048506087352049440085918669974085212490888436889710117422396516002845215598505292991602159948467187084467205170830425104233905330530952037808302013601609291203182163332041188980703488864074635463803199760039725838539483556207617055626432672739779007570884421775596450906126266959062914235105516064535884485158296948787620777660657124851287159471820247285669163495808469409362011066242275501699498183656444574513238871134185027271518352623788671271682654054030707782858600952989288050405377296142526346288205385148795514280965565979062326654455266235344696156930962254189869330636925140657028374020195991864508981825646205677352595132274796456617596983485736152733507210657168436762228789869655273697375199550783352658904418979637103175002451024231311554042473151801508800515289154853792384705809272303196439811288885854699582618278819922641223456830300962172257701917206412716897065076934239777991675724005165211490424206860713686334054510360316451215169138236811792233424654854050324722876139792719649213934800972096429826328148796076890984410774494626447283705969315331874151436995521711146405656806173521928042459265676179128375250929743992084966628666300859246358750704504373637337227848419680162865489206314546486425102712580657288254758925498009558782417415248521918907281350200257913804315400374576327612381566578433177417586433587931661595818200421892617939567396550786509556777691810147275850788921877127353922611137926140260155520462554218477764297437691813380548789984426288667808386578393899360067184612479581993596130618924992275074300167935759539764484015327137754703336524705917532313620844182098731654768477929730502151917336598899943671399777660227027541169702103842304330265890369872690123143179598816802552190479779355483666095735667414624274305450983792033948307633846085645130928797143238616734959045602254287882568492225262320307573578374703407171735079719793627210883933401078830476199199415698548305277703224655953648048648505012414212383180841114242824857995951565882144224680077644498897208826705213011381621023783241587823398001197822579620258518318255603697474026022587450958676751476787599297736486646671646620263344804716532315702961141167458519639943673955956229421096829863300677285802750484181841396894713908913307195287080263073980396623630146597541266857697984802751871825805602731232250733619572887152345503778967712376463325430754246681720005172276990044921895975814244507153074028220956467746621774557609050190394165199232656051983172167414066641362798959356921247081293498131076817991566566141933268080620866009668164054792808738543974443871742816722116570313095059342406155591877298394858184629095732651809664268441266106099412918902524017438398252438985825690169022449368972028549191173872166528214149843602603867491462865277754937080798279037849572819958726773166988302016267306543400151828388948366035124323121129038482415939038472320228086594687346346989437774772530348801553131279174392165512574647744562957091767591173555656058394957727950107311533152019867345023607477184668814092415276593391139109765247783288987411964671905002910559719141917352499935338452425939210269457398280049810161493679164693252622130985254178103039706553455924211274423732756848482648188569431460946332994407747776050830454725706214663544974892727182368765964409335480353057147714821606395643341430461865173086257244015642661008025850937419636688790606847565441274621284227837515510286115477310652054090169141582740728352780888590149338814848978298867141252267250237081684393870715782292249663824429872788552026859271582570567726319417034060891307595328273453062477960450890597171101199577388664168671817380747455595801951607554465356658617511508366680439433066524580435834659208732077434573641163588499567528593478566054636476257716168715091939559043318575408883839351800145220840521464841703310574655547417872242807057294653968634205375893682297985503324152163977979756147780034795285774045169518849464462138018715387269305019092158415211743285382001285089887085512031379184656749219743568818420181246733937949242351325777719704821696570718260150054818470801812626900068170206436003497396315123282918641007126067186665811085700329608307546596975299333247182199711893526201382999069861514416566743371076281290947945846340933805204221185010980582608507462541342623856626716581168228836361645732806754200407546903091794053228981670633634322742212598877108704422267981699695918061008210670232287251707197138044338566776981183678160235940902285420673256905949280273927273777650611248745492197063453715747064451379063901446797732952896048925394541392848379182054329741711317037321691658250753547939242714880531434360852700296559465695276653291634354561802097452607165026203164753154117387590711914345004028183663284106703621874538339874203823758316605442103010079995404168585157624133348117311163461863945268494081114059701305301657910445749201431606519159673511121994852863707684560103758926840762460464389140814050310440082480466682712360807398891146803946402037052618977729833966349055162502038555104634121353347189126724228201637337833674739955497361397961031279708073534358609043852415359797343738654606498845109862656296615634129297844847921846778936704926893489013687519713894360657235101904348880287995883090017207662683930063178717947870542949069850588603187334145216884402269851308099373871390938737155255311073200315712143098785194492308963483169491565008127286477757038244898674705531988570240941556885285257937291610058741583840491877326909908505666941409401042774550451872441762325084733265443639764075397281310959237839251040280904036994015789597733116558869823839177637112789092159595170762153967771630932424780597094154611115190601005483548055435289667921111392672794561451813184217693307367606890584179067546899997999522296883767952752626348492588368034052560456595204538103413223408174291638915252766834259259683760637798331068745202705541537561524727447810811781996678410525674356347997283193427074221431279318202561803406365931950045556863669103386858075860001253172730364671180529210245998298126888933195210254468066909514935638225643132256029279455919911325214365834426325453241806532763421215629494743056466883260178474885424439254321931056755817408385237203915215314800675553372121685321107006284997618476087605887727178877300444430680776977725137511016370835875835513918983545082654212731097232571078091585172661525809496433115538770351867342699469833608749953537002501619231714174720032743697493234307681264257902945247837318474939808341310972083653191789905626946264166865925425269170824410549899352748043550622085632536348368161713845739875506715131746730193096100272943545480285068843912857761063804458190974336691822924953291479489804269007043413152048450683881557929848826465858577409314498693700994912197710350071578638835121877462494171560551227428141522179169706423930432693533221148216608151982981189319996012261503631267065311811987994282151517946266284338755741635942222177265601307499518472981716007128599104475613003175281875092882488255435664946162627569096570153313351070298896489884794166230797141514117475168478598152685103065085419536758407899624961303939656328162750007762508571299779457923092714194830622783915546810587570848769751844720543807294130608295549074460947817538939625770865862776972524104185940762561334836840962321257505620274697402260845598035469618649282850757588114079964684977111094776874462016117436731196453903902579851789573721005192114726246381197372593153358378046745313360108691556440722688822426802420500193448129886347775168195147877688302762243238473873194823430473041213926649034819727882457419251336507972169365823459646610742979945406494842413488790062413312283674343525096494185570991583994135273228469539199812065818726682191131804342008304473108897684005100208623242579146433419559983206023239096010748340382589008167804370421233913917531715128514624756838901995283331200510005857157035812510927738299692290819928721765544424114581278145011222423871384247102058718965443444759529840153725336745446318724474418259928014117944488574339888064558051738727441384916121207878438332329825615742831307666928350412803284148821423032727657555365993184142789218446006780019492011040488300090486727377048299030358392201735853544810446226301662486185202836056644539480768098407132429627772666908269860826625704614316651740655882657929075826679869086267281188554775883517564814130674295155805908785612878806167097657169476522144658315898159329072988929074351569841621358899677656124522057558719093882483644409440449007972213019056936998663059796773206173726375397552617837081593375090695355565888527516383733623069908971329969009120063165855349168195892312089076025923650104681763789089159145503260419648543111198600925666872748313201196752242508908405647669298260889221788406488870165803708658835944441328345728398805614589507694720891869872970423488759080324927199213601623923946357444371688982100750595580764477215720621365367575217588768829612599388968419956719259515067081237143497744979410952408323745437089105085327687690312537020498052422278992066630685741653669667900266163973842661481467633263519438966740641419994903899954104604580315617884040491213783733951483316319827933779002075858732588161374618930966804467484868473522443231170990399979456459147246682023162164716555054858283340320351284952956818382964170727998649728624484642449029730121477612628120894665563551915514254514456485821585260262235920146483356171406573070109168692608634098212721594580549706902705165406233204900235644085101339487770064011150957293732436594326642671533214363017218244544628569919104092577012226675567109691953356293859854555930677881659962908756015428516590636672190997294385569138186982752820951432674658636325584220544310265523513891494367899486590052583049709167728190624369978057192287912728107362438228222898040474770575695552835936024756438819900314170226334709695354869497943443086346508042372885167497681946249094612884576494581671768439887623975814603020143843471333172795352784576333181902012350931087105153317678030790614734145639188082421314487562842028225305245956896384812355044780171981004056980556430145545694042617395353825009596580833041921672664942074833490617605690926712641876475041649617449674386183725938817467076756720832934237316312802728054395299144131358186109769631124737316480235469244376701145419254557583664033509420864926685206105907753869099840938609643086600984115350587999702184577665178753868091719722985388852854468299891218362654905357000927842690447838641384970188444244438069177855865734705298917884018422325567891028951284663503692979229153157184944482266717034483183139704141736007936357186514787200962191585780337657057903526697186028718298048434119977005663308738457418714467871546584683174467587266403083684187451116536604768166626709102048791906155120206768562719626103656391319060232272334158334523210256265389478888799167213052785266412183940970375161537019861342109169142436666792400668542418965094025598327361683978706420896062358554903636096509977656565280626374797260516522631241196763342183902427589526068523297406330621905500181748822447766043743650944370468700899417660243115502049038445103568621433903620510752536006395325096717712202691768825828146671568406219517240787441160913728797195791594746860242905372384779253183526724093143577431879601723425845521847903458854987973792026399414385871092485950538245377817942907284854714109472975035076892378995143300272322572362097332865819638414673756678959620542612201295156379638096665337019117036467297235505964872424751515156651227925111973373549624143353619073983210678109304845277221583994417246572164023366016496148120845570376407882431273235954687914320462749953327314245132209269047762910757533949588522505963858900193396849342025422465464881837265385447126003547891987156979166859399913351970208865759904941920109592143092483987296111190394881875459656912968217600043423621121986372514412951297962602426047189880762235409662558896025205686137618380215882447539158389608624580156802987718678453711988803460626995589193734350680275895155729212418725084563203149438602751907894869165196915851221853352364393705428808334647952507794834218363000417763531713324689455604125907157623918490002757875969945608244410797276704499391504920391806415176837876320312804442088620634006595152143584354772080625038218010402316723141946983941204874303883023844596372937803692753793364833179467991002444883780647467124539231633113876180054497154732664725305111323109101541558860339263247307072793203210773309736570138914291779475038963924580534313913413435696336859754453058184538542218470519128710804516172578408633011522740390528471130324295253586729401609053973552165329558359270744275779999240549890660030875636160992334742897289512443890300775115402099983201793915519033659086396979816583468088281149871241896098862789192453832775680380083519201518410492604800376736576508265340843829790599465211687303491935482044509290184766951390044519053094678032291911422876786888696828041102401520399099939994471842437986166622308985194159916962601337073067186227123166551853961682120860218533016981293140009901964296767986569268250066337111717585712779798076107823567111524365964855714776016877618399582489113418315856202721014883163567162237549068399693829135970964133649333228398647071724191348351995512874389206888635887089480161062876550707250843078674701798937267704709278690627985214109864972188298746219033609458937856281268469606564912006915476755807435415520165976415502041355738276177917723467057890611017366856150607488431355357571794572878209457859927566385198644237056965220959983535570853005749396390832934743468236191538665341612745534072431019382194106039809630592803377427005654119304426197089581889288020044864114358264384129680674274469278766971949197585193184423794278040209986517245407252685375415902886931862395309638789121198642993634857469306880083028336716287165517924040568512945665389083612108744648943089992928335689279694852775643725368912455339995843304388432541208714813472685517081393735826042597153378298566430880454931666556320187248328683288589519444740587395733511480439542584612424484237931475189845529684453061897926630116136206807211498924945376767597935559776323063766490679133850960018344854282299389493700790520359511298383769135568359232173140374903368475252474767065938817376225069232649267691375575567710631133500803916993212960418346299144526279422411552975249063746546557321313681600306179624104822946700545534517918721152563809071068837072109084811408224094992569519883229895551797731527668578330172665248895831047902290502517793041480185008324299604859102538423695722262327974506509876002546163899117225112682538916489370989285720576606360350303080284478823893068692378326694852812048950601210627668777175470832320808073248424615544654846735423736117227973004009168837931302362042974518671128748920713166058392661322535964678431607949243130325522748644254774086223423277808781605166116699194001022146273975247539139897687402560285215583185006097536761037944374043551414415331051691061180212736330732939967287416852695587804793093143828103477446615620392420772120729294485868169488259905837082007900506246249240188674490192545519405452026671481314718389475960957623503365038338285493508089467582778738601537974003281364605954766566439626850233841812863792769003770947610204521427786287180482526884480960894975371096135455184595825733509085814955942901299573864738428484106718662113468999968605847103567316002902441354096510790817025542607936442370289661448428653161071135624401475478612814046836833992935218641182389919403911802641281961221652148184192401901222102994736517629243186451029756571048937459991475539148827383655391534320981668939735687735417099353842337988236943777209115126373301444221559500895995215069894419107330940344109299587811760823995005424872924575363340369586159566940469409046115214822381182548050755923771391009887257257345589561374531457923374550695075648112523636886158737970148516093918051047111490215083075942800483490515926435765076329521011685246248845566348246187816217109611669996923110114044027552279277660407536885933466221117958357048164010936770267666487883580357644638311353012075269950252700298175597750623922338447721363423079535131951435784285712138410135851947988557993414187206698598971095017910608594044422198251369621207174594379412638226064615094216693187506470950939473989088489642284146182034511622722543661079913239957700441724474124936960239933488926152750202663974474131028491956269124590868328969729698758817055209407639858314922414861034427434426759474747275129783863679862020647575875686580638558027151519161039802155925918504326521450500443260470844401591450178096262897226794724458560420328219483258736447042894209290958554935898949358381027122994575765391417788337779952493150259555789823972460409002771731122661079176881629747619292698995911200918211052443849072004735868789182372015730791774596852858492365502564913395498710397876611542254639153245515737495109325105304982778675231770331750792635312090964022756565048120353702084260003414316795984696158911646673429072707987128251147536579307440452122303298623055599174987461224933831968176318883559067714633279813757887918436332633171260206980734676316026516183597954138438047734522247161431512716903634576170284221836769825511786994282817280110897508034296087506706652484172463190183561069422635257058934509961740134479305290907450820991575755378759282440053425849884384583908987868701231654929950261651056053755793063382831090232981485854596235412219608903302055498368484373432094282285770172147930027975140539288121779610212303554165770790503383482685706466047243482206605199602374139955268678825137497963128994693146394458623670508641630587069379419336563882602560781580081461205519088868906091601304422944951308292720888427589835340880433378120850603982731007287603405769247055881518051195289956541521962118643801840552914274717526353581453813199450885047014692775060137555196248690973648265741294511438003629113878408647222942296771546467164471044154808267271706559930916800308892899625388379718341225081023068715633435237225986061359325423214391251928376770707949611766479160423003888052633020167131092554854879040462443358223036963014265755930944044472061905943389425396846015115767944411632200721147441044560153006548159083602683402263088856139647154315263424464943246877779283473827718749084664351864304183096501202348258187465885726124069041492016468492870751125329349620858116695140572839289778422181484048850257275550181281195000444454583056921501308192896357065532495004576235697282720477311152972457387978803635771807851457681479759886564441867351556220587684661368024611420855592838050539808777476947918837074389738661735929367852243246494202357607925451454415849775509340624716361488018961429815136609787324959077226835061455533999613576261397696928027586205448490360501505237263711892928789672802526917647954193133459250032529155337547731878788698735281338249915571448569045789429827467189014273624617808770877378032201648315363767139308488554909562574207749004243976065716230128301808097779562309188621795929090235925237468160661955361830090387653034930015343803097950312799263053289253100412735993010528307560111859428593301542177743785801508365107186227889328446898071868788126742281305413635072384623362932071710020105892384028356591176828355726965638003615288508070157942480316220639016901725797093389342500595426306766002752597199402969107306543162140530688037612652440631108000242223269388507883677914251887552458761112744778668628636085825033927742971915019518821040517715265211657975277719417912095971085149003453826466002113984121604742599891894493485128512314434255964764286892945618629042092451987139316476780309333665046176460958741550747867948437285719161468806482976163856847451197536877472737560310851549482068684118117458211286812808740394215458524339631341098917382977463725484510319283413473862418584811903474443801052672644362044135019930681455244561297857369126813487398074203508578151421761359630555865969616660292391106310179873410765845897895665195497321879789978343163193284672665053326646705053398908861065562680609584594321537853349737301604540435376513502596225124699129070136640922128212581440288418190944071348397343273981674058305356951248835685577611379178054021113557960988316858301482833208715900388765793947729001561236968109351082442986148276556643868919191383813975328155137474820742267423492127317834087525569160935412147436427470773112596613789578350480628690161210087642745778743371571342684327272899100265456271598351130274662411434362123972069329455347864582260333891611180631365618938956269741833469340772950485676037352159326770889521972988671244232946046449093986007019079223724192869398255535153789485580295171872293169924081803928332803639469447918263609319199465074806886510791947646880473879823461975591525006627805911045123527085558086090479847664099927435552658330992455671666047494622719556602188864068627792242772889607659458951969431909951601712177644625425459543644384808284345665837032971179708560844672386590186415694061919915208537528923953698406986983514850319040425177385428882476006185275368932254381409277078305374003198649750656289737943682669103149413326508006903860030290211482182558849353007033173858875588377252458467313676173910617218770785531558350916591332302067556955614433301175389367218987419558944920292510118392665385885288854749258001336188130081734805415823977523881726637378717629771254090292309673748882442808063953786531627348821589222944081984457881170278458264571970297732204456389994642127741597595060675147965046127259461004127135673668009911936077415623358622370715007284256965321672018508438338480116973587347340636711506374424399207181055475796360024559219351515430720878807307362599957826758846777537742335833196871396350584976250160461365071055094118759778587160556634487308857024626777100494414885915568979381167630150583678937251749046839270533001513700062803367615674818583905795525019254100971263781812663833541307070814132865422407210741959014490673834551364447024638567360212910784857146017206636513116609728576044623911353272705418969979385058372936279760338929111644919381357728712687232806987490303492211186770887479718791656151029564105957867330036502038877712164173970575421389946669425545196272239570121332778946104446662711613912336834664505270157226417889363313835116647871903712112742920448011627768675523041143220344620449233758977769105225715111730939969689533009323312413833184133582952788380880422338344260310310298751552797547555183134470929112735430409440366825960222549080552830583094782960362711633537816719478438406573143352118328012158756300035085625861070123483429912673245735824908422812777094431868050279492395891549360755962706616211105881549481283311002259417132354262130647581424739282610633617200680524708884989711595136993299623094997366696537776683666411886362123852605449991757189197116856917757608668816217660982756466855977081668913323144949313271825550623159746926773767105670323266350321929641905740238978058861625982758709254936507139754610652204043691139753545370809943678595532481498818906464880488545370095335506023562073959666521840253589336697189434772365414808032500137998919516311197805333747434781094772323220390466916546885862413274805760788604257741049328163197682556953268267981370728598881299200420499226296336381922815314241366508344276803109863727211120948432277017599005516922038260913083366181827320515657684813628729995214396444331177255801719712973309582216132608071040500446262085943937785268335681934429185105439546378406467693908947290494564772677641176344209515825326796716743812563267286160637270554667616902213680790201078068076591533174012259834346228786577028855759352478122408235774070272645744061449312362020683842445859034664990864907039859655820386625222145183552270405758348132962616672447109544283344764852850441762958646177773932019530867749397544855988205276928464220287013959832335101112666681414696725012135791198060421163319354178720637968551780747906591851298351182090240103540701437687554830582105358777028876342559184348896847944011641080743808719686211625464360880800686825659759473817918254029285063790133596096046460647547068828814832719019885067490768385964471873803121573796517652107407591039033774753240102544429426040341739404659846505091084852351088202555519970960058498094174263629388648484711701768487526958591194936929975993064042524967607420863120226211357617770361238721473825693464578388481985826494441280580393844460165472051110833926597581845309126893441234654476951280007836106269168140619300152303677379200957066199637994898478887629614063187559340485260542667682531463187750045876027218399570304777220040709883218202612754398165031034008553993456784651650850820277974574490925635686733991945816242440716103845148373778722247192551949663394238350941608074952367238598489155325566227240322791332277664431030819529074913456537551087364375004390716967278556047232466700265152134824226437837608637750289839541651206539505762218706719639717811248755290755374761313977750815868289053043566744340315848575755897939460740495362480535904394112729111001404183220891677624870859657245780347625360772133723590889781693599919965239526299556590347767656606460393034894823945266002915866283459294725892067955370680105091540722528411599901658414953671206797593113790502357824833312848709360650894646742064256095267733961985143102232707948138643809896091174271500710375381918340539597064847342310668530486179131983638736382487315389044945205857870970084524389627083175727343188760984433076814684362258752900272708744260432590798694705672502023521210684836480073703340894253045541084698094227394192523187838493355938819697904936909321298626341483091683108049443088451782385126833168748025473383259141628726074352179344744078211020020743562815948583611800355203717574811690268769584287428509388594450404760568443343295521378583264432638333208384358748248404729299274113781064250661341739573675131896008335518205563115572530477885006051211235617755836983069478063393756762085396219156514543951881461204831021901832648123747426334801818537862788068329886173393384530668691987164147237878335530414594080462087180187345834898740303967810982173357151851126716686623902382353077787243092934455061787323237100942177030331817641961608638742295275975255556879644503182745534536439676988179011889986583742802126716949660422630355380903960248469146565927656354487464392847730412556824825424967887020394276449085554788528731187647990221434095600715975316227332412933637930653745077669455931034875299343136917503464823466328164715144732799852853383873858961649708339227837665989190577851504590956059991157618516718730501053061574632110438619868888613022948299720439828509588102663047170834676510363174944649453777658596853252730213014292148386409554449173626499774704355560844402759550779518379839700782927649257600253956976841008193253629415825727383951689649740910107998641184049642752569604238858562359592955254555833455344940034001525517323050118209258289821205458761630897310497002182842354809814030096547904972056607189827933818168333525687994643596515192784906103131286331796778556589700087471817239916092714075838566253205751528800168304030880158551560608264532328383569686246008322438980517311033560209187884950892903271906821637421756979079063545838675911031070126958501662722077420740957492496772251762897276453986640739942564870006718990087139315760398190543796358238937232162931337501846044712999587853065751515266899560630715458791560496709006242031581860030210137144983597440273783636645404815304291491852064674063774652454960652134853687969174206891777031923759030449763338002899193353538547108274679550607340598965773096387450112680735932250177384577803844022107741960101377734361853850521305809364450483609077102283904069762726892088508171552275134138929016318500417227934742541948402317185336395820591912336479527731893225896103945707595479886970883503375138965190526421447729166075033252881871937275702912171808881449935101202256500277966130397208255682473743743686589655463621255333680941984278800061762491970604038101621548781866582096741405108570939055807952891127156251012844765401169710591283097431645361993362850582281523117786335776014728365821357640831192595751057877001382811348084836907184012857923547379031330169857386199362625388045607448892747010925388143843307524125064905960323474802110808855873009286197660260661687444124405826122798366086531228411099269396285031712251787922553399769423919921194070649875228628479742365412321314092845014541644728537177407995310488265790006696809588405324041097482926421020566610288002842724766704835863273493240363192571262993274324491869890058344995290240291938469232717079527706233987971997818172696659855356431027556539930006406428577839174413282736631809283799364236861131968145320645218774003977281218563583878335038569651807903521900395679843195611828539661477256195343010221103119611445850069432759809967334145972339561311788798355109010682736402939023982479683586954388062698164576096925665687985525472481064537280403544359231318150322453311984202333461304024394829238530948005989764737301334263623719596771613156319407682373666368576521336879582205367645033893317636894458401615476888554567463730149328314988977851871332112057238023334695500370674033312106944018213538695225099227675279053586477311591496998343562665269726327136477100526392556941074158580924278228642227344740731189400396933550991447929169865474271595548498782515472846612713677024052454027241963527750467534215082104728808949259098008498155179394720455777230440879888028976746565249474085071250909879301824258752560845298064360783973858265298655112029454493764462586895885829696230564905898342096497510542462385236351055965386263284371284241176157049505658022955725552453999926412528139480152222389965072509729781164892168329782001909148453309398072197480291085492553783306564085884574975975746474910883179454351406329503522810743532113473055055621234502190001306664867655959802491657757056925267608277197828104035614418690414508955735926790243130585811187283706994555452336009599661774888056674674789172608356396529233379254348389575468279888058245103542103142353519858407708761737933840599970424375094891059172337818084085386507012818714196075078638240785524453720997925376797269762933657935728232815884776130424780520401536043024250076397885010546040225502162956497153765452275724505835925811210016472152438253680035257596175360560547114527495202768461491502615072151897819010614408074920553731770660211344004699377283556577835924957807066441381347824086073852415083442693522770201221500216109768742653646319195193045749520089333816666808016001928528952774720443177551883060465234135878295385452218776538208702922831417417921027217752803710479441115677376684870245244948263852077185103395393393539775504010701179926324118115044516647405318406954084467701480823662749192624960547154255351316145055805739278420191928466298601658214614335564795818169098008006026152831749481110290561588905128140770658256948142885518257225985162319909640717508645892747669368737604881895666177742797939951468281271577053601307517310571585782929194881326211338476557574623102225302748552161967254521964738425526470186211653215685011921278222241464741695067383904326002223124365380437310664118114611474000064657026180816238026037101115381558960289029597715685955813546898964859619190972332949380054005699391804520691890724390870149376249921909131260072639874479998262361656989462483668690768190509477528202629698372329722390131062500697620597434101148472861151447969691229623288169756035739005225734040526574310753365559141499495724119474077625408277711026333013855349724348856938021570477907489896142431724314168041918319158281273298605762061550084243328899029899085837188634534031630181580952528055526534848058375873771616859939344347462352352970819286286019383314078510669660862640316308241700007742889192545793003661178908397361537613394897613925644747599031915758506320146318796868107000701927531950223740272995068649300773891296392206819110148556182930047534454935806829608560664998071855597004728509336202320584015828051298013142864976532069179900015112262026696918004453140153315879038994011792001081018456099870136001217879204949673467884982704462373469419668075393755602847149899058495538622632981979223546274645075137575786905374902958553354112919073090496658411584331506891767882018495865715239904080333023366793016784159152487141023210479903014794410401471276767676967671290208273335316082514275916435951300353000041351746394031089055143389894381927399539171492992681492793403337503779441351253381203691092073987527882110115065819282082401294496732253975781000577870499899432422918384925832281371468645055973695879193665235725414797259291494009368277928049195574737053075309014136139812024672763042047023646953903494022177729029887894339941435899738722208047617211320641308632428636758251600683957464611706736325987779032829994343191205254776413079058866013556017334611592230154009093990906823700950907187568125065535744929358808855111176326706071176152430650271860183530615615170338099161330541341474410574114367400456371380349562788784736313081601729102997969303025265433805673287509917268306549737815713555269690919848440733572224448375851248763221828208142798118307230795138713513263135688597468194025060189567672393175660634523931151712174055285604047343921968102126577648298958928076030031613217669173025415922837787929328239407118116263644336932559758512356730653372727598605441782067531156119982947787161579549689217241863595500404656462495613577552378632423847935260850099411553124407943227340522397257872957516740942928904893222424919210752199473886630464938181526756319151228937257611429296608638852716400961932196553648777790920082091045294825461550350114432934826590682089351542752760114578725575186361956870545719250680410282504052745676409103774651371803381767219403526117105476583513372424928983635235977297988434055601837558688859289154036586379927098555981741745787000934143546877659869932236825992962309709545830101180709827403688928866726716814858424330241445009754575097389784056871038485401026118926877139701362409889671195591658597246687436141968801123908427565980597717557599182032528181957536566553361084103959809671840952666368389497049975022008461655277809887347767430069947152506277896202331329312409977421407648491912870490633295804513516965766289901808515200857986162487027650628196060366540385409190004202982636965235705529838605176673299463085765016583599976995809070350244753714042834828684282234443623085136133959133573182767917944396586323777999293122312102003696084605834015531360183599749589180457409887391289480507132064627572041884138722128145500063267890333192889968036001764024551181596851781649428292358602902072988394607116584198146350779321208611178485952035506955106282823120151845930788035240798206536314000560268704638041331044897560362421988091092278964694951656888985103150740358312522779899476346226412216454179023279068055317653127498378254750520552077973500199723142990079928208953432190017699346308534622881433477835376494689508244863994745757557515179821264571899682463481517313039489680893675708203560792835333010504683226836759497210484342086954254767504416143959584349351000999255995349804499319221209505657649030624067279864122604436490897946391834585000690331315452007483898279829720888579510724454239175397511637292688329783543306840044728091734900427791526608437972880853273950064294547757609063297765415638851513219538065824710636130975214884573813753533049128968821420025952403075763892991015528537808091667133580186374130045990666837166492872241478442893137532412617343378285933534107528368822889218240383222203126445414791492463178292682584386921145046063418356379489783505391552606039899833843888895359227848814017350120716616968635845894426329273988095479561092856646583986863493539135345926230987402971943005598671711664596491564257666292771187983938664383610377490385351438270829853904002991279419041520461643517975647654653860447193558978572276177158117294013226459075587247019880005601454641363256323658431107880584470426366532971406478268229096099923491258797223530532842341163280296999254552753541800312297117551061151085089420264687061448944207612182480297618235749433476102175779436532492266455520052514688002130881120941945105753945951451681724346193467720977628868214165949809800388333035991275517485563677990785308110266417893431565680971328387566152724848313726079112819991985939170373932996110136483627487462481219169424389674776808554569587776910785534830776358506973628508316988741783302146252439011822265414804168030184305896112258065644554798288499260176010691910188658551214963416637748587337584549509583421057846431199649780229347409941495516490327498436608140469524966739896758125953618659868935776063970597821012352737299130386138798923514971626001471930491679858966702176954890597283903494379872493119218755118698440449570140076712910818228165223551000275655793778562053356036999308184404295604100257933474915113380996920615855588094242313385200412337509083147936350066706866401939667047409066451097260825814152660450524560675401468964722548761862595932421171125534024445432013003782490920263577396358781548945221406186356304944189581385493814503317725755837549668188889762093391507088393362050160614900388215338710199659620447976991430631424323423634045427657474579692994643365630374313245225157127832698308170002908589400173783761249621376659257003992336249669641363711847180328725179395189427491190494110245171176330435032826766263731185953699223600187777720207521427290289424817683233209537636898528646220567816289495692124669232385809291758024640239308553957284645917194096441692981287251454908620366227024958215573167406767250836720831069148776955064159442514587806478847579087960927517080092434525866305877308979884283481454647675230163555075837666875605011759022943365978055749490306984457091104952992862367530905625559901851632364191082604922563424322740950497966405336933432875331417624792784261006870435670952317480363293112776951930725439948665041144602826615584143678538091172334853925198439607579133143270255602350612398027866170920104854225982303311840570793776485634555332820090369778542073187285894217528665633700752652382939220479414118916299966883388866877629921586316427255865309630488182799515917944280002826629841423006061902203705887898996325119602345180404453693285785273977685358180645069390697700062016726905518061988581048766411009559868526537094375506467477991575352601878180339119702238462155756898339756406436975407981976639407763770411940530358861844755502897817208773420782974540777913917978807056006972801010432465314531422822940716878875497659046925705876749131239089949221546335226755752731187217842914967060651380448655065901807146662944355139725250371809372559936096216907375939907335270474090548426214566648503003819307277912403824446297448106208067997944533741585412974953591236332518017408215656740209692269502214882980841306564947856534584989303271534934617609483406199553860654448576436444928629839395604914521343269254158600695576314430663258384999912580289059413594071179830677426262108285694184193848220405749554707549247230726613927085922547300564486786044903875318385619386626933319443428836213498779705814598155477791649188588284801100551186209879033312252416622493846363853201105789830678310625607070088145065038520889519920146501650880439659924643982534389422515629485814492929149360217892637217488574856182987605510900517890187267734462489176757954377203068831049622137704254213415510096124652566534293380714505673177258778551684183712830311305849361162595053012644895663397329949208684383375564048540876585060569852134858052993486093759159282117683215323890242289620079514193191505407777774907087874242229058870459497264388266298048579810857712784929746536286523454102776964515398244952703928812007908714023067279307143106557965598126834083567128904770460591047863163919927581212204439726581688445852086664527180895539641557166900588373954645134381037757325092715517772969355349504701887291223412059005533477211367231419083063842544621747223226820126899636001707427403956991649356911491130453538535453365421894008984048958113247538994579283784251524375057013978976928076574102145310941063885207163750524737520969280134538185876097989729966171541951918604356760527202793808967367389279489637817287471707546206569615559754613726639091519048569076841548712436460490020937945221024808045529026355627364498077726286272793505984776280645361515164509912600897546062617430179026102415226926264294762894318705829140655704692489182615272694841546900672058216403393202658027911579830808047892739295225078102990410557797381169570202106094508160502328381902604779224433731668708421661778398340495728132155384997542133877056619476632042294745974002523540302325809892227653884552851956995555656378733045926532667009463978821711133171917816801401611878283564475077322424870907255923478586591557065279123080032745820326583932483296632719900764088268603258243639471673813464685813271640046585911806283341600140543561761457089654743618697665126038505987606071220056565197702381287285874984329817345748146075115435710588652797907848860531023617291616575819000055692304116890875488218452146293052457479402456357528888098959355283230471400919634850389624491760085372617207263637655761074581243333795564676313886373924584089202144153938636563884465306073377005650205288578662372786375691181963462776926913356839926375335737368215060608278902866668481609000230123610346860075153758631439823595781916581721636751835050816431836955310519190628031935565016532830029990832388565050443581887457078839248531507812897248494372835504027312028849431453608558092111613794053468753145604377442501152168841271103567773311340067332920127121686780237295753834133518777237736775889108982999075480353053955179708722438950471657508821697913665347041326548636311656469319791505860690443486714066556690794113878388190862393155875250538801806945216688036309745862879959782428556126493928992514006018203617830438410056445928333519597016469486385885699879592151032606081349899546510650881579584491586532086143798810658853068665277428873629803284712296775243864375170929392442447891446282125110234557998103593366607909432338664560473282767663462650557560730111840424050164657592546405548064598048298584724411678883900370541952342309495796924617273516605906606806647670143196398249651523053232518803686605718215976719691491036255858117396980414890095927349997955763720692951824190639752955150730850373588427010943932610071561496444159615520442578738066211287673623750621639070195688039026427200681121125585158459538686191921269957704414536463586273871732094786236508715398771118134981243073546019229400228460278521136808195273144324388992329915098970772956032202019003853378142864183523427281010407534141184242270037214157376906816817467332824940162286300029772878845887413826139173000532019612873891262141906747672424357183891045876510196551387340971073651182897841090442564069271229840148389729967741334265760555684008670875640612418790115232698872871217090886168490697947627065770590206898091487211151588755876397703829433526623535223618097744660003765740817831460393165534845400584754592228621263883243887392638275099738502087080530341268920541854654529225283849636001736691943236231914639763968801020562988101922801924648797931371419724656104338733388054797629302113355705080517344468745663746941400381357628831050608343601397972158003935425405292861069542987838346985026256435479879763759848499322790032335809328195074818221629295430918701658328449560273810232699226381382326485173977045553442486202889976754690088855478825814942752241341038319738037719494281719225108172716357192540416928335816007407155341485179580927171106639509510175613365626492362710584670077927520859131048069983655756268272219004563831821940018799481604169270811773633693550357910372818388605731272070751029829566727312006418274043296783987889496685070692211177830017322224712404628458748453154223546654940228989888542811148556722904895655004239803453649894456987305725230371811217068863059189960075200859578669425410581584520167305391838213202793089969123650472581166920819119092039002305909960797628061777893342611331138571027734045437582807116646502188961211243606343514920709725158486819627597588591346805331637068918803622693050361368761557520343568127020534490278093747786959649136117010510690132417324382134534762628840319276659221752208078572154812035816864705369937952354376297851088795808365622675946783553083239740719761277279043036824765840227545341932352931301281177990178362429199196123139098948620227414028205176677340462211338380541274980460897968388703234531054095331924703002775100395560754681422401733715382453510128077994591801277249759442532418195581759354442357107999844208075594652215197305190525685043769469259934475731478288249980215966252759650214186699271275962165536816682262955495773102892172699260446879169071524278937891406163830200750704632701289030690221352472509954189316912378760986115028491699430236999632111015661693401740692042874635599006534086368709074500727117828178615349306503940626955003344366057789047256538563043581211933471218194078052091621422193365636409192190512707937763655799953024568317672097803121169480322719690155061298443907597211254582818721864215317965150908009404258535420607223873980182734990696342746019767838880745258947244617446306805334627202742263787246796278980283393410307286629767229011456505646095860936717086007245003078772588156983108967772651564934992265280320015135347229570368586104659518260598683184848145451927871723083406420071849283392352880635054389464325481727827259853345553471068697279855330641190454045673951723118128542218377968677884906050744899762627388285238248571217054441377138217492570548699679551422276885654978226310866481125444437731653644033112689695397463085117646146600333561003765699970485719490005046733060498169370506598334786244324187238875285247833015462960523298037139020893709192321872360098933078749950500675891222276802746130816509336145867167868525048874200228201626968666073753313193289618057092153246594870895370324339733469183095526438595910661728427282134866358830735404759806188699451654081455615676366678755570082173051229506732483926540370774429431155877938525860217996038500948605987640949997599686097005492437164042133445460826343920617163076532622521502222249876126666450919304763254731952870273088399882973687743325656735196029316498936391111258559277805298954670029065723563088907513963628497785044040447102522217832120827596454123611138454482656241330624434712630411718160501282455448544069408820507208299907136286195353243739608752958617174953784005325459643058948226576503199875996206539999212850441337719545955964434709964166659226925931462540679702976133865543783014617033163610405592665949216685905876179220253523124962890930222869332765653794028500811454845983528001730557316757201606028001491363704587335806955408824058791736322257391144975864043692867129108751987047906013155925174529145532076544960514384433188905836191595366172199816325835494718462039447916695169668801842830036522416207974128903236902049013382975084267567256716657751990612473964800118758090566290423412375011650996587796022639331550594218376379447755033034484415288619357589133276488393533799935189523568721798728682566805524847029076060458593730048248177274611250610685570785734578504539144243230651918130509208284593711232644917218118718469286353222421094034810747449190839828855461849613871333397389288439113480722969922443840737703583621818488780663737217461602862970266365498570686121847535047102820122326470894528889198919712370904721259283386614018537798354346879141850371275578081871549583521402989868504193425874499006008462119740625272144371927857417990211489382052384939197469711010645322971653750807131350202244916472201282060771404671733873304533827024096079595579489415636311354244164251104813952290759908428706272270746152107181664757943847553115330759246107230434541540496807890787223252500779870049256070619900331953163924232491954101866360786231868491819318851540392282939186661540033740925980650208992291785925343435020353507650286583798142045613481105134138415835791549499118358511289097458778782002552828746773426998192528059299601623248007102606526233059333764509160843293624616862538576818495688456818668382121847847676698428532446051149928939523677338645078751824053170918503273958884719300645542893980799102659127654240695700511758479550739080621535729315413232547024625076406470055808195230200396727706730177340600548821688378218779410674970183383528022083441130938350797693086063725036758649972608425351703166844695817112593943709105463916596126524152783604063314268444525812268191333130028297695462328159960953741855497471035459521345403384619666559141322657678270721385274026975708148309589002324707956411096418083806543808479119754761280123810256086994710053393389543992436001112993339403572675415314458163276792482187353660361191267944566464099881175236831148477084184307097140385223689250667968011377228187382820398526697283265429372910423232393444463917668212518523306813714300597942079734704312057546613707436604630314733100688626025506740754842019336646802392522938658236925815562384548617996968525617325561101718485051004041682417614194985275437942819491132815542196449057413217859429344885001754718048379883861124528087313658759800593195355618302494722830359285802253275217589707121052013581747064334785420610843120656395849267502744536165741096345773613196847768523067273435719975556115118580899773073799225363249879576476557981571158431994252855400814232867915196305725692866018232637093059632314794229069250185016268487472816400617253001343743571851434732090744164622305436417095932125087567397369136147173607506447133527604318922696920481304001979823972638568811609325585449428511617576844463107812559851224627377595153697677731014398860991378247822638011108134205167051631063572172046516238738761925260043572622925863519451700516986935936375343269590506206245642866283343012094072220980214499167647126592050059867699837728458798775718044268230565373799240706247922019854853627836582596586769353445898760754055571757791878786215005220804539078593419336128868523864451897111385770081222993812225513136356911730361778441231513991305936192533089841253091207868732017809564634232489664427969278879333066559023023060221264019524643850197358527288452342660696020629182054745406197186452610847132625535932573874692144949890112277703982970425859262721874831242140271900271445474263032157538255991708121280254610428659723057454794798652817238838736284397299346621185473780613834516017729216040384050816363877086005017825458633378738639858704908957123915909294819420004600958429115560513795204218054771867729072927589275394828415415365986896160938695679940794314157281836107247694931158487517964747750456091434379530876366571190092257868148869360145761412617021253053806931205103888026912982398883066943735390678152315813650398129046177688579442958980756145080604977302372365594562909037925876716339655762231347242706231847258834689751506163512489552861891053589747365904827127136556203196876105684087521808774509350276354034832208940227696595524958601137708920878495188814085667744495081345223287617816798968940313623509607130260354984271307311784933706277544609834421511191852745847872041068810902784975750801254855388366485456964773393860612816584734790095207258817940374127413743466567159607344667817758330152462788407512546843281884710679380109114393682417241343426207492123453361271019497226733517959525804394371509483704481645727381818108734898347556649510387151248559179587003763572624336290972934701640926258699258845283106728731224326956874841792284400508726555091451459086561667028859474684927320130920035321648885020801777649533194343375648869751837145797743349330930589411764372815603755668683855550194354720881511448227254229703395305878167148147256164403178431360654770011536142121609532969098851689480228008338870245512028232521768484945036868651294049496410828120165716912158487984899954473017516505620105477491139727241103115665174768807469082209742989490644475132038705409451090900478406108321994723951011408232347759786063658372986940818143837434826637577352897389589072733512621380268868858877219909378133020464059618192494620200964013845520427471040894858824100763491779544283506293719755946563667287480343469192483366812973649353809644481477171749749760278793444992258482843328076640970117315731413744553243499443178733773860300843627895472810341075208906196712541616387254268495916010683253190450643913051092684923786825363798497298125294031240063331976097736065291702897187885997039542102809081489021502261302823040650496959750460268136911449446366513391280756178181250343094354018601402321249295299960129384073111387271831910396934064457710394720328637357962687151302847129533663644494749576487776188207460318419085053989406003368308868009076006617702959637425197241617712207686751109754096327432897712957430022654413896318570117919258692306782649853708817746189858441978415415490905864207303140593787855291232118026554161858198677284161556466241209816996469601967798025321625207582744440386951795391718049567543491849089386349069341770851410865073463633473166135289547658235616235783701726935721962693399058659390890304483158246118723711675942550544970937321799275443533057400596533309355798455063811891426678081102305446737098651853463545728024596674378863516153953215423443122086530855959203704462541329126382971930194082623672196109106675881987463394313136851560587696923313364638735830427778494266558043900323209971300872380689492981806988520560343005143450980538543279632693404122813495047581328165422076249213339714000055295192513172590381634460275447727023951448285919093879109699455087156491923977281436186486648670531923834765350320197249432380266253539232939641392009767800354601141142868048270495521809255030360139903131397449625712432415901002676285352692869185822750363173742614383398897234381660515736688888871177385158833067690625180748866959027856853606601590113622209321119074369736323645577269769289645092594073143685034553907293018530083136633545488604632020312287359528908226213672232276466420187188187163430554917352783468882148922149233593370626858756055400619682852531053971755888629164749322549133326415143388416234286242936106511400182271152907881143732027421592831113326488434495690565493297837124326951341834189277044960519381696988773756834275812380801672281554229466793913623801096127187448420094311091259228296365552991989122149235493138676009793213961584655084919386005590401270833505981600386001505712502756709116051569371658722206212721103208231231771023468877474973829952783862482287998479238693384150818007459020674488394196720951113555304178054532092242046107880885510928828597385454024908962680803496666275258279088913835693694025195120307183242810560050584458173889361069817614394276691741837140970810808912010625084367644109299057238481556653802476719654281364976992465099863366280673596402573817584972018877098200039240251728490205670107222352614126218923284842162089004805924275899047076757391381766970601649692314083529053891402498376877445507077466583598270196553636063830245980484822358326800361277523809301620027651151861984279610722676977850096720785202532892672886026747580362050793403806038599548889967237962266814777927008336112576374734413387586614263316426196579762452500336886003295891709756197872933543058458215459507715866315630552180184720749273090619429972574192289524039710199906888075854459159613658560797035977515975473776982965333126648698013108280926255440250051787291705130165345345088522413093192885366094975263266751215160892464951481409696645568837581106223581329171654947737855866008375482952163412963808395104975876954737753683398747702399021661023661252129992904187267939739348206168018964313444050053151713810926790298794102875842623007699926023683247200372597837416458124991319308933840610084972638705449699555024625768983849836788780161129688212149393650005876647145818222746731332869671811279043231100057305826059284886782227389169482472333483218444980127319181847890674271030501781626836080447498676585091015348604424319798006289293061477426755984531050363814609641756161760250466314981859086822116479228206943146438084326134758464879936475651447246737377737112887703559443348842783911802424320736902737502837163164292611000184023053229525517399568808222770687127580259217313465249308933158897053977201007520983451113145566252950948021951120138000154505634839579148822634965976005140460885931919482475082611101341082459645529078779689115263445512607059065410741629828315665063988855393392140524299178196986343060948611877307408167409647860039041604646354167127618392355753573173704092531483169289762290390085015839383227068934846709562173007793534412345756632003482162377604060160314408790277340396193997289793607733769625030901346154885528654907240986214226617327988850885312073381346819636082512183526052263289459840609493978815593065323016288401274083430155121854330755585581666586941850764832741738091916951494875807325014739077826614864764374869390450363874469237514206501941486084149888137733848910961762984213032916206917768165821811570743703413212404539640113743821191684350926015635805573887788747597140384851002335322790594142632016426150103123280701826756331716031131909589732943139045315114337862975230086404417244372942984405789370470928017145396629968664253912676198452077161624821103521005436598118491016607447179387987215251071646380819570599792412207109731254720199050450665508355539174049551909626452468072696242760628834880134484407486416606542704546136483007711166211761405691442925869619442863983205662583910214094414335966095678515367446797855986882565926071420368444106608358276749369643613547181575279120494509874885969248211191327119468006249511338442984330275181955220775657750729074950834818493382624933539435353442430631729139884636291263963359650482640047687744763317785256930733969072912489679534086406664444095012052068005490340462575330447198620173292819397755858651853998949735816587510877449375785241312717074334361367730083057760058529775875116956401476875446858972223508536737214423487374134039971261493130361340216029563079568719972108100219288414968699724181692711981364859986084858260464460452217075161634010085400780061968229278848083759328610309795261464746813554895486606962652691252178097400465243320979699337975825012598762378256505917620344229981415652728968941979550765733300445440498332997441802910543591823090488612229300323567695439766633672371127364599933260692443440568205922220487929463733475940630172319065674121152202554425192915251100548053667794614383270314534488587899321889986078242621211161393115156585415083515681592512550356556732596826976779103666492204045858519404684063808250700746779256791957014947183814221655242298035058339137107571828366300024665533111686872513074543149749885731524860001237810977204649820053390788032357636250670908598350636869485090700964460208509755636298210012741732850495943579734943303220316009944388677321681418419103850963364286212374968428117115336947550243531990930219706524382910520533444202761439969107062716716231143956827704197322944192283696631777816843717959556762530568833213845680730649752759155053607693840165096790250760280325585535973723740156946438982942431595980790726111909049964374208211900493170804255158240878087031455107406432965977175399346422699427827161770462140672980689688911389792775482391205814089945608487893919628678842154481862611836187701540038856959157319270869284879375954371871363843016812947859511905357717572747113947062237006506916872260728711403565973262856842786116434892137805886314376629104832833319204220065794792354053445350273156318367402251956209627872938592596310184664821299784074290870237626011094380851915961920109605571847721991968626293166201226292418988493338075114400853004087047196743947347927424614729236417412602818152423417816058623906832559220270717414483789470732839394801884679115667512808136063300071883595433847960530233667527520537536976881295637595468454781967627126037611874287930701701318561248281718456590088628090196256106966225753811837743235990560959663961354759828530574927421370016104632414833203788727466789810972346157837086371352364286113908641467398396835171732787023552351204801265477723410288765196460537498410494735732912854614230993519240795445351832910726845447703468396053268677527412998251992513618901544724296729584839107759900063285458739958146304630631329206679682253614382610910832370696010322604335092639873288391308570226888289299853943456432477387651276876091565212408512575099035441651471381714123799681392227177204566648621813262292684534478130653199463377259007774574399739093957490894832359691669275406754069604557926779022072453234708957016438199284166863950864114782817754743577647609390837690358918337316722793721712796779385028563430216063257233432579682520422424063981473926808763250867503337698542652748634978224528636133998922379115905007370889117581800930195215523440726634041654321283546514701652392820131089260736351346790624303389164268468096978941586601007870680143845275974752016667454655268736914388575846528525703202284582591714373060217520470784765429696584966379485214754298818879000993602442602589497335058953234359161561454395987333820618372662797370939429902411562307679889853267303931915122010998688516442807275435635801358619520645753787819725827965040163249871556407559455336193300911366725826814905968376749880207296727658266633532099703282984134642332019086849764894352070424440398865474911206741377372544274884300802512768027103349976971503707476258327189875541156998461845332351491696134868682690996029066350346779688887412308609227205283946431959263082198768939210039033064971715006998469182990434786863838272626248033809204549402212609434561470795919493138243194610776284083498156520159559974188184341811775590788922439114600136689412104462646117493419537262573428346852322110129435015952230121461915134409740075635210615896424830822897789209981958653720757778001326355134905836207541557320292504842441865956661192184130942868680454918742583943218771348043378833173067290863744977397879195920286627286145308593750189079210811551378762325039447807319003826497365952886520146836325815035661371152129138952058411059825346886843517128833172324546766194466783640290380836540418624788388555512402561489756561674092712287556606066619166918656683303968347837544707478407472603750164483719716370173055805813261620751355721485696805216219505223118793598142817169206119716909793797893259958043683382051740210704139943947622616068829848458368151493006395282225163048680115692422005992067848108335235966901953449567597761823076634510639563346618575990264707429492346787917273154292407874695505162879039656633859412562628293705649890317187715376503970142213861433278953919640866771176464889860252254648594241738085467201972280312684328419420545627338933628878553426836862092523900511978308031501626486855384892652671663896620011785944395731075833601620935641442434021014600111982936014699588536398456932342627707263291359928993141254436347852358860402720643818596281752748727094331358393454172758633053389192983611684886776233426036482507561876726910224819961923009078694374974183654610184863976706379334259069325321920390274366498005587182429734964323483056409561344735198149881895481200635882882119798666612192363369349873988325868299856771820916209958918358564367539948345535601416579141569292308977701513971545197586845344231656386127774117924189026292410374579508591335286865401500788878678162518071736637468657210384547122039237953162080979322255957164785443672870957160883600343500169492526418067701610677765163810598276307891692944946503092629791907173265543969567890944710224503722486805089736588131721066008724568820648620768850026275676631520774304106885191799148541824745942410246462245090667056294067339761026270366522772964794975021401706748758456116683568098986864081659616724886774614437975616647195823727390175215599502022169771711543242292043731369249459463335767820926700740793555521375907603591267830140400836512342372502712920948105108728003922139037767038362480651328176342773647510457785217104671795918237570684981127113897601417091430771832805100486465214144803611263286154368195568100522772443629339689071536871309318877702343669280716456553805384256424198825897791680384690837808780909955024468947312070887780342002203871065177772973203413295451010165077434958002634183246740950330120810067157097663776868299295176408932674603772716117550804907364908874356885815235706525082051259957142452534644066913870716502312255368852286299522479241838317150736043520094547365089916495259345083609223223087300325359567213003501091343757970910180828683723975329508025861618321174564914417735628404163270248732831402493573512447828837384066194820180361203149901081243927248549166123323445178886536147718875531993436450541815430538321029853677890936818018840548121135882044461152247130051156089836018202251188559141626595482702196044509836821932200332424005115933240741087672452137444301811898790723837534094900131311449069664642588798273490257996850438683859107332452538802627266542664859690222898273883063793039684934736477463461824234912505908809609093599455092189177911663735703672075709149493732702241667362091313566751524765422687525007325510183970427405319915063229468536047101700798605950437500818418186478302301709768625189694554998076617718296501122502090668116861447964102818332819583941280314073989747698740754238136643926989337343477493489371877596172437876266028840127699589360969276538073055108654585058638463688718979293460126742609157071585097663438710893971464424788129067223096591217673384580321719536906613290960841320809771544186017330571577482273092323721951881700420804668675409194860740269799761460888506518173275045463448482592284193879055449338248747919037681693400978847428049943092341117504985418400966141169503814881271577077004042399473245915143520776529388202537413324497693128632556736576449992764739533679266586543619518675118096151097983819970886531974190321420706419160502941589512936312521430125466606793608242816649992284911062556035422589453171019194149686785754203287600066857749288770167034709243655893131924554530991718231438648620550240979647921286332855248857375175740670616254998242953688622823412037505416322786808410790996172351578696515804098368845382196900879764807904610907747749739444695254161121382281607714827616618005580463951565470517406799321025501384614620557369599208886894174437853920432579591926942927015045031409598334930706139340776356769498395119414025272386297028828785454484380739952314777070690264026056477923646816746500955056035229076118456896114537334830207899911060301879132124774151940532018296712617096943447922080174027899565712279901317651661092494543893376523388199921864922506570899661188685627177106543220560561489172139332586445616329255413203508461506149836431144558272435620454070499901458121879163332631473145380759683302537294439198278328774455713440351149062152374528297850956247685596756082345036180729321847362090503908571287505035899893906629633541735652456636012627360339219531131018476254180819630084701445028426774751260344492165308930113983267740679129633065284384843134664277126837137099782347176578960851868458772470159717201134149986240914146316862187270412315217826704118968271617188450310062915889668638312283170137876025273997244632395641732050686229323321844445037750917286343496721116047576106322633433910446374473578645936305786097139697367214794226915093949831336897488595048389376295140502615639598255745269971218040364562032047783696402634602938798425785385896117368171372397030298998492841344385869944213728117698642436757052480153807074879133888089231820092632981396344075187601915288604813519060709723303966160559653877352890444700073790168004178695789003187022078534747561662669461602765897727595006790581371679870826124494602310628167603327781076945974623374947749476068384471687676941660780260428467630952375834364214542657745480617557061376889902446754666610823495014761721414287546375235011575582016517264970776369122661549805861207079572184528257115846696832555308879053789879256273486669346942142999437063401076454097959154565453969936841422589175779844023166277781702482350653871486330140223620036586244480764382556982997606605224684809573650327984055737944855168129071351823547549863666780327685250512134106638331324444943271327411238916265115992716041286072503342307795557839771073438161826383276182270936360178827158696589314629452145862020123763398379855527163273704671195573053253693057895031545571586442238981938437800848624576283268366677451428462056544027229003395920803828543187230207272009741093420272636424077612176298503714685860234330350082621044545385795165833908654246764916688744049925098650399039694308964108396067310799761289097926315379312960781317992818724705583091299954355469902424508758318500621888742249487596344065841544333615424756086763558100489881269358036162693058545238793977977058341068208585818698684668656761409412646133440385861867911503856101611541619746137963841444012098694625402703745926262472266877848874292232388308991499198011635784435095498555398977781119185370246614052096319581464697247144589145328398588317194575441108123009449210809647309111971702824346298633755638606448512331330133993246830663306470558901355434534646101285596864369103230662355200005984123132064385327511233425060818396318801470740747021477556566894458722345854241674025046007925862355267706841201073805145527096323940799319776300491071570957959791281666864612424578086555225281269350508815303912698782833233811968646535241134921852346302487701783923891924894223064315437856521115376387511581356444420261541460840490516837875559436806193937906352512273613397555044460631988757095887953296531217075831462491533895800190490595401856687896065439242217969602060165492497270957251955420773228842626848627028735011794606640869052849611937354173286060514726893108174224002273728792691787334368770893307610317330440483160423809003189370890777740245592344061622675753780051389392666280628672978170333435809042932326814305369360270600069696391762686025515833365421888455720936219380958285976105048066089802032917795860469523589534911904020012315727206518354016606117344264598875233333844700916386159244961372523143658306065934769857306217199974881441640834106945973801528850856448385380946217963829151560330583071987657337330214700850740631641946301352470995998657450483558409024238965529292874088770246801309272198881139220951084102466958550771709322546443391871308189605673451822149273209619642418590011805198861454094935922622520878185778335126323681980447458375789378094898896528555909270552577577490307312772197815870545945317663078326968987414993406376681150544017685755132546210912441786500390769686886062280737182983861473075298219479799171359969152786741684219189512017605255053276879924511280595262712002230718509810638546782909932442281323984837926843431505288985255855342776372186704624409753156806037764256281229885586189577322638064616182600629581045041745371690686207587648457774584179928025803622198158242375425790377389397027066753716827261426655507609367936905465937837583486800872409098532331752468250885122396495342479631536990283385176461645695411593518151060098646781567277972422858184111331067980996600492107713330059546523628317552589473788750978906946365741597359309870737574271450135848863815732069079975483201347939495375785857240086243716540652033776219784696846765053517365917206028363718799237199721088170295029353248189989915530760553683202064763001613847863950442381569345125462612131654200439364639875712425951635482428914910117033334514682159422831203504215008269139631115972296853750658118949311894900371341498589682039563245852321150796758059952853795635409329830620720095411444030130289833431034819265223663014231256478371826535127016627009612148458523809928972765969895794062486317898426307269074770388004955376669345096138544098493561803685805292394137585886520703177387574726375537869027675282480584131508059070871258968074188932576033431509900855864356904804808846542565701596255085725014683240003536845463287089999683993314612504481712068961324749084916119108799764348265512162029980793294045824030201079378243540453264509839010400297005763826032216131753761146392229441068874783809450046029715064445195915711729898295203147363083619869639826452321802473336559107821910199691901507489797522362067894564202875251046727556601534256292047944954845734794865377609836524723573322208919495821005569710657896925727444819775265160273241340512433834825967671428669158848524819266654334978859679740606610271601728263763867668490620949658724776532265786975734858908752179559143660734680497407515187179118800354532867489375002782649231823388213920388496289575999439659294314143921816649537157874241058127816356266765109303388628407431908493894748379107358482535563859781245315523300862952600051908640549288340662313847292204459270607774411782978259923080467077573925144028152608847107441808148162673675602594922597968996585820884043108752715780502390421743195186095511383002716670809814240961105900068613588734296962824651574036694780273062174757933059288504032421553895166930388120418543560227143767363744091826413214081039657491323364303306092223674247711139374335360697835078168978643154618699784110370373320068833636443956679102011529575493103894795606691627253381608562143949516594886573760362625802861015665560073417060137637026499797302057207183594186226474041662859450329990022756062820322789722562742664600108249201563988034304016893227319592184347973286850361393905548326096872378577307324582544684872081382038558774641162908866816802900083687416264621422486641337431058962822018387932316953564651080843759320511763766908127652292776380667546671521041096319751057177379044042804179574111051800649512344959565340226312586228956955363388651373143354020949142877117656660051608132240396810208712865593344369802529021045790527075643762517394463751964160012395981108523469321000572377029149063879458386824718081962280980181935049913328235813290907494724595807811075891612677996722058188184686096912711479484597349196719016341399201264420919539430583981245873965856164505604270398647139375839912701021633725465864814954344834966193213623986867135275261572757249078014300631042479407602470258459627619792272697031207319817180870910890199127405535347132505592422149962209842713396977206972779853402648870803971786212019491127994953826519295239752662381036172042979214172094506565599329083861146873183616781487670048173277783348313877503897689893180164787661277835910905622046384766054684487559507596625689529616556933184967190246051032438664713834012713672580958245618975571128058243364411938928214362786846498749955841214706725747435507220153343392243249925514350606928060510588939252526620137607768444303461793687020077393874240442359476329798050362737392434654682995473827591550296259550563523231905967960324678958985573474889956287205794356100661361011312346658700946431417226694719813155309334291675288536701731147416318034278017375371522539567670623696429989089347802109311244169330951372125756041836800388188917193447719424603714246352492661317500112541398666277028389783776754106529079988326157540287432131784507904098079329327131909000453967475177931222665981173733125109396978432290171796454896103511565140398930392539091072985162650593995336924895774565448622965899189605116510653933586658461584339598435860426450245114464423398148647268264374939627850879945926485951419082029795356364805676889579423860357490793704713934605227670206261660401046364652799769006134456192125593741841467722468901042534809775282956906347422846359110599100577720284100347055425683457346866836510275994069539346057651760384790422768580983149165332273247039158459979972737769939062294922890958267861868568728276082320865289603325398155022466389627951668682806713274261565833724751878949405823071826374027370429984334841511360509566195892688204361018888783986638555573641656022528937979836281026807347343432645897890021042877960662573657830109336672170498248480892408340313760201509353321424870291068792197562336535742823217887586900116502325327076683661495909440008313950922146224615125376724517777828268077261002032362252265366105915700763833064825146232008621227495804327912988279592715085765408737243103238938424385015116714038053868617989435327373211192096922207527310427759151569450154303090072674099244712551853631263649587100617252947597173176116336605685359308974597616845318609822171447092249953061687712965324510557642726406616244278835849604317853451568375937800911015443971151703130386005183197565481328031120750046771962559067669186426796415702485962851724535173138192400869209945378076708534755631000919271362215601634715950581220439782953767312311953711777887965906204582644179575920318024324495609908745085181409902249450104622271568660683671780583895640267760743121652487969247818761711212310254263963652159033948809515614308257096722036869573045512963147468568296406316417619803781955462740140172005058193740002497367581878374828452796176917198331321849248511633264847676293831204519956318192882143928760647454805461202811133986391171795956071083521858411968835509920268942865283198932450588598427440208822570964305204621615420138499795292066391138149352874700581794560001507479167720170639958509716709927320257906529480294159554550594808350946014930254796669876468484970252398062455082185602505186025037246473135743459969031519992072088612810980520589283602387064498157469228332887104318916611660595341901584649670897917093480380274476522906037101101592261392782720225566064139614090336339991432942099388357966424016434108292510386581157076597290603480210568109667578887122336847150142463382538165782732612600569245252839215401942168578679440594690927913720411341928961916041146865097168424712127917664904341016242954638820901479209032554834149816103033425670730771117841618986661069194587413002082803236712842480998752994684387838709460668700779929666923184066650452230054310644407988921355642491710955586081806748377614703088091504685997445423799815177355695664894525765369682221094135756890908252045922216994139584063708504650748031233703564761927872417228206183918805545226587420187976087384855898234241915962184882850942356505129700822332039550709862303926287002220356556855834995175381185191156499347897283094701992630121541063100149802193537278832827251142783658679780643833841100661785581539111957797748738635113870089582227445693301314761744008936239352772449042292562212004165657724267705909878783230763713579635176629415898249915898742772641048094432204620309941666206648789364517723193713557207951301306466655919725959470414665765647401831150715507733699957417045375191456364488614878580821571190067090086628636357898277923813625327671532790210288470124269983766395705611814695967299948566076371025449042806174983633119866900869962895730690088071366078510908452133292312266778094260065204339473226682289118783565802758742633343209996778352848460222052438764545794078856628828333216374482193464773938209107213550275814941707617702813911499267858129584202436619594229034314831365474837395142456869973678532761628969662008823899750492025692914491056197361957090870495476430944319385207692926371878308893431755219371199805778358109066648000765521413997408172371321054188976481269321435992963898409874365734064116124913023743078127115892248724763667546904328133887741443771217478495882754455801932431279256541121119415812628009373502571117817785946894195275274590619097821667582426556914800841061168067680144809547674257271796517131307738892418128303077708196304048075165548511869245533738067606968491269264952400704433322744459213117944583403609866073719566094418753092536962152232540971102152237351513983091193902913227644562125110963735199684115777465683208519362633009183943989885811256863197126180741071593940019937838233026108743414353740558617114374616771474594266908913806753281980095131993022076954425766479589259989716938901913296120597015446778602512691534953376614714556797284189682317288198178313118190294833258679750280357235026024158211148767871999580729566447002277888067411951985382905442458076756415193648505343075207039643522585601248052155652619023104006648773399634994016537987767089781409016024018486826113995721731390840246309397255668007120508394792570208008006882778121840692256864110034672405012386335012594899339637149631379220522056027600019982106773182472523641228041066068261613670883101140007995653049556562312666526664051328566871600963055491264326491054696138112606438200501599928161983384300632149024599987772564316114727060510910636213112042039548567888826350701960492611557315725409202274168934308673305146248683870418171362984742141270236310325474129100372925394773497097294099597161612754102589690252983200191848074931742589968375609564072618511256953308839560863072865340710700630211136083265781757377521846886353580972764846783048829291862940397148826816130662605823738303779544491725728717695758464397300448113886509049032736321451032783431657464938995295149226807427007608213164862028802762172843431947173828992648210800236800480180133813812032823808526107300943508266462946933299272941423622694053667929772878458000697581288992297997069738485467554554094412723546188864626040139412450801458568130241317545129815554080225758296777433528686498627548059200190322931502317728793837957981567911189503757191662074500868976028036448730971162029466555993772531045064748385169392508904262810033069952014883700723097483723051740091164886131361620136760444831320658089672605912901297331147607977258731985100864170653419017486073079081023166607554192009089033692524945941911387699303464278875064148129483217298874380107389875869538727246349821455929364399008106482227557782591491413092268806786673454285887828094924322731079360662290515812220985399612009966661525965667777799324575276621415138324805604455878871537559726596760835269733581086467682393209107551036009816736742393712604685284959852113717199989252409433188846525367045533764876554823279899339022324566749124842457909110435699819717842232764803834750553450853818710434597122907457694055297813978191151002019276409368144537859054650371413678685736105792520381832103395774419716585535786601974441433534467727511550952116227166374345816042240321816481782055093586138853022648876831793540425689608009689075697146099560025483903652915325824685670133686987100450428016806556747093561946320319393237209069411425017771400806838929218971230049527842694711271920903255060536204151724316795606359982328680773785329473447093181388645053997299984352383352227907771040726129672177043407389674171390918667584067384032768709375999106863927012834701186061407922676881568671763515887637069859983965831348759117998597102221358334340088570328349905810808446105336207873109706193918690214538762830147239892299910539742623972720011976738303813888693609921407181419815759278351851409505672609760621577933519557950025178471997655578221364220394243560694547000210990067826095212178499496442387102677181674564659315931880855876052127646232597253503061657291978632481730328322799195134200365504680964684344956649169726970523305686546383462053169991733732865254873973984952358308657695638387008266021685585124173000541252018993065527982283582503655757848784104734875264987546803002642897364469593669728751782288035703697306865537663740193417959169463737770160966179865106514084886932459640015421240943480865108747922730172530394954021339025763292897903289960586553991759228188523560879784147465288477172360267400613070140395614446715616663014758086161900671472176425030274614234145879951928726680201074679930558239924646676284158654959002865933335846614412128375163945307950296246129140851835100621380795071438366232464106727512142348344498996198121368426270206528991060890818440073757167420927644985763431122409382275291961922928351282819490419423049626411388161154010874873613362959865872261826952987724934559304884263126609032161950497256957041008267193718493599113410421606296712005494788799596937456495135960088908983869552293072682115542471143741420757277721610753818875480146315140308976888237975575552558475951698214099129197258282859226217606104301130652723910605203690418969147457323933677138421749544808983181848544546910946829814876929384271617368490120474088870482161066223135336071356044014168550779695557251882897814463333490548919609837974084970653412440435046689148107720151069257679868904049259083708345273510698791065215700055571171523383504147078647280861223826031562539709699688102306893918868031422987395030527300243455070432537726961256417803201942297298898936297119768790838719805005544481443479297157306601260841707553116298799806864017615943693072688405398104793419644158008545542487950539941241335748445366744541538862059187257040444076027631970518942551412613106003362889574241958876901110739423640740551353338663655554321526288407033897603577515226973710471456126509933498677620372479097144469673819477536973672741424210518016399291247642878683917381502670161477353316565810612247127646497326188353091228438112332324712140091614087558040955807884624792825469778388874145773071338175754395796295708192873603097306280612587675197286086435193032169539164096734359591059210039876641457556426802750074249448918449856965803953320961778259603703415010799038635216362300867123669576406405705508595909110251483277731330727763556707825193070290224525975957318120397460730224255616600751937250797994249093672721567605906356090520286991582923802331414155068764941641238223911824333550128188627931259457038690703796131970644233832801002976017481626811424095892498103578602941367786960343187353189221080599038553301953899830461932286843928855225713400778335019170501750927747866897047728771839244266562547745410581747107496093585840626426545276312155588755859093618167292429316578257826689466940047335835299533494382188185290868527659024090342167148139137904006036138926234448212228185446317936109254239027270460816163315336217932279540528294006775392271293830826452087013735729143463786454976303665804849753305983783851949059897039545511558187722829851433918175815894968235142822400384194651810116027699799562747458435208991710999430177961917357162734033494532478982626475074263448932919907902099788356881064609622360646699097324204374647634445519240486463624305902281352629309647730348562420155485249797369948908033314803010853779952420915422834264339248892237672490863169963770147714115675938750433586977281640190311821656068804685192784386451733515004387278462477183428507099678344471910509934426972046971119507110785888207604646883759660288880915212477082563268275357286137395814597885697001706810842253133577124695607192453444801518017561526256460488872139828766674257795046328487753099160113363260699082051258842310081935273944706895313162329661190507314577453458597305012429763382661636512457176708603063882937637529351587342217178650083825548331452018482482247324066911542604784958222364418939722275659027029754251557817558554219445671833339175837779688411680920732028237870171949851971077708067109475404950321510626185066499023329006937037975004533669866255315613468589152878133312356952130549093611054899159939461864260206153486541254164684528575979844140330711199183980573700217381017160734500664483834184527649815498342728809332023855735089701253707512504232105603157182222737170039718677724942794358649812022514362812123692976691681388938864725422969657192571181763875156634132350542593480441573819805879585322111683145745358562557939941799899992122520088530573866290620224338823708167249123828592879847514489441389038829401593697200932907691613245029988533094400350966568087348607938421277649748304228715052138758961095945704659312153467909287310150259541146661301022512492478745725928787724020477694625146717329340467245694922081974440354555276455761505525463502562963181450615152594388612628579200859983320558666007340598364302762473859448312316725559636068731488109666265670679265297909977331955623374992153809106145023031117273444825482209798735682128949965281519091999310972432783736572550942633947482747371813363133355121117374402530775167914499175677078788252129188740946997873424266855470113187746139025571845234407352465595988215384898224916002395978542353922494992152805141656742006642281003155273202718936662245562379327374568448656001095711658952335953902921176539912836765785619309211637278312589301861984266476333610593081661809953466283236923510895656530352095895250234842133653613705842288614002072964686680674190149815812919439482385619235256456351478721946743540955235253979959704250376847799161655304595610144642189344197055960266535361144555472863806714310075947655798396982374855179091850232070483369756609530636644225629009830212064564941332935397259809119850229647220251476482219471594546526070568510103722225163941769436195222709483088874455203409439581818103000871758331014584500083058439270630081299082564991283335069326192292997369573408767239640934569272813377202010424556665813204489827225282027338169293945347714005480369791098086201755319953595915767477328598965628144517649046278621331214165324016697989909993503547737644080601378559697785764644896773457353593202953054344956383052726055246189469926176750722518810137592284983857402625401530444570886725210912397318643397290440776447266426867212006242479241525239096109143050855537333812972934012190675716299810422199759346115878847999338008390534273459979120067652617829705593471343874477279375359538884138316905991894360128632165313915307961923613577674314024205190961040409204762440610222566051905003874460350450699969786750295957815752033372642077953771765067553394521179865891133814806615920725944391178515217190652452400442728033239937176805669180233001356788720552804081927625864320498088167473974540156543175150189994166390135192330183780611570466628916327022993785069539892703250709337253942727823689345727703577809846914383662982312562358900009069258887500899981435796317413774885573087439544982678884469603845334984765641392962641686524869721131515090168017789281547527975569407105094863984423161599762862073913510759435261556275284212562146038384312778348175702737100134269083809709596383155166315019125300584406079351458665819705789320532809447913845963080131644806987955462297393229046028732097230727256625326610874950772016047799968705080576086525892761628104331657199488977111449277887341996196982951390208955387990058316751488719634338569141018216469923158383741987827746100713314864197663511397252407563422175967958450861441213412619423973716799677241515722843670529230755227505800654311171694155188696995037775429346183439671955922521323858268951748089284874672932046254930828918589311173765463358347297737060714287254806997781369004108408224837631738793399848204533668996926431211155829711714647588527116181547230166144514137945668021353853654330919132657436511559808323766002320655146799092775940803964779399466009940375454334149818071259255719347095713419580986182606801691641371822227748892094753936915569665461130664896319362232471473418975783394678890981026853140124506456244185189958754794567454648721911753260611837500594528908624617036366350122702153380138562839864481117503560819105211241398726052238901398737922394617171497847129161762243424121286757103574878497298848372057428634278129671920850823428988198715529694361633845721073592083828750540987446069006823323245182881561454839436459701630499980149511099977227763542789123384390549568028012776894896049158638245150526588110535408095137765546235178994573518421006388737062146301961091652316896987453510570617967815215561459395210274212157862789610992008939125196416130688696291406798321303899841091327688842994864759793109531976030969908870371435057819873532096046708842562214845626825045988086114449385208651610878018835925397548342479343496754592777739088021506290540912575661018376273649217155570590617607835610952791683641675215174553463677300298480332269247535788289843128552617848896442052561016045095520645603304794870228218764210360487956268402608905194021214877251514530184886799785801145046389339237937404867698914609700676131787121442109807711142822142919647932488960370438653566888115507117291078079740872654434786941102119648102114723517390331427425956730591870151270469107093243101007753834246423533180502525789534605969048164905413753861294023783203470098673031653536699757257047834736082818068760254547155063849397192444463977953593379781473618175835368428620300353912085349166671887432840066475958408681991132425658929505574228448530950039232793026480041998720654207141958503818137921047160208945426950829697348163370911847607061102294600858173152168943579311064570561952681687976018654187396067811198579339376851071432233080189981900464181803842566196210869528647318161379106735290819330446446313111661698427154286676343227914283547672522828822813950763947750041926768948650608684498580849034727941999462150440050006840069185189263572826745601442830365349595922351162168198295623127399216596522135513898934680861414321211280032346824082009784767467968743315480924011234342573937530293157979312772908652608051095219653935728121747071183920667885356736095263027351029311604305683172140950885551957636279590521367474911346813554239730337768983861108304330401238490199317237023685042166757915626892344125381097208120705259684106433096839942127485959228201208267213515512800101022620982346483325636121441305763507930437611273671710412019858154411807783891630807986780021981910136724505683070266653032292590931002396197067611743174820313630574808413261586890230420198365571302249809832911396169205624594328754829187392594121661145319333431917291067844601751395387448883536266013932176202665376057322075458466622680580746901961899140882717115463539272243903491423642694019975887222163958225272882108222833455218886264115260631821154082572111408298385236209428658754353592105150491483227614570295919984690408357692011744227291101658196400509261625741549966969911706819860761230208060020548864686069598020468156888055889107617500741604560669975906158378945091235393477211514859555549772833227285040467669746746859146461131077705294203503082880977088943474096447982654259061537612679731591083822526198872797353230009993856196502571046918955570922745065210667890948084972232677086215765620820336434493575494535521844667345242617545501695034957254852532627883559235621196394206279340543306136270790770092513910163682156859963271237456473424896766238564171599805847772949607596465507684968568279613876791079180713084848330907591298195567816789637037951222217067003028617625420763169527583590284441327560049569085968577815716388811029372912819014897327273579671112141227267432613432618657787947043419740375778950796682773817852317648216928845215449231895800273628769601754078670413301696336323410555167523736661083897921952504678855046098760416940815772816399177374436201964075471567815066899318186512558126598595849628192090690899415835154051990056165946979186840085331405089359977056530333663068610836853666151125401326739141530508032007399531833998327103403338508032070588377319488772997895000020047770731007188281153704455311984780502035484139410586750816358940383606657663951403870877687359274920562073216034226155699870031852329248662988244368513557242542831992205381202499711111587946268837157322855054717358663530577392947904502634183687742541699828581229736873757108199580621378047974223550864339986403342735134488613682372241633305150091867483164257297697539587740906130949765489242083861923744040928947476723329234572177194201554927663714816950096981942791376790778664062867677291652811414436600595723143663425713728449422185753713032987819531151200160150156733215113470758806199298780200966086475347677274180401092093568301288913239407108854913879691365252064637584247764318491369516787787659497381504434939782839032608296482326235632947623890227888821025796279904662287490251173277556202987592540705107160410307760378992034341992432131446094925746991013862638010049066608245855127037335086000045649497374673697388197921957647578481826512379493877999092775425612811155826261901302608811796007454141999214147765467391944001915985309468454606280375888167592843565033297637444604032926489586303171860074711793545667245187235373623316991148542094339287636907220225782204592013341691347867528072513031951196915028437929652592037282073456271357510537367914131282534642777924827718145323218816649986502551369085593770850373486862204915212319024711358819431152163274340940219473091414673413605211834094380378878297816744137634967167724832900523031109273708331684812676890804206711364605206269629020914175875312015286573337023605042296827487448044082194406650201602917124297997356748029695577277444057051476030356748841128098403453140674950014980181657276793054780322016882854839251423689381801261159441037603198842740914776630489598024051765365090744800091210096029250035618630973823922338283730292917613925818086276777198458397783835488108002439031223005647260165994364608251123180795470854971209731611661638941495573992489599455585564885946441400769678463635261176636614220379389849961257485193391131704158682340875425342250551880009059792040451042214961203700479957539282578288829174680659003131222963673972180268678829425294401518356018439342579671669626880830042162185833171244931083049430148746078152755346709995134126382684975227743905275163346960435291239190698753459073191145125043028769025041824458191492219853907459876792524270144873728403553674191964539493609551453129817271803553444357253947203082150522214116129493418625181253544202851335885530644912271145204727080438304592676312658839815117633057424505603886077752104922578435888636520149566812738434408927499147641091168413485702808650221809813139672315768911801451775553613412796588950887201271410550435640188052042600481776693124886371745272134029309066445110170750184199258355269412653720717800936338025636097011802296732610241474730734855738193142685585118751017850526248928512472756125941411163315950755121191163538751072052212797947219935163112418296174478081428599557249406485677113922210061504349117885356973914947446322742050131892027964350115190897208789411918752816388697526059603365427189904532490187270501847752807354946240328101747257793443866152648715436335316708404943604030125193349725491354702969272125081660633216468788284051513948848565750066655591013801486869848049438424738131744684306044221504458542338334349061659904156719900514399140712582990445642577294221704460595166456086083892907150881482175790069591057458535843608889517797757135463045670403658721000040336912674871582580859169213864202766852561125437505525219896194026383425277806941019439462260016962555287595181317935757420002505511064724043530961956822749891253727190401001031446161868447136849093320069649310028196077874800007348695462319957274098287848691036867328739193643688545947060497462082207914325065455696824122701194155362988667128111367321991381561846029911663985231021017432820560837437456587756181461913860929068128098258310442034228172718051019320185814798904217140361149524638038894681767744984339157249225221259068416057371221311925845436354293308678535340871472356959353940011144055939050924849909170984038259484724603769634423047086824219812617498125805725185997049203635043794174382455613085988986263752397961576884982672325981008941494323018227294426791271732111000591854924444236224823420348644985576210547504039190759686350115962992169103438680205502278481650971975702497243350221049834290261566333747944398112017852932578712494394054715403981676806893096559485608743425810624050961232036687855798566545252646852090626235516035475393078947442071574478435779164062314336118650218154485004201789020314023881016037782854407585197102129914293641318027670608871964574977548364664821628446011895391472296052174423623001163247215535508014443883028925819394892188432804187338208020908620038874343833715618753920697564435907104002483579168852327175370523426898336275694265614521485262538284900628205921276451876046625642378776167728509884765582311524980560932189710280069895083870186001814364095710178590161015520461954958424380452592204314249380523628058249968906417252624198537664757986909236900566254689942235211691199300389584908499823636491669120993945914255465510078120262483119624377722574077445820842004125520104788395113541358212638577951593412620398380913444262703226147947647894394632170990036532756966763149344150517018637231575541441818635074747892446527063874325590460970795834391845952284781240260869663564814401596961245108204263340978373958070248891192729823815069720211938412732381613041375675796837926324317740853036660214737126351036298099025627106718267464427643625547749547832786209987523456864003227306176789887992159307539233837102654528259963931692264976624666595756034090434392819217595050574403333271839839722122744821666879980477166667245620729870779608121375164722691794488817396418542503220506313461451314862572294579993759418847527812943531095045271824773177792889494014577585790183360516111492917355935008103849940602074404709440598335996218097849906540390066161577813311404197832969789047092866513095636230044183247242714465178619726781821298223517660585975326935547187865770769276821734953810222738802353659411731329751664523797645445600374881944140567791709344437683859043988976655436401735005098147624298437576960820340625170197148127671324392780855573142127521606742720169838673264024207832899147987839214475078190094866758567581575016243826879039583309754072218269130971900267753105621112187468325965614992185410177501710993197173367148918982590795525329765020417611444861400723160377306540902522493233309161518743203522161867059332047057083014455702146975513653854165025322491738421540375062942260694692827274644175693777844593408900613428916954452031791633275400333070420512861927381970773902160566566607223180019962010541833734482368467051166890396959390353370268773090537730204387668216513246288750039732558676124504963197347779343460706669581917241436668534731235722433123548022333705560301937277438028224725279782169116449104651423910533761857662491434745683937291785885758398991329502233095821273489351304293072687376398957501187073379428422663310148361109680462085046774042905123438052866078574050460553423897973584606562092808684320753213893109481119787128315998979041934652924267833663255680645567582167813180379479897775278513772649847763486500306063222910853643816822257192247901241999933901417441722280519237014249791757364366676494958522022596988627451480297238186503168949834197349278668496996304960214899077001720245902864183516366878507115822663539673281529184929739481281449044841278147564870946329442481250568529653662044623098198016633790912353390968808558505820444259697841248887472296384240135404675893185775555233310164367926026385755660875682286204978364603354660452974525513584577865822513437302990823112088954908868362163934220530139196471842291368125399341757971232746404070020115770386459712731634786374139051216561376430840589689624178138592088572721091471588525371777842028708725057706812800361687633622635969342762573401513539967713386467801912127337044396513064739917341213888768857910845993778385227825153184549150502378896116347214203927424792016498417307695952619147572928962960315322694992097711741048491515923796158386156908068880939474913104383619518412170246154617821038116780894626763469962826762323974531171532762720083512498236840513043808344246155198965285898425860233879905356236298096360146633326786359204532056523769639236022466518315317805654766439721109813128653597335894196949011709536495571561176457745856791312964474744604620774058402100497667659098835794196687932986416784776657384262437568055987533806043855284461763993614144506757856277700841644217568020457706965608532887690387268095569154853425114069421878940800246662727424419228097104144893146581789707910770945924125912341535197499575055552931596368427753655599008708864336126444224705438465808849029423008964496675725475595462566884081951750006939780146950451788605642806198672465886464536221108526106969491075054379631436562208298389028377403994268108031338191989811452094009945620450452624729300682107243036854010155318530899615464530238129256341580708748691467860998370486426017756024179534762125460316897656033202802644345937535474055303776718903262831902777838211696329979099531727840426423619593554507865541551603654349653114019587526917877872670840093171127517602347630008612223208315221429979501068457101908606555072291203663606086837352060289093025618300234743029395239754765464790422836174328779189680614048347907232303390003882042666157377396477109993506964888293738683706472830257528329761529845518623196953405880131160173183065144325217209382595804144897136741001596972465766947490349101851048296223882995781582680618825648075996944767531760928655501949493472845809652247192110698645925332815595671127302785037741056025294395946726751420088274003231915317300067748675060767957780676723742791340027849702056519878954341706723410874870970249181788117472015692688939433843251509307268972900550778794890669165989126317168092017280454456746883425619941708445152412929096867644548825967475529457028781255558215071497865608580297152538281739602892451775347738177435181846841822571484091909087641125193431733967493169892038125970988194351519680409735081609969642374500155486874004112366406506009973887860478940924672489027408062653007686536114095217636032146023124882205749579720773693739482556712984503261337712922083915195171379710338663585387098776778388050952525346983042687056153339751324719581319457571888781681471349760122749207830936707167814930048931272163864117752514544050382255712623741387484551004331379894785084991051686190111996476011481923120194654566329133885238638024816692305298987895143790525691697461434519864610711391723351830325883434103950608514294528959543516505824344932474160615009843214040323035235770914832706527471620418493367768551106500451925195045036475882517494873366721324544650973175113629996242066451925643136177285876528548158955231554061191607091115348999725739291391681804139806001761362203843429325555326429618588828510656243194538226879115540126828620517409083918745617800859097204748450817162835898459639463067188687760441734162283739746604709661980263400267240213347658164975264360896082045831043232334134014308667625512393672492339764383341756236516911921751193741616771506615663322917498574127683700704922779283137301658524268631048275031243831264161756360227228475273687170799211893566131350673305188647522765128336220457910958985910971694376520787490409558385118901254928883420152404085263739521693079706878957140143932843625826765775858627338146208220107033986296835222332400857149509074375031323078712481405714892208308833243953572536637197577921915503109491047211869979685225427679791312981996526467475193592520530173446065146946565487215856965362257465780882589251448357201483247471043859625240460546956357955172163496107399114392365075461640012006866895427037552039061125233305575098555258586282068202461633893579436866539831102798179894308484211201541401060267860655362685388856286399602534833717115943821684714604579657350699630864574847485083599208961274958823774194809261648158958840144300337281794832468414470803096222146050332441448904573887132490870047499322477946897179696268145223705526425078472628972493495521397030283352184794874952282470329402584154287740196402089450114334201989769018286503651157404259407611033630742504617755677280811362580234758828973291525403367110503284922665339863415581920168360110493666927739164026290524236219879149271721812915953605370883337391569879773913799515185664446014864697102779286064735471782086997438759033647989121611559365839416405242526352211158727304571376124131998737278838024238975562893578603354091357026138983583921143927559453754469038543717676616968360239315626211307605068753482015673418633464144131229481393538737553750638847150790977829575070447158006663369612721696555437189260202679134611280812639228999514762938395531697518552833623910123950441534487344068397678410682073050545442819664934505262900252549834351980767641536732865443144284893774822430974212239660174644538946928329109918861363150140197507947532405324403988590354693620205571884087271722112189872400069337630085922692575736517727455688129072441811805918093516559841233544023631117236906284043213071942559912070368983760201783620612777088260421628917948330287240025712646027716601953757097709372252303735782983982213635048321773265129159834393924532708650851252280179351808480213923958111937148839512025808747673664044502608497955497742821741823064510778091130471974935130470778526881539086796548902511831430382179069693566244137576533806369754515132747034322286225888616355842922748868801757684746883556270194800037884286714851017058119461831674802977226265595900413571218720233449939173398198923186193127984540057877185297081066398888623520928705484381341311128287147483558336213500235527387806213956150227782023899217881662099833512241312216303242186169070070640916725144631728786473418435000789519540639214541831670422640893110984105509629647565481055922731866752971279484606269156380768494327842180183115055942453810556232032028238389141149575284743985503167510970367066114093582465644485735679757302217625705940246017032230473436647355641214016487857556546401168091352526171962244949639620178073624630243494137328008808579216553045083567224946998526865410690873637129098707605699409033151279525145458905859142764990908941678145645430698230273952393342515991404423822617256805482864074053228620602965888211123987855323406443565283835467258764809839664018957310468398311095318371888899639484793554508180782575293270673862297504684301887614305013456313249549683570964094545503044535365320653780055141341510080784366449599862294983596211714862343076749191287688224488865257207387061366109343681319486069480764278108190875226446795377271102918551674344722494101452230234793531379062508821675544143684399961814375075740593808466838612625636660961166480732671674210304072141716212860794077938893806671385959936575052107103192663067232084820312225973899062061558357996088028532615887850885715974924128893751427804795605433494092930321363879163334864882657050775933639720559548682825627348693406692743643158704757601076988171927531991810547872784438220795662379559078600519017383629187753351055393779484090594162429239804378176108777261244692296215826629700860740021096873024498106269694351250217909560134837558704292294559022855695814485451006617213042069815263647382367345479781006350464739526071392249624460046288755427592794585161473262824416534067657588309236693897908019130095192490830208298884766388648851871889883748183039551644118496913080334840140329847311691112478276476789190227219268579463842219608865180295147124543837718743804163757339839738614298718219343047267355613389371682662951532339740187679113613104768426204995297454218145979931333246602188075246257516801775417512177644495922989629865070774154281881897216210653332514486484877711519777147711295328728048028214096891545378720832307564652410653004139720044618098845661459144906645755152502993506494856822784734625345232400199692094481185992701376598030882265853462916599328783221662912298824720658386521134576580196439048930161392175892920453451558921046017748058501396356988166018736159655222518327800896367985962073152122568986210665023903785609108050772304162880911964791376669932936379945616750168086827931130562757017416920020214347667238881124323670769047852591940307119669289417336035524612544858799124188679170451813182575802632986108877818693906495633645312184052035203167527582269639902745753475814133854874531650948167547641081000549669873574419567807091187134809497403965425785617856027876868293819621590693321308616517024454213440657479120803337201283331050001433715942715117922737577870369943629805382696406998962111177233813775904263297140153146248742055300124892946409724612060331371003361056614096210560218673022756627173101182758262911834485406167886988518196994963248291937689690621108052686944727364150625139372168391302745435693404753584491956172941631020486481987314914828105132072232599483210611964843150423821117190132754111295825796280834113643892498899428878268353943717403359337188141718557796847755395445404328690387055101158237418718493513700084316606532495695594303511407492144072030977795600509116910880603919702571171206298435533860914137301621972532350664030228888295646544527370877172447717422453356665990443492673082184765782122060775649212328683835945947248684659887772413226426817660753210644140645431764491660614822406324992337750374342679120160341123366467054612828907709888072877446137673183105686134741243239869577928542811773995001301177145634678055760637190733574709233427923997199490691153966409001321108518061159211697013523301294050985145968293734689193022374452199308368550497191644038549697220725825942467370756091716785299812866831725917355122174788873260133932783345962846738644589332264499906618800343426019909321886941526043376861095160566198085707708590651443013205735620408446238404897642139208857624995714384471063012689549735255972392423257246281498686957904924023168090853201493567173721840789392490518424819943087805149707724128800965268655384400085438759957301490193663892280603112596512537232685208231617775099738375018547673138860234772924871907776630174750816313040361204256118228797309491935096509758009396401148104376449453677774437154460911398196436157287282880049746280252225809613984123568642884758816741267063336635624566706442670916811637961206663571775686908890228118863184221360896008455542775547313348176580805676472728454792003657513039399493187560500350697887408769476686910247971669158011678156618359051362302985862200804268132018301913590219359224568663631384502765148396990703655944337286105223287171308500143764101977519647255489328690931497435682441344265759662456722008667622298031215942498537903786823919700414080756569991481879372081502215747774553031441806914395296785160994774654811404908157984856286475133515234128469212532208022609328766610892286324748381839130644879016944990467332568351237547631050775945474645762706874327405782602597362027342686294593480538952672148646459624356058716521490076792811296018284741904882311428794199854994933465380292319855526765373432806165146275201074674429496922447575432982434350494959016700798380397786427023999006368706882492749930295189194093464464027692806951715125104478190758955931225198839629682364640590440228061034075372030961313925767492916529049627813688126724942309880675880415367184053983435008088178376364192405118259838070123664621778284811993303242603863343933819269036372719241637511354932628184668356813104182844427038502587425315927121607197899399693654893503107894121943036754571958702369941587514073908186897830327461835018876775262341241078582821015540204130793088028887565830008648563761901160697174297508991506713943498952023985912026070493052048843987979731976404798842885879053815639792563343331042535049228446726662639384224528932865566042675055454773380076404885725102311942804579013088454217871708034700317748156022820052491527947567466993741697312896175650520821435681193023454141949730573820501458092334634587630616979066367733324095049679790939270240914425284413021798654158193823340389278870628081678574923424489376973161072970623078027943580997699220182018478841227476245805991317206776750497704189449215546006783762086745156893258285195485871138019114521472745905155563995852966724416357921263304139181254077138379862158306626273933180067710212860025547151689572652492463058506935837715354443407966162610379317270917478575593842491788798410716640878237363707177558908307177765224372976935999667193753238098699873527190827688510436512576331149921064766453600076628220350964941970078516715146745269727062495252350411259667549806346517612105450731534480690692726141536688161744110728217459215254938525544905700322757706638353745338700407177390737047876391643383933270638471268148636674793027947610602742329134055863607296385648311103565580924467638679539527705865191482990948088344444121255441819243576380179314489882790529509266542370232464756548026924000433725339682702540463942661199706992454694267444791141161538352061338702261190025461957760886661272802934868167713776324472900225245153516564699470901121927358803294848704947379528317223310167011301432654365689785570917325482417952648028222945714664373701857973067956023461317127555487440275793529810349707641938846451353446880882449715328650641981441954096852231411098029575646316933741916926073278683205969395466800314577049464537115119960369888443005231021016894579455468078629358372069239087494705149149251276214797386052384021013505530282229267648054045134635951155828167000918779120192748710308899751589455167690333876715150931251036821662848103162867674710973361095631052243665630889088798547317774219790817479438913508609954099438165826831232412712840845062826941870689250104541385025491497865259462459309812802331226657045923203848505492166120674168875678721230818064966045298605902127760421940509171803243238349456229694336624302265138680557380519858067839905313015595867836069480223056220836313181138849902578900314377281921279203906308405644512697340952461683520601527830803767537870894526209134751261365244549378758540436727713360564972175962039951042494353540870599355127190156176124848058892181239697718675832889232826781091614007253276566469869453809266620203081416370672096831386937560816583200501685449027385977137326982503777706674993083154086121806889213546926255667649387331189911900685759667092869095939849150333918134892898023902870950291839093015353105838766381910839142223907642488311189106287989793170517691460890053948993793821827846958193035600031815707847340586864290395578581523122246061026007920224537042696640809136426602842493630450542892835363287894700137998681686350056771661117671355345987008311505527256818260348580991222920838787628870467319106818590748255839990779253431818884029737174038666259697389161506850836604794911299659338745290114466000524880945084151772212319021817881500850822338689811618900926035833136946687068586646180836237031184841402442467086688466249744981711061320184132877398627046659902340170670971697090615991440827026834167892669210823217560294053394217763880315142916986093351230203696570704659937553346806670010181892852511446694206023333380177572909861704061705301557405796441446466009415519571158506998109090735850391923202811151072779510349718251106112656721021589018935472572105427350244470995886458096856114431037616350931064907887677017167400752341011594273345789985505048398543167699331829191162972924771075714910620287427315956088159377775610812993882646079759764237066865336433332860048464700357792419549808672074802412024205875295359474885148655704020279616745046530103101459450611988808425005288942262136364987472436224509944045984711166506460812488354000235895171417334289141568299447040487426122653559198624416807588859407678294293609272866000794883301456181629458484942488353259367314226443524592269685806316689162351270382018537681781440996687846393352920733197670585649988114462118764656376307411533819171408393624252468475782257632922016806922173556567528987576848833704208871239561364952662019908612809812175810710234029352224384510591484451249471806325829163848462060540572008262710237299425369348528383418912474147976709468733425297719862666836806084369126093869583935303780471867707565504450649967685289556152281108809535866761463656231935185818324782759965748490633631629896614675935032690731006959776948697613419296107808434640919863407640830406254251691858511625874273942031672318633775727067460139590457382496352685587914581331444013109797521956026272079666934543719259487053739473126375028261161764433937986834548548060482120321679820912212053877117233534616080381782308790946355076490631793511130556167076419585413683743313373711095526426542941685414612225728968876031945342789502993806478477304391186371989537697499470874095673255962144701781297974552374210167004174688927165691953672590917085130308890032081452021701065125785489867661636581176744387400368720728609751835262177813878811475069824089940528896433374063141268051444550751796850363851307096465447261273307728753996863982330319896061686199251536669408264053513057816549570150440642198695460242626842108253065330422271564876293119994890931005441393732493539542337246613945168343589390003373257664349286977328536040702213619092620111094978269703927899619561316329979773399577616709483516244556751677011384169263602686347428986789955840663928163952809027417332258097770624445610665153091493060313941930396080519526690580473913842211796433278223311068185354611645476597978820936073108277713080320017118721888747514910346781411984297379620540637357341048983852231498595753548897359719223854664132696451869034081727168023252164894409366971870326976754190051253274100678651496201397882618221181702886310062548404573664566456778767466302724070767862703945630469906940298332212131477494384013043439541246124537611370253391087585086698202833395392953478926498251062488414030240445812859393804694071722025446747134445214158819109066401993401929263621202207478793770785529936423577458023497101225532115763101581978461884456860301878166034751764980250637782384928693072643117420214097817144493400765219433525930812369949540823901925103862205605337084738349310383662218310046809873229353698137911270944838393823174615515860294342629255941784250196835708795896275825337161184109749894808690293293616500351767025306968679026376064268941867784365137502578828938099818698343500792497576322444607242012388928100348437229021169967203822330051787811783450474988786827373345216451234973482212103517546266829682239827795758296632094258669565080867108671001282628381490504541664350628857365506766516523542970646678001766686127220447090445657843602265067083194032507651555614484767175145003561486961276883962497324436649794756105813750203782466500483430196689711442565759248212833599033101479198080508927793106037169441506755099604149378807563891200961858370007647611769243737455933124095836947157955620911689810937910579267558490939278733092905006053776392133073872951411769882197842159018010495370825150464323317322898047273348904645586655672818536605471507730314106534040092750623586689026814937952743846286323445279763400260930968227850016094836337652001637852812641446045067873987272093638017440230874629451796509300946873942934786922285695698774074428348710810263190002174569052998891313851310629248019511654120151902001853308416651397604824674349401126514577209328352549502714622532002065806321397880180712898290540044248259146156254128713879702239870911602063908198123421141846950089850141488095629190361933446088528782869600394876454721264329292359123713476028581290416210243043019405913108725428588667715975026756781373553102294983271020246813026669932943274599403783350338376460088399213504831243728416567505440334998560646743933754847487026579939564389914461250876511745528788399840834494109107766831431079430025605432845555998791810334401189520494469762193424485165364995468004879895527419604593866188160388805674153173509442377909353771249715845336870566852112153370805402113379012003203933557592602438321542802158993307546812830143996094546099114656207587705562808230495536536665636404881383268824747246125506334568102811409257048685967095698621131941855112714975259553726434020515749944126667579308123429791479013915020200655030462818181983667364796853932421176184974399057681643370915386245749567044809421593125314138106263783449247877350132235474742179334271434726044587324381301785319729829326847799426355893237253649823977837136181470537488511422886252688677498364975992592993135346426337084568720705023950500418748774634197436552776392596581368773141167096560827132458074662761534911312071436970726107125469224648323882796873863701030194577227003001392705868627235185644429896604009928056949561016345793444980159572561926201826850894768654669768811246246474616900449017052595595938271836491931735260610470879788559913842774402500119324773357922135041189260642225625536369431482454326706336036106749906191104562842019594192379153428192209875943866917212836228271490407792344598424757491186579795522869905442163047714244114575707053287587601522434109876941945375595685083130509513504714699392056943510341584057322886977537767065108315686710587822037454177692132561104193694223079564615003066893657039216846655569016157756688032496470218965420580404151800290324999504810206306829620256047015489455049100363744336898873842773938458830368998643945785755168025474253176401374753682567732003189521841227692543359057256444177946229158289248711613647872871690281500736387681386781460321170040951501867232423569083286840596064735769028405269732343045956393098151099452218440203245723184067200549937463577174093831397627085589613108497441127972348469921471285438493892103062604650933984079363734908959367892821641907158614229156386456166980430567379371526372903949690933377772057427533955206706640560392217843292271487022649295173420203207118746903811670212247760848646352581394801018514503691197309078711061033927388978732067672648153702124387133608820414728316976149983830947099193774662870660470576358699249512533945748285548568660242109355529522961670626322929684970905681673939146132107436613438507430296796124292063310052341292843800865841098132601959001536613153198819736809687156736712903693022991452569536714678151318169965018238740216201166989554708863597616631767666793344924288296960319395215588208840509634986338727263614266289661849456307755036189898505188972558857921680527983367817986552123574770200309225309288074273475724681236677465482363449184237605761805198132255492689888697790293606646621795517879504775324217603244230478925763526319694481716754099149621550389900943056412122254260896499801664994795875694706259900117646461128722080263763135059536448291628166829333192610695233126349480060774413699680671764894746586216963439988711401119693136091195677354776105905468165774518897986388781260800522568262317488899658883370007921154460740266764455352227976117040665363258431077952052215654746485361158755751332796501399407275105498144573184211741907350275181223671021812690746546125355332657467291355557355940570212305912744572686870595196980558954860639617578364867921736411154003800066980883564740436460050654719519880751625150160749998541892984524468597723426827093019201957924855912238609188841954746618467733911850209468797848561787800385072300638065135279474006266970797876974143254572912574209786792057878833815398743045360239512682747909743015779131851944563650424680614731888843696658118586126637674882994086478100216911930404594524952792114149518452142803027054942682876642733682270986126626304258753024330688085670804467456037642611843672655549761910892784975482787298176306346911264706707618057037917635618521183248048204379361241624056569017251523696912125733798869867982119176564224638954032003968885844012631248373719767420076097258324398635797392833730251445877284865789873804758179654723414073043282113875494953050043345795741844679711533962410200811892765329590834127360638752823179602605176568771276054460605210495328865922495947223363240096273702625804780149281827373745031221853419319062995337647462650950858138428131899537864410949178998244415369309319218931491770155322602082223215723862921827603920375577708211060250739348315368863517430144249790017605705215679086284548929503269019496544826781629259676242361268995579459286874841120523987542074878799494615939694365539185545711128296093637034830501064116629754428775639612715474540259433340678411775684765264020878187982275673300207854539068015899684442438364147283033649975027665672585756753067971245641404930781171093553893056752912808491262207364351771264768601258678959056187167187323008094883208699239043320124096838520845645774132083897476611696500294630293246788960086715347694646451827360061371593802946431915062042200636536371655349829658246107939965880205488183875724676933808610848250393805179222043931488377251481986141454908495744736289530998060899339714121552923039483233367157561197315281988817888892489606361684770062761592995501122661138227942884593111120886304220676067486846343904260964796792763019152688621384689875198746121589535621760120472363855449962447157711864662406418123944298520271959469451176846059800959204590768804715015982209515696726851314410326897014242971949110969209815132516643159257736322732506679948418273206033829628854441755548908347657007698679446734035176117178036053533945181291207130273916004260099257620943740185715342406476478226497329827178002822344616005410226729445381140041590795867830890056329034576674606859439298442339834111535362625314385471204931081833114443313197577512934833662490356585910432364902749736983848854370042036308576098202470182744277353967874840632523943922236200717561766926149255030127395059772689934387222404876549962632210915384744187663386044241114516021643538073519283768744026615704105011459149489463627864470563545355962021394162830906347619876439627574317173841438976582445593182377574956006134555020294050371691601032054458574828837214754927539302966467355973394380762881821195208978365815518851679474357163292370723889752976511186846487887685015912940357459021092900137344679129648860109265145204258561759999114626285540583846578850886600426320308856413838111149985143441098401214021047839184833165971420882620257309273320768058921837949704786807323458201086777697495635346449894038640879351642055663106824818797459930084267586559758345358993469551623958500212273742938268515310754882697603719282302419163517663211412471327737339689985086807928073993853828466416412124828385625132504939901879168391011681925008361422488584471609657164854511476280643311006199546251191358337192538058377947207411728012211661463914597882409136340094604871476866178806548537232439115968448022948602543654103705444471504783681995291748214489631625515962849134070824687682319851169311783805077254557487957338820685862115998194261676753217738365502216517890629972803429419509527418959923785518583871475440302846200693915729870834572050054508621016724018583217045209259642244017676133837604706674405736636021909269308254253160775574402327600174290476533291738328061170138207558065533428377149534127147477624436105844005457583438526795390957657478750249741449372609593240911017541610703221508930919802464351984813863252411679415037282103617567120511174494193591440595284117348458172989166603297851281937218469943340343497681974467752178097953923786332216197942768153350740657455285400392630945719488941700313299378929681920439740394422802846016506157857312444344983338516149973091499933370129603680858573586139656953732378460006561931323037226703585566326732496681131287635815863844519050089422610722479908654040350199731961310023229544650915535721304704393625344826212648655817967863003829041786583508915830574155814275533505506361239936193848208782266947124171405230970728275271906791095603757162638594942919600532783314655309305397194756681265260527999577569111607369162243532075334045415795442804005659487075748038032223229633117072245726632981741661621809994080415347115421433957277297706611183027158413422900413324785609315692648437105994635024677311248578428885356164573067984859560563771810537054373550557034040060593744198677566703434237850400574977459399353807082019585754496196921206817256150308960004340811776425738128723142911633670265459051067820250307211096146822724123880212019662324304369066466528344117495371369573799359383907581903245924154104977449855359132757994781937750251701129626021989278211894881408720137299018547830846016187856859400298723276319685028576712752366584695412963998342067596251503512745518188795629106978096229562810618567797846767376374172865454188553393694587642978228137978148013262672289788446227602961168260254759440778288929980851729613011970718752720071839230273871111773631462788881010481557213037966525682303768383325130668061518440076386439263583123311313039650989044381403464128982867555122957565487423869465848219960470335394005223899316795023950283251292752788902657974030253607789057530786850202322160372665313750537069017233796984302039529094761610682373160370575306714889082494115655142069827355569867608869434765690320564911544847738510854747020147864970631098793327523349038811484836474186471807562305316390367442378662771468993487528523154268632563867760651662237383203052517558100425558044820704713942467266454266581688796291870560502850119198620281890410637594390305199097574543744348434470178057578750748350192730319496071252449054923254398679903657782686354654249600010240392857490402075879192324435199443672183192569522094901117415012854653334137880471076844997528528404223193985132909084875867398433222173373136160767718416250694627336425660737578624407154388758565309058624615883488395620252065830927109644549948623644568312085973900753794598505714677507867503787297477561668548260336469400961529028340933855149297443392819160474627988392655215978703692693231243636288484071468133649288877302265283619763560569591014343909170030276832864935620773366388319925559584765805747111862470697951634340998075738532211662534184927106459541948231631396871881267127691391109834173727772928735443028588035801639691829141120085490550889232715021012120637742037647842469396510719573255283983144434173638574803437626056426852972833272556330676104391637549239356063574741979980520269366836928509814108874230505473548155390352603168313719362046096488883510921467676590517266651890673022340542566560352503712463960738151771140794646547251409623756405186326137456416638843370696566629507495117557900589918700600650949051802406023263801249848929646039452820223744385450778407748990288015957755529344855621005388304971362469909940279827553860014141235333591134441633170281194819845076241569089702696559353192000341095018259688285763108619317101277140613465989290226646937664182101485134109615971547584179176722592037631832450030867003964595601767205982003853456278226866336192843839056749346450781745151717174380526345856526271333531727936051989163930779624099628444386528297953255915479335441247304067553190589668375917136898043352417723501457687126868131256322556768379430543030031268316842222712890851415053742006120100134090719730441011425115889404209003813068076430861793969502563709414000583759546127080408061780364102958006438791701953234527479634240419121714047546627126780557017502875201593562897591460345425328741589119433121396940448329270245447741533758235465659495979069760760755701229957123736076184921323409884488921862412256549328630863416650489643791717646338607700369343974287517700543745764420147304823669451079152970173917589995740229705230199506796338152710047140830653086655066382157335010279744749522568168618157981024978943715974194482575908142733687771018250474988516404455324085658911485704603207149140631403008829804867203228188286130081720859267594852828352822763260222749103988247324106634062595099272715821266918830315903109414189182444093721505727686511292079949572407725103281250666002213100934329890277283351608633768897253578115582527885099905902538398995202843143758011214684424102219040981915795795368038587127224455661953509970572454505014287090033568987224766546906971984089116235586866991507049542472584647120704632859932825778065861280705268922482948863704888314158128371592971872683738388335931967864799997795006117539839808011031821248098658938332560916224270003460086875407732255034827161468803432803706342874687680374507754694036099468900873900078139746419047830561882080756913057758296100910046709472257812225532118704627701990322041678824141251461419186762543955948039375646829470622088471847306877400491089973029979754144286932932109416030474212239448884656194480974168822667773289756198715951379388705612998171639557136095204454255359351081167337804131658269788363480768848577279497736471873278927568403020329855990708559249870558274162841376108195354023997672858701509801370782174359265199832839317205246861286877419869125026129570568225392865066856768679624686310520850180239330046359759092281484737877310552417360288073540148429886322456724159121582213226848440071627513680750403663263480942857483490776347653215099665776118849078240810025200473554343925470880470391300506529326824646882985200522966067979045763942505519616660651280002720518914189466138136998437280952947447388953824564257849449351238276933063370177147521023591390144799927290673087704365600321918402469431286213948460820782954291876363328898334877823701326210604350042840826566855530007332164708833381059920343338880589627050809561409840453062325122627967297035463372877475150458179166054789320514531937786866781871598570864551286727084715056579720033899069749793597469340706885456445578421033424354978131567886155087938299456983240088989830354400229225552754464826967464946562064735894388878898424111626684150050400367466523605548941975099656988444792833750055610107879735864343109447155889166741175809116410217657740298976830405030844444177326228909630367259179857559216694983866032513486627615747116476726679778923317375533111770220641162853388034520234435569660432813884147610827787735545996192133738626522255275934714505127459255595619801377511799543125275975407843649656759275841344433140265334524313865813461010373220441698823638681408765376683005331850322132383448761219748389367995384752659995065587598500233705399196769962581528555206339474244488576713973754565856506699487934501938980167594042210468588584112373198281847316131634080688741882336980601670298743584902285511161466169633210089251695276170547675936376071353393650559643156671495489198497200913807555592745548806349448023907230246850862635069282379536832051823477964666595751214161207647328187500465606848720695716190570415208425916908871411602218924451578443340587240087163375962271966007630574655423809003676449506303918266790478620449188499142751427269529318336152332957866257523310259273057784861367135560104510113751668778488487274111384584013928949618967684172589725268591948161890771878167023546122504722165726010845604238738497511375425968864376519928355245302544367164898471134043319464721831643627520157715305010095916855786309879295633797733043166459125891407846364648076047532858973778116806022983085343459804217865222598476142015356840953882341032132945336561021368473923665268034814149215723072337932488947079134109624756277557599804522124158322417754287276186622197756247796895728433115814500647896365915888878254505274454498929246709545438055735570363565242034650034908999405147057872683548686154235641677502861519750581513470589437885647781451778270394494060545791301332922092292675316540193262909850096478203837719767434209277486103207477308765363017283939790685171215586300972007845667224521337239387222390688504493975072391453050512687205111201956237329107127578258812313659340822303487006385914132398527487203302445262841381333893498971422340935778390630329776781998329178781917921808158653901552197842813316022998573996632840158401303982988504333169332785857933880133677167189507967532240315512162450842005531760286769835422604917168033016887544269743374123915851165056339057061095081230016949097453887541494325626838592249757838303095250586729370630763731011989839438989284229855371094946983752171911959810110962006506391359521357225917307898117471473952757247007654155247911304187888891011259273800547476979667992823387311418110993786646400751422396393140203265869136086403375352942049068399434056421591403031694364429858677604919027808798728921492986234847934896171791613640754567018209821164128325290802359132616113480375933573418344932874469809765207441613829829262494813198993522504839451652866776646766188207634681301783743815201719373258056155587429243823003854001558345131372457926936104349575522333915626332301873779576827858465497548352779813185179269750457005474247154896366553666698526183077045069570568994653417223448449083024098619659659844694189073055630243427500237580179850980934154178360446035086968541986218615414661454110072190430413872798891454959658892652788231140788270301245994968356820664298543910659453973858988283196324358683513818629212065752572758210806173938326927700783553147806279339038467445998399655163583362645003278854726012396279061640044845600277691805344643747416625450965705475602027236292321317621278383478921540454552917675284853425514507820573307671150767520181137981828185460030448876235059116262972815686631270581324147596176492390902632630118784330247871125085386420505387280144315408613737349930793182778214351230208136031876411960135456891975192474121794934474263186220515798982742473363882901855347751265183830146642712231640117709761269553912491133849357656204989341634536231585481259608928380080394132095757476879367771217147252086584598056431317242595035920190353699045625210450436887652347387818899349951325349805228865710041427821895661595781565791782033267379731678483032207472930265817053707902592042274540401233422682507032705128976425577983761144417296721777230436618606892204220504746446808385766089587454182263176017001017497169409106338009355213575136879305247267775222647849132245782318739544123652775955138098641327626561243705357027507565581534506745460873888736362477327205308662411088817039690391421816776335298977649117333756439945773731433029174675075225021814100353683121433020877303303600261152641460596608368388278563028978868670018228216352731727819272075696035626498649907935254083344403392577372596019902675673396405134362740112579048150191772115490344671625078990651588161434612543570184496926275510298044386720705150474905379663024178581269961437351307133370114195989887567152823834850834160120682355745194468503167720117445780241068516497435812230101463166507963113757884546268084002526671431826285605430558734861188928162574866463454172121301867125545274026120157990226693904259988597559953182784895902827965427721804339544886539076588990089856177119974525659247637108959361016049732598262151513533633921224389855436486988705472845956668679007881750038615198744508205473983699539286727327585593458487982479579742769679698206063984451619063375789911526094054262336454708148421193026495314764114434663843174933277497771375506177487060261863782879476287871912816697328983325214439301482594376914072505414080448933943414748599081009427575169058853573468278438233590966270409543639381097047105017451589722053482402055676431628695587263171568820610880115942016994156273035972054675420878004725524506521276081527828251154331250410155748229999837037759539277234190660575287006227202264933559879307788138153379137486068200826216632356649748628406421572111637729875472393338035565418283494063411950564843056816834721436147992020224358344476295109206467573331180002954904935668540529525554344383079386999505369314473203323939991922549770090793452135073933440349848379044509524367455446776599112930908913425144795913656293840853912864635686226945728273511705949472561066234339586946266936336062382922696491883223038211018182290757079350090066176552165092773527249249149714360789520577737423082437054960868945170134163671447702396821549247403749989424696790669561009597260287668408818770201020684823101728561510625215211197303745501278245795843379337689231730362639886347284744529969836197260102846416146338154093402522927233564680421664585479480235350714747038468457134374297643574877239244079208683714597470965251842752871971875498854570433797850305365785036168909389810774665985698158183048338327128723048269477288527236887624651980248457682093831124696286552943596313180364497299344053443532754334503483186729001747404053833984210827242401497200770388387719730399667549744695340576204239445035649309521497001370432343534017084517482306790935491407485173894684448953235407048775985796904030173861653454455882866672412180131094688227000538006854970798415715517050884365523895407334066826347227417249250745100303579486963972890597147686824566857043169957020581358712518126573729169219083319329652742894906873832075681253539796878935512355108970239194472645960479975124462381210208225653002201345137645543526557611862588892058718097081202552145688148447639331274575726805686617450007387862880201120885718959270491090907782570351506239174093398175656684456399353607768970041986491849218089747138186585393319862440848339853216075270975146525964821032651358052365337309927038526321148250736911424906941015207026466090571083099589005677112566942858789386906857471190899868550658618614385107578583690917453660918167288097087891992242542431070884727072532944925340898738243839692238705395252914058177588258778989605792302328168740993467604803263958029944825111210429508182375228630370346306231440158237393782625831207101129978927809932120049023376680900758856221154278715331041184975029840686433775040422478328248532730465407348759512327068738825891047175328582633382823878815341527375806024742800786796302443324882368134507781269499942274344222727105081474947517211037049101626315111523732231471591396159884021605392203041361038669620064273693647941717919189641365131539605645812585469363479631131005162949038460096794872545494966570696316230152191983621935307767960034151897551984924590251338930579901383197803543079848577117736320280112727454206250991881176745534905941858088931557730920377227751386009625631108787361934405812908637985205663380743286004100138561369025999923433779690279504008501901589372213160830305342626582622605851639129227059898869319900128325067518453059746633436212613528118364678209633959710200951444141282991221519095261189724854927220742844494685097812169514164653379864916143592484551073021634129765981177842912290729433851771258990482802002139040557176902481005173077009954806581423986464055285599392481803609178976285999762411987225743207335761604161227560505956348597114031801416165779736169447203553591446113350208418121760374241807201499167552629093390188674121263463212670477198928255177119885248265293563226371295113448891594067490962150963674133113286011567977645846918302215064418800153379249466795831109506029608604942716694692350587108476259498435053578698357394434848367794179987808317282743413025114034551023378982113595962243028460988373816895261764110726050816111224818228042190308648657549263865882591227675487139706160025844068288079403332887344267220357649115338043078158666428265755867923546332492817907380106914881461967499503926417464130107311687870640932928717829227378058223044980811789560018715680622263140475260216699666997062612935812974822625994220946921763504897952107799646221902342940011636207975210650664518535395883111298170596010916511376363868945071664513296172893975926411401484794116306566166644364662829793879411810373469123818344121422411360121631951614637152340843229000681033827388937402663042121036902273715801718988907157697473919941892097136749112972496069939334349269678038029743552770415159940057844123513582198079988205481548199426537818515513014957248847107578372364963359225735192170029053737537127049140275312009929122454639615791310174678134288655445586938720644044879530212545389819972434253798912957495424619663839384710422344310231202508070585215671962636562876832636075495476094231979736226501717247279743935984003429471439646315318785766035810376427902975786040385569835052730816427753076093990889490491172428084103617171633595450093623268732835907439700036366275653869277392052769099336053584687022533125318074682539183843402155524280037388879022205893906933169383079247528669751381596098346289636110421432538663679623978632748381921014335914287552540492541526981566149123646837931758183454165972475314773547877304532876191691455355559422931607123637865065277548126176337668082401240636667433369998080817995479607726362381138237692204653868453107684473391371173231658556000174617007760865433474862740123738490069529538635288334656663093895715531615145529873507606762108907883282521998227840575796012047889747884720047572321635715124069295246951466900629917746756024703701006395615958105103740662548363058165734117843943458528170592163355116569153945312339564201249367246179657024878888871668435636580422248951187086555487524654489993975549846488083330140153850525109429980748443148339061245804538638445644040017680423368649716041913664334076327148509839916268225151742555255463949922050401821690986332448563738053597819063817171094476600389850924464669150413586036572514523735464761109270529375662213703910307922201598356791803610608772541560787035476413531076121880366515176170080500625004389343613643772441214668478976694733120740519555706207210593550231403703988586413111335195278203735073201533407336877207807118412717676592834369846994878344731762477354505570811709247950161014721830660426169671088916393337345746780302477368396090175896627450984637776045895601861703759993088401815431669850313042620861681191435203462896760390124999347143143355951173088941184706985517112471784311874372047945424116086172357081833044762062752239798040007773140948403135526188032789395822093819579774277143403924781534307030185433594731150904685272143048022661225929526205724164392769848893244081667042257728613926511574775651825161430135341220147380670104598613145959755505499871068859454100066825772310206900007843659513414755478710038173759394093280431140033116829856085550540762358404683485500308776216134224468713690639586764031449408157592498628705923753935608491879413654327195974324213175217201800668547741475822859416865090758799275017887745003048022536035682587054935367472704700913218529643266271038374520897887641619648110949651413490992854313491491394719026320194623341347282565763672322827680245347605351263184019791949056418427733615056290917176297133664423681059218879450042888370997442270852656513081814385357196749615461294170183311550948700381217734242009204317762819924126022319884635917289565585029072415981230248227813034503120064313211676902905461913102035038662552989573420429105763065272446467484241975068971572577287625643395547934841347709877888259594789397103672759109570193602615622669638782349355633828298872108671877322073423367861447753915491141850434964859339993678137747975712243673750052848361670747029800041965084868966247193276270823526268784849803224777843995517016362108020737087738713181644960541959510786992677329712154365368339756230096175523360355092830759444110803374350553000831277118476025539203971398415690296062360613250885857960092934024434900170475887829012240849290295132906974512190707839657742519364829196078070396318851214850549296890059143284660300959445197222891337736133990304982020442671208133137775195157751446922120278818525290745423192085272635013338002680083838201851076184700953518553230246975940543442311091038125694744561014753265446650109530687328144298636100881541155959979076774502685696544765033703603980822806556572950166856963861880785301314826914081858022447626813192135833339750390277880242418999956735308857139298087252941225635700799569659771858293825078852384048624436599976131296260906014841349532029456347544165547055221059527946579273753408969444317738007200317085333349395625411128962561324582233164790602112253527944581634459380412112319846415352632517924702930738078842467765800155956713429641348407865395403313119840748235801354899295254190371481267633305564551191242093511265141519109625019092226872156775787104813008802761129630031287375994008983113314052652716411284696348793589960460487234771205667290195501478326140228737734329147309279626980926770161527134642022020052195388126743800714264722923566575426368020127769965915823112600488988408185768861609897092437126536414505469142753486721500546769870122639815536290129459162528565232938955134844660748153999758509993737322282051051961108995923765523945220622377981643268019007605140496201319296442267947162346068910567230518598628864337991402790972613211871002843874770759331382643354980923246254857911563127762517863458275112598511706825907708339751456536667637387688985877517026639576866124910879285987712954220904487603483545096116714505900508683857854417530436388216863820987365633147381635040323631220713108977812625078548101113235300433080463534216255833278500140454232372105153719675237066453657372265938169351473949080531553566148504244333442998438331418115893538038152029539011890784093305637646859874023951349501230931110907883939236066372291485116973501418319632971767107110193357844794450675176195493446280327634491402544128704767813269840710438916359903811572521170197152458184575428986470582005109193875332361994142628273010119110494247093020213498596003940000659653712217146391854577881635069715953485765260976652767641852763510091949685720051961598074520000897929863855779430274406246478318582795267030541305654818465616144003285045117998643646350871567915952666874429739366115619512222563150022670470078037229860380258329333541319011526180479166013234565229341687279814152294997507128613530917600936448011534784245298175991613935602233171923544202598497847037057338275383934827281021022077721458557213147307701576808059071450484436173753363537761003805475271434683550531007490235939958574509242475102657497620449922556242056584943882625106587454097610564476015482782892388075635423602513209751201391241561363625933038182845806174489000524196763171548026583070435551567188784213962142319254090763648989672791480560450333981646194042984836774704567505488630645187602488285702003470569759365231003212239415834391977400410390473803858224507023601360390206694455054686677877403667694994526764715796260038550321836491846231712743391119745731447267470144417229638182845788066713847872452707482441709960853736383470179324558113254984303655027541822721919433706281498572300748247230187295128601233513295264588846736325978843157026503374470523455288372598738589785798386470109192920097583182096499526039197195280979686132451071814359980307127630228384578454961081283043456317524659983681468174062179539038391378999871159300649315875929789730080152097558001664736405369704763930531582584920027612484004363665365340213449604018726326440203733578202604729294887602038709476772606988661454353559774748114248343700468786807359728675925725052325959747908469148740555575937979518732785087871653792278513485553662252172599609969002292319044084638038088942039526222581515138999942102734503652517326450723038144615542114910192062833184673011468519622439611063729032531837340811699679032063754948277214665791879803931858057611572157234296880365577544569363131515075370152914216404621371795129409758519861236672569137907679863357363448293761662013755218459180423936368066057521601216158553690227266008850770590012824450802690868606797615388212186133757427142578575670109642734030397170707181744688582510723727349857693440855781097167334400234626985259341141337136384052515790263495443082229343533501852929389171329786924748487302011346055180330458550964572482599691248309951366251813516427907982760033298802318916210704498270073407604114782665479696838940445933807650551476259833020568034360816673531451832028365578744831900372989025581462441018719953312774997587096598670474365120437024902864167308874952418718835895361398062938448936581013610955136672996935656946543248147199385341778176620874869823779871739985408354487736552688936005922544316682474021790133843834409989569258931494902386640715089672441659217109808978216923551214523448401943262636897202423636003523403435884753381527808354404966143364432810369090694749829999481032593072680297356299616572673305218176558342845781941967977500578872572338423744754255053155730036618137162062993354785227258670890264261335322628779757451953012145496335939441814278014104020980355861299170348110590826134060344048948661543094949137109349324119643310413354345287349046005318553889623089417610409209173272762073201919749807314739796393242880001154080902248436604691525105746345314095379273440126723085107396215906948596217927401064351613011001057972564983688679827949647756114250143541021358172569729455024743878543468844854194480716218168778346930298463662073462706330848142872021619767258977110392206405325957636345418882039332740991578327281049359975609737156314958969649019762059040090320809456664782083244055954735860547080564226031337251660794732901782154503765372853294145903665461283911609739896976067956993614175730632184106698113755823333730136636638247874966358952175553908680625634504046015108177617235822403188937041422726612240536432934039602962278432511712093902451967721364137909839554362451292295654068677799726561321477577679886150028168668022167947951164617693920261697069651658610642215261314775405404529857234395531327742726802625633551178908810158535297023050582104272951121061495798164039941798083771395462030086826460396524406351565966583353889004020549143013642196848830910764005059717331565941346355581849769044025124397128045555456545411782823902138628342297598792623129785593540791083712515167160285395757713248208381392963291191890358146139020137410168214137304805754939615029601630442148077163525672958576005185548657947877637123657460392126388826722416041826658107767786689414372424616466498824390946274251837338154148437248578800656384681055638970385298851536218889431489630450552127463173470066128739860448203923001112114450109042769673360024525175483488167875279154377128459093447641603532294480138547556682902079481489713328631759131989621996652818771061700684350538297958046888213682011411671606020271594869806113002034347024133303330030421696525716755370301854653059083538917733838559535813734656119924055415768942961963551851369357150370701580048616697239232184593308776824976969055205342130531799728118524303843056857783433705689687190547809430965693788129606963466005825475879117423494547980007033749824482176082114765937489387963413678702889187874305395312198782304519496764623582195788926832714661136078463414128705410988442819142627889710328095535113544587922142261509199602057070516452034723543518215142702959650727740826429886193932892143899775619779916517623337829724199685889600695188585895371779616349566288961952445985299790331694295258605958000933763414114109787862843040889666038985165374988140106416627531871683831334994296315802393666548690403293575536338131891273879765783704061548462616669317173344213168603932667284185243776560246534095845288525430614269264444895323314039588316779293421054802948113566504320722797038853494417664332633803170185569106933077597440522548272980786895683877190410160873324361174667244340682650842819941746355165515492345287451208215149871143076005936467035406044087201944424508129157792212398914116358486329399684329921481366141139621792849609562808937052933808007225717529526180982932242400686070284627985567240957728190117079136391333282814363276710054262049442292879054366728143486606298865643593098427419521247750657186251754988631989411720342793432208808857524654811681931654452921308229408044320872431330490612506950623094878302871369924164381724976092049145219146145678722722346563086359756358591311012354176514077375723253624521211113157679348613575181466091567582395805752048185377867101173071116638174849634324200132730784225175706577406224678222749155042898546100441599769251136589537027831457430034705831691651281977116953150323355543699962556921577280408255020281763512788413542991743658919962351227835714031963722901780686413741821757370650256539942747996274230292532755114362646995605746913265924936834635624606226178603412947413882445443608409105948668712270235643389096833652760735539910822572943815668060281085304919678183510438439295447790546988360113915978182014286651239626761389611105113142307308686263461064379167493287653503184598981132517953628767322180875683940228943915861742288507516427927971201512192475713537864053619846051160147173973161062925115784824927045246739025892852715413884054993457613202003933381317792605963240773232081987333420687004246290086901513376881035537702970563493882334530780018578491764452691108002511439043426912415143458987728290236232829615933415903748346409685530179212976755595577360932439749726389850490905422310159727192722244375630494977973372052391116247876865938292020808515951044650238149716199647597436517515007483128265347656610269594437550299052551814138475413329227993428996541285369049883665699974860219505336311927272535584873524230953467505184305046181553518885436373883606787109778352467476993511049191644308270868240007170796722239872375933237592471049128622149408656372296171636571326869468750961724732589876129540449499315589466059220980264919201240249767597762562409883453601175858881109714764054626436049777997685111074214553728900972635601688015168949158666642389185583223684177282143541152940456138756271719267855878734102403286923759693718280324563118237437178665079792742030640900229318492754427961155895322991878999901156919675225958198667808412903402876441910646200467226045316956299998767970414528229487892200786068445917305751685475847554561362485183398343190979024488735701212302263431231076795471321971926526822113445955321143029113885808078680814651078111213872358927603603290364253576313329931918667796634082510956574495274145838511316170741226654315336223850774192824269769923002156291050849449266613967343306305952793430223028500906378046245196150598185345608665260112511303166295744012447848374381684085028620310256916418829296778518687122764384191920846517311642235187424084486690881291075874885903194572478345216538763685395071201937540979917967715211540816736549695666036081673460784152343613582991631840298502880824793638749070834244072222887445101936669426732094747525303210242229602219099896135268602522199545226997727474813724835886513333003780260434635264930851483211154335331820087057001263263707221522632354167530825189232621161976713874047706562680211292331520487506473197352454220566036052193623046141169868075106641704877759752431964989319576211521298534810064310824361265498906990459286022787757715104452253717403842101660372405990064035221790284096545136451071546017938744019541366114085894861364075215909563991043318521877331403651343600029160362161966942918016087618726747267979822636145423320652778174936327990942113806428777696999278468789031462110634945850402048759100979313119785143087967686067818015599304734456769557450878312337084503951228316412873513324372832786162133054779857235072442183350735484606702769930597574494139800239939792463059355137356875790591606001751878481354590497258626753138666145058866006739433184349362885547801944081146584035019309686587862554348004949793302123177440988683782339116823719772226413563570105122472324985195500950251089916144222684546914872949319879523478611171956719159892523933154475501306819445580749715821368580809175236511378900623400500583121135153286654090982277407654335023172061595440177042133230666417886608282582700420463932828464153219351045483850163660209412170802558952208270402133720950446264573330346488050879692058092563265848060349949289108492465652458730314675507263630957153800939624245649197357461256749837940088451664094606576523046320966924461095902138183995171208325909621997690951758291936998846558081560176740127218509085495670663336779634823487391315820646503790392634694191176502683574826634808176568622307906433286166263236083863448343200418762571389893868710364396038791787686485676689436432506530737026515251669389600381721076059485240796491216890428603748076517901347821348406473299028849944719160384122868411548888781309764512975948490266229690934289283646153980619790273814118393706437235379417870940872082131822971097389979481504494805787062828815091388799942522748133492716094955956352488118729215526162410321444184813367243688235403635287746042455072970780194841340101604389884272573683652629932818404730933042699510561829319327974435232072162541467526666065982286177717924304003321524722488559717281466038993587174152695786615563995330212282193145669795874728825546700485474882780370363790249772812973306202024953429382655745035804047557522592234342824961314818243623589581602257269336560777790999853060603404509716714532538387461058724581958039342869888515539885618735319732192097116464377575580668194064052017950197551894304498873533373848300110437229452976847321347514201538592915046241786262585758500435843629314025422116886286331486556395571534732707887844794733308073074152151228279919303096728373756512108538347923314064105692485742447697351143933738005353930775103410085120096895856263507710842465500517282394646610317650855893409156133721775519317881577841837851349710309420015084641829239639603081020607437686542345826555186321391602332952272499812739893243072796898157844910331637690546283428466847823280452896765444576089441260861672156291783658360044499623328002844542608847878853185091115510425576744512984951275963254577013660946370917897979408377096892084476601468839342098270354929885990885282091382049219352882821623172176948759523750373787328187305651160281816255053869816017134982146490552814285815969545914960292593339264804734644725073029709706745097986253659694280301927216619017305683015782595998307554418894811134864366625864886295669836434762330410298438686496383512648874371290870560150878471124229210228622850418973702170168740809405171810237511123783337208853209413951056313544788062297087776395577482524862082161984078113165587919497308389385773293651827764765903135973282452991062478950494536168393275314262869540809736428521310525423370656785832953259677601413666696604295867087769636920407089555463801800554621968304446694060352952327070092664605111309088722986207316118859081269701218720142285646338436760026179806832827154676447087411310700116100181193446392600810263063008935473208753275125535953824822746151200783367663037038223739426303954857683681532790383576446165295847649095709400333422495548656553530166552987355784248720698998436615890992055477663007717649949974272637565487501650791433722767900878452014862531869682756307424018477593745795131428230889182292151577525526318301692377964770673227167293854032299336052379427166410210135073391905792637127288284929344100045349007035494426704478373275431899406260699837560338843089444455982926710094582403489504407231508043581967512664094472987087162741425131020763476599947842308959373588481024784414185230597906694788826136026834026795835790172698058303007166429043750647042026059824814206894880302732046107736594739578274554520238669021212372082439319408448764755767498751794332951400392847726371650079912873602607545232142247953865376941192659359466396861244497446307440419416687428048496573682574613551802265335401596493982046322581226699099386302088175956036737405813962924078799339741798940782332157778394976051889240041255081323267357258805645205896359513005038481754763681014588953221927785535856037831334510519280044103118638502695347988856727918159382347481207195926838659318763018737059469105625891744117852176040298385462561315655583046364998337024758523822025196043745117379569929725945208616599171605498654458862483582162730640515821095811456802930167905910542439656564400016126911120127917072844580491726054166075242714720829537354880829975840021646487273205073034267396757889452569222787341649672732979079222790708160195410053364086858056065699649241065228851019785540683832098309189759714342401484121377849551594048539723121766627557488333272085623205154369602947692740685233820219304203869981561795286970034934636234253036560745100989351494126681193527665187590648548331159713059322667534837568613887182381108273393570807151875943890949278148065024600085037267891679588172028668777614989300983734683575023856797815887268835148255304027482002858165223878516142481236501961949006396066794755272589452871613515153085714756355048114399221339732887479871492040047911632482203131357373873843920969678538507282176332947234549599675182405658236909495072061083894445852036531750325763985795164224428810297058537085401154850431318005190285339855523666104083489832899356997465884955401451756887075459334254065457635197186823122851245601584304169452398192236473773702720665813081700350703878939081567879294972377923476346217905473797701817770989490589333680556763688923323037621063993793340792321076687385975195129087993857699160931562748169724081819597801905653289239185749305088016496373050167177598496453802053953314408784676326138221951108342171690899279355567129807879705047148395514323442856632635620652309721344057934895628369616311597871501294929829666345442518074971940544784989879103442177599757657183306326373943763939020329993950823663545120405233441424535339825890870806511261696972075281799031162779298377493618446731919205076658382892252470545318882191989546965662089861945747429132784485930296496884153702758283738086547760437436254350443722212568696424230285189959502255698797136713441063573202375017712622444292154321305102847843155437792990189703627044432355054628489448405070034528777765918673531340837154022358023171646674153742548420151643177181222978811331048110196854493698548327828886795380283520479930507468411117671319761223344791417810023480193354269227518629198185067154674284408966753461129823534907057340824386614045928923057207190835121075871940517157407932311084211200410502773080553770597051908999146747655340377247278933276704836922023433932855842077413099642434369932865150380045867572675048157457716784119285894770898580230302222518940281938403403769203291101214670076825922450649560573990715861392365949469568271076007506363786361262963785946742983639281410988648737436477145245875909484353988510187549816265640053774510143403734872646060351431807370980446928581776555003706051591493059910029132226185944085035703210246636992671414740744747278874953382013011163145810155981028465569846871372987181318338822032163753481322725985380507889697072157109813270756893241780191204007892014097069562329434448354789401536137441774735399249198113701730494636966124846549883868273682867639172635703149593009989983480735157616644506081072402554461851553042032008543194856333534376053200562513841414511153395663186299662581942613963921536025344759923349308805887526319399624084632037761296840551295302656737325506051784984516312163546449590438201055089830370312327004204395685539522936673281566059976464914317981620172307673401796174653244479577309062165844946456622821967597181446310495319018669720254064575185893142706700906901935182673732803920421137385071872863087201561250103570619992948853886271519891674924327100868905537676082706070225669102416627643973535652752696178893350470753706200680629631731454362028669406864159491171571460210580612256737422632902537123123256475897692015243989703545504550685688541642838246084846105295106823523567311366256745909233317745194118862869661406999094330696784094443163547467098745404267896864456642754859245769203864311230575539365003547959132255173644102489542871996383759903061026596163113815493951436757066393927525553860290862946363392184318721136875516788185411012176783247180665982711783102396666809191425185759537623327366404606523498311285146677252720336978691166505791251433807411048585080513883091841002469406613081844211726819996739618870164219218360636098693149243319383597523812897611109034662960827255496710194169712788652088031802772555175245159660239490202885505361610224690571316629945552062690324212640497786917197321715299401434827034583622888342523202800574409817790118136276692470784520825380071046155049053785569808175555646854364737800052726211380947164923493419792074327309511629903802277425989459342583651685325701188434739595203052934972379612331729770144424663522381847636649292814060733571754783884110898340377470492001018936239692673096893616391597197519160047560014261814565991381019390979644340526231522487826307996686214661638021804035399674686411887231242393424621838098185271369810522824057162617744912752056215966162280860571328278277384470723286552680093616691277055221393777686038460630620565474896364148002244349266685221892642805749506297000090219895242783762697127823770348104315527669005757794360653182943106818482143456180010688428356427233246201466253146791138998213963626336380092076431085379838108356965570394678824788337195802438620328653270863206619943351431780289223588426501187509760867717966261880474696100660230701048132547316880190351710316756050311805009010622073219710694069478610906085630726665207909908905997105785470417542525961286781911428321616172683940769046177431791405671261897077078000582051303977214026949466373441299777920898350258197999058329964097687636346263279440503874518275514573805404267185068331591961896046626274429804049543798393743088071877347355829335894716726957190429560141781014421274706893594497566983605651089384539942904990295034286344904194901328113381158532317795521680543886150247478411937741369084782559317582767034682152762075354892656058869585645621773263485760802508373855830756432917639389811595274606924297844108883017519337030847108214285410465940159274489387715124225752554419980583267729018280269566491903998468580072486891421638361792553136859764690965491471118959396230810074606671245790158383509993996409606158120086050833263321214509446542735441872020431057224996264105959819756602149877178648518304636282587714607970075141144140964373094208519030835915675471780563290811654131253917530371958028338602566613703607025090796650135274753033022380784167195940793531469455361723564999259777743193636374140431945773645454495295944982498582915032180382434717214451730194064374266872929595845804638864586157520775800709442062879024921988220315699673340024280227342385393192180213339293162043362760360611356242089490987026142657503651910985262442941943415342571146747174302180833420033177356831208940847032766478723592841754588294767200390230413220902904994443688485165194463074010490377030176029011049477818883837313254862586400491561902120352998082179278435710303856470893970053720381427756524165142211343344063334824251079407407222347823533183367886399665236500991110072995334378288214420628545251803624422771374670760742935982041120167739138808436804054040353778104279777250102417122439548525503670726920511711380897711968401527819436859465010014367340907442309997804682427362153692079717914433452717254705093438065061110282164920559731777548447081092888428505837994519712875012022751540785417645869300524417042704297527973098715988437418192196605260659863575514754065647709900889243133374999474223786875673865197294493660739393737847651883126276431817897642445770102415040932433139295238829179901572263138256770253658788415445194236771706379164480076786126094079023114334465278941444439558875647144622244295255132869952563729516909372100022451371838729534548727547303577769212078209534492566477356938711305072263769278092428253821222674196945132503811871459874901398516460618529625076685211391704964006982963565233687613440706034748511910253308793252181260159304861345212331430110090616067707929968217729918092670206028705294315016639744332118860860295288663934345863909005940267775805825936485021839164072808663145372530511200026685080106660953788012074980174413611474958404051694776257854845308491834892250342312008401899261236998378555365649919538774017930293992481283295922832456886630321633848063917215258473144333257584687046211257973972326814354557936261459023013337791794137072360359114693728879807550362806254690964393219465153491574053061958540518258293706743124559169826271315318854166879853974668770371873631295325223367681720607220372614186936548168543708529968269719402802120880796142479836338080267149939177566906918871929422611221759855688374365339093814691273755724419435193038629886516865214842381068350494044970197201118249491462846675673580967852115573205757451907256835876088912904003782143484205366122731925371094113432280924387171126245033104426874021776089385112956149203615070578412855250567264764302920100011063459705265276088246755831153272176831226511855982667262107750313452092862659112875820023905648432447942430133395981461834211585470556641477384174021225373517708014534026388796227428706155021240272308906026761592575139044514357493956793119046588864768691482747845013164809266795641136698904210952597029915678576196378283963453350553778928376079265676492640074711485488252516543128488208337596186123665545117662312039131193230824278250541856547597790951892844514672033114292602487141359770460069125489561928340884886837071287922693636502117410475813686878812038072846546738192329604210030198917395129016765204848448333753295920683609242302636021391952451417413877830627894679324239123225523568165788143030912421098195773841961429007306637948740188083987906120299022700831433321502151709401454030200308375498972499733942631817201585955467283809395138048678741164349166263967759929611187097202185650770807031827470873840949926774906993149401939422463921207164142055886872321315478534739866183603636108442147390353702788122410559700135206649689808539946025569999566170576541801218578247624387872935213209429280253364520875752123017228295209863975746117592832977676291899024113800123563062224097467491299712901979048722136128470925961100212239359992703005705519049214208163659851915592512304536899141250074027247640401679649075571997003846882456412663579087310761074467815384994346422136051995442618742481220744819090947365702363553511807716967182569163282915066182498499178034070926073922175966615633438161523535435282957084981230521154036665834510967940805388845312310648426308750724529043781700768505922944375892294733790127437468091122193925549113387905634792110677264522355300220048432597825887580256056649761886401871398410143398448236825990209395782226894454098784265163553647476359193681440322294193127445445315726106052264287467372556578709326895647980474892882903132180622241722851196016139505453629973295431408138336850094037835658715804587282291498643948945413622022452107200788320100134057819707350382105416640993421072071821766535763492250103590152019706094000240619623720802187939131677093144808632067307845270332607313825799474153385377324845595783584651548603496584627475379365961420181768751093305909382339960309267506661570889305012781967109952652438336019607186113199954103005998667973285634027894882627203360677537862145368051174051549366277434450476260086844399909290234956674939016429822554658215624562470715720298342954397830493654690811003293820776179033989136492360707974240310399385098010161208092642596096397922358999442220076028451719926663683058628824172016180691354088737859969643187977657949391952682068036747491795546861506310979847832729647788099163491738785253719665634040265317795507658276726726097157789285707474653561334489404289296127007585430220447590254521911687088551985821849680181736895382161938980744920115912280781506233199088826752761394844968494979707816036699514665127398799312147976010289753430621748032574427388954643210665735988037199215434942705134824389938876911264936147223089532309400552815200810021853099456391756740379069623000043321156733190443418530042611763354789537888108441771391824619374709561772777707498872450833406433171321152234205696641554621802565664047946065722710289616584569612972536641032635400225808009812456809157179109644997950661252348266574609867300552304347662639444960743574937685794778500676503561055487528942406309747650936253231648930013020466071240195338008115622326234727467847067554290473410469476952063032998011167481826724976181622451974583252311632018589813877200702858971715727357568983380215281174873666435266746418427289618117148518685366864929690113688823469612483955198402374325136909959344871757886811510717381854091549085047066742664118540730992235552656985325233511612643545750130912084532740355866332002387408488334747732885610302350252001192169284350568322148464984100838517525363647435799650382720295716125913910734275339424138620942088279105830957641016440794244585532797277253810320879853984972968427545177136164746866417014383401385949611475852798468031195106248701847983055049187206203573933336755650482987451883259624232161373251320845831095363570054959178391787118954312671880955859673429223940354553041687537771880764750398779734110368737907421416373170472020243613322331432028861113957553187984548794287298397980592863684473007804778038438957655182845335705923273590823487188400707893063858208771840377616056550816252568703112254049817898054545923749319592630947633618411843993762086383466596923933141448827965262483545297323765845243149661937393802389267111221894631251687965359690625044403244887705156265102164004455213485991861093502305332417023619838588315370428736068430038946488657509283688247818670772298055118978713632885802508428459437150987757844462736729271261560713577998269413353152918162808537390110952815592833356170434286663148367073377717348782397141565304273708494840324189998477293731859032094726901725625583860684413437949931645276687064257768191907762686270875747652602956294614843274040687079782698648515293073622721349848111976119683475783879018088132974772895351584182485349554353772809642082639695789349787320181208382509078450049214803408680437466292517777563188756261649668409156164526384296833877566571635357891470039543507491579682423547827557816025606055631854717219015905491212052935421170465700992724802895574442014275005324005216597465267502380753556369518779367703409092353185838202720961506627917468755793452412009857827761419450203798707281585761719442963269745126869927406155371142116962046873633540239338600665621780012391676257482606671762148154844533175406787958601110244523951586297169395502485560371894466129939202335901237860566628038399823313507496539488468786491471661176777427787827525526273818150867283144316631548104504805368355141887953303012621217696841699401192785969329408775284449045736112125419410474576879719359811230741225316747650663042610779883959411758364843460336898441452331840086340383493839996859875759621781260356206075578286518300672917110406498332683914211447379188979890120984015026528043769367016785424781469055793806492768656446794469052019864816084528179555789979112738556091563397331739671189935768024889345301249438325509840910321500144334088608753186421124167930624170078831030493466451741481392471657749732222495429403701392446987444417006157236589950030092547351821009994930185678078990287807653226552088200583885024303525590506272214817794748175269979960800270956165456498196507397906756165579769470483334098649475107952756526402927797149264365045939756109294665063190489579732282110633424686215625016332776685838953774651303056469938847297039715271660919963201714756207934125610687766893190535233188583071683049603974535203795283837998185972920588647141599302234646099300920001481140686905864864208532537046797744344267395042708750968633489914358487053644729810413321484036616304597764263891127110722763484203535676597049423707606669072836519652860683588378138776441151039990757522672338155167793282892502174820615155415456704093987759504529050210508835410541306399970447575255400449649870149050621399559698965518792183268416639913612423203842183275076897454649092113367358878572564759874125412572553777545243032613632167555168342878379018320125732678414408004448712017591156176534854545168625360807458467808315887013145180321175384655495270424884402579185094609795574284836417476537688280265710411514489647130082198822153851014030113370303053190261992302632412013736197849517584256312362106377779572195138835443707990020713661503151536122208480994098696045220953938281169245437025851807565327436368455031096818055818470989530539249270091060200713052329839290720856660605222738001669615534528872766651974363069803859241419937435196004474788067907836991880072273112753695980509409291840042328868126220135056756842700515251729369438800921670286584169786749849131495065460187820113910194240206977710449467565469354521222121014712764619605734431187457941738075213282134681925324188517101114831712361664613505842129328662330121197465201262616051587673523603509569765746227481804914104332432349925943390654188915256414656333351539974668632230664354995265500544461122602491856498088531844320812187410782779577878258388048913084042760871295796524082400767307915519201118631448792037010471451636873335974283038321568268461675498235909683824174355930424305629306349853430537797144615334700210550666206286537132759639423223000275963172202558740355812577775658475598372354299932282850223190972231565803264784897314988086865040504988502037484585862839094121565613954501738374934205015407396659854436585653773786239403489909805216612853010149780433016691575436887323151698727771467005818467106587404631396838023391020648526012942337093949521488736230754901697547763594208719997825160361337687113177897561064519541003994427666618377341221168855173472323984682645004333265654207509002143093720035932573644327695489392502059136170806187318029219970303177781327029642881995451787847221393355099017793729477397551943940910361036548520191964562431814511587004995503492904294926437031105236391431847853670362448188954979233408145035009514563472837437528544098968853860184345957867690970388924561576839732042761074958979019816159877178730677985370755504250826878770706930700340762320936253816164153781621179833229787016885417219923274040352968632384239685544114054112667250329631382512217725955395756332762552220442667665733714609882203833339008583159737442855255283706723627996160863851298900756207335576205161679117182980939936307484431093849491194207692738839127862077058296860459320919105098570692966409501511426693244841146717689655334205458375088587357976817594073509769113664126466377194092207380664875491519204808348895716365092242221362290526364755771065242708816955235731965545040514871417106174948615582144545180592540771493268647687834291518289087562309626697350077974285499293029334085068414916115195674066505750619052186432851201739981105587551582270717032638186822483187868011495127038502576475576934966463414355080922776327019908001356895508864932335859817914050577591166856082397390681117110090806338877302882220999729892558330800881098515396848910838869563872469464592320957741645863320262070865514862715535898130473102856084367087814214368110426152887893322690475663994341843272336848311856955652925867069331582465460482361944772261707140394957426312111611855000846853798372441524004489672687839568904218114552378160346854631122364608420512058851014857657618732221205880730778410313996397229445346747458625250671142152305435241785736359117467823896843176127194308116638631161947051034942531014213231587161555026129173257550342447698228877598163247845624854846610734046288661089299198570594797946588196714661368147035145942918310013568125657675343224884860514458326922931186618529476401220950002704204930734873949807058955136751491998769839307275271423882728242536339893176061392401582620270653058949107068200914883112644133821107683412602205087259325249075299459100372151217249950419073381361973188065033864627064467765839763715398107682360910013125744857324091699284150349037008897746501428515371995021646869771184913753296795489452192170066937047681417195570184955211198519200956985758118652833924318730642556662337279097708505845529220181103797288749204236651175182867102188222690366971376276715915450882377559546211343076597913375314757412749495231231023160510716601619236307639806040220555109327002409208631665469107982117579694585351137051897550160750320253271326792694785782741056853550324192574296451763149422897220744104476646364061094054168061986003300241717903143652034941187037147831614618472073298312608873664959123696112323472803580008422077444808636743789640195045128512073724181438205159110116987360779626446432574442877847737357048969400229858514123844332168620446454472255787681180851976037640330236185104939123923141957885516649901648120602931432828193104333489401305073563007561817418274448453371829285445171193568052683399497270515234741802137577486904038987150600603798276162264451840195722553626966510094664871785394266264050721972310126971915011443194363943827586641951079134940327802202693692220676341210041867180850802987211889283888293193750871788234512112270113705309833691627803519278719499070012524114614645263442827975187224565222844910349338425956256359044942245908906386152292431080196103874993718019042852548596723109213716417670229492710536464284959259619486160302883289513587697204964631716264612022630596472517771944592693897668753057153256458067121360468388028732472062468897995039376038144610766197202002614512486684402975413856559917483565266934119621716030872127497806951188250863191823215783034097716303137474826361959060673777773180517132838122937642940887529237555823795173144480961292141765691162246628346207492997861341397988355492007341880839120421255815318796727011224786515680569042823694627431049140213839787828106445492269511876094808736125905312212489249452492945889596341387251223489734584810960597647181256909698660831780129448003183138353409071009127115174961706698296366875530609722681857424868111483575585095307382496699899367923878748873347486197349374839349645240915150132062744307465647501826285206353763315325385395716280993001572584587750056586831790813036456765460292164249882401883533188105230400345913433484180669013152243722979626801619854908204334414035580173295983633653037127893079625820252105134650962914754630089325782222256049602171205195061901575045565932882731994032142295254755465539888533144048259559578965689625453994491438359689559001983645827708647861163956099273572750060654728206505814637484580427240261012900994470792293096058597617297705688008573841902097876161298083699940671467007270303590849984065420829421543949974466418801482496194025074443041624556997348155608729499184651512610166339779006362922500584188429456530532828171671582941564226255692469158852490204849419795402353647285796293175341745144158997169197946240156373678053733701277902639509044200235914900232409585776171164475545603717333011513804790048521620556471397229945534488965973021568495791440651383385013746727988118832575005016179408507428167822765979046414371893333595569261780116630387165558996635621095977979349005398378446321972079499876765495234728046746106801328614771961853365936141467758182756920847811223996719203300149084554726988748032557760747899167906733403835587651490538726830963129913384085285862185445103735576404750064372531568613148514254997799538219302227707749575279928934468735615659098285191589771836580097429240333724245901642514498177386481875136310842714024020550558988547763854909220627912144755924838748675975614799091677045796703987781797678997438009971068791565223149166887963518615043839960046064539708495658454844216489007451929884147855023304088417284915018946287567883607458389179053276876878393242366334352622501652699441823252293708492509702726501826128587949489887084418806774394250272462508808242370545261551813582035405602202508028448384497346337560224581856190045181556148766455688718477730640118962224887702983917377666641894267430129331409456233486036156733307395147018776732683933314351501171191692357754606983407606124654277452428373680491928873160480290569271752255694940106205598811105422321214127111483400240804869720816969686618889025859790643194696048093683535736364471663234967443849741667704021757899302879348683909675872016651963109039631606444562697210745535956495881144577744617753316185451324759837186518525062152860107316316039702937415713919025208130498190339012964189858994072685889534858513881588358389130259680228690884842895150331511946579927398267735396024166164828162211153271013280963979259469131432572177815690099532120512971242592684147287309060234804024059372020859403500796118447034920874756339914080606867952007441960086235335353934162578859932124205276404858044615399142315016616343660444014668871315199408694198317642955008920776758994721960260089014977515036681601123027618618906048167714011685421258141650963520279332362284591074195317481405621723588798965139757406042073228114189255345842106435338997332638006475969574564748684770364863563682393783569472066429035059553586010200076368956907904970356603618050805074227450014002510932431513612464812408054633518859790307960890050094485124196876602223487523716106577957372560652256386192870198732538904891921740757827991372125464771409505912877841317520859716317974152575184119500211621595187329248623563155222370750320858936225825160703939215353582386970509579887654649089487886449405254052659707683272685937235487666259826451032481080473982595946256664060858958023947621503281924189425469703739711918300440787552884578781641460154473640968316596446906665792854516120687291212844833423399350028288719339380688942805646108834671493960912198778620124691613749595188854706146399702063856129574563454142106298791406481245676408169834913232276217791150268314100435732495174736942118384658516674122911605365958612927576487777981196351091198717386894987819634331497944526621557809549899131326567751753195684937222183005455988773565668654218820733957659164960183445103385841827291916390330046343980032543321498023795058136267771501297832432492890204829354657953328101527508554641162023794285498200407225949416393576517853318177751406095131779783201110478300903552276317384593080557817851071288820291806511092387584455505884337927881724771859788902960779987366374913995731768787761296293508884503843976820780876147016519372050257080134887882924789098080477375808667996762047054781926359214486686347485793242095340337770880553270923783178821829419947808510262034893347908151903371981455660832767600464799710802801665363351413566929921200277424932092467611364482297659278477676589457657219724707892681133468058329253099122281871186991771178389163932041173890197172141972390640411068177316084065373802939534749945699771777089165943781954671344746602942222904413429729971376034907351205732134219299190713705027373409868107355142078076977659589022990616354135316413067535525848105389683320941777845094504692765389074689327101087234375390803453068685975681848556129532580674954595874938409246423784932129693612474048157177375920006896219299440609422063419153180002320700465506000585345405805205832072744850246026481753652106930690363659734251859068453710397100221489823881062011450252136742482653732587928355182584087052975889718765355256561427910752676438071330399419502283637172017078793098319732093904742540905846990661391071694945513193484600308658317925120236669956197141130634650251019892663849418598101229521053882617101673136552217160741301606067223923536573082935622949076199801618494002644428233913357942001852480131086422786670292567221817858277983827145303022697677673717021301889383972501282129896506393173226687646602563267908115525544822183669475052165368184880698634951861454239659354406331521460797581386456853268221529843001360186954080082903159475387712468771310852023178776710839570055534905328192581020798341414393593954319722788821471532640463562817488256339421098269349076163258620511178575473404311719107708913120217381782888245668112541804929838634112219573201271758344582223460838153623963851305099854070549976026921195444912045198636305935320196962403864388703763931192299468473662775457392608014215055607139406559699177073686169108613097466604914163769852266142114693036864237469001247312914149284747221444711789826886260065542660454157636637284055177111418635966998334560331079479104328732185809304788470448829967852906066923254343385039394082204525125342572388530639334152694574637964793201873955588657800076773358288732031779460497484374873045542401013154518536900823487768644845248628291619073064057648594891962101600410894837471105687368523504253853018701034243929686703464894450246911541276717202136176856093413246078480424398268573364281281721529985657742270774601821124879098823875485293216939214139014279291095857599916835275062394492174540029965852064356162215003192011067522851491922450141114502865884697272781400236775653041191878657769284693262408823970797402297162032060898053004854586462419747167261932148312183952638501823486785238002366026078235243395723228475227059039391461494096454558274342179207040939768814160732126809022863086955520574575554094458396438565477257576232525823904700919220001573130609740114969726020750260820200117549837803193387241373717964327243288215847302556554969483798393711808557639763369974125618540144938490024459919184052894878312521304552635019167937965824864861362074521350861387815692621785208883967329457362439535967820167691078520781397385654127034506513716327269830093977772962884253369540243961157756527260715402964903879169450037036433730411807925767106482265698298179751829372282258506730210574898175916673637640270448938884747978141368007737557598918746569117947158810822708393126466800937178134642645387010625559285252544492880098014719458103832484097232898964828932704233880771515519120283509521641865177095148346909832889942683710716930954441379668218437895391990994499841600620568004427972776692956667680217044418553167176706766735713776101318883812515389677429662298258495622227196818511602582047803865939874410384049757866595373038520867651218367559381697339320160459419916176558352687604892029886204647724287046848973127818736785183586356365349211723915231219257284769041499974081561226221632209367021844068459943182411549836082636012942367431024371870863295944132739382056262889659593804247741156428036964836063455981083524227838434935756319073285006588294036582078913957314814535072114537939877876125760411956223090271022929965357570280753726608785408400276979340356482220800751631125310867107534400628409751001442085671582661662084715023821203870827097944428984409118126721299201813771452399517377485347536224284695677532667437145947265018703624528066201794221534170339111528038035782864432492087344522665085651562571207708006396400614553954467971413811200152646373151434186492004053499335408344087540326550121365686989355434733844804720673162022607055732027232120415825585428124915842971292468514060626540395490232744357487751900383741453461991501236496523171624939635800567183819296067206146381252592850098027413087310903100587659555344791185303401963808211640122196817566463237348907324823713469879760157141904792673585561084982337051798117071609080405706925424004136160440058323456606716402278212956739732747015841977070271083622042247980573964620772649660903899044095211340193554650408992907160923034701588723940835023092745594919972409113701959355301476224730061588599876909507719365631975302172971814179355409325620639159162338131670358386781642899673206581138399974450837465361942187264429056981190808381917477559483282917106002904781440025096504709963722026182431484277529598599338140674595381737735563197928616869670558201585205728379571696487205548705926340723421610338432737493711074924368227468937678409663571935711832147369457526611035453202088604443130496410318607149632112632373529611826406550427890477730614631608622827403021520516418970591848312734534266645116177526112809698630108439871626970215833688109784893655687760807384710525769100371293906426523759837319040749790108068279561623411830637390540173798405482855476576881539755906207975529792065377689616462535675788795636868946402073263483772865886455095933324823379348471641145222832957045899401953128254004126676746335699909452424909462842850048008044218571845686825925867541765140198464143137769273260361431826094946338498944568772306754111147291942914515221986138056264628327718601658253293747560987362978221543211369705887500850189923466110277770668359064314796665862357052924315235844699030565856475900413702632412934872869232708915537131816113853709350265797021533163568877975293016916345094859909292386780984476069508016448940432235150622170423485587385898416692419239496581450852294685233951811302722256803381433715778889156443470455902800272872459724778733482491025679938719092580498482356230411973552624236949470479324118439516934217872646386056182638253181886402509404530668296296275417834772012144660907693285786182664839975877174475823777180410004385267781931400041200040336917134983961367150378940133857315452924202547979743294835528690707338676864998885103464737315268673661993751261018735541068960490526238930537064709378228497232979021365457180790451919532953732270835878572747829051544161432032994373872019937376955682323638648278736107545672562407622656359458272024937257830938740805344843134767559432097046868579735847683317299506385979667193415205736666521151471389475467290986282721061972934552519585345958511872749959201053703176810384834997915842334836551095985226396215681290120910947044638602846710264710186243440506322513029272479411992624972382510438498249982949985646212215628036352731973427114119119199175802082962323882422050097522953861816254360842933661506352059204649644726826780577077279275577097529024004121919456943462877320095412570764816173447293503317879611224246498438419202586743667795064424136573676885509416785943039088920394941391705001901202768278767158791966650527532498506456345905284941299543430329096643481865598653909329828754519393753523164939437003206621868965814056870152030062068278423267898092115550099320615492986642191044711952651637751415659800395883727031953453527833278515815524629634857850882022469137281989631275715098620160707725482917593792261586683885954772651105922797090152043493195485162517609782187816186910426710826853377218653569839571334992684161803076769731175403742922546860621659315190963157725612729952731241902810239006759890685696362927551178773088848225011735981642333858808208899806647474897183237337651570049413142031030296434513585617673162332299428697026440719467836908663867677126319292936050517295605097313826017376430044967512218227331137000304322522847614010582838695164690023409514519392527283917402338156234084124592005156245444282623776629909948337978780979215496448590648282034731765253600228368329522177406626163410732205135893151573998432899253841146466169964187899339561799700074935205762037253247120248027184444031584181795278952443978048231857575487808447332561964468621914698278546414850646943572263250517713180103073523564326844963457886019660280430214036492428395645500659217982519682256696905676218540120905705027653271891353332796124757291949604098541944327505623652396846651451947334944792686684485033760128371737170845904232262885236500165471569259531895195785590276309659054082105748814930446434241005063215897394152195068316797397219787883081138191395768560761067600846115710664195243281750247037022771339643606271026236298608920649693285735144089509460377929533680105013813518699122955764289183220145277672442884434548654749929259442052092104884644573590017484020728917111602045791651490287012776322409971431580318496698443034297034209516425289715197031163990584977808204554170412844103821329284917758594952830287325661192987875803615263981336187171519849052463442699904705839288506721890519247693863239710241117377935796360819356270207453445610839512694668740420200639379733906997766147918127673202244705314371207302661274029189360468664898592577106637170290884816075778968817172517383537359073792554562561019141672257783255890491396274789534852929204569805162370510904447709877512257490671819503286381791379202047769807274163644602094041632278095892525675715095579725217871220876267581709851785106693858497766607277492447087425046211894730757632261926012172673909166658625855587433409084572238178242444236129743552872533457860608370928855568963300617466105891174683797439751370219593947083318838311903842010932036231827988256940485696558187551018263208247533705800392300385643811956486382046122471705247309531222361155628561046212469766691893397248744019639663868547266165036974222604564748056778940557935594527507200974825523035437481309396699023709109324500474825261437199433118773204021906086847708415844038341126830781263110274762591207643910231639265140522081138164712685235817570751080003456150181097916593071057695203627254598509644199585848729873291667696490579354713918798886839397522012045448702499441589952335627989104022551860273256180084592280993329484910981958088188297721439101424554182944334554521850232683937930545376861405348920797022886858945269804840802164733652154351977040124683097215200344636889488400988986670731669029857705723991009214157814445855094993411666825945208379407280812390471108861702291053223304204346684662852853376076500057759580532242468897757827892943136312341631835929603933185934942470214606160012125303557045769348578048778980887972556209741841802285650072919085849044759556628753318256983702605970561491198201457251107892936845853157480900011184219357366941270206047376507503437505832898615677592684357750640978146802976371170323736239705844739465062715767423345546450706953452779695619836188243841820868750525128999498249762184316700860007351033592068627049935540256042072859075725694323833769653113570867511429546688677729936237751861237052095949556594823889589877809129087096547657370484188723749045788582849760158300245436399267273024952361037791814882735959105887496971897171233416121936100588805701905197311201004564914573921923573780800244268467723339410968965482105173932467670846097502234801335174056843667161071853497207887015315659802798099595419934182832688193221223112761728410363213959462872890619460893577915217511398943661920436239279702431326541088936023573556370814016500424251312613526521627574995534800222254881651065476610448657680491904095445828046784798545576953721414741630451270951124727955339177427064760959859539448895259834109541884706809227458345589196811495929288050251870805173644486243919630719272889374409608137980233490466452460664884992015606044506955582289153657826749858183507230790664762559446600119392188480229195771055877832781417798621515543219035337451515793248149603876833020234258552177664681590786332672680709452211089139429750656148957626057457903455082532084740893388462166515362133085892095375755358114399559857509954796665683886189256568567635220540649124879626938752388537697964615415893045851147661348428615746354565855916129640651481935973006009306248614447407889060055512183449483564554267050766668346606055582390346187161159501265359005332987052177157782897014135474027421552439377313288422852388046908988155946673726523332987309864002238837202623930538889348879887902466985365294753748767103002636665069928510328950752748018653200563825905794302932219665907358625011961144458306227826232663982284737288062109996044299100738000885420722238755100311575577594787392295341002320940590487061830862077292400560579412665268618658777248156155681735454887464274012029400357926726205862243954735586042489962355433236194436488443233795677936819994944518977525952069613608246451395421894719377022392616950279060329048157809009913112535700052954728502299397621129187821025663125866554512966698598492094631720009221721997402956294367313598618094940206263193532506273037779646393783904597149444026755952793667275558909676250990001091086055018662372997625137071683730542460062690318445728147507564707166974969300051025887902021167417628469196643113399194030321159487799659292719154211023519020908492193647839017792252781982481544308384208785816710840610907330605545455912534377549186062029147113895825395404807787308230509389664174563985984209218700338661168223136573182089508637238875689234452081113334934813234602044683732427433859259506213313726563367520544921901245860022333318295436794264318598418235934822184297581149068007687240972642046974563696921625915352280140573303188574807760783923016435176958266148063019966297981971432577696310613246632324710243360568471352108274971811140280132071810481287952118056162274817989345491821855263126772549361439450346959091447524853673376868286973619280638161171649925586233024094581023171346264231351060702325441306132836804417584256564568736424915953642003552466901005490455305516918038768410817251084284304995721770849347653836730628641570916118393030665749274569818697060990651230825927058439864120032821127379958156912857648425913062942187191189140312230357041889876130346064451703786665803871893007602881192911800361974235986875805028362102632188166505630240574510493664416538574435431818781939040024525270061044010498955486945184739497323809560519894840140717110254004746680594940907783147203376009493460011446293958722406446059559794360062774081842697471650248947266383960522167925755066569251992715316348898211204376793670887730071836644810636511796669144919498946541178549897116947754039288941091352616016189384610407453852979158367560267442908110869858063906920850948500895757963419814028992034472741540631254493562724383385735649631871822890384896360009840252751965630282214986029203221511222004018203506262785503629863740470260313607306501463716228023025218851484504074651657906332941687632496189183545680720825206083252784603936170519073640853128669843373073923729331050289896440122931210003902187469802698640359298396251603809354258833615243069431888893944456271386668626916342545928997642004619465069306862041667622885326169738554195162327187988491213620108796645987548149753555924956980589744949975303582354811962943640914032110508764351571867919081465782824901576516204902293267828107392760009329906412447975427631651893945126875701053760688620431909205637396622002617335610849710671535499055723592091478794042371739358221847151352622049964709403484869302481948998203738416655097307487061635374624557220787907088435235632330484531926118430665339717133196942480169512348996747100640052600765409093269112527421910382660679659614382593577153897817983845521817039422295068332565723734658455147408581743986952905774132248032184963469590732053285924790800272094901485886923371154875961554802539350439133260468256994418467327196426198594519398866012956039815409164257065497152010333751903494696698124108368417511366964684352435289533353380485664314805424640850174558297935253785571050012544214126277700763483789430844496555868037357340505355646759142953768064022709607437669001758906183349712772695808679966510785421535040506644111194221338066780711803952893981314975474052096221176695715770530182350334141357831475900192896064834430382854907583297258595072329122693199292420619492982629608412112378257056082353547864372906493361569544790049355259250588193885689930566408666606061648424029119858761405123169008350621904373192392647231108333633547616786074640220697217516453159793417542523608305485996748656115878838524430935605417574729292989651653418520578022838218650762803873885675194158269817177555985712801238684100835876505420213957855802157334004542419740574552470503988536718006567926040806243629971768582161119857806815467000513813642454715940249605766019759638993437895855936580964666432482659371408024483857050267163098143903537364998661711262710956604682002338534977578399526248221924909168059272405488502211636480989910605069212916693553653219824468302952135193207610936391503251979701886983307930155476190633136774910283884225441377904368080521954416167768377702408507743788401047203993280009817267058662608704305878653385792784008128379872646006036485781935804561278489780056462803359463733845924428605209512402656498971631753164504199285810278807606773652388712242319725457841240238782640577536896731619282775814690578388846063512617851769335479904981396628129796681482661245181406237000719322342961099885085820789742903191123245927759418412780597625302224642287282357777146320347205210477093950810068595037409813682394608678077529721996073056421895287751320559688549966921209641076552712221796118193168962377975088551356484917734961946717940599506696750137918358079932798090991475387683922481976332818319066995320364844216013288607104926955567690881897447387176240433573682016517386406050357766034556298314973962610964565611825283977914274221827581819845580837233801772536430973087944084227189644709582651575505942631166957644861550424193911626929284980804918068097506680781437370475124473475945012873845986883672343618017562042297549716612839016307547914873082468337906489408779612565037876265768629466851583084343268962705394563568520023053344414655695142788353306191954970738069809138633817543221492981399010984657177553792075484849610594226495407241565638358447070937499202949138708087223234539605074163829894424061203515446603744227903011512554062480076478057803968092528650871702608931794664006014304482877898320629254249553261672498996927261813047181763607754184128027665236484216046534618900429859514767818783323910551380016535328479135231682789646449626490199502875814465142871315105901418701229393185321890482853989244565540445685092422356146321380181773083588193435609218953370924828002697132967478701170229153235631558036505488733883845786834554798364634682088771963522171010550689399063627702458327158291259951610916384173839964478436824162779220358235020969411339426190961399687871012465776496499446455998623092845942986514362259661403677920059493400998063426772027814294274985286096246736469229203104534913728555935713743632602896027935897265988889344678355246500943554113517096772577998894232653207585479074027097938335834833474190759686939589045389858281131281985816384010053680700270466426683277200925608971193059160917340132878739213455236357812681250781221296784398917164106154095003155890004175899734993084613420049726658203423790343423227225762482479262304255160708570706714655732537746077417631253317307944254806496401461330740155159793313344605137233046969079885904940288704931009012902641501707890079947894123629650300276909213318287119348641456809885111320090186902114428366732487013065894253532914531657788962677714604192189862325964724406059266769125941539788547474430369766244977795408015957957166353205428250056217181877854305327519807466059457204804825123384571805750806105190372993754248559861719038034010777717615621915106185454549589642859209915503350648308442978741681074372954544986701706783570925142327355454936506357561739377516752030512440126611229174504644570434719545844475599047599506872904825294687945017543821019751436158064891447277533185245591843514200725093041288347181589415748356799415105225736791970940061652541744746500222159435955549911204300612987618381485528041570213862228428178011183109046954249580389585829682138128095567124252315885241114652654215275386915560072784335292546475142939187379408887804044659276051516381240257576861346815248557514911747123729799544860657117922611275869896863465626987613129889724982688401396329995893905586569819528234761827504084056174309869702963334892204582233311622486313751019986364443566430389068469946212263656892528244788597930552272685925466458376079015466992992039551264689036246962810813397125305440322999867624106279914843696257431227134729984004853862174947764336976207369205751785633025542996654326883961495339813353068230507333418473648727469549642887399409245479330483231794743001544715397014328497740217932391880854793807394876771231919415376761401178191177396938728208509554164444137726154400458110993601339383919853253107443391061376435900585974749586982104385137945318111638471994392665590008186042467083673200943817994431247977102970745932973321326934180319405327456838784290841643523133898742997150084749666558278081699803091159459478181507510624658266986286479583833910834878450419690158731792663227664621118395273806461145747528157782476359222332010697386254732313006410151762262760438208969138278451886609786522317953602101041133357992201802811142736510950580735104906156658546001275317233926961628362761531354840468818680204222420926692446157969068480530824177974949308238148775309190887880842932469461628182843899388997647115799497959938609508400419791447216481594540763454584732163423701950952664855543196450341383760625727756969234750185006032458714465607084613459028081996999934268172305624731173831775476036642673098942871564174810560009642432721975663760082331673357482942893316015914636441372682449970709224982533524933037675064782658121480876280986831781035177621270225526268458815159969122981785420937878155296474852859678522292444734978985837114434173084368738477055792596818716572948735966662075502604788775267565781194944612914671307827248651371424526957428299023624464140900170177888647924469768339279802886427851118330013692303753081070990485556335514944810900850013168691532720149326067652886819365620653950649808268753691912017910710983096729052293966715587933844749493394497440340196545727514241956689485489836572891834302143249506492670637826712919435819931181666045827057507402652494840152366890344399873177810999973997274985970571486556796502396917941528926940330971503711861217395099749600508519654768027454926536540470143468736318925894052033793834105446053715451899753268910567678996039653329440109048847511487297948085061455175134871075017060979048563356239638795049034011931059950875934169025440843259617780958574326989185606732472958653010366274662731960518474623294885122224443566029026721882457709924363091905661993778984412145458660853369502003214395788152651583855485745173574855067278902935393053613402822420679967551736740296047015972911701861964773197648718552249996843459816624410966107951642878944092396570194718977932346058843479173514349421159313846716292279322486830711405077750585017380173884583160616796881149702356732838677606598204009576164397547815393368019297527878759037729359508284534269893466628974616991668490449219820209887761824591620183562348103093017699308089753325959006074827231002033911252198259319410943098544509521935607026328658335991329836395672098937908840154631740097900326152323971377109076247361228256612303364852659415863910820578843243971735327169011580185167293619352282870369899152075864664245653082598786410900641151010584161316035894269762978490981190840819501265386372346432517338232497221256187066590577342510228391616908871207658564977420056307044994705692460513837471176079520402430808883211083452702043530451097197414772719786788984967824919490160302699403284218710763671982225442623327281700433013301635353198433760162409211951609704246955643936067489448951332680115921833526768186678940598546622600009098923310536600656524808018736475011377207809571388463529869783920448564258826819485149291812325424919372987815216720111467925976790608320033995427639479325811093486373888551009309840681543286413935757888217817256984351051399738123438432145072348720477416908936104621973324972705944195498401505514528155880359666037518900026733534137032722600454807552759301445924592814591969615941870774910309695280451320114438415749010022194632002655145996974988819412364603665579862980741592071802082297979893829080194815375246559169599240995068637763288352529062344900843621160648226876125903593479502878248435376834390073512142892644190796178307190622094867891605953039732633314170776074401059722611211048832520465621323816109353510719992512181490922402724657407107168185422742696056549688135520856635270922564460921683607242963799373427887222931920284544823685307740207478649446006053497358145966035180236511025604802501614776739486006681458024069082504627985911031424194407550023643840843383085210732117357213007237237094857358837556319414155676105646085037248590359822867854916190440377089169739218540931101430642560808043374983106659519158836720221691280814778306281335122834845937122098320788833496668598854284591926873885890794142400648557812233082961031514310830022797551620847528245254559722243098262453847609091948895455817603697890432970374992764527868803150909471875043044595599590342677481123677022337953491681634468798502876907827490002988094182426817498673185231817485667613291607515398426232253064233009558309311981798354066800187820837810989856688355059502602337448615522124903256409311491087906791059137871388444140710691285740482462765662918806923497293502282274561806981653641347212987777254395062152821908708066658043006803481475670712314104132477509694531809847650360750057249929412036250856239012950718365205880921260904368252849846928011034745017300261886446411567563564982143718667843990759787039056452290065185836214211082418065106967519225047627307287699488612566578397141800678941147727293623990342704672780584563180227735827352765778954229371194410039769223404639135260087618067692955299984816726000746212249508626370475878461156295500266895727511347866947973196274927896998974082041277551295442374515540494253260495582327534671109006568454481226254737315809480528222865421484247358196763945718956301061037203244433630000274017099668835287230182222944526156086084991643422645395184680091988593346309901046085737534693016657150707347845937505985973622024268814823435106049268623028955495821634652937214262822361369397082229068126605931907391443523255987713942361229258980898709484824736236904943632440093203472408060261979362097199859515141919740858102568302070661293240040967061190722305323811249991480470845888820685154954733721321280675602517056200471023447211233638870661900971533557663816616090436505370340540521722744532191349075401782074518345275747634966439491476599499809560254249788061790132683736037809880075176103052653666039259257387897653594570344455840007814241054170639344199566743880176997052023290805579236582801609364753928471972127599376177364968138769879435979731573085088334244306722708116009077360620374077088161932048330474325661530358503699516056302081593914128448313538875952012934279368548297459556012800719795048537328743182306179032879737016645670857751289936968116054432441675534209500515787071281853517526422645813925440882703249200755553584192218934555941853720924220189011443275592574686726278523271690275408097000867501331627140255313516056975167822060674589572954014331237490462092379029548949885353154318555173091644397837366419260324338885902113754838011602642708930313376853751461759536015434263301721290517281100572801902453875435404301057635317573934160321746069356007019724181541527100115789354433040697422285358220230050083989095296232069714999078397516676349624170599335003883143140424636950677403733967086126110638540896488498178884472802710338463755767139897389676854373153360703420046764336113093069924931660931950376003857344629691126035354625858245998007251056891093264965906912437765081122538008176254177672333495862162397032740767797969453814107014202833027473938947536139477840371136747534893446835305790992415911412211921217914779356000639473169014301432084376785586464300064104996183740046617553752686821603196233545428725286041745098251166089446449239191651540191411430193251173403352850830638569316957348512260968747363279528194145820475735897378515509543420781150333396742911193203629854919926029003722313644558607520962670478673428924684143168654696699360207708611325127877476610610634027795271921998686556777974061747044838652384860472076818984418950124131705165322662854330434535788028470049687593316054025468957403754831281014404183598567085418093858278406648008870001256116044988430850284792454575642541258109795683201206008916763864988805611619448494687025782104485172272823500476340921744491024060535275461064596646701239721566603097654661302806910261414414822121503094977274303082179882882426243487683857321862564614356799898727825660269987240969777809955554720685255978642152888709410323410723192359015029755350670531206430771430278242968365328120590963893126647263809421229188980774162701204633539851722176506244893824894209860974103175045440248944516293983029903922161776630611109997475797141012777438775057459434847370189704370488614321790594246763131746625286598876568207347265533018018806216885213375369172537341653720699814208869540904638197338369937758911904173620781318560893116692300402125106856237127714819906105757804401062202332710818835513093697158159290741552971242921696740881583614255677019564640966703225157216029755260445483624077071855106398305656436635993683396847070828795261303579401588959125345798340261082924642906253786672120721111944013467965829877072875091287604023202902719112017240673508034777826360274360413142465878503444241960892236167872982804864216970422894484240998013508088241411874928255901718990932308435458087870297022884510412443313882209296198159618264490023364538024821221008738139093891302114243512170571111339017204972368170309023098392611604827974895009504699356744030426210272501335959351487145073074810170365976790986628665807776630805116974108845778185914495134869878150823073505942246409264490695876925412696917046395729980520173112382293074664609308691128151039682939210926360615744364790014375010857880084004609950335802478188787133151641683259426654296777666638047379119860486538429262252801220337704908423017611946105410997765449418139746539029943337133311217150068634468718294258656823596170862465577426770817435633951239403398940224289005878595570752334790285371612329611833118121091782496692239921934359212505456704013742149915064573934998991358158486913931321587993767215538997772114443503722364183643753605332869139591751154371308604692694660713370113179435624695451332243390004944172480813984443164895054766348452690169959719083814619039115325822326383270892908603318864016740402039389137330610667705569956435276809442216817144081920644944413697212152735392011709620448156194184274547773268573069306309203069844033349301961598091809124223730722816007975672295341523643293927392839473717381317898933368871239862439385999715613158159880869534374074808961829843738763348902933454599090209520385801371357489986571378454507655408561637060776043496891248761629248901350689356773072098034010663101468337470551642977006442294470591725728363434408816072765336308481070921661961443112294357674771574603831862433522053441995410005066793728842061392049641525685839464842795464540147417021002517637008686414608228555277028978960755986555280964534338620798565959148225412142757676297852983868778160251716281583596689764567939636113806582326656211328006372027573039509431613176930936087308321951278745937465541390694883492478686469485182779837005024503988669043170084693898040053862140691092611825607642131447621688568002663631365177346441409486067832344902352088465800380900880224533984619857485519116256310139546325472218255554929904741247276039422813726284147389877484746121891954790455964145180633214050717656287367486778842626561338003680938955705914448302012391471050246842700462341565716508333027981563283977483334427063560095571380387528366930529825749758239458248080840172975507083590689075323251692727846896252548636259962286761419908977106775652114774436268029978092273184982144345149363938809263158415867004826211449827119408729090257207605585839771805400558385947491697671584861212732858594546084720641850997497717595284944937635272605806676403828321165283442390242558033403617196556298863264612016824367608161726153987332917149512603778557214575278228934620023942457618628034834651921933157039550065131595424397704373775409811931269982481100604436162371801316561557178662127396739276918440006453684700004594263803180153736047118363946691819369553913128971181471308767518120790480068107244804329310861817926920372751527258551718002909555600522555473648536851266909234467741062701455919701053560326782673085436671642703893521362738931015261758490712389385357077181184680757380593744809429747067217060829812933248876060617719889369397757707942141957186831084632076093079831374876092735037129307442792094208076271110424051427541148664248061649456488587306965220152797827427147617558196813739211107551281106206695977422730992520287724485137027560793854762622184440622604851880337073192916138775337718792344796986551902250751089536337887730983739271764129150014064761150915854352812156204153043122512602022349430930566611361248677389015217868246164176710435007948875355547342355499645366947953021782590914975799551925632547129263391380229284509199364684825723863536155342479183694240372993860687138115511759567474520986194355772005270971936181031819551156009640786818158843130668492604796724355430236488726060429249336758722373395526747842998117909921811697294108024194921662297029327390060605920142204705226580897613581721135677135952558311170397398746312854740433098861084322283644162576368134475627453524961553412718188074829540679216005474917526301523523903521775286521329165600598231177610301213273184566293560077572879154503958635767105882508799855419322468324755882243130945531062369013701301030953319942649255523649622933405176803675369775331936374769865702588616938352519889397387516653679546455621289757915965046017163249647959367081271759617355892338024407159089198980479481233350234629429394872507486718880901185773744022633674311466975578835910526463050932953388133516286962443546908357827884415326441299728124770282547266266135474423809840339838219727065346826420862428940476079194100020309970499474265710930193283276178984014758451950135434283143069605678765181562539350495237534513364729648945976789187134499578666991254870822956592258637871818359528265257419439065818051588228644802191173234915877260020334604122304468291655769097658623880836150190243567422789568242032646502407089851754548237122187335819749784926934113368531204638683444673201843820349483350992030999222922030525220235464233993322910890159641876612305709676875169706347845611531254389344984286297248552179629031270514005448033166029167501112643997564769125306322654379471877550847126748255814510018947571764462090996568461455328260842235592042550579357950138242968557056844401672532717676116636548476754619300768498317886890720774199837291014923652175126753821004980588463849208592731993320285896894341180082178335786545723721064596407079032636837547041028539175330650364341695512805518543005870384776349904477981078158225992419563500158022677373241154804413349552659128387019732243983373496820602810479136229623078827354287241225711011938327351704248239167102614793693127444492347537172175268948547873124848516943164768284024158979748562011348543214034053517317442278539608676129166866255158128761737015796855095538133068300523857365174271557399209623124926135565082867811037994577440595941440450460013221996928306255365540431732512165360834186353852790791331725814839043541177369516725353988071618608090519722094179408975750835163450945789290566247525036351310549406619910630047124305613744049155482193689079411790848297520589910605555926668267039482745281362998620207632552432648720719924955638849360877549213603676812321563254529974707965418245615835351154570007696931249780083707191641015745804944323618932333554382375385679284773812169872204950993588883939238247948398312069074385906582314548177853218348093222265077874067337757445292104404462526685616546175568255416889443574964378261668760712704446160162591547661457177510512042622515781396009050201526417418382102986018883650159321926757638056599446435776881829576180486439462348786178110768210404458908604781693447040346092033405792874118502395766575630227767345680581944380562966840196137461093097150657985540884978540081925237590278856725446949864902003774621951656427128671770598521015751771407340168065625405541154001846412063466095779895531563064209363025156547370538544300255012007193444921619711833029805636671754399599750386377780616162730775177968179734572932703350693307198190697616388272205836999378192838200393954726733327948818124960542994795480504859115894024095539635108947455460183920267739075114454917217169358138328238816714309642325910893853466223563970227133021729594189844943376315191523837569137413139963128338536356956604752072331286453681053012942378192241182824850311765021421792546169771673976773032903926228664062977147347994669048434294397672669461285196825752848388394242746769445681109307100686128107130179228893939343364392662710913419719308639892966377680836415871563124691762869342566305575403823791395922476394916976052746998114463574465628891663988783683761548496677037623344276108716142294743139952937876131928133869984377235815068418246956478172857467704245134534502963011902665801745510785766898571713075760812439162880562348379281626067960161211582961318973760069872997612296692946129318173088521705348945225065028999805365927975688841412642940624582069023562661584079679472428277980209493457718648718783036530585460170036870900597040923355216552466068606556476096146122499074906781850244358813369667425607069952404594108404827260327890631100519017087520281437037166828068707393796881207575475991792106175030391308556137914812623184332717148646529571604027166861333985919070556383449203196667956617317792095924222738318945043225556268267575996582381127859728430655856751521160567842593171809315216361868628965585077484798989650207119677988024343650747518671756770383230740013186434439207068206896250102435676804727392897443874733178325019253928855192149886004510047643801646896608172612871321241538542029147345442381853315591207476101547338233894078519872396109856306569126176506510200677220181198897393674750865072418316007749454072698418271399696429093970900160166195207984075132402790628466100312035344026866592095724053869210468964021126866328174332179287063429674853664322959009291754556763521564750120922007739039708663885149056220007835746979071282122861543824229646475520342215051465458435239015985332334382441105565867091744323945098654198290210560555994572702512842401257935049688638147291345531930101899391231361945936174986457704153991904044490214732937229962101531312067025254498417406210059336209825756524824792383983348952416247788177787433226851383456743572334246949967708573230863218652077691119289767650597169371465373366836375168750133552966285392520329545266894443915100895964163948297682599554574640395540359736099747278692469972559454610120027695804419265321252513431693323732840459520831423111319356406693700007460655547100073124317080433750828582846035750104554817688754172100023813903611408432063657675487262673800474514840925372760649765789845371805111688180587508487734982958431213579507855000062545325105647565435000029351412086072119747354669602091970072614714129910590245306292290960792413530204167100397224116827392223013432122745454230415570217672152953188128002627782831064423125154309260278380751978453574955706263537102660571972798036063074149782027717600877458426184919025851570658907484448709340661493622049820908979993036291360967859262602902005106355674335577355207938512049960655383502710528340238712127142399772859858678643254264418197785089296203672058009516752190967675150227635793282087038032033116747906444010027382967564373391448085808074310539450228352570561931007095452307434596154464368256380389758929345528281472122678994797424287963163716678078022429575170477668977958485919444448235876713498075420735260243333953883638676347726606082508253674054978569832030179450361507474438280788595127036279913776945059599346229635425428557151277211828530526690647686588806055624773590741340443097995516335073390961508320945479109011100345260148920027275044212293254400969437523340718175541513213203996504000341457855026942595381395780104170325173700604755555672286035425149654981636018015414827037958845594279832356642730353979214439537944951049383810692669476536460477634920241021024849814642489020104393114279448063770306140728909502888318772754910220364683431249498904129847057303987104816720159462363785405723790854294859544831193977569060080116162111839564894269214715252550784555794820881546889541992634711941929423701092484431149311719316505496558373561778306892079343440017719498498247661707882897213975358809122060474599292749704385761389267454633936894112508978651877560772349269971109255398069945400028032595606195539416478940464062274841143388954478916012253924569501286083135979195434425208799387610776126513098689455518648032072526219344159246688217382477491791583672474380627340878835758032207001253876949349866775072579776329301372267686756557946124482335842032267119512407265387230794171031923317262080854949363159208838826619377443824608157571830577549989408445134989958821700114434600449387571913714538772586186505321389408117284532139804826010121988609198337124322957757403439779391508557413727694396265768904055729712745458243446852592776664233600346003360301830127313228380100488085858208234221629234132500376903229653727072398891946338350568563468593080155440232659509988863061709208060569036869362123429445507246180934415959588165762289516186133810128920415551894385751228619666970472104294096290626566183387590226776604525718049430445503355131492711188118683704411753984666324620842586845420057701411050129203032366260625003911009895347272347701962699978687600462974639867915390758335447856326864595101016274298717677144525423176240693682418917941263480729501271472001244350774919820150737719426011998686344179960420342873014592028178633160265509115016779154217146909542558493400234805806345584535432677155764504810898959614515415616043738310145233412587095617362996046469080458969915672308812012317672608872988975383099995078987854679439090880343066254610817284852102186201893452183013066598497316921907138556404058718392451797754451586652153451726994739291751581780324100062940629572783084115660730427311672519577267208234764890851434101728004838198927078816804501347189607767946964918912747941915984053536756929312984053885203254622949712727511304992699001346319315793975925520770044038183672014460905569852115080015402914792302391879576201783249320954337684715044013017999237938293838853185635320174873539213220560626631192175545283222678410163268371993871891788654557328917889825251700749092598440765939950346802757375769480790538564350226748067922820298515733011261862369091978124475763322389648156590779664625991327773627433439719060465233329981987362658153291369676325250011635312871177543310764669657897543639618714904872044599006934142608484677660278071863657320662990739007666258577332306801328015319603352392480483026405694359227090779408759535124662867064297749283243918781905422748670087899788151927004577355569407091292690282693408528544996461160245408312359471985893586381574426455726972196427014162390067129551843633555845173599501849009769830879350638567214022614267395109488641915403061959699501419953089664752143439340884562518262995067861193935212071014595551360339224564563618876923289971013296183001617754948377876365179033797932715391515518761399743467454179634055060616605626051052955099925749610863846772220059288430471654217325285597234306591185911521345828243129943861469439069844073900671427215362901611582668322387796229450834090512542350698863335196104136707710780568765976212640124730426386263012901510996749716490811883462570583321710357927691818054545834182073959052090960481960647292513275313831429322414761163205746326873915774537851167857181531900915032672288868260297392353931450679017051586309325140541269536930056036648802764137457380920351652749185850440199161415232735707167657485632274506366824710709324336332313670554528610517673864839542245238673487618064248378076611605568734453580549570047968228281212265061621529465743700222032941417119349621605295867705748270719559679604216546464443213462500266287306066615867820845958037316729784667375009592859876254032374391952220938443743660497567794810685040102547256104531343733467475901736382232423974857536197124179647730885885106552156219905500804871748630902407108089413971789066123403368314464716156873249441560570873687920441457455914575177065994083128710263181076378536379896424573917367312580658153585562365960908359744054297311061649767350991172678310673473018740640848153470100720278028644214861959058646830349517888554582378840187468242993981730549562362821851447830816714190530474490986216097381132211731766162646906764167348201332483926673763854193472273943373257475709571753130329062168937610676116720977785484748140788167717977929199381634926488774524185917749292472900993763140469876740851299188042474226106346953298447028580977067761051151498684120615193448289200873313486896840326089654033005981587882245847600075029845417504887583097903534873859157288470426958900311326325878244536520088224350137037575288189583675849420047028778516666390927284182997920522458891278340416610194503156840149797878949405752916719628194404995501018675043046311878335006759615609031123701534001271220573144312997398364046717902678337599694059405481375618847548317713363208210241817965988479083324597851126529356509058264390598365193642551180439279590064423296036198589726628064486955849750418837845481218979629820058771202664428007087667635358499571744306143964825056852915758395958345055434245036280501797806543634265408022061308663950762505326803266249000648644990373810378446514744721237175449919741936125216845215906311466466323138229692343385512748489143049171902812921961257257281607709440564151792961417635963003931183500245331312477525292934751258506612766436450340588535591557436228483381584894001549819507359461314451541335212808525123541699307286246009337803104789061798390050636724327348579146915075954055939108900154090233894196251884086719930205962086747261708329313661316888829758479872346319829627569010950439601304051245341290215784866133472132684714696015408930782458354995186078508374747403737365789665844183389461012885706222255900550680698227095216896297067828997381770662013351144382070867484693644417748773785886070310704933544496868277390628471408277233228194632617834944882366241353304412125398706912880151304084998774484949141489407278440911900079667279092340891174580817522685795889738729507234553261944724496877748420011558223696100269177049035672527188566905141030514053953092460681561075587061799307392081834642286098630915796986397190964828022884716806730379493148845598227989553996458047820684708989035942378061085544561557526426784430537288756421609687712939565283991747709591549896640189945312264731321406887990579931489886653987599977910271264140323035009547062273506831395704362644744293909938308475383612214224102039797368189637149700278240519345507228148967367194204434682740130595766355124667584321178389787724286470377925490584536249612392766090458002892543086351259682699541475867504441187740624939898667034449184607061520933600623914091197567769835144635478691727756826739057180792391060619107488762728469188054618672622992846878593813182288528791545705453156963787659307437217765588080635868538277521873574656694778923421551848238987098841183294148902840376621295249366556246810297537470996427955583906837491985192039853832408961656102371300133130574873824408049208787650365963786114466061803450402091578189466000173942126660460363463615214762745090262644559771579156174149667241578002874178892348891057193091845468911843401061038337722654520375781534250846119338059431232661003284883964767130490013268300674432526496729549447012789803995506814869450390803279295183409190117072917621992937331977057254250306303516217296135997044181267038149552039539714720168128692798068525953853347893491476507716015324020859526145229724828759479682165881389479242172449556047925837339693756137766518492618816164813008942328300923015803694604165089753717471713996218748654789321911800773211026525772399837168303357155883046878742989661350320277447416903577892163685675158284628528404128293304022690414263381503956358602837854602809094766816960209010698216137784968992933956882233548104688095722418334403272589232208399535496163149045732513029658104128322230439556520099915121891234412650585201363550792937640179652631017479308387868789641968164848011975700398910308861488439918273077240638119681765125640886346451626809067411528642354478378445461499444173567759172510820537037393104912467014819561968906800596057376027361379788110715178714829787491504025943729640863877534898316051655915371799902173496924710715471268232456973388463526497034991392821383008393444774354280827662748032570525835208311993971920222643377365831661862155280753696079824856545574732085096308961930324673457893286698963613547401324944920823424770127519032032009564080882406202040487899596287813449568990832356989269305010922731368869643584849006520905521807582620489944730269413324673967913021711480434816043639782778569548243237724550409764156230317676876934728036814972916884628066908320787217714099697007946855883952310104966793699296165673761048584647230844810033464191346214046358301684851915466872858898679245026639302562085743105100550912557007473243669206915919666073676579740482495647519871323224045981921671231180736830992390581801346326541594139653004250795391531120721924443641508516360449560866005007699622133972078297984402316480156874424752869778084899611962713137128328023528927145384235808579765426625317297587969138294615591229836654730328726116180703777877638248391460130756517459595637933970129002700563900530102885220835501178585483531667999645601660550682250064005501186164851726021581071105827147380107250357117550110099544281934781774891798194159761390601846732245102509315786506530341613940964451610785705780302417228047871006148142327294717060326078838593827311791349099423161824279705546909676471225015906071098845183792068884487634719468891206115353881793344908395931840714049531630580119748527869549408679476690485428542284478109747273657615173890950915188991164012778155003432102820770670098774518396153780276891713404520948938729169476159627936387621779353215320440708370351063914592639949549596202823951462914062195454480623148228266454551818801210159596545066371654427799324530705943579169175582504045011555209461623099871487893603772133528053535809813927477689138348577845427605321182371683849187720192736993000607476783348386599333249683711042499944106350916154629781445337225675998474323175336145837804399156892757581638809701815512687663219157127913332366754055839567158935143807589674965059165456433026517759148957286360953656484875987011169839204988702916743082099817398364857167823901293700402031082518993590938219722500930371418823688924295243258151838066955255645256521837116339944187540543564519801337335140294255452489883875247604347980601323854090964572882728998033543851792780639265608487346105775587289987193774253915735542490586549908363605459084118058865803720410948234742628225118899601847816573148204136137716431074403351058159972230099522150846497335511158431880389772079543990751340335580222087483943056070898536722355012771619803430692919745917989302961253452715117586787991621536960282890530256052820342372170358346128447594843128018378438072602168918943130640739621747231555872647958498359051697272259389891648296505342190407134334151322232133662919490797018464532670655904755272685466204357758644173393160071691864378632163388806441980063629260988907821922112271656077609492384154840623673331205569688036097042330991994643793129435165767297464861298204636936567437210551359044167199109203185853327056509932894903941815580343853143391062016440748940397450426687866331734256511085406252942245644579386851712477739435860365198557161263979045858051933303274975581113621859956516845001693027229813254944982817354066571727825822328984082664456785169262410598651671666902086411992542577811925198211624815132237128095585661487519507408718419701453693275068673972199515420706722102562300176427820493021320745602539320387169404638340794273377644838217355738872236699583428451975528045469292362999663147801765658684129374252274179528114324789640412659781678092392016210407344714185190603637569456815449346929882034428107109460499249715397116603532003510054990803606363125062379831607379253337248619416259394412328199703937711277531108211814414000387631512231383859217363311380124645812818468757852480327548452187200488575542825470026287430951228886008895807889144206690149038241834210813608053574008739910523520772407387114871142533849751761210495187354560615655609507281201673366002015498235947605499910590535862961178326117382365809643287213356092633148081177304778712940084161957701637051754184795330648688055582744218742091808952191313707791006311641949006712969457666709529544969389751312184505196467330052795888983729666235180010825401786436697582819097837613206513203337280323484732471305374780204356048456734329535720273702279534511500836113392557704212923327088847150581782867307295088847605706766586148186806211787042175925740368435501340456004443620625146535487897911204421887952446809907064552633779689414488796114398250567628523642998165587208801519958257918495861930815689928975922127503418701489403631586954774963937037197862797220035946028193669307243227691606172680376669214985992711403917699230231100746666727270071477333661014179015380840729141986441149046362757158385599645343389121744153384883819384534544229077602885923017237178457587685560054703477370228023581239526434720291228362757140057604913350193854276810756382264660779658533256141628712308140891816900926980519630109894386398140897500173871277772122305515118011099419026721831953265762646505501892349346597148345398165109480480845078952932374997374987180943011846491500459579438429295967265863510331646021277904770290967173314831275808694784561665367459040884665180825239855933079765658382081652083738952510250304417948806266426462780399926138429455529718291786423542575304657920416946192391446484770896099223274002456862899193312921687229928209840344712592860731272256419810083357040874353068794582944492674403251440270568959550843901310219805680377795111159307425721744594146567080824467206933177897485911932110540199208424391998816899563133276945433329510483433615084595251389193235601978634409224017804346060290083951643501511782419564634572384348440407877643012321979774554155273325164074694844259155406273068330018863655278146054646863066739274681042425436578804075039812212673041961318620288884168366702811347260940433499468189145308106703092326846056364839891257735812329077079402904617804769538766080901405992189959463379192507803789727190534391175984889491331239464738770339278217770226159859917946899504660238970575000964242652433784905254198449172619694027027923778591692224537084481932704172546568694898634791237888728081196688444223092756917464423260154872372902568597456656161755114646888237656497685371940555616431876338650419947669463580557912969416446565008943766537086839987516906259450878902453833478977690645935066714401824599279888243830273174479679829947586489368391341494931732165138261593708635785315450402246937756665810529763671197293924217427754509446980920163562992792264291977700036786616088479975373645921317331201989712773495972278404081274376537949742250507026695702090105363771950266230829901522662640394573430214544887051111075703640922129210062766885312800922144381120543747921586102050975296796044871981996890642294938311717438308445354671320031756678348658430493278465428406164696814454388416661988767194048172346397012148854265009714674744022608826984262485519403738807567214803086203262012635759413018978990439611142482192527610761603134183340592334754655354792430823009076119819926158585821827599129507218598377282562618837987995794023042542482763704214330580930261224785811677069420511698705472180394363161014096333086608700243873543809238598468597467429923733787950027102672676507132075318713682431247015737180079325629056668490002791292829723662262855852180384666724266236921843318070759186298777191906089777951995645729895019847146167569633113746112781462716686725597217217889543122829795227246207817202282088518742922135874604387330297771980671722232777485903285752408941104206858433966703232711530744033495231680842004560388670549858889063750298431382525783859200416779614987798723948719602744365866595338399390035961640574091885574976034174849916928037249745010765828017263773769875524559078355886019415459068053949548844190841200153095610472602553117741365293782676473025947469888268008786466266087024950877593767800591097883388858117881279470466562772263971507228073952321272055883854596939128556181870074908798515961211925021371465710091702164519035157186914139087307462034502938046052196481426088578894282828287356266111173885298534447254227908724356493997209756231389358606433093283217162826726746445862554183366294295210607507261451070897678690108657886067888684036997508529587542360477174847327403037072981243362985916892249659850081742679266958973459369784959959060121815379896823313589162197539737217565464378339942326881528577580448334479307016002308288339457156404357118011960019989058524682697661234094494018184374490184721159911354819279998098252620257244078297227064668996592863512873274694412245728589532455077379800782972096426725355436829700142536180588177239796020113661006341677099085192233752311236080639563054133854424156403059624873497802362924311820772253652798411792804687446371282677975037674243188441627205414745299435648661798785304370934389934468781249204321646964411361194936651957877476732429611674052657459067117914419036741104065723666272538760458585846788381142687920899187998168397736416369945974412821712932744414684423568263801894081214685508529514304091367956363490074671624835449850895921743615539834998667274393954645626686409351003041857112349056330815964803761454695376648344951431258218799211643434899122636050964462703778330867716587353462781090514263842217633161513569585784506099768086260423068068748286938884652024514574370598118583335154910565615830428657318597302296752317154194009196609319340817295273509613965982430903355491117692496409240116122893470418634812481129158111787802379397624078772443071163497782455473557284600072789154190229978610460065587747406838147044366026559841976837294143545220057649377684598236951941239862068111125037649100761274191226517850489624648134833889861256683712153130484412792986422223492932549718137242812478375051849327894767024592621740339336448399276621770106177882317317058455978497194999215575430131521419163665150579030888524839765557125068093107165047668888568533657697914742297722842553606708510289343712579164481203074635417859280011794923094432132925127883320549177008008678616186969189740738499286280248054083688619327630208088766502317762764161328193404064032486338237223216372845561310251808365024258367721324708519764873249101978774096080083292878101631686745400283232489124509182799368162777730116817898823672736640844516443257772632706419022347598955414744892436769351481927329495340803165707184112002224734888081459246255000641725758553338592439448591577223866740978002451249731206908494451722037341694784206394615634120019061556771267431504265007692043484225566597717133188218467249857211660584397546872530482383638528468653059148852114302021161004679746825663254922448685951459998531203641859906270930255361606807396541789044049949948956205279164752216054759028265880749599072576489238951456997180825661025750583120312633131234063533556310357836833274960680023803942524374245303110154832331302019229700767200065993101396059038925070342694806496100543237242010386130254645758902652173133955804262059662216813417392100008317015939800094675414955466389446028732220959752596703741910025446758569423214232111084853196560124263552420748971776796987770359547290337378176171632334106187630527580682657457478599576792794884225650313247468501319885525729854095314461614619106784081232578161773602121608642411888632648943870057955124248706132045808922125120452956678561427906910822736447050692846293448746979475085155043528196962542673636341540698715720687982341705757529416708763368894857693061150112663298410857679077352252703064942803438474608065410294787155118441456211664576379921063887008021394972672041334692629447994859496965652244609546800439362574752257961975203165404866509782207086333589006178775993717478767589432720110601281905432646103222366819449543535887522944700737121865416573682409634487772877711858610558850815938356162957659770136676456683153565352434766444613080412149822837838375326014938378428271741058223929372433150393314165055273434885558854088511063887830259235208337010388142136490377012064972623877947450469266983652684333004184777705237461257480474723232193384341344204435603802942876487910929432254138366275983010700783211888014473771050550703494449777667361000873618686926112631854765249155127262312099397724880892841691637950673313381910965682793340071449690637222943381186666003642632334977909471760514447262474584981138614293465854157621889964771217607712047128455999770158137226558741292880684310860053261142205384802784530166401094376775773192197222265487370290155563131592046655036517818516374668769019500652698147779555599716761755224186795948471709327057674624874720902992865134488320161188831020478699545451064119813450442101097130435183940601480198039913092816140120808355652400555596162942947419407951592732571028497829258293577342010218424058498490066478569557566388212567908985488706142733775627974975214208374725055901912148747465600370401690262690342486299042634935723414557741621215443054332913501206763214985635623918110190504041698364300131497235250311446001702428461504691543013798120372985412495303646399603081620293979016894885247181010348371864746392061761806735420378428614049133604116168809826488960537100912940430752012469661940909994457317612463584118662285758103791162876812093334105018214668940943707771401811069736019029975574773118571187527865703275242711547427030115333717523947859886677401166598617029048045739114825268808574220439071012340266893288571508843920046772260019005156775646038343026736346346275366787618559878003379992225964273752792000661115923382807915266221238382591606375211546784848718054106839843506377966564849645371822521290676797308410972064160955440545367154841505987259534295196353833629615773625607924718851992967583344770487742885789763336096140480216359376109931639243627968194808481815096405308834605545781728670765682896717203849486433419166356646478154761737947296108510630333661790613499542308256619526607517824428599424079131966418677481547784264814499315831153746020305539516249051219001106336891317708192715521118965123136328304170289055110809491667292162297981640336194700133384239274708573719108141186868773109659868378159827965772395442566685728312410382325750713896221987085607097418893828990565628101652689407278586607742665803978692001919861890847426572087325999222389193941718034641442266327188210374766780452486774631942215061595617932069804306955927013308090675604822703547755822951435501840812814176672286477051185976332966859855849068810632671232326708875961193381323344690399479504315023908718316282282391928818682847095779880983008527205700397033373554306564498604810894015622236131644830243397495395434199821739803565005241916512881030665180751262160501631790502983506358917846589516640055281735796416326019457526065814945342286528195069701399180264852033347162918706723072697508756440916205585034062469574377377275686855868129917444076828204473358134865445997041920967655127950993851288437326464207097890376590786633473332926737030177900608340051672280003240905392390281961565182432521169506096447510942165764514608335195709515390958003891758807536180634884446388911367593203558440082279320091449536542008179438227840122310738193710755239347148962000735846906476430388722085565200733823451322097114356516309100750772355754858400756204390358916686357348868718733111225585330127712190839991550098131282090665337837976598018382176722963331000758905267009313444197798852363199987689227875597019429423649686237128130736753665236911724208141570430871839928187168272400460529188946035437313709338987342219374459370438493606641822418557258166735205216659072120940248585792066412195255606826345852019637033163697854631534081484234369590752947579693478930940189218387470526394318038387721060651694787965527926722189471443821875491279713470834091070130479920449697966156984210090209187466733577124631099811562578338364865443507721619962514750875909264541674513703501332943271265996328376984851159429554239940202132030265970714392582320688016632825469617897432697486143214036354728203431783363171596208033484084789304299343657249686128856961087641450794746031060600434801303537836802401856881599728415752722347761482293794291111446219306185939044734054576283551312059414324526407625781538733206650192198639434614892669704453114474378835507462484589256197085791789743813549575169454847612159243558037509417969395854123509451200791867686408243993581601381149484796210575066072605189037495894204208682580678156718300385211881919492638392339886861420117264201279644133711147101555166382401691529767879364236454384663257884449463021150037005816746136511346677888790964138925146139795941576795571301696399937885818064152818872801414906703800113990267034770938570746193001646670495958418111398600151403677311091722222054855997989529157588719442775313844224557970713337412690379879610634323354596167266818742760210314076996508132327089756557966461860847300732934313508220202959873261855267923449117516700309867772110454059488736962913228547848540834308595966671217322457186995039599738307610059982202005876110298815443086580311892206057485168368164109360622803218917229330412245953639522492180239938513483837723277159486641661797326653057120274866032372665165042729784696451496924556010993049163262906937219147328411032506217448473443832803387607724429863255707366479193218152351290149124639994439112001922445500880744225993095933004488236375440823288894721163067626708111870524400726376442380674394913774415508317343550249181215134792987768427677281318330731597429726938180393940187259643661307697884796267613382688696069008418953990871267103920424506391206015251126263388283054730128755982153070626058854707798189129239329879169479836211283105399330609583671714330009026577346588361012258126934355062804561024760934667539238996830101871944788055703757128756283692710062725559221552025185322945700821808269396035216513460262095304646879422791641387649897566660989269443566631163389556805101678523186033440408578793857454832519211145735341932198762130118692138437598180328211291624717160324826944310762431409260484408314489007901802246013491245835120797229586527093258489018913177664371389878476504033506973167710045603716928139007423840075161283178435509422572629707870775224716255516923333938332870684359679555761940016329170412078143041033068200903932300554221384953393291529319168584409611326800969488342296797809126124517898503358776758140027541012872359944891608271810955450729224888490526587460593927013677738670685531933907777144244150073972336363180508859486408483944182530319626511828183990085442485275059679160179233601879205714813026210243052856589285939220626101606784700395716486225511574115866223673644040434482629273230502769350202055161804145171265255898940578729884394989218675440768089676776137788501187268723228847976826056312810082970216315440317424847314286206258825336038668033212486827188908469376987067347872776923628878997783999848455404847079113650494575723407726676725590328861355052726001282545000030582203448658081429023892008937132627676683535048311940689811564799479200957204384883477108971718268046996769837440061132534148980712690636373204035717374933774037542694889091647694942568183147379996828138427000081662547004188901937784365329251902505941555979582253955493093618587310402882170084803741489335514297293812186118601269858953299700474541674819296773627565093583090429205768477591056569845238248907526899361749801424583153985559454479997669894013763814118410077465391488278615114169043249333264834278921826218785908882260409588028249523644456938853431396957086151376753356122041075618756255132139895222353689672607793287871375832742580306506088490002777358749431049367956837566090067024048264681211676883535898719426057996842417202710578343032939409338719357605761811466178691663715290384282568986798435164046366543819693363079327886904464465886121100864583508436410789830297344977244909951760134299415205408972906087169310611402625455499488032116275897751818610159878297374099237683855235027127033720840440680014064342027068516436809327975717616363970512066913156119765358757148207420319472463016654558479328610285972804349779665753847132941482145753445350545469801116542800267780468623907427027065239699867360223708654456385461454469596955315804606161298137165750519881161832664578524856445658864449327137710220301726223784798435776406197889105211259518416799429629118178879126332089811001189201628748502785352125179734617046144850514939009575624961510517448727395074727355396870111196402487383858294793928304022580448317074206241540159326160675801823032269859568783050881101989223212536879092564166220869750905940730102871096040649387427665352797827303297041760762369626056936875985528021680003931541131753049570767689291980007886971956989446102178003161877006476352942021983105610299238429516114299584727316387230340851764339598641740332228378949501245925713275175880343563089297951329621540936003775612496861940263907888452525324655310216838039477614489935972072698548907736593473573839427990150312606407700550448559051541176689028023723849180421191488724533279993808228618920344093467692320207952010495189988456550738290580889189311003032965867914622156292899951101164916456309741475156904415648603787056223921309590582286005527568118939549352850712890496462572537831100366832222162035738625253152616759908706267227332674546641161677346801232800533859480828100389315488567275949897835400056165849181280269222771500802126717587092735986162534070993242806341073030099649438493792387300534509642755175362793514550353860961519054363664844405560684222232285120998962355370152056120746645457711287919565910006874756630929376263492178879545794237374468303029513629323037712031452408133271159522206127503443958843715899675155833685985299732177878563592521336182924113598416577792830472380731589447356963198188898367965192303404544785620967277106812250723914839668002482098201606944855818840346167106965495347666030938197596800242677422362605104616528181335526907079102029274231826868710171864609862764092992802238935362540676621822714675495916007663390432360817888135512743997129283077965802377853283166702591827228893871232910652978992550374537663482321367331645920864058438934270809970618777521660247330270807918688524639209571961759241581360549507595711108890027481309184731243315776237299572894348510406584527446552607195113525360193136792100390558604111637897792645900367045364069784552418837896845861384569415728574893517404862232758711671722788464009429858571428696967962310655404216315357179959928358088828325272510427683038369069283593741244762123228116956575869323440343311136392664167761606291308783487847000899121309458277289169006521813273523697246726914369042074519694133916963458275183723315664410888104074044831805858547451977264143655422820305092856792447412075093372015024118281973654485760577808026919627395551485729060043864364738007515103700177260282266238693542144136691878946742488969504523475003834930420994336228651246975897517776019616787281938464342817619343400377953713797080082400067919650905973810031789231580275734826735939738389257890127472410571626968473465443433768905306069787622490497027597346965722923034209040322278598639129370883811955487824924152939083115237869477379465101432477651496764082667355963096457462645053997562654050340567072034593818226346879244374418200556248691756362236527405554605188416184329396458647901685870665643696426594873101059982768476289264422005274339971969395467843506748671555690573577269628836399090696435492597626137836876615898683596590945600498915991086801475165313200216752458240584426923031956765060942051895850805246479653662340614496127648851848742998026401439370519803054463414577885934864387915640770046968602196300624509492783187913086006490703638742340389258621147863392032655633916256820220090726601461725257244821387752305300647744311547645053054176062670640390794899288348744105437649053732586528821149135898111674481010454018292349498731267361735656748854888204062420674633593841942248172890674563990445202127888139088419719214649617739757563219997056762809550577585373066299579659695737718942965290248405145236280310947862889997583486421604161290153706941619860841150674245343578022340579332175790938564031959002744573556432902256306397604835065311506343558793608106219122045321438191596206528128191790135501648602719925988824074108373106488567647405468549942373115910074035555484719989175219305772411635429225617840627983732505684781099740443191617539514423065906447233025909583746481859997975016072130788425562905738270498598332089864896419875722571258414130747912197841958896644115325644096631574979780999087456025175950398964085098115616255833063044445539137393307627944903605855097639839980698215237474233971122835550140354504008124537178358094363909395765412274335571876412511688520396039345132670098919480211563668914530787625938087435363066784901247544734147660120248002034724428159733313415458882844773214256321323125495617105255652404168579574888585728211606934587794532746922917495063138282581037920686203273379101988967822650257066254626945846718689227619819310629634740063828792168001621214154281638191088165721257587331920500797705028039879561180974989605356747298677960518152991915162376222707999180455801118091821103182870149051756658272858551705660476200388379802250796400941085442182077624581057017939276221833443789878425151534198064768181155639467667916806735941006945933998553460390800453826644719570549097162189542829864148127241750819845193545960424681442802540595668786814696992577380595247333039598782558822151490318345768599712130259854436277348208468472288658826521533297932140313590703401855994230592106252028194718741621427929755687628687197722799195901433271623410430257235127115475927804009417234210487639497593558432221132929690726069373684172424445632641100312691851746509503257358298331034623726855779375168399024509876920155263005853522681679643131622194028618361276519554520502958992458061547119486930821696696316544796816512784295049929732664022297471194475002352343871859172678680667320463071682265880990012045281065590322231261614523756602264983735643311531212171543989872424797155249030617311153414573423532407836810890002177904635712258716279285952431410272351405262003729039965271989102895539412406543945368908837091808301032426208439802421723888174923252057045971157421180695956717534600854964339523075016838423179337816947247534936001424832173907483976959476583969286526388444740164931694732131622413437421708660550976871402751346223538980275647025682215377575984880066811424657040926702841946678608239203534887366456128611572264489071970415437715745664457084672865611078282972555361553577606988919130669199662203949737535365887301466969636459684837418838988716894268713364032617666591440893167285975058761121842166082004296994027380263702974066311770778152078071867444727032314335331113591025424224389662456996092750122029035957628553097475604473822550602643364404842428060551130464127118201368705149303870139477863258091630091412183374621975566359770158990710754828668583571718537167908750274582667381885325832698872967517595653308522319695086432821118077674750874886952779681394056612092827813246020530237208205888014574300609671959868041675180820856344331717522784318942437156558125999220544711032480585258195520127005096722268446048424436791918637784411557799991715631570786711323476563786190846300079694297848081716137115144638125705787821930961009942382018805026402478128620039576403045781279255876544593681333074753353664813216628583212905128973651108170982279260231424300350881610535246685499827875028950194360935036206759729890788296152642422751925001459888208296937441224470186242636558569280606124738075457997735473210550682510448984511085856068245451787785668817179362309141627347709570880585298974872356481592653707738128698336599921493043760783607682486746125311816294708210446325328376621268668667490540768418263980295668902590887587923322490768300714537608262494276129412128369669527755568080802210185579286349724588300317204907170951382647621141694069260089167869558355034443494247462307157158074400306321126460751091176823726639161483699082952339920333975537907725998299867751504910337658635526002505730236599270230412270164822410644785867975434629516256166609139552416929417963826191367127397254898201815535000098569319913651334684459112998990790546387898075715891022273006977074064359506735291375541736486467210634428940965057992000957273799831027499585648385256621314930597817444277792597751605725445562862074546559567594981433138827409878975388072409483215415433273791063674314182644764898070831420324511408825011222307050271049832867186883121796403365526771005069087379802043080014229412112108429692852277462297740600248183140627556480440432521816058092737762148474604570173820305460814039520821538129673991343452677001548198138593250632579493589107984351965332144010771910800503853495004903264885625309147465664191132178374503538787622524139213768414361332670279764984586613136345282991867819843126551081271953590847321856526397866970169769447322438966421758197997688780045574287036758950201702168478469789487926762719250459462068197137857406143153359697849994870521400579667472738666683966028278342980577916777711775870914678931500834051153629572464238404434390483522792188510018026123190630351159672681307232699427410378093622588731026572965732930693217055325495041049055400005990827925634384518907925534560531832239922392074545458281679055124142784633613751391473752263545321146136461041251599284215140692341382661585209984319080473655213749753407823830828853295955140811239938146157827165160432808099224226034692612568462738153683204518667205346557482267360818828717971299592473313341882607179033173639889758694022986086658824515129529481660850312635504412770677630105047322917705648307702874676808289273969253003044307184057319292013032404769986474240817029744918514443228957293694115764473005090228958339407278065584062472229337549435943814395932577101299484352406885915372747439244031073967251928482093262774993501118027045401150279765500455518455262259128987823939916999790932566995228962910228309905829677791832641648072419790176526763224866781659540798665830007563410691972804641652624226619446791223095254790405671130472719738235578167836358658880359288662474398660582990826909108143090115878627282447798131401280372763942226218581550911558579649517863243950480258391285517694081888988409856538974330794256201911315765199489701060154742996059685221786850260296607592011804540391990157518286037805837028623814590486795532452034054514907931134483997128073159402136380915401832849465669434432794116483381253882801453470538070622579598608090364086522821404546496719096665105885246510422416823904477771279124438560697324072609472948270183005777977284749769308760063271480897085265477667652279247578296549062612332926396763601987563763694409370240771496261342750562833093445927683738697259274576913839426017223737974806325337475959684653354117270450852722328950607481773208566207117832846724401162188205528706016661982223938603306250051599485328542296083963774585972910852447112659403711211104095502473439485292284718118729465489118412980481680913002434901101210373405617153493690730911169143368161719533197018575829870690151607555633296956307550964192047567212174802687862283120495000444219630338656189777163528897083210735144572916696831629741013475318522907316273927893733094059802329306448496625959929370989196346765304381010483938364151995528990820784526372326527990101719366711476681825244284282472373088472783702914426593669490787499362782254116698184351382431093490012178414618548531319275040576805361300848296991920184153083871699740332078370786950774154256097363500112951851029256298407394111420692915949839654694783273120143911226949167810770012183998499359422773337319075456665207656216155094185697608423480300326685046352312035950743486446775058025815102253174386932593207166067935998965529908807312056715521850511406321797011199651240911976645616855894501089240041356371172414047093310185941133579041017097168089748839307530004541717600792901266667445761112572576530045089374236688648379855173792507583261068574548360499327576749227112347889373419492766070859563477663313288452643388559630753131687442077417569412219597205224861526616128615608666348973335250142109263046328995192534126591401521156274586925078319720712126338889118102165427311381202083902237912002143191722790173191849704700371579499285114892848708818199368633794981754952824024538042397154094111802809412282689939967621506726351214283558730856072803875065471918855468570400693509716238152905075789141075635568459906842210445137804164253627012971547309388643954047988221903482411343879564081899935347462925303279523412819765352495951420459501183377135761546689742160793199028671977052968550702573687063980830179785650640948959224046225376406503191538431515313362326374314149963118507317033581760488950198233437054039325005574120486529592349411747470872820572993616350356832638770558750267414882005138050172293771485321510528072521227804558723397808205236757818793560041814400660572892821406290139490513356161920364755287465495303081301356112709228273647624838684230629975704305635428760829466924456495649508278527960026370307182789090666941491575442904118774169444938930016665808691264033627696180753762358221022017530507728651883809421282624888427532917081094093787450743475078884662506317127318186566324768108142790134601213762323541359365090141330667644798989784104749408557001095703725645730477741714337994715608179580515068711653053247768515027943661823743114685303438384191909602074392723390545447435830068627852994604920921203380641800198695907841337259834708804798176129185504216426831442332251866908712362577437474611403421336456736897042236444087168159237280279853340161263379042264215554511268060780283112019638507612984452949401966763408669054390303588418210095754210575986426408709497254461967941924094464125202362429503584374191851788762149914777165011597810028429660974793718569978526758525218847249004744737452181757194235322827655581913783510487235758518151863880758429596598058035861154865882635175111124409904979910386920662792574976164751320508212449787323481166403142729278082564001899751230043664498419312028026134665317260654119611857568499350136415544316607682293603426153776430291749833454274746163914945728603724342183890064772125127856535869231022978783891566515532724960209473900153319181340719411921696106197000671350335840694354789585655631696763854739022451662061433782639830742817965134821455384359355183730758409810690566235614020209000250831098814676152043074485534097181297400765882366652108543808837162493427355269777847127397415030740248840574908651428926666115983529268971895299156890791605935019038425704330504241552714381188987573335084640812141542257628273900534960351978562337566743926600593856650957405377108408688742120423730760985623362596475761951151037529484066522786281041072994554222890512993973991203957233292576282303433665913980555381021899149889341888939448185451748997532724117390046782206906420195211741924494164835488947735591419301991697752409695853541499572389847046958023322113542655744813857811814776827145138523132968310501822066595187565946586079575488608194929643177252936420267623559497397358293687809595518125447847582162180367151939791091429426331639712805176715326171287651052000036114831849768687021109358733030656237767395376840952657338539902294521428318817412503172046857617586366449825796804554510092916179279614633883529741154177665926837193916568644836704278680191387893106248545796688468543101411557126344847046057187896388965527370058039230920476138327349503043657496186837179479547522388903655168083176463703108004170225191216542473057158576902476136891914034101399996928533717383580253681899621843269824935235268666848072318299223938257919261329385883219002331873354572811064668517558155522973302280234687166276649160793893830463485104234915230826585202629028061837234867946162794302208640689692954185387179033268897798695716629726664611305047388939085995202801349913579457991159415526546052730750019721885395534792448553838574343004583998317262462861285011115940155412512630461774588606352501638073073536802065117745745971609994312393049678881763937278505725252047263070375159089100959033094271482382627791514907169496375467420549710472985675285251714267510846447679363576496155477480365252015038429601561915001923098725697951444939088743274301609215868486821375027791090816319679076895616442654773645063021638476723427981865386919053876064818573136396521879925981337723588829964293475995194857384468340959667533921929944297620258305019858418525814729210141527784433263550100476681391583693969041860379858739028326415676475104153868166556778100163403078053090174936075517781112304439497331231583275864641215582588960413917289338274118947362689951775529647051511552627452770067235251417523758257988331186171057916372476836666500132929721009859119812590145090881724381687860498157400385778896498873182160964763091587544756895880922760391558492767813024373148740369343294048921835723130997405765377955372080895968222801975612653909377722738324939779693785209344442776806529355753048012241062865508432877766395562479939050014221453164726526314681262862152377699327404502647451537860840205595306009377716294874282048731442575847025212749957991497363543682846228059845656340338289238346248352941089807103186587046987044859301990729741011565199718614147259417611935813858766027586758210288534652345519151641913079704960226860392511426419438377655952148489160972072922704083979439567451890583433613189214184609336871734141236312787600532428938224699288618051236616116742766570465121253199555539036776587115385870469913207386377010807923720284988052150516182109496640354471770278567034490126224376426876569766525961393619280024539504475767009832758778017523754229314432992471977893722329767566000820737935818618200079462977844007693304130086318489208236064419962072893055599191981115252830851573989416048103611521683265928883990639503394287143328974041828299506039290469538746191425430664780325998635149685019152076527495852750630890892376284691166732255311436613831874947871965189634042880396379322805594439253792843543255945975842497240854452041207322524621280123328083043675635491677642245040494525614186563463750580590273286466514003386602903227626449776126073274098124583686950866369374668428716100351177587332847807786612106005192879485602675795362061967235397130993059629750681166155862602346287396984065146197751751117318826628208729642132000834714943071578548860302876996384943425552582560142103667364550307433702100886131325985778566684276513435835005537881011936465679611649141343843186804797324516498304179568638377272065388154169404190283460439910858342044660002110272023333143278309100521074326833379913704438974295370358862260548147839045342097955042424829068705678839829187116164399145090325850627978352173313993863841977550832182831542638938812985876432513517265175312526792038919428671696603799820714132621089395575787629769218364827617292035141600557298787417587503431357336597062483400230568146387803307772375069085956842657387474262119424466984131925285318662248878546686562560374650217677391833465972761799401694021066012442285818942560332613445181352754714391570913107945236959432247658835472566573511675154006233708432288923428031557099088943334539871807736380830887679653093021426064966315905927366038559929054161996678972808004090403911128948067869293888372920443078375467789601649814470408844371883441509285646719288932470716368724631847503581223859575779915125400671863561929159565447629496193445464544382112896462506018762806945669291686534268341677214230973332018785411639783411811551325262039098845459177824701338047578771810457870683913653446951409116464658793078641766578092298341091215719725138574672261505229829942298254335484676781914477949931237405768705043759340157514103281334003941805989922766857753318204250606376550734209305753055408195412214007830323124134389710311505145496081364820761226180733517440135640932902710530107928975612329534760381188063093214975228078160690204698842201145266324309582668360366186994589453303833385844279320254787128868271342641640118140554294401821452532756605363329660662039755618643771720574029393901667472393164847754933215584300280461274377060710114761416237474326988663671119936986015422612835211088955483776573506920248281379581274924184614299093228458302255780308891703099400233457420006882704204799096209213240105864162883749446028353830677015745364196078539744847060131247346362172908590004021956958443453165331168934766418541683480221883841232349018074302114732403961974669894219965997391642441951157759869319711867547940597624515956574345235992336138241770461275307744379097590879871109539331908926831574842545174024730773562054577579497719690909683278030486147670153569439394085161549691149893023850283125237292052953351612613867446615796021337200055954826405206984909456554033508759298521305957530918187600497861209633025966693175874216555970710799794905637278456854319323708710373770688866405170083185606954234354050243990689357011977574196009990780069703979868330477088195522617926123292811868628260777208808038134567311917866220945736712094610838533017533440370228186704191745272022562382252355290180274100527578391105644014824367461412966884306575665945336802463331392701120761925038206425044872750490566080533813906657272419592474775124461754430312852528912619799949506184760251296578071983772238340109065003295518891325534224581540144467638075436913727983019784083849673395970345788452149394586013210164478482554418655344864391835030861205374078388664340578514935295085867784187304865350486525576174788431498742603598992726488557306846328494863656050830455957687537618609848001950977254161485567063283748754032109753461494792554566485336699293618711893876195881217632481036298903531558979749326049375242565855611969158100065164269546264282187397947717285060434722979613053261174577242010844290946332553748673635744058211231757497878473695740288970542270276563931319203831362767623471466993732135604495591528726625323040040626241214417787162830084377571195055409929913989096587247236844026782882376366011126490789329290193993678726666987038375411609452008722464579017997490895431713285916110860471699715885813553857190134494171150584413172324190322897744534527340451071432132881531313492120936838173901974466000078445183978632738373921386446671940749273814718888045147911234599024797613601348315248884761611864575337997285365908259597538346698983102995999518650126248001409366260125432386518737819045698844046100797037915676602355797706208331163599790686124082955620910419022895408664567947272309716114618107393254456342805888972348107005948576827372994177482329875140581741482605162601337750930676950538778193930569382874507719954735936358247352661775703268810402854026535240116180610653824819344739990326480580486662812930053667258030171722064981238378207738203157317959475584177048726094827376145832744862004126816576059305041581773227451006886677476073444914901107865729609033240870605061656372659394172765060564865933555436277146480776561896688048713575299258998253964624768473735101594917444578528512195554696629191196753252731399597182620962631637798240153746416440780468085457595470055788266183163030019966981561501135217838856409877006503421029767433999604181061950439956240321841786743399497482874991683648353171000213211852415720804411738314298477718465540878661419017343085888974048479104361373776489874974082002416932396616489503504196826294882903634522859018510563786841107788329565117859784814913535318970387650300481606368185292404364086755173370467657565218197125143749507046943931309352978284670226221567420165705844984717648563555126639523923977518668043385914342570346942908438511544196597450832095119924737487431322106601150132177062994607600768563510277142068541828185735835744678963315069505325244819389587791930581511519770502707421313368789412028972909849562799388211985615788938341285218108935528147420907063907077268197790013769313123044992376185049870989218961810122587866817428554765436666457004853478033460607402062704091159874796752372480981094180905220382260246762418735354783884547711989530885423535963286459050383410227591713416303070434098260802457057826935225226489704199136239499352271910613481434638513174817684911353028078660965820798206428279821154341588271062217979190170571390708481474656759375714130927319582653370462347464387418937909027734661193017700834967358073267328083719546058085364953377028501809609073236113394708588605669428474941089402966497385762766904237451815862992044724463717854239271878423957056403941792377508713345318674638120033539514406545605782378296398768613678344688762226954836462833043587785405327279769280046143118199483267251821933239087319285138596219607784834217554359539617242368147128708565366802328814036917948883697483037572183037442358017114811123504498435561608531020426203752214953085952143027199038996993065130333857209734239680511747462188854957853822282322877644548108508985394416293236191394935497595997089200526111667179116152314783791852945362979116495705804302426045553852298830940140084109988830120944315612239162014447109708322027241712386162366695285741126700219185828140581980982517798039092195797822770654999733364913207030727215167955091055843705064526312020299547461880556715362169279612238673717669284761065451026557432069875843787440715977156240092825062249986554969787504252584439606472215251072257513498284444477406819121082389161351845281973981372901201127227955582008316878679220015186697848914391384672504953924789405037875266529446691667885064079286837873746004628379062119711769852071026694524508432759687888342623679005308344285170649523505639395158090888388386320768256278805820213342751530279260696342980494047915261779848627163110010109389338672917515108827750057065567372286542898505145392840033788682087551669748971080414069673001579057900052007302223977413267454200389100694323000636754226212080534634965056665988219101239552949619446007231880421334433346077769708818859875598968534547690726385807511106697821808944142306139198720770436161922165978153801358907308625927045325539700141431709882389420572026897947441556725610325804674543163043390497299315048572737200670470078953728549242066091041786266688246970944033623933272553569754183627712735528991135010044411182910173595534024290960696811253045306468168287393410664553125345360488642571761952726501274965997749186417679762673237891454894002227310160206317182648151061932578555095184444403354028466970328562358244850990069752141635698060028082626601246849917247864134478127667122528300862039193761232770983377262546756416536907161615240822335553964281082100400014010880090571079400465802391815655934454854263358094048750350397550394268119148819719237355791056132861645305881734851945412547713576374110845104311229449972045358407869590298957423531518358671955925438904202321372770415521775650932666478522413976772650936730915134741794950556557969606232669910493915351505804481857129741899644333792386340784895847427717728817085991053070128394875442577511262239185174235799257634797179988327757930357279947641296571816860859788513452145347901002659973795863422244598287639668640904298901007681544996231539564263961417201563964252134139046116574459721169791488771343717962232536314872663810107979762745099769478289651841931822108129483645897561788304022340663901453965814789977308757955574013227964811186384919302952513810166163313633276667321150749405901513230087535884727849085791276167536644584817752030790606630431531894184235451264298319796687869836217672641660392501884886975598157028563528424400900029208906567806196982154927680325533148037043969819546924372734383749804355415821392697220418779458620363777713876687275929027182635838772347975159759043096166928956104279464442439760702956332598589654304683952127676733382739713846297358939349129001123249997710494015869459268217330884823605079832225776725017394660454989752658540873597304248701225471098147619996961930489062191067198391071696032897633696352401485241305477549626951942494817149807798263037360407975209827519509590800961259333089427315912226043994022544384831282411627973418257907571455506939117892414463848056818634329328302450049462785145652930450429222257119802081407207680789685639225159946646288129716091925742509212973839182227431524946255624115529964407074274057629367926593567967167295789817108871143292920577236056531311186295498651782411769876780493341828047370638181034772082003088466205032504612746112330513200164247175220903090342506890895033771379961054080020549826231637375849857881475517604865356229500990272175415989420929412508803291092393624307140432612891507429802403744832206821144681540091104786401645809944297479740607613971376311641679179090695268434539143828844659384363604242082392761911215736386093393767897826256709826094663619511593693363745327078864596524378168890693277171658475263891112574910310344145351498657816227529680498772823426402418849253425177503265458580853184338141600274800879006767890331565732341683396296790475731555270384373376089974262901674141092456093573550411530149411300069046619757356820606216594777248653204879684474900776725023375292011227500812008175509571432097882755489727904408290016087320553150545214869066445274605374498151394827987711723952731514725247894133508253602434006085134803072978344239312538522747646125664897790897958204199228519533100207689514271010468306116462162343627582280241100005645109190066950216435486117519741509309619069169437585606832729142041984431144210295711322149632932273504973371621450606347105217820544016442594681791527973061358817710020872686354286414541575320170592812910905243378374555257918896557202373199641277026814213785548632838881006088897080773274414970810897675748843225562166047961211286326945915728459623737663220027444636281786405426595855598809221093915600432243381300799155605505215660936489266833957897030392883212107284842593125669445530100533820917766647681430832801852487541500544481144156010893727652813276859200201668873878826475352019279793224905790796803984040913366724672811013906366893905497200100419643229321069607022494936764474078812426993062302658156520622909568820638683587993277749260503110650258379172895851933102985540332833576918557186928842745507025453441618898607137363006489920684152285702335704877468755313160099304151709621994053251894900270937621134991051856382829182197069422671196775932651357943344109326785924771323406079768381656676869917039898649250761392321178610843152507791939043037660316354248272908321708857228793865582473900932790694927789734287290134468272624079606042680047559755983147764756766786023912847411112134694012366929276566872455339037918204606621968740062344197372050589079525747348891782465529837519431689985877957322822184466524986028791296968806439639185917613012571079706157099475311483237738975785487319797752694365122603725123223925269358634786126290537247390400050466652630076108015861018273271765704934648247017731333915583495238811398819606753150588861092323268173861697389573779704817616670421679649497044262363313388557949422555805977233851150088337017093882983546540951749267276431716557786579976771045168966624422364974694738457755383049289895120540672207259932852573654267381421626028081556876744430770101989452551607448772621469146578556613345186521333680192768873365344776868879170059865201637292498153502754130863819518753847417141214326840867848829664752141101940085120254670574648886101249683131321357392957532384814176257401337058329750634743029661645609580291028176985445155223110512514220074470868021913732223716880947930569463859597503912515635918062415896587913457921475380099248010647762583379342119458223245066495000748008011128031784872111548961686980876245280834182713423866670744991130878880776239610690981336642545960145383187023230496608493089884222132893530853785606734682523088576393319050168059440681167899542257586434147176536205890976157791981541675355303827851407121615868126569288438829444831178797317239475577069743755527134849085050122918212958815339989185403432552076097582492268044813667821516978966691816233294332109184394457649518583806765538682025411608554622818785297161244814709310578253074230772465816803145580578957935295396972572723241696149212257866313749186859599293187195991967579482866323489091545429725414097298544526531679674426732561547623831352864247722805449474800285589804130336783413571188277520757283811716267547902830539620369062278320119564694478197911638261241683521281400475693549298760116123602814079262701540689132935828109690082975646518320601485849107002775357783525891566019160218998837058812840018837459001248974328874796378535075304957449801133817672954816745310326818945731255239498034641514563531973141103593257035394926869683589374834284346926028717591432666977861793915369597661252476833481630937816240234143126498255431126290915041550676789892738585168966346573340599337204387783602891717893650753740990345561932198434734366907881654444931266035050628805049557676401890807964575035190038208662359735747267465810633046814629967045399679861702597119092078358918493447678301243445100730271914998651759637150958896768753647048795260815601753456348499727444293870135590173365981287673328389634356853765029560135448080285453600173840462896444775581909212062249888834109623686171990706597473509542988325621899274568219613172591898847469586614647104006985243699537874905231055260606694762979063322170062909086493467484817229727503616643589749285407444710815458102857053509705711309140269283267372402356350429725979186023948559305596101536845720861015334025253789003215898106753396326758224120804007182348714609837766317335193922041891381784851277450480732316649571083446972980731651232182075248663487788706547378422198737683595455932820814264729639844062812387344800677869198514541509769963401461589116212729482678606665756509304902696096487914897934017515049201896894689091824335221384651133057084548744898058181598563536293251177398027619701598018663443320490653617745165478469267477599027233356937492482952111996120786430226207633206757691568575105053930977492771113046970011773995978736033756434010848291227206331110916440758682507160566529325056153365587886186201525706683926087391003699884973082404880799177347110443079286068932301711922044975172108506215476038344445810668131366206630433767199263226049085028375884668422814984396196496606730356898501905512179559494352112356277978704699421624899256605895179762233685762409495145737587574397252247482447137737698930914675583130793615770375474996144734705325036555122630277663290181869515901406337970198735069158011513756020814317100741784432871112512975877208466097122213780455357341239895480456626150472837099595788478447412896943535773453857985320979616766662329852587176671735196083881411686203906646128677643342014826531168494449905861549987236837406771365091953891804100152975711072278636241184007493603659672054749541492463559950823173332391315431493905748860935005201098910242070376159936730620972147997525603311902810334958573457147606641370923796979700920730288886936643381703062494255078419994369837320689654684609923709352808885921223613539540078944986992266777901597556773468669186095322530593818067562544554772737127049471413017951221722335348513758541956780215724155490912097332075665382824163897442531653015839985578657386082359575090263980383244153300098696885169873315545242096595897446858186468501629639280588667478773599965666814297777367689366565230317935728757423184804144128612238706365701914840396522822167054964908076889722224398025174570794165014792216771971169147088211102756127605701407154058315924975814434444228729929749160430629897103635895957425165227764081995920472417831097431302009617451118451657283909881469132628761301714380932192190049440200273038592590952096451016400558946175608903399668693674079975148893432237574127081041931681334669280045523344308427751654322048052429746783638649623258711544774728569670064130257761552111053459045427851703673261975271845523043068317246214654154420353429483109660748784060569741927071996355060152061900924229822501084439695494920289082642390566234032517968625050675880140528369141667270402091431104936592917411748151920518009046383474019914087520517737503264002105440558325350521127578901072573679473029957353180580956454252749103670863970660289917218258701234916199125038116962419297411577651100032017013168214558718018369933636970280932125633361943542461650065049314679766540261235734908165428241640855591173648991303702744536664480589944705368161424674433913794698714206689377151595963663971691883206409752340916593621583485731343796882518311632861572485295074066375331764937824838287516268395296399609671995510281307265555680193741812659740456438079240884095232524677112564102121667639504930567768634483574154772677799145431663821613304761332958194611296036296892410866535220292024494067098870238321151068836561566714265419342358825976233161993964464782089445328642329486281968228009733901604613010212503371830492748747456910140672777599771958481360936329305238285173771711005221876382237462738407410089733423524277722337945778381811055783042363011783952942515572801098928725193266061563003688873640285472604109398984235209521788118776234815762179030070736714336360370081089044107895203463438714023201986790344847373385335095028880613785043125416114228234732268805192416189806576634345362461648638659147010709772146731543666010057380970724805708379267324135949719434388254911294727165008473777094994436854623096277378881426996628487471949192458941427927889460239459079233090469009295955302145235824218834334539644690387985679669313619479924291112548782335448058661971885533590394390131286113683826926592707342687771504464107214002001799065172851813348449516912147528089228747751558046980637621335641190327156100088939466768111182221003746555634824351000346496291687832219839467217052964293447935682021662700144193620232860079318637370457530588781429076599778057831178905418513775094592573819104465150528965154691312620273568837638779744308476941074463632847701048917840357695590427068887153427799229224663799947570955347076793707673702130746854204619480818591911104205395270806038352005878201157312432441740651235086423276558501172277725376030384273911569313071374441482207533561668150478204658923099125802787597981221073773384120186128321495959378393036502927910875601990219591492792366185651983484593489135749589438402327890441371000103441754598626612610009420801786394250306412419503489865686960284631801371875735688559742011434471864281550635053492730504652628297065972936882921396304298189133402369562072731696400969973547002362848172021472270087343292724966700501324117997797084238220424791560905277545992346084364601286467867884730557833607186004229690301261376951912960656815942723206413427655889919162986120420299157059150828659074038281354452061601474209064553305319624164335856472814851809543212749877293676058833280715305908202074170615666193589593367078367762005166037517021647909389043642977487041305292356661007870970379371819146962626833219123193914604889909506483296621938164639035719054961952275602386533508889170871290473583547383239773550439937923970875150451631300014037659940810938808199173874216962759372045315799348449498092233795391715111849436589839654885824695932873771348977703355077968656300365116704151304325252193334647566121641430105401002052835476597407424473798540780142062081898271139003545094944790403445477950234860581717403545249984180474141127998854655180522907634102353623002117458007015978046237578785564180459831520012738855251416001519257452358533855878385966298520191645653216463184602031298341575307630047752864293329820980222666624793901886431349849393995995337701477279267490646460840868170709430098658824407441639241008129456930584666244967468025334716705477033689096289796399903009502973937761952945148057951728404944776170275974669584165356488904205560831817532292754124620819772605431374082822014094420523071170864863057412150792508458480257588272929814461451614043990982364650832516035866314336829906675074843036508939370826210419504626047174333944658821518462274206643755486025844821994152916675728042392845448006071156277971675283055501425467811490572812223550586394727595496289242204490591750371314201476491819680669761397399431375230172868830056094225961371833319101464866031722249832048145182519356093994535673804857918847927492376015594726516429608841705909935315622951659944966059152976506882569212867180004401417000531538864986047214953810415719962113585070464323104397278394508172376770078618922839195230677268269497130160830853597324655537683338534090301683472816419605730774621362503099536004842251379613963269206993733081217863006452568103244243306625399849705040342484688478959104056347589396232976810381964707484538875053677217321911930291935060446227949445439059937151391216266786280404732914028479511661555434514933448785647080778766703403295916828754517649118993060994393433657300662730348446067447810962863387583457756116813016208361465157278154333158954501306446886303867946929121839916580777335575024403634725974722942536993311742519383374414962551151173516900089968657147542870625648533760970493667617798804123585960245542900503069149213940322500512470731997662220631272708879778661964350385410072007554064323966554183608138437349648286762862787438414613378854060397231092802238353323219870619108048549700742480889837769179217407174408645762866577552972402171709005708046763072398294719647819622753807019696359687180588024417678144095301090990579728961467811317329199877581126433744563490848481204015209503705921803882181642230602998949572177046769809048369318160059668783409791577870445597149372541559130298803334237572484477983973447661631333520734733418344874785455688093992041409146698573191970409398888485288327300659171121782396821333724760006836866617641455074140286735317423624369963619206608642070538661319662204521740782862893361424387711547786647747654350594492029372167765331684561727027789242357776202152790610840860859845679962838346532886045252930650073139624977703098490958374864597503594285512531238936349124063559189203579742370632569034433090958929929277617648229530793453410219381795514805465584910560553060319712830934378771546148333081946473115696831819922638890376388050975481820912097104928229246659030717000122697332534522618841871527131018147270458690892536767633829445943091443706646067851825299344700720630901549842454994038652832308493713992063376784368396643091194283791455853605585050627528847280881367552689397521499473941983164053660589958875255187196731813827535078746916211532225707587710423869108755469015165435284039639721626798494950692431120083707185061993382954563332369464023355833647220617547964362913581620837315254013977771793852018557937019706850207248745977381623737799699488116480873395247597394489767476431564040889953842748279007558928153912925814754267514207366481486304557990472092192157162703782535561022458425656000093678003149826607869078588400659677507068719757432682344934472477722722173227800511398776763376248410924331937135705416770671326529722697367626862584609511939896401560271326288559031569046613130541856161794805825818969775443431369134528312760652183393879014694123692207847367456365571053886603473741114241820365838770652094635777278610247078576260719328394905820908511757941031781162117976315011508963848748268446868787851606820084668357541713844375692141129114238819246337437349463623099292577016709157056847702763598207945596819457781638532236198509249554987627194842097399668687669154867481732817409662786885357666078637216422110077469736884436645125674763022658444617079501652704023661096493369473128097470050233513527582119592259587798633931542725814920256649160121041321350788190618087901765116099025326306282717854374825065998470646768441693775479323294362348598994383111981745217463122650148474202166504925280104837677077023768237526287548443000064684732618550121504444938480981677777696654061553157788999214921679276494609392255599113169604622678225588273605863554814539940679459662266512770783558101924566156488652571387532133882456003689195549302686113654864593779633533803585467277882450027550097469225163175769152903809285817635828627413197627109343083465687995363930371190854821102487570769270254616975295589339186874798228126016028714103361755904103530730756988848237427033298700149984631028372016546735743110641933138092674249738203011259975380128638884780660969958046501811805111737436785984765205227780572727653232133820806444786838597589269645042253695066150625589977488594026201816771077599382110123049354641758064001061244133918428962058795619905471809930429752583643759121427359660609755083974069505569432703174422939503582865347585925217377851072376096465282417990210478971741343012165136795915816870196812033742449208781491467075765678217524208573063358473129668167723473581800759164262622884979076081916755521264395160205364707783297727458319958267087600592729979771762996911185183510173798280867010794059398226836405606477682753466334758937732771808152240277503301032117691527617897829104324145557890876084834766580183692292231914363606217002559347186978812439013026618336462515734490054707063337274107828093992144150152160412213849943439445178715210988223621011071597251585404559523486417891106453087514389627098984266635690119518571372288677578434420732649879682650311676126552860186513405560970014878640449317962358578972836075382707573423475992027591561195603616229133317648809688244055873315434035470444422592331679319953739875195256625242433443056587640703133445602732131079920474356261396787892638816567272558648540174984058428262640322748840818098311305629430332794578160646320682259259589271631917604536609388467087717010822052893171421249209840949690960498739644279632263483339628696431038050664725271833591170549210928747844656735993361346449354471431132067048250068584598333113826775242343480006289786742025855068541031549464388867701760971723464769593971139881938377850422209759630611045181297571815778866132646074980360380690373318616590141679953543130424124822705931213693224861562701899768487164209445693839157944552171627969100169715192862327085924526895134649210649572395616190894923856634420723124372645289396973602154449007441935043922309622299185656297505205653918865264129453097827294169884723609356843244845462244046099290910537872294278465604471035841222628687388921285855159045270749763052820061640662437390886799497878220014461097683004715608573000600386283735809266897722456760987942501209749970916199187391133568376265304002880430985673568245077543964283720311238897929992000744646828491588566676895821493755944359961301693543576153125402951043686974691194668470271726666266881073474681221434261312046770992681900319156192308151634625258961764730238255885799400419809327602388185952438200291147412922343882343099821804524993652252795949115119989171671516069949490736430592542116608932459281209894887995481913685070549422784264497751473117882391991894192805513809324732247609682349982282914970137157228624059540403313487187627012030980964621669078206632029825338013127224932621080440643654689335471102418704730987089057815495139595845017922069851956112302419824073879677453335729483239694914865769562298191471971066205458630030921247435177184198005361198075219255869566581011259328334248587350949364026796696978304235340211649354048961606213046043665794624536334268274661281232593990762528110545845787568388776795799797668862674660967253964064964155576603355471515223148786424324925043584830913501946602641364130102866298256016957666873216559504958596277473782278268251575112593921451282179802747217709488497587453416954926152408943256167930612526405556936585491728699792273171066664764281074348932581639478239505539558531699893261658112436768509266298991545925189644893099556392427769667432014703865091828505982092933873259246625021474252497934432088056700093306870683724622262920732076476925695043554647864535157722283498545079130864090824623445657669168958338639466143577201153234827104198011560170654183670725820535166498052515799520211195238492337317813763987864810536051474482326325722266290470694285900283947854373605203680406793011613630923565021270351247225086785644279870920250880370061085525879340644179840150931737836737912754196351696276562088137624273238535532297813628723393014578491674746861767478894752744219061381601973894792841402752276401351684604382715720424071967385051256117379151510462496512469906572002653628014156488366984910569510129648723805411701879805733559741474696073111362638959757304237443236507502736996342183399468925762150639105330178518452036550668550083758112134499021236581617384631312305270681057166770105558886624714203889768779176894418077660497439484727091697823937706160225351180129007843711592414638662238338965637743677917443450115234498405514267097114438930824891893338889938191854082248884586924546225531828454118221150415941430399420586913688226285681379792269477405035608703086188909102102033632907168508134629271796182722008722733513107868776961585879550655406866003713619249320058742386024322005341934106067361269790448964475917765012256419641884482495632691767541538473257189509111788925825417580374532975976309787086313635531154801731622253576388271519929485134463855047528659156908661957664113909502938647463067651400534180927844588131648955162999387637699475559232082964926534294355537665991476165716278595169305039016461307516368942747789564628805905280288927219626696441159334345430690055321357726805029635848428117991890802775136334322707006634033995865461083018276253278639236585632422387239996982682972920943798688575681381790558441014623654511444913989386975180786871758269403785529391364887888515622186198342391886214450287491091255953149280427047663852570524445804704449963077184654423057900781767849816196540766137172489996961393895880977123587121830056532146543997262913669506905433124856978656515487361760458309069371067044594713726982714811093882759048381528994975318504206502122404458991642537635418639590478387108961034526255577024021672322678704104327568261559757594545725382871903534225935685437013617365405030325362272343425545807037086824423360867481496523916014313019971360656972299173372536967057973094358676079269411044021041544466060299491660931411737999529718812822117492673370411508795335050973435257351916447783775932263931987564558048979968903881052201348605523207100128409774628089084171115747326991531707309843058586274693328521282267125243060030494912559207946661009049230849256452200144226903786316840520755336862662790119396772136263473868532785112549051378668059693648507666911256570008214428092709150023644414854511341461206305156247468641847459213007542090405744119231703791082615451178515531510607115152799722826230710512279918444847874001164910236058205794657142176706816658872451909304618649962664953679969543768316921787711164210457436738094372594802607219546548749212239382489511847815328786935641904981533865945964231207735183057619133865948560860392247620293659729111902677877758673459132481914727017716162502042526547183778613578322581832892735124447650954579954602661418663210158398655004249031685335264191451817957666740044086233667330866736940867302943381656903233356710824489804499918481838788527717925315966090309427314202695289355789907720190897287816705701021378010779090406959382493997665548294634524452473147731349905770890301547483346070287631748208964622176114132227318152005936979875665426901102635704049583085484048027873577249935158543802094824644726642626374448034626728626346037960377777072597150905153850330286607105827699910049560438807912151728745952006636580928651634119476384723579081587478644597952103882176276821934433334764644534728871356248983730175313223325945978543089542631529406882626500388522087379329262492956240161151759608181617096687658301123841707298786491796564222897023071147457760360456512120428638804979468673966011921364137906440772370975367122829229874019950843575366852827862950001538456136147177991104214357681957510204871710992733840809162796009664670553215461630709787020057100375731404689244658966169746646726692384540561648508529555893073704067367825213114615161033610591648790607201530672476414385245751585090053156736863656749239490360586283643873141625470462813039321052268665221218370527599809159112378320251930166242820179733979064312015958949727978951677396005222856921524754881828962292672282309945101601797179797363574991998819760007476826051476898203262049017446838630964508545276592582455076648288068103938527688107254397843826109265214054777560799717509891479789637128381924008861166727025244662153263384803500164156679015315187733553761586229727663607125876948865561893481325409180364871712545238218518541072832805351944532061411013957602939756789160204007545433030290630123360352347844223536597876770428673304073375729761248119599361151948827660395345619665994852796576153227177014699931920113355501672108638971667908220780820757986919824458459586335512921721463149219824278001197084427714573220972537306821545281306681289511309719585942537675855213298087773123086169374327266291244059310922011917851331717140888642821039071611104868977604506918217528972750989740180230625281052292184321078758484869536510309768468495155915864821193162805319841705326169587275401957702097835492580726740796469860475216117063259354894580768707884701159987084070147593139885786823755754985135710099529298068284206537584685335194335873491625672207839117744512112420240310614778348706729645256517782067975935136518847124916213659073938615895332430501271860670988653488927360803127467409116712418100220297297826008569721233520778439202868753051702542421838340839868081790629413029472801938170532491640739243749205586486083891366584186505387403260604757003239814461318289747416087863964770804803603854263986760011880958012832580294406414351217632646848776157646279898617156432330799817533225669496494114370580193699115384620136725480845688395728671485159669051757501261404306776647388496886328650541819385015724731456701367082867667022862162155645058511236350726770100604909351687904250102302877473296480961025912392345841451991471545406395185562026218363577624464402277251355554205866404195523129457932227346279002213760731323715957539747722908158625744314846200928729318599594960765729152593269925746795429508101032253371237539267180504869120764852254716052487716688793406748036517790730842990726375322053559709739882733024500723341909171001306717482612293226173054005597805805068824053818635914693403820007866300911782704030372279369932454389431859664129167658518331302153761899727818950891649536495055483351563540689029787674111332650167381897790395274610674073121776397619984095048853655234099069391871883389913832783054435309704197073459772427429001698757798609607378609778515267492567337763854109886714397140904793804507385927138580872487110614283553239932162348957452202128252273718083052359928827991027555139237975587937301693995859236427461217662553377763253122083826841801674819894406470039747669604296354059929972934499816627108082550231042449123226570347866850552299497591123150968526459719461848377745526493790442723098769729687155492958948405245364239254036439864605641031081121362168435951131444607120330101476338708751344103299099992423073980706449320855080682929058637370493170261606491071360942577535906585614487492894078089591008267282580789110576308576647048463180078110231242843071933021630516390698360152099757482129780895151426662283683407740466032173184163707556180559754994485596472470422765394955387404583544904547919703823587159754208730370920592306812775735262669667053337201199200328914061834643683306405593417419844575745006370536869173762756670126164995380821697373086744464915297254735361598409758336992102408022554486216914322742901939112293648488025002420618426214825173327107251969609414414034680769210874124498514799255905279214291866384356796817074195124387548438240399229799553891806925329793609672361708161604998652215372721722078274703278116377889925949251814336699562726026144456388611689155285731393798385591050559976056216182320865111865388217270614887462386634155455266131983444886812996088698551094225407464043036009794624424797521651689545131950434471701828975192676179084779368046889822450272219596404392421716039222031004789821616555954177146119072298600723295417578441041710121097751563560781175306442881474390137399177429966839856261177977358298857758209043823329914904515069787269111973882965877621890640890980622273287565350156734716947660279102423389382590269722712861660936185358396848966567467016790522788766736649526288070592138860752896609295373879723280442353452095433954346950599292960385967954662150095490131949561947703247875836658685030016826682451396977648790393691620561656224070479057052649027697873730116012347776717892340131058084099818089228978453082447455277751960518706783356585708669111560088167804132200820235581935510895257195678440953189340824091270384031792535837695307569947083452644854210143729228822488322913764546251547008179305652181204482797918344536948307127067988719766323456198726191011496781775188780281406169305293151644863145707007822848396694953620998665867203613118106930908057919198039958085861628686266633858540883780566529575162069978651709125348572181410562662939182244775821967842013934763911325822130988775611611319159952504252801951225621222649164761308688558169702102924559347767179273380202416924568781628740087552954198444330827865508590761584015952063107011342222461189798797660260588985570144533341535567895522447067902803482730433727595372626725285526383885790598024084622472542767432023090635606822201627265121407109111361536372973863136464164119033019019722735940787645582634440410282699633755696006925661366238294874293722413487977757508398900031630852582211605315027781391651826588986733069861757908004484745617512879514851546328812335083498666663907018162269870247911187560693487278476917394563872648782418358368329725784386871301233406153335227638680570919552251008426964443758200217282327862545976251526061361045217437860514339641344205446182945783291275515441417209951149069963748038906812976090498671682587940343287747221764718398221050627679440762624724083745257785861425668090012061876144732586576058031097620535390899631698078869573080199878323112862994620342602184667220589979059846133577255996074320919523890270569498073847765812893543740572078373687520425389702385789203063591888755609909092460933245531500270173229276535989639770805317582893814949165929296403260177777438134982642669456678244075117998254228142575571905820290648694949258426118334324686175761796475496505983598771835770918812166688489262897730007554085380204551355322722868103491232524307832430998220409497467237709702629477095494604458102290336562257680959065874052446435237143708287542565012877433962047861454762399498466826539515455162518684217398190931137259566033461137348782466974368996042936040819421553186828797787470788739907433851381403785547776964240530509951658225504692154307505024789180124824878109918559213824345892515851286301831913182552309018171588111378843111539638943030438200582325040761845835653236293496610070107104752043839557621401455838128377358392217364955998750413938328328656208234790197506811420157689015611038940153204806779461205528998240577629307505324259932098778193343675423757747134527972007776247299292053979483151047619674732787565691947141708800872359183588174059858979733027238968306770346032588141935083885458457818866575422153068582622017824659466773058843827490254526229154694090616332604771702441755696831533551404534850382000241552392078710863207632219010556612531321339117015518915850242615570830182366052187757516159857783393144806727044990258147685045161639892516784493801914530005256547892165575543365182483433507498271107316770302422391694960253649568581566947764641027747608917787234948143862211999815732160141927963925085643395323572269467704370292573201782043925518748947312313941291963247142928038686710753205114587641914724049436682304465025347565507948897213784495766460647810327228400298479624202012866058829839226119024304770705366251482481850947818652051879465032052731624712234423731525649623547394612953783495972950751535571215037318971060290215578884006745628284632027936023318952358788246070786004926071049723910845290460272783669265387960495622958713596138950327647226955005737463673188753341566327582069315579859119292048763335448335710605619788041546799634055568179417638550026679526434041981923496639563603034966138677644769959014963575867705589337226754144812739566993531549739102739470211068556921609115146528791547513104127051290321929209722015280991114691635202939551986366052332333699180514642141136687134865859033765909563225546776797047474050968030188244324600809213412913141498142676507469640877690794069251374697215351650796054896280398422821877317256027497016977662703275262246141539135530020784740348830431578108054931383299606102044007009077477091296498286715008905513462007270651915282919856453824354396582681892140767805101011838850973349795850691492987943029706354478339141285609222064035893792172701339874822233779451956843924312052317106421900280386656671065071795921694766193674143653833171295304212859346326215347168248790748238860696988088072875679497824414451804980303356404463139666240611517948430700282860664043793728401403450871659655888984502720763926989887147652860268587415940361798494435068452342616750009104798252568296471128737226323294111880519495897082264340279395721975301895791367348289481562690728924247312133533968204122651353134940473377607698268749174011417182340801155364947628801624743383144246328117795144299993265979072705671760770194481270184123561687191805302903350884690831699193102168498743211656254955405555810581851987010595038159930368494873581992400132635757792258517980879571571450194646972370433294225606058793465184165629946249839373396530231128477824550959893038803129966793103721391442627394012742261706785296283559054577434105444879298824041125219478065849560865432621435580231853703861591920633168958783640977696948120390390232262598398778958681221519586819066341619288550399938284946378998677419692800068265450119319500895822249860247992343271084928090117962521260429850261581741289048958480146544533890720152783515599583872484377423550761987956965281154081388520261150430814620299781423324189888633683252067862960692888886321368683372948031632640631884401753358791983572940387345536124796797765160221202486790993418864231561158774917283004719166870567537322705391034334659715533402770800977782566434251134861144244366603365500716255033616553083013647106264008274528573065605064171308018193702636186286904714647473100547577771160774289197667257022876611839902205547942266525885312872292841398521739255296087914320710142368966967947206522937913888626960472936306648640253710962464279791918670551919529190057127448603176844605102799370779151463518774011095808002512411762956465356906685090815884454785068318226512231534048432596870199381068807984463058942940766983501188256101126804890838796248502974180178488922406863848116873343320371354302880121767370191076927149685485827909769166263704753461823052084647065204974053965010219986537046407613414434154827392581513647710097408749276243519518135382721007517174979907562714380021204015763172677079580367517092716056752939535490221239783487895490521663762960282248493831805700708699397593728454827590229469263208285009564733302371122401343114447228425179502712340040099758569601134607553948234938419796075367470794361666730049195906320559520668077650718151530919212960107163457716380374404296883734746705668416908604612768286928485267671824744913695178442409303122231795236770732088475279602455953910470257824090694009734020007918154253302078134391455934298250313343881065531333491389088811494430380119872032160584847584631024603019637039949596231255198796385060711889511929336123974205695407869511547160506596156982643569683706409046206117816582695168169070066906863409509405292871703334639401311423242708326251855010544627607324205001048365499830913118459323287930133189382189249255683251629087773868751636504743487634206653064774581031969976356217847840379816284326899637481641845161554593089739776459011960256917006137492702578343375381956660344944092622279958132393897292869876604021208575435605442451242680914742215815554035519588292618256572437843098426159294025490490612631134726043190056699871373242118893551295375528098285381247027201966548801281404505603651163764637880632643494604419376843586132380356600037214293709668595633237208437450843971503319939920649944660626616237853582277193527608904495733597797168948926430799771804717420980540916457840291258729837685782574392838360701476574881319411176530398151007906695492645427199541638579336995340569218699069842448298021905604780583015977964286678152206133538800749853040513136774480102056818446002795865743941113967572862080639284279952259417285389616393423911955183963391238968923403712870946079420770124359881613266439277844171223629921209754253431720346353634176759397530033977541228673235890138387207695584643741517456626902013477830562545392527399527123010009037557516802963800872937734701518439877034674488743843981760678255925420537861634499050925139077008199405296752910886127996821244887798859257986558009166371562473452917440991795407031033501247339697209349676471329149928630280540558808537080082676353315867524314206510792877721178970255140797756051798016862617637723510213962359680492856095254266242939735396787697181349011276798810452872290703329123974265512436386658597741700794992099751975367965648810153281984029806691081674019955984726478068197863880983333072643404644145831874235022794551726407985122951004696181911655543346275281822159866735406660354517824421024352148138129725965823673946562001063652428760219262747758994005705831627965356532644598834442448478436108699319307282761814712871848218115546106857640169234979641845209668240277027567744173671701933935771975905910971805177590041333041597761317068981552710226881673610733694368876865743884670883274666805719132440864605267239744673797552620016179598033342259251769098967843854315205280635579139292293438790381612824002244749192027982183694380960906147527479274002715877200583385100845572426640091627843702499870894251501936131676328315992076894403368332519700769702564567597838481425212059469263324959028129299215772199290219405969091831742136835057551968844705052515517378961239928491979430271324662643036142900003624973402307651291723091657071166188143769809800711622260725434423439395023446858505207101429759323918497412953057820441790515802836065490419650628969299099365665148447768576656218395352727192585854299193329581719600400820627081208140676368659884124375453780421200209801498764645837769869318393397913995712503948023465851383326703851098679016449851356495308929217487776473381103875511071255050745692993870154116677850397230333244084265456167549739718907245198173219464675503119113967892677975686196120984700987874247868800003379802372355609621922878153298299265960475222102185829007574665831877318123043082584547245812392379821102999830728214661439731585046836332691638685928599316165259324257070262619497575587801705708387160375743289287761334550005577705677412483290324477440940758311864655483663482118170182656890504465619309041789245424165228912013273038400410919963418430132139031673203665080802332629239894099782397656932496529932923209615857057359285404973817003752711378722488233122830138632451302719730924962414297129517909534143024753210584578096940492088600955570154717636519253137082653363905223804301189497807917670544817008490030727818996917135308613267906379046620624288832326902416998363933393756530442732481019247446179064582381146987054230941833178877209008620768674150267266081774354335667249570515798348321273796982605402573739330338105683056781401925256921723175325385615460589237065597985611071749612132564319368210886366284175488351119809138438908572159422166817998939438077162680200981918898582522986611423214577123683737012488877597278541391819551581607043152970513902948929580821592296286557664381075645916949947395027865617389589185766069720835865706597301286104350984439247859175245624834643335119882259238292343578092410277790141313396543094366379779274100566906561235572788311152615002235998926671027867743736513286719861985691787672546057407961010329104819760217293870857502803952344290876571136726980873633428867691399118388448466983697634202816038309286189274478885901239740108525244112719808007788691047293824105202075014587418805695627327062180618454178996786418398724941838846893863121860922869190154123596692909026318070412025465136187731237240664095572788072819784583341042961044560934519199332667812098813190024627671280965138644786030341786056959817064921728823666720707223370335230974780426882628976911796068154275911897541756413499642261831946627320732328350477435973086468082497458958293252817096309734101324988508535180745544065730396769719601354895838772425234301045273027866415628220939071221438879749661251645535364323998925824443617833213025504433665242173188697089079949238994274825357985365535352297946246207797284324233532895299468731605621029033106937041614984854491798659375820804641649436014732720654671642218773704492480386775723559992602556181691062490871652149758429554305524744975017639929061776604780728873015148891612792017112140345037700889358539489525257915999347074745337747121017973409962490447774770548101335417254497527210820556220572067457175588424145545557497999319221011896944188685242924882267639229808261982518217863503446504365039212116310040101409977859093679387172030894999777253595270165337059770188629703921567697817237184724532003108660494943727212914013746584593900864691389953687969041316911029187324872452403355514626088952465278264693586404342545608652782014508061608354306176726652774669095033627287221930141848733997562187543462925545000609242495503428849378216882999277484274191025008448836347203811384426778137057070039352088324256425090887650573686667123187039347063267709662385052299134628966795141426827235778907776952393320549202090072074180791008034686928521216748576789494154848783780888188202665446399163416366900472737575583490932892086770844958240155173656771768249043716177222952868634475869963965575108155797512760870882539416707577504596026814909588010819003613987954931177372979242413640566947127058708932771319928552417237475679928159565252384788987574240217036373901985454304501452694250428958287721788428802773894326582359190872704123947635337131953915163389998016976902797406878098113887920821041656198651215001877520623922879082072231261554943256054370480074579322411126407995588205852863410522632923447372413947957542359132312198327305114794907535015244826541913026278573897386143054823493605780935218556566338115514115944428879990422490067645438288504077946250468333129250367783904263507301374420043620257428143792590192116071868388816529780648704134013050780709027957380957884500664693694774139084613137318436161635347012520487665109102548081646700131880706086528997180239550941332411173195477624173105680406477664808641718077290488514802117868034943322046287261990394149737064513369398716120722021451361982144270394197940753306305011961901364008910597364381530571106865263115042890963972801055115495516644087708360437606036933805275756874106902412814427174054266219190192452638924617321210222280268239550122369087633148801908430070830523806233274237896098177686100138790851089849562566749914634836192724098557296682993266049154050429102152094802256355380618526653576856179493498825597118248534943368680842695200701001532569763947377474910060793545759740822421124455090846253682572370021910100937500891081910084845497640223548724279718437099221840405861617021498869986057357914993307735398183839498666595620054411649074563583223639628748298546847271608645333635344952619141871943347728276932456605268378146536190387959453434707198496501117138606378764675964310675768927467805251757035154202974984004710914419895740202410102906650564686682872649650706406300591024714860326378349446427198102505385283370098399426227428679860244855485583090327758884913855342907355094251676154568977362821263130720497540461907125650644448755194671982162248213360282358514528262920010168079632738752092081246542495585391052819877031790794246589757900325194724571699076690755498315118002623768966125291322560438973606715924918939398785931578056496302835698806392962672993188658985248505071187626946882605851176855959635240525878115413600052343933266205977498823816791328875648330469483991163731719461979331357686664285435535300481394878321976583700530003700940682060379290820409048587375002002753183931739098025022532137718314928087813234809256842263359040189329350822297126465251068869771368273569571684022190232972659712311472726178421183620958973981530102198656498886696452028778840943327241965816758722548625311415350804825596397719631472334398786889599554412873888998207068318545477892739656303974246976729415985444438243730932382450635595978482169025578393560929376052971444437275900244575060325211060491410432610319637493780574170632905741039243768257531974271255945749833199954637194966176354508570393231178916849790398841863574241776177962581912524546728882762464825704261810381013760716866706674087756905655956437401500321014749930881925836290825623356552178677793084158683458397211251446588143924207473601777578186406066479774171253335050564801365990885546476301465849341177323410073915458210888713601157926828451431546968097946119752747915238427963511667906877426652542722002254393001032669130141979857167265551020328750741620811038156996664805474124685259255529447934016373850106824521944493644853860174833557874171424176290522048337204664549217155586048133611233355002940693844685602376255125681831767407308832647639423711235179600701763526944920056512037931993176767576312371979123030236682766665951769754009992217623861609142127242020643016449643549582299960997480905882562290245939790318456754742965720939384742848624363807157667278951400488201018916680339182541710009559399844796306173358650591624128833896948633572904043323415779454835691550542335091307692276992851787290988764327661279392009504965796788247535981990986188030054650508551745968394926315254816081396697889022671150584803902484001406201789194219737671626344452999995145736853819592871819501672722430879220734984011485911814840428568968435733851990700605054714709752118871336986025482934748128325100303334821130782751681244427333777161790996580964456754111627452540205656599730377731308961076876166259260306685718581518911619170796349883858920661978954914326548561753299252313176856660087874228257067005369864798425368676450710216037076751245925571286856391339984675183003925357195289980810796254414954899668233667004421801611587543996938421007015137933955732121050722027935113751098633864019045399380450795012001542051848352579564279237798433937576129293950339634545362947571957772357757472156347585277873911412302272342972471539295115336261838518412702725466212148842267592199596584432564839566679097685313706350192024112269756668835691712556073291546679333904302230653376203146999870775988280841272739208930870447693423163884032684460355218451271952886142109080150868616547238073590525556500755813536184426823889456823792163211795110801506889368664798218828833039596157834442890479901920737689491103724905472547776111253425704248457351223242905229079850157877610019025186121689593940944530020259173359550082754517802323642177157069195884702282601281752395312793194155292272419277668866051642444965797370874038668478901501011867344738767208807562319273919750556852499560708155264731411992260268434057672703455063182879681579266550294230920842030964237799255832093329173626404790538380268810534507949311644364825535557153005477964036600987509875704837096317579353750865004768092648260033022723313173632209262909985362858660997957424851982328977679390717239379709030543502602898112430870232647060349496625129125351280524376051520346354885685856749784780606517959636417938112413408891392001714644460445692265373682778181302662530391134680454911779743967278610247529994019330523196526647832491396780008209016654609407136757338923777748757943465416542973977920121074752897838838827846626667139278565574867298984015736574829284299948064308477787556498763218454864786182047223374889242512471497423848768889512732818154080258176347437697195326746549485964598307167744140695715985283326650844477330381914214593374988887188574838260915883148636182332637724767575567010973369968887064884832609869430556755255552733438449105837788758324649951384751448728948541412506699107591496927743726704434234499805743743276290154648408146367550189586039292968713282575654294229837155290136558361924356143634836089114056805053583501242876680139510260951931405653980890737169302616926365085345686671850743363937616066452956090969682337314863410113904647404619558083610849176440758493847725718541164077259293325762405197702843278023012964300846794756005997512581204030704992722812639712926227347832772216060464389854435405922070909815231985117495632772104737817764427554602068201109716201681461360704431548403476286605790440009954352170432202613339486467563446018696503625640169537549762013975599989290491368593483683841080263356003445614698680851708298782206795970078974487747806442355008937508502826523141926551825347130598499804652351621044710447274442757214254023862289535647487933727450133173222126406664182380126280785473459613824819186619598946427052821654769310881230018747643788726638758151804929455064431417040113078437855691475244754625793092760500493570777174276519813531718698470914571650403398274098748850923999937769261780828789548355419172438164046240186830357277680255188646786825337798940617616664462211854839748498500818530900130066970202832465069676666086382957394552671747142441403471441650912333333923278425825208999539941796717758504317496722521107007843223702997842486431664105668539927075683275056666598596639220135974405247570306360415416284154973282574654979846436845351380199540002034008720584827302028635865980565622366285480782561481309485534292507266368087084641999833968148553992151471629341587701875416019398086067189228751438768078246542257618446186600496122255597428952779597468742482932515695412058054509393779788094294449823763711547496997841986176780704353668552820751169596652065047430979286060931916159585751864568917819714449002799629208207996153657007899917783621019005139630427636901063137388259960365776982678979389607310002840361335710370379202847786943420695928753094907453966317777737928200903906620302246912308486851980724123281727360446524767556476183402473504885991644674292299771439154637011160021111775620679816087315184357512107305037225526397958968135548392852512386098088345054455470484615525423013670118418879011427525578092883081717541973112038115147875590915327488841566075040586870173342088036882340481804840975917671669110042546772207355574415253991640051715482105164534067044949372107125064463062602787428027005018481835168948193894564917794374123160629089979302207697225809133305658774805843252243936346323124750715295360023923505090848108115837731463732135659876088566856067541880730333662384851659035297880264447708481126914711032528287292835449462841495301545945590689298694910310969539366934446897287508927867138878501723800967600226279510620969032187393577020483917028628930765548144549121784808691312742630022184855557124717545330312891900345126487877375039147062322343534441018321253199264999213212257127161990497424369419968986510040353617389056670196742480747174444501907209426932654717145919767703098450735669099856893097057302169057087629474942218693458838654728175563338767280741177876188107520017483281150887471352081309420175919649155062730580777548750945170670196598591384285702988885741417129894696296850235077711839510540147608942677691510091613508694006682699135989275420457690529474859325560970598661290014333820621223777101232123955707860793132767741236591220980334691170539718751565946561921285135437402388460607226116434109128053679633078998377822432705861408220405209864362835532949867671718695490388668343643495521026933463313249811805804824388562321461426311448416584857181875348214946424652870585694679642358396655459285878472437338966696951021321823250180056276027573667079412480160101256139725161863282165591464503076667303025169445434554899567021194265407155268522439738883969580468527584822819928816829639595088330350776224667348096869089703114455630722380300075511184060827571220357440108038439980570638911848811326315461965339208168441820373500370471972911581296656638122542200604989741381218067206413901117327502083716117216985285912232473355939596489485290174527934538143021308003492750954899664520891337650105498254410016364506196146685684797782138657943776259487742293185250027690537285322560135880470746722359906113765312270987686049668486127844594994538535915618265645473594762290085431002039360207802245206872576981645407780143029876956183413630347544438457482958780959965356178258780777421931165154857682725527913856416500557959814049223127761882998679679640365257884855006414731206031728869585889605864775881288663998673634992047425938613423400060494291637876731989907664528241530072733611791462941548090141002539067783632059929658710102052044705078615485274374393993315697441135001009235295530662155043724421481618629115688426629371577182067220747746947681125343256582020175248041400125347572886678506328446117178140641067002212830336295582757069383008826407396330751166522743958523042650443139767321918671113443439973242819200398021564051814032823919031328644762182760563470008973795952833169161277678469309630393035486415694192715618845040054120451969103653213532627048079132621882608628395937674523062376700250769037280110323538231254775886896324300044528718676358179304802200250848284940859893307890431151465952610826900321502762355255873619048389193621457431574281059053316009656546343369630236258042102271926728643029625692810839198639752144328167669550942288502946199413316966253236197870551555581747977649375650636250185290406081536805504169751990248873278923337795024550908720624781327896942218823814275268753107820212113243953696615092726641221502976280117972939621362128560577841935914486551376921752193933287257019419182165089793814049172117110801087598126049702754558011982406750002074534001858486081395762320462127901205485377017402032675321087314470807981053778375130196869896268862305910601546771952182780468394605122885114765727599576227797844769339632087939642948620983361567792045265677372915797489296085630758008376757496606067767058521851928063298334193551861612021575724906543571918589895034609995419531626371573207540419459916603335392626583973293808904827254799850417392890944085387542456407882216809351706076091762232442081011557584296363707866904783241094519644463128414053399999801561133720935906303896049931573566001117770408323241685897703020176055876442295711871443312049526806766368039010742788360257511576077921986555026134010103767980228838903535466648425713313334944727627923167104616224165447185787396571047906734356794910784048477122390638841170322447495026423359122419730143378450045283132468752399212439863428269973178043696982062993733313129265041981405528059811918012932237932773471223463820961115397090558591528267291548512842707665879137185591385622723736380046256796712601238711774651098304101728016494041875925612163211953084929189896972693388310641990451569519303152479781529999996717229288069561314617413897852472087261104448515037460630130662748941158999550810263463131838733622972270490046211971931228130453592384938813319582907508649782055403563553601816128417416673582646185611114344686928976646334212413129831150704914200189798926865215488423258701091818768792324801685899363952090945113457291929108276710732015013944774259439419510501762702090930845277766658267514529259788773789578212856953057731919060456047416721364616128300178329839044248389585386948979168907745574189700185940805867238114673694188259422673189180691879500487359718342290223212897346129902635266740362670211782816295779671526455967305920545351198699528492238046918212383975716569235421386337078861323814757533075837938910596848113113786934345815089213619889451083984106925447143079315567821931620031575712180978963816338001785552973274005811671890039861997981571290068189369460795949330861999442297796414629318403093984739257944169247290096640201856329497711636326876771318443493582242318191479051919763003027543999484721072661627222160660554896999196408214645914140366917382009630210604806018892918213681114579669861176241849842446621979970240676355925930053813309225694918979742164901214516334189131377565825383613094860331504167747788238679096307671539109836948432272332302840315008476996918668057591091629464551751776904270600772624531669518147630379026065235972897372005059483167067029760966795518158441632481421549662752716663689290541614279674715274534531271783335984477431216502026989965024585260373552543099167232414085488683699294769698793201050492283562817600826483564020782557686811042624997917668109834527615245815260464625050931839932311646358267653276209332084413024074581176103063395748479257613032412124570491164970926761606966985698798091780938370710417282645360885159155616918375974024649790292025575350379060710362246660506305093876853420284221797073780799601731663691601816355975423986057546367809920781713899188549877855544624111510218181054936758108083435609276297966139560302337874863109553297810763657786994925122104219079617207468961056682732488066959010357722571863558548014829701680139659337309512084145155202492713734000629665794884138060294565337051917624189158825343280063122496466998760100705782005818392419536962180426295071171177828139439567459057864347468588429120639148437173173010334035899168754419123499023295334076219052364777447866173669889028131725500434256162316816058255483941201224178031975324005596078001902213511360853264201238612673154569339388035549141368268291739637899327367213670303771425178646605762331151633385996404489313251618343368085716883957479081979282702571551376996162276270212079822954416597544170525147464066449439106210828944265965532910696171131693225006608030358897843596109245776967842291988852230721250762426290811157833104354010546826828471422835112971582310239763821997918748852455793305690006788304041307642034095857736620742105265442107736748956177874234470194565873554224686352302492596568133159083574257124042141700267667315119155894088648963319142688876677715532783666178814066681435332225167388357643019235200121511569225816992184243364086263820539673207493464637084567791209097709327782791531499816263847039923509468687800206346760129504404690497995658195785976824759418319176056544902676767815584811667958499228510976253809733262225751078149016703751203534898714309472055852508926605332179439074844678362140050337482637896878947525892612869952290776341651569901261610706802897488894435231174687009197383267090697369106737504270858861307144774205020457922626101922363402778056036939742097962033625631961816819239207376081224532600385404255737988592500504310454521614585387322552395627467700137083227131755713503505040762650431335153140844899028224217138241578755755923933423353765482386275828989167553028633044962893078152340433830233250467146552758478713429640841429330785356489443818979037214300228517302116184194058435485320228497157616419599506128810487559109331311442914298636645132865455055854735232310550816762907878072655993316928606937637039724132785559045941006575768713117720810023674762381716408169150292937090966843445088126679138166537115802216452310677084641304177841869508745526876985750671051009268831698696979623888622843725154037732305254230255550245543586814370161625696105669896042757851374369604618463592913805124984893915006323243571738522101684802472098298787074877851905249953491569351865625946972019311445424807562251256898688414024780143996020715297001579275578374674089091704626317183921251670348093046626855488653994302243542082948185179595520560082121628654174010862407680201732380979697376709909726245102302851198315289864909005975081172969666731615311440052893152172935706870321044312966600843574340257391132055065711192313073673577835342251034093097277180602706701019223142302580226121804755290793336215427673818189911379029363205867726968754551281194506598792444467160763381563074604418803374900382048948088238907802012367009668042251307064935221202370845673508502942391325251977166560189780112023673080593435394080254941466440155907086714220096923431241803904317127055177524136864124849270837160416673025381908728051608044262364017425422937468531085068076036363839510756058956114556461779007523334177071117353605122091078672245556065142892565084668114044773150835564776686412172236441054031470117043496994594986571096201626716622829078821349147870059167220361028306675076372055917004914020023319341562325934500041748956603046551732256793215508861921265737825327688106863130580093239743510107896871225772425490275235780996966493741202656313341710453801454420024696680054815285336104372511680581047362906720739198507275118792530893902135876391156377629593869043078615028895080516329668753787997749615607215772707419808148085643138662694547877556914496051415226350298137606857354388385265875102771129695607370527355232227603248862430811283910998243598266447736095208009256465043727359670965927290243260802763917228961616341440004457997597666759561003174402108906626466674684823114029979647881101592308272340530931245278148769741907267723228988177430812982368975789653216226721965020256616246013342920923721747394242879526373457209204589351339787112526179604259462200628768185532969650556251793400500546749736442560041863388126124959908452213230076320648137816838809338270845488569823683497370110739092442428708730920966182478066258653389233234026991883461373624710224278335689397891080653996684690588842093255476500818191159919231980559547658289645219516984751109267095444127484223542633204036627315591992798272853670121565742641968207815607716981667474748653123421740420955172748586701131549400243617809474916654956039085333918928406922341190407152420529515538503494974347218299471149564758179713718675860763517001375961605853821380006225604410769875596043842251174787140079539457190498471272250900086396471059068810429619174702458069983853075896643070684048345192637962088758170180641473026644589452208877831597069594574808463840449286434003418747593793410136687252308360997416236359419224212489978122249279880005809857688819421019202875904414437346373556271314588336258230245887568013570224657580410134283894191268219185743467777401606012368332467769743582488636999812598277084096310291075164224079882133062135369300123886028802299710233758427164202575286078165154331303358061464413487163886156414151487066724298788207025062269818212048372529238969606623333010949653841170106682899490288445297515548266695073235984700295404649836817261393051937656057465007148813202838185689273674524085700297868054696031601955660246522254168769241363865019447932569897222161580909229107895428957264804003626522869771637435546657476378668445269050978986343646457516446665688212696924873398614529068025673912625462875925078205828820769094260780470444450993436168479665081410057944565712275429555219986013384851292641903804446479215235952061106039078905952880237926092779664083031990008771174541482100449435765318431092684345979522383746595789346858529187736139875151528806219379691733745156562571772403585363715287470335812657109252408700703255374132487377189073580671092789865876351803311245164176590585005848280175157042714022597218098006215897035610036661649478636060740697195489091476170721781849007739635199768336303655773939196324953471589346833839291153808219340499809262070209992196165214416251132719865450202401675042671310390713810771352792331561911854060470453774218544792189742059749190580247688572375831064371441550217115512753373279295758883177961195805029721944138938436228147579502200165946682115684195783254952387549755492092705032243614347475858866906748995329393838739320940411581039973498799038358177459250846249015771744022961155502686653831206149852026774875949132350066911966711323481467035838345370054984839879509340816242006608775125848875678439090620718942557753172337952777472120480182324033324615832008041707541110449225827198350310529321344912483030079377519461101896008854216155206163974677291741775804435914144058737891103458951442534825416750381029869988037768207457835352897615311353919727962844344990469254282368240683330286348714633279290004066327838463148762757300865513974765761299797512090623118009719111363966322445469132107157005493181491287241490980294958445918654527118895882287852718883325384238774015173536446233219596575958815998018990027049375247537857302812138270909120941550085313421514099365317921398950460433067318927274570611864094341283138015287416745564164008355869641243701833647281526463219384575919495021134779933421374530159907724864466597782526455855465647075708476449823560871144851432030193146541357712076332752108446373548320250553258468850731011230556221022367439259841933144895344530172104307938866591978120279069595353477953702932100276634823964888941887128648585891760774477152500999319169739162777269183912250095056498341508611157578184370904743943473466528239901258714560670364594671228709818172313418820934024258862767686679026155240854996480091913298892777231079665333494295764902227401672594431511177640749954945920164318332315389391275939461103291866627612344809484665130511085074424694837860079722850461979020497975968341894518124494969795883583734457312469566673712824617454129137688342859081388310006859163151114760782480699195642948873287767545335333832100270140893910929871372207463912927203655370745999650633423138943166626090541711005887772110608844783184138709324843144370665165140674545173972587761302423215669181097166608610702683991497870293898656169303069930690801229149776080786707138532098236226597735475080151265180731833681050642769643538005994649111480119881025413329764208906135725400507682770805892178394845968047201016100543738712932727331572059267345660866913755244199662875406750389670495560441028650327160359737085501232350699810113088561158198386873543671495456297827911656828680680795411741258333911372369638995475570427517250336815605902204883952348792628902211880565100993750939076664288992215605513025676342392808202798254413178849376864857358074748629551301951880084957480127991895052520517528400433806397091459300541621320281774034605846453880160309893218719563649706436663119537237440465530040029418561165711284970188815053972093874845734085240715203412513488265679790651354136957699300821084136638682305827483367162775440272443429969488577908742497379883695943348129336503076486079244144289121341371322686872249184876970392344156443637100254088012678534207637708674066590286224011521266643499343832795500666635120879816488978057793432057057941322280302410848544326310181029693387594082166263720714038066927142920393785948558866298370566471288968768285858088899775274728932819214203146048544486970772956468856859423157905806465990557323555205797198536258082246868791788615484331608917357869101094602936477951786881862639616265297688229463371250096651974083782264418407056211674916818713434042942603729390641281264855428702370422463119175191426574992140275909488053949837984652579996482188547354282360927146345580673011097548945179203980383412138633993295163147776040801981576150494055635639777041746213114935256420044842891403784479076657609375350214724598553451811619107708730843840379266638533382266066816939137554792051281131330783586279308952797762477096701517190787214799364292725312450582727411020908161839214225713075406015266286417357787965955656006887443875766702977749992216881324929988871635243496027976010617164856437948820793700642435628131385817791353835958035312134750872042263093555847949268891961573229819504935589848509105709075760343664980273868711020258680157571863660107635058683526857717508310923507957899051371925506514072849798966625079221506105037400451515219481637038690256761933598146890267541290910643997311133022555072852271143967658620415247124118475676684028123116842893327505026374809308335396710833241978219095360776725231642552702541663800843982803528516729729399199630673412040348718445953385153698006131469120590610072137833342089450017841040752882590912705934594546190904823541199388379679917915012916646101006001301030555631622532400429713912025356210420778273365196446120169734720682987493243358098426891705271138603235862476889048442059556996433179288909184180783112471707517124947208531368638910587544989662161671230968237874092726977403032183314204057123150476354049634442274248595705899236662312459779764052617575501291988733481973996191113295613272281863284861555111888002964786665394448915003231926860491449333029419836911567286997868983454318470080174143536249705307572277155046309619074840966753375532462536389387227309958401568559591815799529220813224219892476190259526025789483157607548396864217876784734169903960547077672280343199960471669177057301213300054258139162347164674337860814735338887258446807671106906953367131464526803741227199154098160510219755468721120571916292807422534297988243061728310226378843957630046818036220562614063817639799129057457030760247118563978673076918661573096437049860142038027607765530006691008785712488626924359525291381749698700736037217447048702701172085794307317493092233156194091012502320731938828602929328762254763229327517075858596483068635180212885438646681413473931816975884176641496153298234125644611395007630249809571477663818423584131298374795751590808982432284099350581902931436399420638360206325909498207975236230097273585475684932824277791599550394068452233297155904193789319886311675762819087548386560679032339141331491831781958904312027725450319813239850648172640338570090325824545527384469428492072278108411865494313456222125130652472857193516689971134162435403616625546951098563378143369845929620229553086570421498496176222115834853278758706488732592251745830746907360990924060317808456351959318038314920089446455451527185380907694674587914955887024881992410813556788397430876616239575910152100517370350554324919246480241473287938798448741234139100315745378726426950968153429919984289400553101313141695845579902855344310452073919630815231061297847870426499121138259340966317127326034824914912321673676037476797170133349820794824304152861023244643672622358467096726086219549744242247691322545403843696646651867771414622842813815218595717792290222845183246843349631857373239951909826371101379606342624890585534783055349222967515302085802342367344660809617802462173797908567491925563296010299475557449884720230305254100167928193424176828093805442579922093989916604640189342258521283215224557282086850445066868399761707111760567758252851886234633899285707716428570844252844872179547714595455840734993029966107576442502719381409652736342179659243657065498906390892367616453408791367489309255344361594357820344308692093423857042482164980442647377878344046094505594892363967588359958615628714112017869816593995145905911376550591545457889957620535357878734921427378373258893993946335294699872183213607309922211016286656711057271016930394548080083426735690495314698225731839196482523761358254309384633425580221681749323062317734473704658943784879645384865862770520572490894763642099247034165562878576759678617059312405734183422248566054178159755699833882533280615799403595370726526765697848812068074825104027180872939077061101859877852014761395921813830588175749140613411223292188088321807471320722676889656283809117288631548384963335951029969255901893727060020091831002900177922746882423549447513473489947974292128320421810118926113987216689496085615096599212493280504046491690204695335158949607041943155124683791127508452540812035187538266068538924868821551249063162976624220973252347429632762994420997480205238507622932635992052797677338800155796650958249267009995122971620328521466820209629725605519168047899145807858163674182897813152956244184803423081407311827185794841964074047361319705580687026029095838146641392318374456318266399671077156477083075511655618275433751803345332467132768638492093296130094434482109587314014555042138171664282924055111076826001334007661634080794152618068565734401381403543983703324777895182415614034311747981833632610850364106333887657335389024323671203527697883780260652338436286404850558538498699484027825213259841324308183137392211887356418508274610345767137874732392442274922060670275382361621919251977558253467799593668138623652780076336589120457069323973094025233271032875734803620056693474765748155441032192860329366130178823846949252397821691947707036847064506382909510584335357302699775292398132398389684066965249002478974026060047804422090646995162935467844900868847372007654380299444761834079210913023334330618308064666375713849380763940719808323898457596967066711781706996830815433838591494101530781124335399876554782521096607794835524674962589730616009868425114444718222437425849427843483261496085603123721306387828664518246008681675874955516566041394740060846496453836672469911364461452967449879053847780810837189724078819867127594101262661357163967347805288212970469203824296697381486184667737211759589197754943216596637619129806618149310551668146350183296877334498090567257261451236746766436122095723671297327369667157428570972338242350601000061601671603859200873385604023172280697943071527001519773631814824301739000648944379283113396798024384683766435112001546807998980573987601820424674905164726372208450501930277902853769999788449587141237181870878572590210596428218630378975667431011122961005539458403064365714935324954885228811055023163560813030572721966384159441970847460725333671862217170185594208644816516176190950855042149620951950312044097599636848143749037294379377661475552933950637080776621917104850508078772334294963641697234756175083751355334652282353667169190576857052896254067323781855128530716047184750873175319646108105992363910786179614000958156012172518078107695173885775099907864212749557013608694257522923806119065610491240484707833022393775973301995545480298924182640896254779324643845884926281296173071230989329591629632063531902613410715442316690302141693028701229539873585335921260305209016584040949739921577433864595894372557956392629956551694021598999761119985953262887240435679180266317306963101720819376678120367610883536011171939947315765835859480935956811260472447542110554071826926996826983840325921664379795640834421320161422539351858112788142844404959503901006236931574353024949902643897706025869046667038041142460305932779757212926139398805218352066481486458053602664845454642196789304099925658767182441830003474415508593702495580576180018951749758042343986827470097952840574988638733367910159101023295974467694649523027729296204934199526480374542451977823158419173754948625256210177849152870545291157623050150331927090905594666766061636724401346311669086640723007801911229831558477139895269867862508957998595927493089227572564349865908599545417694866457317391175710432325530279608137214309497525007385143428943059861555532080926616412343607616679318263337883636922149985535586233927146883712286929720109032957844728670371921972348095918043250177054867728567007175334285225405035173485520404318612651977287190346037697798515565687793045275797366752160496920465090660977166100783631528668594745673012545207886299054439613134319830328928254373657222257917402643910509399122572039873114959375452837747545140140730657194955670417701225899274610683087280920124089022454258250610105362187353261535785608411105919732797841598842767774753047622456585511222130726204402883645715409648508183904576133007842120344121267835635329441972796879931290280601007493478002842279506477449742763585490407288796268745064306590591066659222471351475041920710698109625090883968243057049014005934417319388717274605470739210739452598607600974060377936190621243143376510481713594452111833702198600075118736770301804889124677227381484373014443842793656330078383485620273992479227976394493952247978920024453475701078951575217538645743640903156839404818292260093231350827557354442794954808462145468050564243413218376967067227118096781751495322806296936587190276851725719691993705184734909470320234069098819218805099683244494497925369490734130874155136482211729386337626802447447572795112791815987048310759684381431375315471974106842821527695444463869510315478459778872574535169385898707762351507005385414181752514368806055045584112917877412637450450103317687693872913315587626685410706411469486262585741124894195976128587634536185469876179737494431144357860767074453115303782068714510692263483366623670481784572975397497995134652143814837894526840298766422537839976697096260293604131015443155317341283026512846666969769992194450389893637572244419679283528482789047252993855696671051408152721005739176167210891412309701452195548757057288127099206716959360127692714600875308811745919679086021556343959798185010099585945946242722471170404894988149854782586278166639096621941570015785094685293025468047362366535711104816096585259655440108849851477726571436173396323380392711143877470001560342534399648041632107919720854377637618618575262111311780622655889577422914075563311451091518470548595152137239202345123027126574008086772477740862370998934521737378062897530207091594233003548001985499957047254572730277137481316498125647228604191318711835838799163993429982115331492899250613426235373094050929681518001387140145296312478909896135060224394140653819266468729715819893030126514921873737575926064945412056886207843370474096761707932643026046142427627274825735363436045268309937350393617367369705406507796354867823841363964218154943641730176612209589955963282207136041916671093900879525995042727055257803248440690440971245668441296738404623439672819533814450238129501399176054862449636080044100610792794510523490505839823417309173354800886370059350696448401271412255676264789382805806524247456425247632213718312267459727067552044414186157596818860484396486027460083219818338989974205994542715569559718039675346828828675256432593733642661159879028809679465374754013253495119099341164886557596032908047185969442235260711057579492523581438964709741449338699714357603920199094112016886877323112018725697217423736441104144733679740492322999609331354586082310136411742308760301702017581736457493877947286788935624057855659819143235927650049343225298512640567893478400632855462081254789040319703082285329890658956064800651795865121095617080414916153780634251849914254498646004363929134545840966453079922266209449008489882704861631368770801771308808725806996661487802788925993751978743053467937572198143805060023602184282700190913061137437123784408232602880328086947325259643931698765025801692320596334309895981428006132949542372280871425913416169766165534488459988216913105938506252649029819993969771695888164140230036571012942040309394482035851235982006371561191013016073590032457597889748307977759138086902292149733104641136237273477547786800230853605540462386977008972859103901584883524483245726836632050482578216708993420592161114044343434873690239153137608233964015458621399237171311620028629813618566563177664193665819136637229992706720225621247987903894405529678603985401170952266906666036113045562005507531939560784592836135909792318856690897980884425758870471123213010675463826664140829371135003816414699010210587869069985465796801358154915582101684572897815918521968921946067677956516907515826574670711473386332749616415914876155044140905822838306132721505242468372715522263927813115343053183853448418391404586330132871340670432953741776405134664159073764030674183073437492028377338538581429575570952361136301513164026114206161757222188277097508586405957407308503458816171345869291981412002204478902162182202981105475915561578065948973914174633445958986667524467679816738089547480910456054785143887597190653637755589158170309237277168430499029596134482588150957754334943445653993224827631782106858069821869628466554949272594049244403650519275217705661392441221616381294935953826964064957643538230493804029616828652953753022126981309192325853795338713210502507729973938571045687919478311581302987524108467938624897687365491466754107034934162531164412301774311967235858796061120094205912424980209933486907767646391262430770831433691319859374672286098960074381328954475595225267655774702890948378378097734300658364361248339549787308544331934269691838472826904853484938571861960901020912574262308943454601620348611318037684885830614151066049170524524926254632540365520467902895964344914973203309528810821416104806195200331040050701375522950890038820396620569410043044492551113724170829629914534186181249510704821436946031522074898140762403407376777641293010464780263733164967351011981867050679093193882519961120509300044358036410001094145256732617078706596393429879684198321263078722781142114207764579075306450072666701653837460886812056144406433527909394071676949528885832622698564197523232201634406398837069121655133920619445004129890187557846306163796434467507422562881255579439515062046618211163547204510915840920192376846297156511968500615741931602634413730519924218787104429494578732119976444898996394108406954625354685332768027523531229475972054718149375760931865289520205155156373982348786204268398884654656154110600675958619589699074057295940455074108942831946374772273853014384910517936085249841095778792597981817715808744510121104545098917001345665827726453512078214935914006723281396074331618350677468098359972629953902806097033213331483810211170482735552176049933452685339328701077542094135514922886982456239810237248630228158009132120873067897580131275615325806038386423530327824473773177739572966682082562265621766178483057400477732925741112106618860045819208031214791092871290741377560606552824510781157146149320651280961742935121955623155407500132548342096991645131872581587649475906525348531845142567053870439073819287804888245730498204428027746296971722845092377400830815421440489731010350174491443683052293405545137240959873456899250854819474653790664567933120496055386705406264861847933974348448096897838451375327332546138998592001237181012153615570018840606514116831663860801629328337531797917939357531224124760355971884834796807957755451508761709032460368334123381075242804104524334798432284299872734701152362284585873726284681767220998633836070866729957918129537606736284164469062662762269304580946768631935069889059295767897321647482045977602309768161471027428662194284606066441699471433464722957282581499179747373545670515535387516091436353010016880367190362090947793861268026466589873744711077108239045571680372914297028263987789371785218774636513401034030039819092113675463355760606814633203680727583030326525809056944341879353021793509519892949260383443900042445666324743855357792141185050310626757094151490630468858808204195909062949049248274106964075200255477150338797101961342473186072721999603352479420476656672025717247399815476978389759992226803280748241901877603143314518299599344710418576013918528579357683339244724763321106569944171397005832353430783429297560426078199273807462008292256424792786695427777280881869694328802102907881261627618559735063174378868529705237491697595569457561222636579500391147133382966579004446708851778734292846254245776772047123491025863906471363813104036566764751736461233334940906642953780105054612377922506482344968066156980474341792833362392085046342592966994344286648922351237158523087350072146787630211255642147366653172013993589999367861083338088567098351115753578373954024936242315379019142428468459748339098038773137841661868676819725201527251641813859980459613602854823769332976437883554547021088965828200551217907367521152158852145416986975594954474268703420828141909898720083085291354864763649076088903446020555195515292577689194583425373140572354369434622178535218687895983027877848786320440907268399154315183759419055244831467092442158534569914154982595984863592861750359269562102154314407630807986668481538759610989305993537628877955621788019683653764844976983925523212598088950839848964357734920432887860957392264642273762986775177628647945837176862975147631319430589261979444639167800303375846882778988450829470445465014533097863020007771191012527859162388761375033824781555554397683764231819205793084483998362757078072396525135825548427749937782926271289404090403512454166508519516899292201786380477610359124254225923350083377015169979345338500028738169027132951745823443329874214286617004045127292181586709599746062392220536170109673224810473422460064817126706617189537028033769650624115189430751871530686264268153874866597643024628238835378402948952253968816293985535891853751577185405550962139313881864931790545620428669587055802725322877875157133946915737882394131472996468122445062705792721552754558745720317348508545825612710435420878021951648356378884135371347133131977586145938705995876888556586270872345850403944171221789925797494792676819473215223590884716183890501238232383256998027760475099797015086041114767258469456480257212881180248880544584750718565574076296687509814622511676224917691136687509393152183737693082516785196364642990271084410009366662492113177010996428639817013065877245590149875793809597065289672690090034911178504735967129242025661341431680467543497234787789234234857387170025931111957617840450982472551823869409056007214930429104768249383974399151714358480304244990573140087647228175626409995373965073280607786508604365263591981106595948861017133212105452428184007203731118721369304568982344578754600385459307458366970766349125520085558108095866848369134112236858919982011972784047398028638497918262108985564345319373105372900965329988802355896510079392013415442670681834044304508386301545144097610635702370853459282431438280416967685743995600359115757560184937251457327518456800226791790559914716947309670224455449103032104931181288980515741504857265908818610713447523660248836182448195342527709409290576825326062491621689122082865079084682720877850028457407591617443003986051141182761386514396866833112438444468998530564918939423532721747342919579176813027590582415395233969734385784477112349492246223834872032652890429646834568965017374334103226166878295540031891023242092395207020387223443403583060813613433088378157312115272603921426183372040087661830049452750732501436100846661971905185813584259562096316022026280767748094144380837964281205277977984251693459399604667269089424259227466307185313474564348527287011716859794191964483893475480370095250008168743589088446414559404951292622161679564078191064247440246125478789235313036410941876265860735900988791946854963301546175664228948970262045130018438245226876191517712753289860122333720631866838685989320769312898647701605818273042533412347686832518616421767002796824029644591010599712234455127266045898074649954287458947114780367695212373912905215147669235223467939632080041765264007440203984870006317916666758172517359369236320107110906172640023358814030740254038286539674038265336953251373140938268041069113617990752183304556713066435371698401737628787106421196764590071219083995533994386270822622677779084231648423127543428774108397263659234698075327740627664677309547176918148619836691076949394289952445861976014741190728004324034924664781527235505461716015852331668530902525841445069353208043615364332309232191027780809249714931111174201076034925300259282045472566603013900717364302627750188534457413143469200605427254136444829345403128689172088135797786517041373662957058381693927843313703831985740462957687935096037517287139368496487504911445682107677739929525739187435616068364515812549329419540002287286469056754070179990709743832430140333459685487047963994733315421108273633261493143146190809361425979637569530350336807217136878591808033478315559533940367842068577828677763261393856891766056927723163189067608680749222960953483805369948575392779234436531396331704165223989106615975862999349743295372300566043953190974676805189946739486974830324459684456175592768295251649030859789351248139031742803264467976574991840460078041114391542993747735771616061656675826592424916871754002427880076979816728619183316841336198685405088179298036187397138106449574158619536884247408156657256742360967749278133150071978975708266982091683426984194018482131973854910424105103714859524866665606741548563624924755369261805053202090126121899122249130136429707567137025457707861080394378071959338824214898431214021605708082449351083507989489855495514672920929794193689107665759879465984467371279767679253736868495961701159790439073145216808724067039645333158624504642622681944250683843004447514752704503048356650683770975915591381593897716032216326117488193041490692940742960290111452587440188169189880462762215742383988361320415497240289632194703261681612345373939883602142678523509962841066253226541688227510946389319891679965777676033892573346743593463256028196307505726867439333243733557985307132680008229084202157364479253476699605471903549143001695768346561549125726826881728187051522307429236531695861306052064743831477958781376539147550742095276633307930350809495697769680694749897202102996578118457175564401322637864326365137242560079506951543053634966196904130829510548309564810325667501070812815809664369451891156241049664003885305377439388157248427320972733437400702553808155598940656621811970376530926778027149128463006937580460582026516532798276239038120117080490375689509846334272447548384900699235169984313736134418642262825943553159379984368742069889434080609856257970922369836311076212685343280107390251778272059776123311221142567771098302995541770226870037378740841725299040659385244238214251983743851095324916174113570976975321174091465143953164547683122846640888345270670403244439207938315628495045149853991237216467871956203351513490562304913859359392962900748547533206186217636282317790199367888866174575131119350869594931465963770498707705605881899859752601796663169533155000917778781717703143335521327152161445597344648345830596057065668817979901206693478178731636689067372630574399031673893557021835923666772606459186156822375098331978052914241337007022089902886914295986189935012256659941915460579108696975854360031925426216445727676421170828865370216781780360231834043321725077607235898621021065057805148290956293691660470412258395918097365534652966592888778635529643392353161498206546841708307218161809124935901325421309806326518073421542710654330054761894896090307715936814319006505875066734297574744373415288176786163195616038469088139657253667498466466948370849391629885841637745470381893639866939385304893764858055330828571708269568604314495365746732542591556666167942512486722552109959972060070398903545788034861673084941304141312265617482832099963835208564747919485180650365330972036006283235956798289868945597094458694868706164370750108874280430448202433448618934414280268972372272500628925929868242296153735760872424371287889702178240042388330245688810231754730217924746527346578302426936228822203361112683976188406636466727838467344328757024093197748115184220734277958303160623509752127916715909468013686252484612820156390957549681043865215559772174103618358265264882813301376376296573757424144715852433786046291374002237682853348945308483017012102749210784451443520296136903062557104648055789313986793269062834825381695092854211976628680048732772329917279545602134206342501657504516968825618812606140329960471053485480449885593756541878183535042712281637279926433659592555537793075694824122930467882274670772066763492997676346582067276805871381574796306687649826376657548615059485392074848850262814426617316127787200997287465604551521395273644047205556434215022536633815066290107063259293791269004273710792639728030024679057637293397356846557881479835613475655875903538225024009557539940250593469414931502102434025918427597644213956673102496103182528184847186818910208282718916181951072800449295020609348709863433112259297616294234843106670765183960671086564430760662052849093430872606801172277683353786051522439176950360863940558796273468954674625779338406040283302350560108958702203887327968572716852366318547056043627217902570431267798382668355547131109692478235955796283315519946433104611133657930767813486990512655780415502655317900700736765836307521397195391585031340742325769815371526288683307412494041002458384291056404604680862873456960399087848833759139848608708793320302457542744034623941107088630029246114288584895442178898042487103522493484154210848641130421789487899924545583644802973397457873049402627002388091722728678196606435581401759982362687944434511111594543092032091645993662315229628201536939459568399917211780021469250234300767371087235797892894533996601431328579486877101979032249035086906647447956502693254101543749947718510247140224703659374955742523003202819101670635814361564235155119100520879859791890425098181534730724655452204672813228247864717369930796994257502552722869575814709385996704548802896604661132571429416789881967105102013845445265985625192196489195643027874128612185899819090355870912357952452137009570911793588914245137295780989465918456614940962540918580808018406697429768726088731844444586527192261438596866207997820790798435710838704960553517712761067228036197249540772300452403508721934525965416484080455373274733806798399872130918630256226615069428311162748685921843986942282710038008327335794354399052553387086444545514577402388878226292214475144766757277814501110423387630014728879229987433772178149443968698152773358670580552520451518176069184727069392522726008321813462022602297941949032626648205474850589860871655893228732119608252925715601689491638184527018132707880907483356064090684151430999351579767010944696894593246013345627979481934784920149779497287804164658512724349021665194802400237276762854078324945675683237150962652001902618959279489143570321521388941662087550975667415806905487354177847086972704380205922586006445077007141764856336943406275918380682656572586172595441981914062494327032736316931776286646041849401043023447930927010710380077725812317359207828576849388478972430553503566728270735531786850119015487777472605916462745099916645185729582687263574017080644479616337687639672021744542890284634537795049643541994803106007218495511132063958395936321372620102164418807555007130709747106268535707927906021302578773130749269038455839439380074822185323550826518318350971832080027177090308366056797132715554240429938764669374347063719968724033973641283511947344294873856325059470700819551676312290813210033434349110466173834453212308634279806163223804792155107252849652777672023618747022480659783565484513152671363470113702634013108599935858813815705502837733314385605640305445900707314437823207218738672088605497202476823601867566835129406017293550812397877096241261618383337615217095865388463537079605673848631057599079654206966903849716842555257113709325639591292901900848591754209307710985167110227328596541394352391027211146502145777198071456158636270789558822927159598206922792428151646977656913345262637905160222773087921997154548081136750441736860078812796954018858023509072864058710188833394223088282098162687959223033464263292122623260633232759289667887899279209516247233241259590688603464987261723208039775608702050639307729013836640286719552933498424536298805561554360528521651965934959323692499866548978792259546193541011544996932383230910405984172170242410358315024244299286538308864272852102622053896186072224084688948845660961641748893510379578941878647488828305543402043282380783006168422360642017894269855449643479969173545377705579951609558224940625764169715144801117510815445436150955844682789035607495907032306345577252173603193196733343057423010614871014249984595029243227275017425107681017734571725565956122283215396792550372366728883351969210911317810262492874856907038453346397722591059728665143335145874911354424805707890396491328591469753094492624516495974592931601128829167617211918847275301439046743999436514685000710291507714491313368997940854066405450248813385425185022127433272896752813104196242978657439261406437758323668882185182529424282163728861376208180806298546072475533904282300621861845858018062325201529731136542459824133316200208385541456513993211211888598543798666533125840785974575370302004164676715772298599221043545883890685764313334355761404816915846751678408990110870710231417771951500609479999355840527994526543114831967695866714764201890137863547242296634376539586341110441133079985572311144696440620492866659665326335236857027895317174056701771898218174729054382180152889042833075354907229812487527529903581713381970928560705499726535025680132769981535851904051203572713956308954756117975736568646662905062753611539959582966714231156296494928897083323653158988768273261962618788415778467169590139551023730753401641665923348714989446085003374248333351898151961087303687852572723771970067658488063479321004108770151384036790725733583482049315495155308209044195791453890663417130659113042360050934183058950119156364017844044328019070843599481015403546243087704282115717525047854021318368520904280597096132096259344219794438690229303718395382060784664549201934369955448879696542638055144657641075296876925707972223608137332176747027614426844713850292934703073764962531430168369182128521779340240339915420153687121459177851237561697651627314424697323792647412435933174677882946720338604753492562280852896907028097757389294474049735007969995861781093222232451204113062028378157147483721750436129494973403699100087998008470649616761157268018711446215735401470085400058210412346918133919294852549537923926751610086086476949409098238445628950404906875423386989132463918489125648476854677495304288913970949644107530068479878514095267840191348681149304246342581946710287333489730925173244132781486857976732520182153271649493536041336511346096033790017162203912461418309125413397407114998610255116369650470199868313583935142867153886901092302743789461769611255928119087465447290884508736755349886710769418813392091941442135677192314253309466720474878425954306671063167316443780753425052771169703336411354227359080333571830140193569721252689793715074199432075309512127837920883558132475557174490164146009714276114839645864906245966262095901051647947944444907665285429686612328676219257246688376611216400774762265514111580875364640840289735873349992245572066420957612647266221353477804021674367645236847862844644530209983361722161102296971256137655022522095431205283182244824267293127324457569150697482349519427764372885322211272434976828453401572682459249331158583079797268844312978597348890417578754135594383973138630104115088133070094878646426807391150869371566716189710296020488826485137151019317124174614037232166883666855023591856270378992566429767223571524238432867372470376822735404929082672229913439709154343469257350991719349193030079557014790404215422689149820149825112387961878227674911563922622860629586563150995243944534229951784989076804600930121404051071525555949239744938247498109473843718078453180498877710694118289377560506166556052830052577763280682675983698214821291385371112538421385492095483414646249172201304566259277267638569300982933314017230431869742603936820916165743426028360353875659077570802641598494142601651766739411426054430169507780203584935397168923480978048393967799743308934054807318412477111087726636187505688226553996247070331127198535947965398559651787329558628872489694382173820850580957367417589066660365393424726837993163616043438276064945224464471717818161778639427124053147881239952952454903580978509973534183471960970850016027905037796639110430013705217700630918849148529477910309919016905040710126593145326937321438827148291008292102382927509882788697390110006047097969458277130962724158976888458548143735951640197965096427070248745463033916744916778643407823958014012391420504521313841120206009222111714722185282464908441984660955452508167156553114788018276186999526798967819780800199432261578188994858679847430468298429028401598423820544107605175694599759086707316171373386227071482648219714658509827943438331655704991361218512605458682925804512012048220691364858451738826979823306389490500376012179011842961874635194368