2.4494897427831780981972840747058913919659474806566701284326925672509603774573150265398594331046402348185946012266141891248588654598377573416257839512372785528289127475276765712476301052709117702234813106789866908536324433525456040338088089393745855678465747243613041442702702161742018383000815898078380130897007286939936308371580944008004437386875491645146539391450120447264481333162935109447418135132854950444661717266314254976483181245040115660453645900934358616793198366566626690913190653586376610525815617936623617911029467208835457551288355298983241005586902050064154661241173533994104310579928984673395325527873604182965517183039103678003836231662973233028290497739104742636007051263769754688867700640992955925717328464502888091514425746302602952963237075525034227559915454262812980030646720799424253022878426205340679478600465969399799355975406167135865465345624820825627688636928094130637243350886480157248463372324473795454881443847933637009197410147785232875591063159846078310367009535324726423167141887586237415065044350403747255354974111421923942431530773603275095533257868898478361911203741160319479368246402525277268510443557553525374503503953047123217582899045486985923563901232750632903581829533782998163763115637086365842405363187768692305041268903197313421248524383307949675124158539431406338348911702105210257725964340624712749902973941661634214523598731203001020567998793805276042812820019962739680104378642831377288246585671381125105085643512733015660283503885638262315627956724892796463836862674273066818475297905269386815388589335492598576178623406399858531455601849484835123992750938592687297335488164777488446248770497702000183184288095182040011574497960704206733805744507203134268915617921411300590586517622943215506564109572274158367881717951541227024105936964427218643939201971426670334236301090770486471941229956556890533702900656870164355807174594637488033784331061572034389800444419465264015968167654444227851516808204879182545448962044971024232183801438461217618832964134877424513424168631238758987490206755124644101230159561763218477506002437704277004563044812884847293195723035653975598164604053339844119671813448114498649386227313275966833239587868102220323393253293661510074325728934337864111441907768547234009196377967324789723029280338671983683337307640064312940063722795952283771418475437608138704828576835048857262397456602423840160370099329652790052956343035197548520174728173785422560072097595820803648881699142641449962394385469547909304735243992037644375381962427397360386039011572094981167148947341682612757510857426570459645100205110895019868560923889833653696692405852726185901826580636092815719973822642167587669634459164012051897503927544144594317286630777180441046691094984827387491058928133990677521506826878760770273313488679060402071288995648958952245040775850441846667420013313013077243954395885457135316851922750845535421897270378429025423107831967306047718142891666854271203305542419063120687448154692541217624637758482875465229257512772153092654207396279200794599615466679972444094170929253128233139460133065644091597376113477401466909629163332122661907133386613161007024706757084680589932632638604556199943954483219989697899965769252258134595133681864433047057101743431744554947031531703990255037882788413809354049551203331090816362350053035820552446353872187512641223480429545594545926861922384791301662428929651444691596527870195349071817917401952471123252292293741645837432926761863232140756459810410597773165042882169816637089516145690141398415912627033909499193661931919046902193144117058339926435545679189759518587495237416991351772018697876600293203606006134465212907773883863969373239250086427731457503978836114665764035489938532855846290649709182546563454985993426302659152419095784260534998184421983483561741300782343098913142235207876374440561310707492712032229697090338600527885428002950470184504469147649689092079121221768935160027774429980914068020682423072361229461719833726028314503856047952794651177346033880910068352261382128704837633506270675517013178132047253261204844931963588119760991594916321570655037681026876562497479903955462782802410379912287135327941368089563097698328595794372678028243157378682295303869398838304451414908452142409677502854894683864239862771473542170415084302386832335330565414400546977901195685662394941450413398373410912005326414853920530422404072584314525584094482865034663261499617542311211535000334369248916520523387064749122403875089091691686438451248975360159931567289074569363716834451230800897803682833901749878261141682389504002637554639902375954570415322807979781622032124217336561926884057544221337683982648115102640441917796507822174754022980232386667524241423442312839861680166368133836714484096209208169620314217608215368577398670915181308206668514296595216443952100764869299744332836006542124172369653601916228154290889776652832812339854375349144103377849051481620722366327767260796467472176490964782177309376171291909982353054409429409978873760668779223132697991009625223395120632387156059911458241326680928591438770403367332652062473926101453901208407583265449936351255002958515688093977270743965444917513385203274000869663254172182797058166961795140026494771830488419453405484621070310202988777925698259612475023817804157086196781897767511382439017169331321992905392552104493357614550336192262785747853743117995329330124274342129088579083842277662379003973796726005614196682154827265594539990116545625741387045106302611589046752315069804557493903128213623442062052208149973730180925015426480842030766623899457706603063339606288898527448301515805429239852451690035956771849345128417817576532449207454923777839528043650434961708594018600290303077058871926036243147112427724740164489896264998671687771334552630181337158346155266087542305573709580469106251661890846721649808241438454352632204568117103203794515056490517017420516684638795386520881177691268424761158598304617452715077641319617208264977942564274183384771365325948167860033089295295546195702809481262140314334553111624714645297865951153750933515807267722711674191323067889985289684426413361792830238195602947956970929164023890624484847576000734554956061495499294696155675085398295463335646912527120820126123890297870533036575334380399826504604243688839765220370397337682748350168083481783651068002450876981633725833166274179843014306064846431210682823170343576700688876307122948874542859303408297234676771552625199680160354820798230355942980921200570279626649937329818095682999046212268002224938697569372068270116302590882052699826349423148321846530136945453278052299198656603146495798155514901172419528892418099398288556512852048863375613195184488280442624529053467591253483507585908162643112096247217596139295678912362512540853307749739827750408235988511697100179280567193313575742836380482382322217796928925205479108134861540723323245288443411344598233606406920006486142381942574470308807546020718132437799568688136708308880450178309261245586346666215954717946178230238024484392002937105125717796395915969948296907450203752540629227043752136286675176857746301336903163458222908434823981213235601145017037795537413679495475757972435816312398252043997743962522312415184866115468476898981113219980753541901133834281956362605326121669969517182689434529518269776511176457286279250503789619930102124998964474570591649543863128697572262000039898022537834310631194230192126379070684386863397341637775717262438637863926626561052576533810673880962526746776218554827552093650605024437539618120909538790745558472919229704588925108881260223138796529361017908124850294911019822542013113072075985199382100405255411638432212814235370440926844207382440168640253675219591016690160999023047474179843796629542553837011388436254644915346789706462603341627605270836192160100495905570018577503500969463183202349877569089144629964125676157186409322065564536376841656556401357943798657420324625715208233940825624149338961144886888224679649938502851020480827228423806068486344338923256842819363326601199370594840474668963371470401616881145689685911569141460892838943287404966351638931362933229988755133260805194098938599957669908344597573771040658177494605301917992619359901415109947721010132750297145512754054287473839444902281256370342796407718828706377476508112859762418645314957547052707907211791229536527591324814925752423626386153532952301639468131152515291062645618255680643263558237042584410152555479724854597988305628768712396936257893320775944714649494515141849179842427624229580130973224471815677014689287346192007614938816674711297796302389389748026277613679792069914657824262087638918791721278857643187878398017589393628735466987792846847528023323811768945270242821877104808700509811314191254942457726094711594475035624354004786514758505211103210005024351520717747376173286561070455294921389044669779956007944540194153714718201597736902182898266538079533153705620828041479107065469857410911868098519385927485076006142797745426654785061770458679297440926503637567783737140767232264087190875481994881274400717279478261648987984593145610724853237551117323325346886534973216741124579578277610179342102196022616546272862290109349745465467027037529875028428704934521325351587038315768646916906526366341622868399172067956169715867299892798226479531460581709271617712808112868539285300454185534432837443000492035196122038870007671761235540929343484869792799039134879459622678278791974481185751018774840040226761810632908511861821808852575439035646343612080884976992147302441036708904410303501733636975150949935564997797280125047559824505825310394082453285474356274787624355242949846353604766342814424310287991779951498405059700155451389934276775971126703889747693458382734905570454860299766413973493048723244324426315451376357906147732383128387904689769199342517454553489076048418948911524070044805508636026388701045516197427092888946580931055076491071440897053321287105542800478495242022300121530976022059472923943709239659704082587053599312627790672316159543358235750381634784844744139868728724724439937816482049173414440448326210697765865673895608723346385155648595752106146386762016126091341888550876074799784437601519920837727954046066734178393469034568264648668099767804136350486996420391812840795737278582241417350731844382605298177000022243825824563715238685848476501067005775376896736228983570705969120221805653650686303236280232711160103836699641480854684264164764944677272083674561955011591433826521503059714023115780345679520841844496606102797157186226904121744207029546786728283453780698034591372376099817372774345623087789594177392784509014536698828120399543287241615223143940739976016701286050085519071265855268032174805031600224880057178664363903776463248751143419040078407156441675880737696010352902304966386813182734617364755084001659665400925924085358132310110456480598793499919829063314694227118071074681307094398084309319372432932051465473307513763461455208370305822431044313221922304363788369705244742888611862158940502672464756367126854069855938012722328672122240602053810438096690327468174500765593385856414922534552545226852205184677077423006654062376837015199636415084857110127102936243423021725053304477920013517288465654202301457731536920312478375058147239253693725443587068175346119309126641718274298171263367379247285529341262847251972783314951398093360395692938610058880713605064658086081242958437246808751990518039506706516176033936739774331941016092678341671727657419493678411628812174719763705365597088328313555236489222846051560209236839857864123446944400346064817120093569836873896890404494082442404128786963789350025514783767571296386518197644933004717755154482701729398359489283340131187348735090788681202285960979223395770174653513204118570097585661881607014023366920410319726404855859851096050782117676807973062362982248684347099403744895919951397981266419748591265837008591108334310720055281429998032932018058117563805483228506301207858566965134141461538111013151191080886268886960102539954728040891561064032635886463826844241567471634085907143066951726501598692657835971350353002070964327791970170148249721534391774225553740511582275041500824560424935359360966584827759294245755428533627914563174497236945344968572710318625578902836571549890273746383796689238213727479604681558480930871530517771112496888665553586614864323687979852657633362677264442891592802711063065011589229514412685954845940848688838194719612770551121171784676475013219659528980407872476335196914682762637467334367812722023758280144575990650273683433337629980639046183447644050593960441816137090487697625161020821566058409417477797114183697103758979049660932745077238235097443231642207869856501577288399676498718886956480015316794004499030647588600946263096747755057623716481657381321418503402279570737345678519060164039877106419249659329567077137556233714289907104456197897144025280992896493456326121808262209217950797272720346193449830147044783974016019209772971093028457150244579419878824498620431732549053245598529486272881365126017118139172241385090929022611125434310718990207384450952314111564982410889180832848085161504032160518349378624697089182023089337030431944445329969737231738064059255417073137119241557410769443393741924127826497350402367369805631711159727279322476997225282043833986328944331477599145295434467101044677121111182754724657500696838886102526224681047769702125544414584400009313130889852616362559565966403497270961070628271802637436121979378840573001289023447785358928168133257620590187464734062637743618176154429980316083631526228762714904410087950041300222735087347577824407485476015641668921362643591092458399683088484012270136648141337804628602824808331951203317170655001185837137686272598003631303650036421259357494129821498126415030621208170490045807822780203004534075936139154031878969101059961316243248701044812477593596237141248828594054675374213414421754416697616288768639607040812767827256829494062957143814685224444474472357277408909006253466262111429399377642955701767307696631502828074408571175299258940412770498998722122609049313249352774797124941814817289070043665489923565935240890333192443820056168628818195573585957423554214152017450233272576686675780822938333849702809103073755283183897924158413944137826492353813150757669134734469970382742703450228107724495981641933571152411709083980679837122829956859873841398014243597161946521185755885148170936108863407028554865316982823085893933637198390077219490933534014719287745967074371182522606055079665891935963081676685247898539585262726404374807541843207631013069368805222409461629517258597701738989448698050392580729727730015485886602190946829324812459237277710558379212693248070713959941213994823744400118004901634605674724775545668342270935294945370885840917475811821913649687295159879499332631408987021960438355569345198194985412237581211786173870080812429685764050016172570636768297549998298810554931461292017702716181349502859268999657200973963813389525785157427881372782060835986912449756609365661027545940446378995370307220941336174373242857102993264516183976774548605776433168805639813768855644739123656049455346847575152030035261385379001172514158134022552271969300867368492282895280682902560100228056753635733826786836133342939949800123802105767223839247694256724536784582434993130649412977917051756423733524443928016118996913060607027350838906697697384945981723865920553664445938692117552420610696977401247713929405489084736743624392382731907685578285785398811917424460273594541805545745872925826550730259826112714675314829745757442918489574204021016437150316490640355137229648769002388451431548588767932694036834826297686113222562539264756039629001696098746748842831018809806399088724875442271980192060020402303791334000805616497214617242428633975392125016959190888213218356891340951728799036916798186706235838993154184584433121545017253502793014894411472333929469326964006395522585940467231526943781810464868352224150716480823718588546006155840834601029489813262350225926057913921487866970258280404264251204559508494828841189350107242864738554826357609167611153679991272520392667740953562442206492537224969426035493892578732444910752727422278240098523427608361720385842398386312421484397403985652065938100837465876777967467057863224079047697323263082467694413848088745268832650286105893478868433237587606669362549496487482890436584885436119676969732855589592147145806982267383349093387907122809823515630767782279713552458682518361325382014577344642849734009204618464051737084603615144499956522001882479720870186128615865317289448978922907669594572247243784742442604911343127562758242727374446039971741475410201139604024167295862445834582136931557076400268919568138977341400443107656834042670564618956981658381948493869529274898017321124482390159961728171127896740488374505746342793514424690651961372090404260061491629932270207000286627254217947390973356717866812701074144496505750149951151034237175265863549173283057880206017206401953102366414536301200924654555971831488936011869281548928375927933698964465965345335679982214070371412289782776074983752540459268433770223597423261944077800568292651944757370386094631108697412180368289754161903722546664551521406416380580048423781466289641098041960086328820343271630654113442938340517560117567126112935889429395698253671994288783781081406527536502201252040881226542913147502387923944168083518704090405934453506229705613231897311734751693545978000804007592551645242236328211370606188333884873825674301902435945047915022804170100849093578457239538835334915968304437403240399339621425587828783775712659751616451023929861922340187469140324942915246788570700605869412574623851734678296337006197520421590933685782196497863271890954066778085285240013349430101243438721230084227076945767008004790529911339683784312451606550959108727374729256257132156763979468100121740835908976912782742530350548742187171128915193663762128100448520469058430684109325475879479255421629238853727810567883656311337746980188066172010630907899643551493004427196676677024720817012813013368511519678892689048401139067223424827858572010703717601866220160523315436617665527416228451167700032629696954501256983945494183056912796954377151856905768981645570001206795314236579324829390810614189017016560578971682298164292243333080354814267155372911208571795525966247049264493189435540567901764235283938188697912724751135664117531410305966996712542414988182507481746028890766546740895013708868254974667345353371601502004040453123849989293343718712218790170699787935989495124159431356708487528675853598928257336502844084198695243290132279441481992505051279853188991738172602935131002403439263185513881071971958464074003375052482227511588821384225486577088483935603488962204848188004142173589269434748919764369994445983370544710502670470194373315721051586111190155787467906061821879326167900357181916494493221390312914424484647859296461214659159288520399163278944396790792960160006342982308410341702351848142624808821020558327052473406194994437385724636959253771210661289424831715905602982865682488154894599448626376853221311749826875805817826940310966751002401866158727842781743474961473577070016147614328845457907342809919635537853182719912145782778904061572962480626263055945321617711401283932345589931331627199630094891976668133488217519107461150619234534855790717080124422781431554233261073139780976495563857931915388755123699001142177390256546965194961138038701936546324136900320465210508040207610030108530031720141214400365367887031340483957961342318497089989532544563770221341242798828319429184253483481621531163793571045697566121652094618007051694703866543201879894797036677729269798719458814893728972261040820856929791493893542851430411918836081074680403318315815526048882865472358697306009252247254558010357712406770814966300571271169305475926824176111107362289170682996490253693051054169789041605698009801558167849280389868869282767824739075498254409210179806128356469959397655141405411252683421003089231904858872167330348730964240852229223809741682523758194606506735870682677153084241196603892852218102098845323484917449942835985833711757262304249259218803102482732282151804641295973131200202247980746819049142864439300719398163412913751677124104669901567017578926334440421008854822684500692545073582609155018937828645370347556941421299889353284575509922886686865911760296598877499014582790489638716124979171142600046505043592834473565412503953343445697940394159147584816234949430128066675423237751779637659060668707703339214565521891853268880765504079389167350495479283696806376627464463241652828462244608503781213133105493878861504592369525860254302471708676863650087471030320326898297424901398674451011518395340013275135974237029304358809561092245427915824334092596660123048828997082031223221701448501386257110307378143271361393551975112038837982763768009983369217086853261541004725070117489228272845703660697341844632423471497195474664253120930563627383175352656376466371071116794550210161753797866038242782284671345816644405246721666388853063550929340004314202283121294344552492010944302322990864939031643142053822644077564507332368417808346843770540639992155661605357447178662904241387031960559288867483474102831422986246898559414221053885845481361165306675235481602380598740702108101590225595343372763253394044383496635015727240540619546970053606505532378015631851843144929893675313250835302801047416728459917476962626118495421813153836321846355385881337301696313315394567354718230493732029800086294276407950883308338360435545712712384923487843385431925943455479294036402072283704080974945861227779130504485743784553601216177835701522815573386010169020041420851095807709116776673992573189925070216673231360817484600218175278865616249753286414441053527267407527242115189197514338245640889193524582601394850799091052895230361582098674378004933959275548670006860571595705114084417932639888071730815263267877439859645032516058686676131438349255470307567232202183471812114101256357613161054550244366887846946864870345697662289141233073532324653246478471032851208438557036708939189699197483816184817350937749717103398163315020137781399058612608992691759662438939494704933130837465996454585331494901858372985956946488662887738872829282863919852314352077065878174743608010730970721377464760735690411546946584243939060121498110801615992292483206048810682788774334956814565889189029369940024225515602653564746212999264696856359757518771983737526961290553672321407091317321248655020372937054497072597347459659309191783059617280468048758100731492983548001968635538267307020829122963503156182594025165484061842948690796149433708142329345482075753910798020215322587499975491331482097240008684494596307086393078571305578292007113996124980054224144257434654775217699907025078163326907962512052155117572692669908919712980757899803447664802271320007467915599579158983317367587747359305445165368985935954496919676910509066342749949896741634687581879999646572942090244947947878252781669217278297431406238644594753587711620001866441529515401780049499825193871318357114954520167852388815253587613709086764921375413197167355327001001220637744248623451782602153820566135915013802824321625714496324418332317415379411744772860408724011116091097690281133692178459947410901617609244791993242020429592846506357022866222853760552128733458144744078821103068797124945851355292864047672018234329656230134874973160412921436223408628811501651642684540134651434584153015905252663137283358927831519535829260302298859135734180605890102941494396591371211721391208500572599360240862733215966294030449972173102085770431052378100163181486016955449518236106056108009601510351985665003191157143050586900985047629410070419763259380763117445516904459023392304980540149386412699487742246149077531654111822620852899006962719850777320412335289724223945031658293449201778247334305131617008286385242137018080514845717420505990594886989645669766350446977866808968958630840991850101669960280335177984256267576482786832033543177703670600678653615984548245754912183379029494792949470648130598226995349774094836159666013142005152453656992181619978642319150721828623458392773231307204855880451394837485024240798168596337608309324831011625652786090894878964676169305161801334046406263314145462658709111028105149696993807488542717281625624133355918486340795442842055057329454536583263040105492123022911649585446367763213196298725742584072521761115820603812054867272078917554303533393936441722237420770135629381611987369411745442978237494029528418720783824522890118317407839298812914437298070995190432469496229680105201109918488415713839076027156936936046772483529589339777652969212833278914747628011322666243939200576577730663324436626590158801342539543664060148883736092950929017819874238031960397290202894122143727643171192908114342818927590626745513431830827315613832022511244311878987474255930501034656339632886690666585575839981347361168307265859691062234215545974609247679901502960006266613802867672036407684005975672807740700369318597909153217896583550096827901590160464437893272002681684196622950163735250017165362176746147770440081817517267941468444439225402934560313784380082634686827438172699170900034665848593523260451863982545680363249011983499100149545116080245845423307586124134147354998504420818710912549971420877085981181098496494992302885184849649373678425761824672286515580163473898360372229547869199156425781962229130171273814859786682436839332091785969347785206789972563356784940988310702776436550438579110043209380197178470378313601874527811056340928796055245459378411185371813497309446814996180192104727363641186305428324229916183496092277824029676056762559755160869159093090879513708101425236452574444483355928934149630812833755147421280704122143874104680471950108656504870947237246729992292102144344912160672903895767712282032331714770874103481618436196483846792740306670140938971592630384871212121751138156706755508409542951915565847270078667534752500413451352408039352670614493961852307755206528205597554314627712111952578499463361767543132333154955181947148300191569034168126193277190460657954164351531868192044728471334754529729001863934163487730193345046575106788314154172032541798885323368666175843720979184845802356543618060815808155443762142603518440470325121081538425926262185086070003916335995574176385123915309067165014723310423425709153532269666377737994504952647875858670080932833588995208009016743903747125623684349702651529464919862537978487636668074906093194590391838915131514613135608406389780128152887590633114622916903837202188529740632303413748462347012487564020571917426502790736773286739791473294847098619873939798351057888666708184939094396275804004896334805834148430212604449778006085698178651443333710377012476890210968251323112202122748797833077990130134646951889420979299772973441812769366997662184914832392089883198608695382797280977381444293596553308039381490817085186123170544504393568569747478590429994421617490131158682102829507279143502406384648154253942557711741469321943263510981304092267714800532813705496114626725582917003627099148825258061530156775616290869863518858413656310689492004762394676494572989776974409615205895671111073095678395429275436878337218700456388852450294596625658585429247223160550597322302090872905453966861400823120729748278284663144219677386079139293308405116048261642683038658910505189416986185298537293107707240569247445466972961985149645597067563508694796134082922035931428398920569799734826479705292009391280821611196614203074377038329361905688268609999748455973600006877366140520403838848362905147149687464708436334417036179484173026424074607645746134200058559097373233003046897770501079080570760933697163967625436670805468684798731932467278782278131748755523277455478168069896152704313447132459632851497312493713720961523014126297463751804825974845503082439274221384954041105029559549319697163575467961696390037025917739918300005103515461317519276395756934156528844579135891544862871935510528426855093969345996229864200467987867078115374863976820195633799344404828526367895794201872162506566788231101086389692498499979493933018924888101789899096403336818788339272646282824245543600337413901553334262147605449667840086886810254930473899250989802825794776853769274787297263616583032769684896252480625225295183069537123756294961204374155710774153353587413356200678900333083820979581441253724669442872568867278650178632073198010230074059338332212789108051010875838450730457055940915818232748716474061839412401054269007646964487745678335981368712441974701758937740104652192446963474984500305763865381297215927100927513448956680152441938095600206122363639466406805366122589348285991948048918129036927136503417407960959898812462125115871846350668941945852692657983189735281104139900928690887154885966345037037839888215200628584225019613488310810912502262423020326892613976502660291756966235501385484060724148842499308440875949611644630840251431390378458006289992256675060785272535766609257965225302722774954570782176978613035770345965894337429212432374907515349396456463646363325915744283709785025337598491696019850950107937497811406474558037860368634064889355014981695336159986779677583869012718199883446909316854043177164376522223889199535230902905138246888702161819718128706673846287371180983371964398698869016395440546328332568252018504915316863312739617174726064933615482514339845656465644803288468672246018491370963625659004947958985223788069059340504879446854442894807293864997520400120381467350433388879080116241629849611238904270192579862672936062785670954232136817752863992737939235238071490930015528443316556912242051670405556918539056199176862200739607935718434191364912097238436861201371713668287465873551271969860414974787469664273592883323557727363203202601201750786903872863348143917857742544841767646118357928324420807658205608342360204967464307564602915109994490430306327595801220521460020334453935646228265234599760573448088483195341094149646747961541557951129410606862277364389335769012894668702982127744964855331245583590665870816612445535868877039153442048168933892708884551976530602887632130951645031355155211056003449394065340910862321537492893820534193405466675956797992056776922992101571064195456650073410517879000052479123932641915296087557259095065750165713001771738530260155330101401478960249879876485313663868936715360432214380979307210321880653998945731109323918869214030033953791237976096721524126119707376797451801171970076065509606756395768303036032033289309848593333994249488117515354074143177943097029648592373686955643173532391651994712802076120455788627315491364791744655371742479100488364049092173801637112997756979290452917063591179925434319920838585951596797840909644834739771001476339827438778260919250387559680523768464934992472831963355397383558671116443651038838162959126908346112659065818596188501050720124815322415560103749228017623898414465363796613849658938556266131568376062479543999331081130413270751839238553110024057112044224704850731047801493904362546197018731297874689983130568211121305256430079628493137248510365290551834067402770617858028956256627365315193819449841856446825061726590874425772114739089809509574485136554092475008600804872067858494337987362472122051684081631183864773157648142835880364066416408913567075571712076567036135020375434572201141498021367067767100396481158819707187330611668668986286364965192466282041904166352835869800171160080877367310295071382941122087804408955542275645071901045270876886492335758172472128151276772542121529526289268717658848205508962605831494138721292190833419522023657060780982770352141806581568080393246790659676282378063003509578751226801763094855419986478461974318796388696083489790669392534131715449604344014025524003423430900881637876253103134873154964536910130863685852463537924231431737809445848085612772439499970374787379156296465544442135963619022702162240090604802754383422189848659648866518266263674478220013713353757479408134822126928140521817352998066089575974964813459028382743173882139473871333467748803825823178596138143821551354974851247279356785509613079274595022510158575826011010524788863983542900653259854731583895337442329599936462796157618132995102907486455703277610231814274281432660798595988953328328625333034387261349429207108057478784103460292611949587050962855299946846884591890335168046300713812324051370901039131779067550940786405777572594918145918113958199575381327395969127675454742041567399706676483859393737874514390791756202530644433056024839306545570492661987763310801160548725411982222765298114809104857196566703988293405578114333449732869027939960296320834462990364853012382615234398783355039793811568791806078113678691634762051483469183666333839152551708702912661567783088256274865620640000552045095103740794979669259417926618774326506709344249139027976075507104633379443671961809088729873710282589471458289549759214446945411484309946984764128166857002792371677537552398867019007838373585580128549491342599821468866562781653152295137963950641344549533012897179289362932906797770903418794297923823153859516289388853973682617717947608752966435625655797114931080778198602549493298431607903542453464655188179968510348639028910242092972824329525770349173815868519994921613869422077522282880772007974284385940228169800794772003233472040364060608787956076711279221144641759430492343284295135023020469046872795760517437851029807476942513271010683347783074439546321187352670805892485820372633129714995750463516500897445745264181189421450138473520261704181531611632403976197543187803267179793700226671883097449263261954838209675707473236069267609095742517011661235941116562849476463486405019379767617360427972214805924472678738066954032332446425008338620992847420327938282574026409363540504957701791923722355197934054206461687415377431066621680294790469886790056020073889281559369564108506894391224187081466876974777312138752121995225847338805565210389233131845950011919389356026207715411317036287091845084715671798124967665394407492373412145754733801426200807982670471681159671096619272752699670636369827490627180835268110842060469461974274493159970665264187013754684956117522114247304344338216581636547396465717260217785431927805241144008384306786312259460009194991047551369947466080435764261419432249598201522470878294670218260254569451591568014261206227720201780296623613856098275540126878449693618317603533298739178062635996761803810291789796242091385883259168841196546428424491628241538479685460732858694635202975167647499688975157071238742769506919870844497408415954440968699940025679007422314762825750363935619295932450407126948505550175174422323052768468654855427023277600360686858832555480248989660721682067732874947457724887755638338509867887652478887714551985330083427833408866658282923686520804348075213098062289598815649357020412977207370328398458296634510646486104436594701045788136741206501757545294389337096221493928570294527257888166665605381367816486703635621420642946121571350819089473665125971973390610112547006665166240213553918762844217248792338849931585841852243892136632338218996949957686487645065422667444219862194730818322263816717415630024463627824824070786262989299422719511249448511817728628396168360359335336709300902696759301862055854634241078030540748905307002439231680580488008576351520944438929357393591758147887564523591134090156352524794151005309063438411655156170971335371098981149050880492715145130165624078621313457966603437033505721616481756720533377654292465036232771887425635323757502861791843830659777847116349215101129681773011931562696877868308065436537365149662601664377598363466305483598436518092064177677437681292257497107682110697981669793821312331150500114410238022242659218225526353621377643910600340946475337587486591653459602453795240941630410575993175879739589974666739476364048979356467548908146476131595342151294645625944095946830714200298131987862040277926781219590705076146902653201505923380228493612155941949621410869411899917828976199867671328686706376498212415800453572532012896053180222552616117404171527908878155355491135577504750545331317084970985984791501447661786182206849913709298199630872009218934168179097914229650939583510801579612777764564184807553029070842491271573557998500691044980978890518248596542093589176649212999459345548904861227814895986170931519100920857715443793102706524345729948535302017078083964162347604425031171004537124527033466874046858842959267408090596866930250163627559439570583357499992275935901163050091326574876239131159339932450701248159658708898996182026269089640357532977899733251325078162147049749854593588681863588851639939122417178966360056806090351530465410689780659361844132907584171467979886141719085531068407173828237874105291004767850529937678025282931555424219801827887036300488272559357656066615408173723935379782211373616555092562561351639740796032475885363074974658288747401160187517741480110689185235308831281255312557585475390618184055190364998154962462061910860316898534183818656458528252775871441035239595291573883496944895847310514183913544837590387560569870607074350326248550490224990648096623709908126791490823513228955934346745406812289649590209028472547979169931313487236738635155611407302181470573149634252894747121313398582319018596570134664373008280240012312305305863399845999210148503581912523471503782624004692238369681193755638709073027007737903185222035105128513908244699664099648668256307722895512129981745923812254435665122835796685723664950868204513869216324046993453806302421158769022741842444760679887906286480583286626480542746342013423278786328899760822293580552439991060021839384191772117166466573377577041253047079812822435621448749072261885485635558420533598266391511107199098517491710386119450462960266272348433026270263881525476420725686497136479090183166648531932157089252249840018440580031421050798783129570121128511141031118000829718595553723290997263677769769693806105852020254977770697464411251502641159921376879608624405838762509166760865068753988386879163484904013529956099521588650848761129474473047367070857475828758120761329613594744227441652736245436504032216761228865551191329122902612242643154018885972607758690451280107317990665185651709859374619808145882706928655039019661473520631358099755202978684140660264435896937332085668399469159541709173133556213562308985571106195603362969892918199689571438641625155552376449144422357589918385124280996761052905659400027604889177430228883338612984192787082282259763461420075757869530660458572513299552016456486801828308500480755851623848809360858978754451804365175870047505669896272995742103040917860465642916158990239958627945647218642821209717579168782048082188431985829930865203274673661662713367037202641692167897854194198680892842726352668558467427048786194171795007789120138620822118101582782205313149614323686919547956426680553808390821898534223851008173901421485176740113523581935708230959201544284439923275483874758825121825318210432005314717808444439406078642614350816587438801365119527670326172043485275723985523100860223346617889096644509603615076488524582336933585957001581491592581588061247722784092270471678496378683376693530460689865467684493471029895777685876252050432872499852635708828417408706909591185900635081663891396924201843757815381185596211364291522827132880924646892613892519132762132714538941866212418608687001559684166231752665588397556275669474085657929210342500829878759921269398937228313595168573613754059155650291434134257849354261875326096426473364355386076841231553695783779597362575420834901489418579266566479089169141400441506720836977088287427404623643210430038098015081481216190406175630225665069239222616385516406252523416239186783958647014920201255090613349996741102661505292544644303805575381823564437139352267110641590390676030847558206972426704186422617818225829469174520543506800102551458938103799739498101530116557521108049076674168239903709001617108369683001375148741886205079927651866946460720963356307385914820492962915921118137295001835102394477680485829641039114598441845097391643442571465046966802527421523600743143283142817093840909156909422161868531307898977071743817589008833863009278607820179986360648098623004233129949163022096980947308967715049764978663760574839456954391509428253485138822154974099386572941936298951788611108660363214963488125524663200677247074021407810863380301381614957681460134366554386200667983360832221823672506674202714685158013398158109587940264642839788330053265368575096120177869051967030720061454985714562724544418064716227340601464417778478426147962558890024805978667564045873587607231012892078616671048139581292400477351655256759103452704429350845425287923989796599381539820276848743643813878934549696023402557339391375740885722759550771411610097214777477731850976253556974930175360157535542000609445682644115769735843732067890858313370982590204710352183293692925932135886173191081311777791628111531926551281590395956746545780405734745136817729168758349760201163563843462938234742462866714929604469820107674639170157203900672193938978542446421253675888242401865479234740963805244368350903838667200185479938831365378791059646008335379123581298843191548091456137090971440158214258737950657643711009114942655813783095185073430586591351370158951878322899903822765677934333253951771152141105955827309735220520299750525209965031768340534959523628791643737194676457307728019633201441934270089337706938212633771480757465628146264183493590169903907618854909437430012029260247587268111591897268553310444987923832790533307097074340860016434414223147374168908942438476997821234914106065761507423188969823267133969494067899078714366506693289630391458687635722632684412832661025348591506980885805462834086682442117885099789117295473804640215303695575509529507989761260038878972001241302529609039001647821307816860681959329729254079281889394533682971391191261133171896565906969709498145720186773727681432228338405503439298093955681952924680591774462609072739747168740602774981701759860991235383313384780743387378676768770208402992825126162224624017951240412734581869112840414957824538085450624997320007037160285095046747097074598971416390954828810625254351650757595883780673086973232169701880152640814902445040887674175199933957645036595178027252772890343209751364080890179563175419057888962085736608481425714598485405962080614675965635635275748149852010770575516233716857086169794820071058361907003009828325184648376175737347419622818265862984622059003449784123914309500645718546541455948183900633740123760573532415738112814912844407769690447134578137262373042581212394239830285914142195883004792079535073805375770881221764385082727607613976598872629034907748020890366791305532490348795712489892837838506621243978894453560175713977513909503089728663020548084818692586949214498830941050192942468650743500518592600737606007169262630030037261904913018870235376895077846535984980525871764758790443344624425766102632316148583950580096104125560261535789475212067214454770745704097152020626479400088155743333847709315776653601900025873973501245615436986948870354356902657167712555507239972017093948509897359267614465710705769520718299730809728249597678467369833047480028536471089450006183203428686354949794930011801719985395727240105542317662934514949742636816127529135483112368250455992207160248276409019064180526338608362016685697402033211583485651538660383199825195656916483780768782285358962364844277435804100866720091937615728278728545706382357712345878917430239312152278139648967947022354990252459682934858458093354194002486629338215569668681007433034307889047280970875595804917140358555214031227786163291332781679754518864632861931652729320155558567239392732755918320136038314531278851125451407909726711408137185738336265106270734265139302222026394000026657181295935688102173053656961914008083332162286967068936006603023659945450581058286578703320114025251629212687670444997269536723596702908164941364230322641574741833151549534841995334475573235830476171871007735991337934702310459939776294148368186176417232820103213594875270052740617448444590064999586085159273478478061127852800819966740265087268527641480008268492902950505381153734666156432044928993739254907317655592668165728078441796099025582218665110813168738735508690534590604882420855701447972179408389869602944837491362798931663380386485926547458227693073412619912223446708162464555395926792452814850788921019230065028114718945969213961066422412084089242416513699324873502385836933691373950758968828507561594661623522435074352378697277205426850867033768025966655170424021761740796206790990190554629648405480682005919262615533821460088652751345294211033555741113337326605168489533085973542349861259518528383607163976088985804383694249404331017409625403772265832648499480683352315869838532324185607480149532475787848322183673531332700856469625471260998790948346860437233017362327643189954883429201911139992301850939425714881817682787807317149589208659235449277532549441321119633896813977962811225330879636091073927378519079478766870913392901704664027446228257099855133208143430841769593765747350137832202604236411846590734524943807361741281706177185670208089064920416987324281596605040812319899620942194767855006586174170192292823800668447533011851279986163161126969730435983409737823060226345585224030929008845260419395150712658484145481926680822409115957375546518861423749391174479794862355730583223098238275160355156812502902280188709988699296552536358217945026069945803960827680560593297351149065340504790936704131108215164961242052975887919052324617047659613971470648408340195641078995210341462435220047380092645853691521280053117824416002523116504567745723099905482891075727192659711497701996108223411422061687061906381983949262324227628945386060628889137571409722351962796754855861105426780629338871135886587881126596203006362139225231393041142062119165054034049504855404479899704490458271768032616606286078433831409092661044065753429337925177877682722938160695760588516063069940775878919052990031140075832030357850247936887195119916751177927312974177550370185829953102549843667510181816916254111140089875346074168570387684867654680854742800109293351122264839565715092829781093173719639326346803080422941294889770079205465366534350368426657966688375448566239574010035857941354426274357567648746071606679118356858912485244539668225867108838843184410966675038611262464570513387877223725027659186891903538344314095833664346454220698923469643556488980992181793594211278989736866391152781923217646391949358779839695891313414545202219426750191033190996684992470929322445936122711898422704704541587971831339668186874329959969034860800480464469860364305627374340664727991561823889376332798524475870172789469069394285606103595495564653537276076022106810966287582958692637436670791676753263631674279798726119999741222061973338130499003566294483034529799687741300857510589946586317430749120319984551505023717442096986721990097780031545474713162885776629715443586238709395577728280713095145962721100897159151121717820039061824133401102078857082737386881333344150512017631778155531650016366692953330542130091911952072099555138629121334823743547194381797735253741407555843258001962152155849428470863828876478278087897397972488670234738846221980906108457851320634646307029641515820934201894045645908722904180213120959533102908464368240705413805891147505000259951253743877854135836280949854085025728036913230177849728383110785278965198149076008015083869412368758190031772940050915863972477099388094100363033261584931909056560680914993170997597537396694531659224117847722048122191721646455065024912516747668541671408137641140054386255735097138207483229526567728363328336080631316635519907583315468896890787256122046953299415577398616645417249548344530124997832448457114176682303192598235095052859519021642274254740309002044993684729819460815151249314293732113486116815025658836970658313449285555457125502620480094726770950324025079526037616690622754703459707904343202200687249850642810284338257062113706903996397684240235591048486079232519118102929721353564255962087038754916127188626308903994861147772742860027632545760793814617952700086995318442628763765572516509725785982047862766626304738250137046988653852077288059961771702946013955340228337988366510481400765693213068228047803232756591495744934807312129497018568120354739000569173795900073086475471382218009675214861381957774790832594382196562524066423336318383429781809872158587214637189375459888036817096893691907812342812726317873371422223892131812114522710293395311573624985247717169902910725446169467080030436761875982776521127555402398453791586484170060455764854192775140421344652796581743413876960370482334209994325295588354957640194775823034604493686109357801060092596257221298832650543763100012402925041369430457597054671230651489080282532363150202463983834908294672599409109414467350721356416479475501409328993926682215260465929918449982334006037880797429498520982158285500362027312970701742963289882492903046698515465138106961445647078616374903932385627576812131047850767539239476058029888852315938546512314690378150712656396186302237569850297472988658208560705307694679441924642651607838488292103201405258489047082131433235479427886499292670740186887823917809398723171816118571251375248413610648737642125461052720926691891357303865081006408692648541980139591615797194914275181640352454319535018489579434691954051284902602327875267014571530149749036530950039597503474530196377901429945189897753008619278951724001017106759579493676385458103944758072984998281566154557906257499718808159673905446605531877449956233588636506871865530708309678685947438465102419029464875589745712726465264910807904219750413131076203509068369686550002247931130564091809640334709617642923451027113467244146890958145114589779704465403195806072469100316615978218130019556460542074274917361878703643143339456443998677574703174846546932058340458694436801535092174001361140629484049497537326362550484064897050370942078857918369595464902397311898460290151330546197030220041962726466553738551193340308473597324353321342710224063211215884895568279642441716333557870651119273871113117526167931567065457578202929051487248721775968308851373571287231852642941077914976143147141897300731009607610350762779068733265060238837103237285716514166340526329302118393017386950244057174757050316331559130268962818445660039608403806925168290471891234228231488681601375243658036373182746280080255420024496812833544993182928007563837329699403039121394124492039431445005555844210524346055533655302213652691104446793885219415720016543218352088942652537445955958804024490382061051467250763380530002575219826080908388386127053301798671596040827772481356058300295537388407824662184972610293675723163245061140577798203716388055799569670554161017077907097823905300419743434125654478891760085597872726140923535484966944056283564246938390163023657442717723472738324803845867608414952767354968651385798556437720394449289795899518561536745016764993241802091378666191764717981228762680596002260879253310646176126205017587155161149271817009568095208224346872998421127818662920917750086008043348317050495564625238984811961360860299597043735898257594513984353543422634728169173351385434084674252810159462862056644593052838302136345908085335430146268530664083701019993076828939765386941701176982120075797138571048705509605264814673656323345674582522126482539820016410902852459142837510568894007068923925532696056700667843565416997289606112791091700441927631169882108380438551204489978814474922224432629875835026324420807981595433590626545308003661413414632762398862426797438320481929914330791361630391432153002355296064296629950727224263194422885653894696303781119429511984399436069972302428863889059676775651862183454656205786109321740015096371001946588945076799584883557775014687179241203430763776298899106808069994240975857893508273237302534674409160674324307583511921621181048350832025588213625281814063138255529431612194645338210871659573702430118882581209561042110725232503556895649809704130157293682488835322338561957295640400480511198105908783507349057452956459634214684072285873675248829931869079894453253264563415564123179151852796840117873582517380132519106333939721921676287578588914612914341960364634325962602016534685577788348906748557846539755878942031679928294884038521657547552052014357084423434674164709555251618744996712834079352027696134541345229614361131212976510451688463757243595780215778150751148007064903282738505092197238575542256462674509781748562622830789990089870173291992239409821265091759103812544814447971415060054297198937296114486859213558493364216856667148977179024723382103891044391185050671784330123822508391485699632082444645208063002000878751902484886107306282943521974463221791242573524802635250197341016198962166501271366489487646118922871779944033730868155724038525495716664727161104912819196251714180617117566373479923761693088965446513982657479069879060180932643172666198159693329598705435542173952481794651138683004015175594329266109671679708451894054636705564290658829003525347033084675413945724155601360878285145582254963173435273994533100389506491063573646120784204290026155973371300147136329077199968991208049242266283691234788295934512801336515941982045424178310085205689658832002530244644049911366238750706174603702399801289027807242625508841479355851776626609050851582890035342885239813713433322972097670241786488128256794110957880683676953557383322521991433363745913350945950809336146798937723017139725319603371768182501868258301645650229131908994256465179805523409351688549845308067579273926259537464330348146509890687752502310704453454957024928802527547794955754073550417376164199040420544322354279723468792931175047653225796188171876734759271600342926551521709290434425472328573467266485127882946052693061928975003389535205262834989687513141986327581191274403571467718901924600698342017193927972228474484764097638185628526701715255536394135349749774805167689154305357091156760152444373998934474701823809098518104221005672183151472805844406060815012871671998599682786085762436339851615647691047890705120548472537572387763099743431985728003397846910078758345641409092413657531867709342479739623996233009227047982455794568433160133906685648805311397390613351030426579615741182447580186454472949339132924280108374278857769635871130278619355686607083369596085974719663153966038134283006698478266403925027230855428437475777565912732650845411586275774027467400125490558302341924027242656343659491853131351581211695509543878587090965552391983162569799628479560584020537214262193494412815921767455470734376812357465525352612400305289040793039191287825775230283472275183980310951141434315668361785591912694974486602784177193226136901279416263869032458417920882232339120298962366236399931599757605234345726329805296213236842350200072735119230040881324637916908593788834504567660747811947054789639606396019504942188001137619395864670146133575309639017426591524730505607223896336046314825954110045920451804911295885868466064444270045453666168883728460697853467785170369703391169670628073793973495842008417594034332223181195826140465069657117067245013120494778743736743564335602580455383469813085791594505271687226497839436413983291738277700395472045069174696073068533606781227410459627590882905115214137314120148006407605430799324783891458947513789663239689531280838304909880870988722157074344357179696518965769427656334257817508056437538649715768168162822818442030238182072778619226076599378489585891228149227271431871923782409657911081941800719505852409803176306977800998116405022186833654619371672226085216027630098835229003727804390984505888476988905633955851010281137765816205468628914023381592594353434269709959996732767499518905387264606521853909199439099957085677803402365533351334886538510011689421222276738342608511061812857679837642366153616972626384359308208708136741434612261046302661652512175702895699966251151070520411359298918858773756275378373477711285923258005264750422748659907313206523814483872800315221410325875131284006536877360628022617584612384416908774365035239851390213225167870078163562594643728804446086874545990002181840625206431595751578915827189316696092483618966815011585518822872737790435182486994257296615098881231405260637100245976787709227859426774735033986689262755262353123491187533734088477943510315030180738570172732051849287403684135094777289341781214727327827879945124002889152449466650617237871804949612355829224163429156674211537234159502212473732425698864868192155805313302591713595666707346530353761583710180972837977659747571538231945817895559357165529023916768698808133639251856173955198027034295790453753617146765124814034831596800492577045638585389262818012839485777668073572194222907836997781044719009750798675813959327298850625603522119882510529114050287650654422115495047101009391950987763238543274931554314635547723182306382835035331929729058722040196228639606042030179610440981287891703988969563505135110759765537185327855965287729738152171205416407515419938008082879889973563392266285253605897901956204039948521475444223444292643160091258761055954793817370199967625615069411361541802457393136651781082271249166885452699708889804356894056206819151844227174188331658463482616408286010570705009686968634796148350146192158759372771893221456829044082304212596999017858770867539064803991257465548135145696913441670019728273147480905569181605446598401602389073369590120592492264254433595622243578274651230104344905304414725247512806258676371634020223376284425076429752403511499913145776323832042824076522606186969255484722249739738068461973824296125655477405993571287412503187324535051104086157391299897896028972467475471488762898885092935210886145946811861192260618639374761096288384661127032891641346532199784470003886499454439020396148848061338836224504403380000486433865179622849416871081000610939176788015062450302270950409478069063284172421099667728720465413058986813007669052617622326066105649275001085131245748610120115298267793341890458208097913350804161701509791739810905311922028718065218797208323315112223237483441391269490714693042249669571517943402552421142677304332573642222711622739191403195488660871238254262707944518818475305026874594849854414538064390728981597186200173928887918246111146386829830596912360674166558893366036305660754061362103786618756459462454040317657981493252208493472185130935540366282404793078473402329820120715508680734312090227501111096138006645300429771097937906701585024783079087237884890795273669432851206442449347844369101229311541705443273787742900477621331037189798564391840709528016171661115215132576432968397551566328216044771361424450686418026113689318032202626290656859108119831477758815454114751922414490764501678313422567323231003776028713488301413273590454351348295945387698289871303249852823482856873073763425618200983240596623762926652910777512806493718692403178795600210071636337519353916553143738155003541369648079341762397491147107624226676890692618860942586696391352952677322250294748207976112052372650006593001306975491592608773171525120599425549353169414257961404107191265194504512583421369208706461424118558983028900361279944609780064064919027932229764750034823081849900841065386532020456025337821525073388155549434284374402748829971226140439048255654906013049037463751566701370239863099999066990163702728366000533894567668035052456338588931797118630017278388064905887440103652197922293240256734793555704044048616271910000175335951811512446538123273964369281652269296621535250621863683186449944922499012671395910292504270581537179203333459902070299554645345070630759028489688853927977553395769759266249703365640950673813862980919835824288561831907482324588794146533264981697398914560003834553892066272309394514896003987508180035473149454014542600773571543348771860795833728440240045996756032744878112558841222394395865437727024787628789894936238703599793849249494820741639004807992560980790984688276671187685807014633992819802643095213128438196945701859245403788224446932626329042313783278775541953358198693354740944862684698908680423445009743748235152025944479543894114741554014882903481516636373807205996697784653725113692414555977690395069892053424976150713651841412182695575863721826823930762234366145908335382321796811087435461770220064314787369941942037889515515209346903903479151849002125852714278546785775585505097579533000654657449469074827851011549261314193787259291222597923002599518305327095338317982955212073438462769011040138207829435162911476806229359067360905502554434838691289165976149616029506316900932430480941661371467899337957792343570133929729208078534790454810511959245862395966918408947877474013061746317655383524511863618202685373516986777791698662333823970500108086660449807556561592523834058539200067075443938320021568344494562065322750800418386516282261691777140903981543167301295289579595536094134135033587662274983543607721516892026606493099269419826403584650643976957987697367071758762778046945713138042899793242725229433398313765740900829833088429878495866387053869182008079333901456364651967753491275602773697530693419723999217311827104100776860227414991641176828625117329765528143025350136804811224829184494665586081517391755851597568314111712734154189709462200423636685134988139198226836512994061879983522933668886694009197506980661382045049962428394278093611046035467828751162857344074891993657896203552470856706873871425538426666556791116930437260446858286553329359055553171998215960451631391527556630570489246223026306564845801892700898819079767758560894721083008858843611915427190396032014423978382112769834631279310992716550007196242503252652572450294557916866323741702883722354358308978729903120660661101939230056689379914150350571649902823307639206334644439547785562878206228441889455142171405314605848287668360739529433441661219735367025670804592567454154052015031948173372182657738244222015841231666496546238790297812731482524162464545408297720755616524344529091699004779884127117766297656855777921157645470456107820532996574840889634568656546937857517338439373714935139544770843214229799474120530522895354495546762569410968942610368697814275280785254559916721998171202254132990160868816282219081094843756940581933002553361926435157843967301360739053662966625318370213083118164619687360147071721213536235887808662791369393214269780676513838605398170541483296092710182627566719161646901724720834827447486577911888795868219039479603395208655718693722319055793122998789497598770853180786809753415791690630076356018499379771694842871857772092125955878924975981475742761967554674015272312698962945558280789398907723062646284142437655721089118372851985478538795355896931030500726724764563151364499561964335206592569056781410056740322558532377430094289327493399443907548303374536727720287635120965751719815843147786761947109582819620528129654406556683245326513104631681199813482702605604863146845989593534587605975595784561446663284343008084644317529651243608396343785943137112066112084598884182626769697942905482559685631107619279629381238435221165420566917891005611740459512360220293027861723215765464237211208185194063802296521188707376987752339612159443039581313506754311707163141503724995111494220816681070408613070082212433481735586238165368491754859037049508000030578569756402391493475094935860004051251515593153677303888587111802881426092945778675809564172708175811761269158771655060920703960308409085968573096580207142871774335029407059332969174090312875216445504151193915660655005796492811670667704610317719775631512769657575799359776445321636154352724752527054444048527370598623730760276994334922730605840262573271024822150515576581212091907906714046184361943473653446428228312933833437633306039439341211848233609546148902639656104998328523717097464247338362371240619777320654719696839002507607800513721367468384841127634724436705185050194249028947024811985955757002440508934636968687387026190224321634849160285461463793040978832673397937814253807180007547200540153515969946291180709453330908637968804836373708991952648985312367219010199231739067592437062880574187060078178471102767503834892980427335155390595510210564162127832250871551253677422885787975051615147614426012820647432651713519888896346643664464290478383738093432409574368182592600885481607790626036958271924920913258662916625100280379531049691100274161276060158076828426294686903487611074128927656888774551406422169000956046084081133998453561101610970584557451959443680577496285825726334971421832651560704431609549632719560927578367110824851365022545029430153225607450909515110384222751208580279667484566086280100707721237748642126050823825728330161726738662744380478298870086870351823513577594009397805366263547194242474893442124905279608161299020476359674536720925907758468240879091506954123981656523935077297570932102293699872509516524491281833696187317635311703509047726259988908791377134795394280689129142322627744165267556205795482077975292694528849401212594383934999700885144270096707409273871201084896558075067804286693678820334086499210578785358379382451155149386536611443906503626377374235068683972023224808687522075941627312540830202823691756949999234250739334689286316050474195492866646495495715367626864301911215406900072183750702171689617095776519537789046187367175623708915310170396810935896324803865004277032827528185347486289584778370392814986842916800275500226523136613897946850981865166640848328324128252761094513782693299720371418702536510032209557552420343499012989437144911165456459478463914544946996016665704458090821096754739686737581796212778195245297519231022511666331013805360012945817255681063719392152794317669816869614381489943379552237696239282703950812677692449363485103066350636706484478821569167720821497005196243308043207466665664510839781944914732279209572263355331930959795834795102756027912468658309863332201952528774098175128241244907759862071029659063696758712810938645018178473907929058055720760718444421178695648281442892011326805218475053966126424629314047886449666831314601024779091817877880344135483989415447421912604809762240568095936663356082633694987666140270430866643395839356202043386869404932329841470180938852823286374968691308960161874827560874544227849824386390593687497595938671585484245063152005260222907203783391930473997356391781314391197648129856984664637585378382854772622040527129048452891367266663763479516606470805782989525156770027881048598165261947749788873300918098926030721655709864722238844896082340186130215863402427204660688490442109090710963492407184589027471675376673533078580734538226466059927974832396987609041919808648661036493801926273165276501327476549836447889141189523919554486951673192843787836489600924994610181406665792331101405269618064350254191009628324135101279536937555372314945266694312449601804804237870290359499681633514822178123435982627437981811881450018522709152542185741336359022489377707610970421652180235899949036564771044116855384044678533880980221421965926747688036515231309005369069979650987717220556492046275746206133476724002536723508368497680347987057543728842762184363162794953215455922773269298106279655060488181461390663838591673354452089386650776901629650956989563086099727143021459814635177035350054816542957771043149491213892432297046483049512603583750299135254264566174098652181446792697563793613131578648504234853242738663436335526031151702690003664657956854685757315566035704571102119255756517738705377353991722564325657860792318840484587269871470760825931097615755906996788070593520037590453245938269469263626180540110453773159463041541210264945820063055296121761978426685495229607621318531684918461546314440629622447287899383575639594632108386241001946495797700319523772062365429390696953728137883533751473996330439015503380219728026586197290284483110598300933561654420206028292376344234068776901046069537961227352092637412017827257860754472917971117306348966557630850114835571122253091158923449823501679122690469924247214022208032979863612109590468628513702780127811750355177589049320233591581835793550204809431402647802965064334365524438437176372502575260950568533933977706283971223007058808569347655298166850897413164182454713278157379766186302464730224234035541818721420414117024571862048983744394950692094782719449350593472407720027855509632542289981378990363154030493602771261475472078243502643330492281579028114183793961669288025942570391940257011469803987874082702990370587712223883038585499866407952882872483362511473571769099357195125812183811307067151383676688588676698685384528527903877469109493954125284746312167179157495236442419491612696490329009141758353599650726419165156698845383031867212986898750833262780920460920479133335879167354107916197315527356807659406575104817610225194478190221623261196161152245308179120503443416479153036739511429849814191013435331582395793380032118429916356921765673155867022825497039261975809087620505993718252777129923412081718174182873485170089441962804009525506082812363901801543338476047216463495343944781759889198498850327259177355111231320876718312922554445677591090700580322441480665443919804195956751037632852016362545062363084285934607906756631977953381219627914087693394974953979030010501368794173252015010937274595437585060597959518287637965911994645739281876807780019062488112128688759985536906043952482567446743615364723192081601789211054621296220275860218093891415623192930406131098907006149047368819137851347430539059112436708549523913592692629550371025557907530584856728790201791056016768230096221315051455572252978824613931527414755924617744479231391651873969225589059981198804301614767848327615565682741812634948176202944763346489228087286558778365248284071783817417826985901520134642217046077225348288686586651656249061087843674503902147771173519506537362183471312375545446514275218957798707572214230496405350740597815373054137113581560173812699123782751789360160847419321662066247310316503771204519059095587930083422031869671238799583975752567210832349008836687104611183287712742485063050149196309737313860298221510696566236933896758887180509326110217924359510792265233018352495623856592015756369143702460576814866852537154211950272558399622451709805440370827152030531739833901354141674440101748980253401109798798129477140024918779014405414113829851479911829655883060882198300321599574501338468707782689595518408423779173598547030845779866187988799530312695014310830344515777141924967606536443591646311097647564192006211016058014788604268810863813987647823594211373473935125980079846674157336868659120175608368491376166344345053284263654539562085942894447024465883820409518277740520185576784075684786459434543049736543642785801463775368329837788164744688413967220581451463330373118752811634432616812481683773319356257791322488700395062601592901646182599801324879935954771969509241791059670639808822246503407494375858585128467284855004519354654906287587167221804625781605680301512798838468994508076733488667583031669702199049720707991429554655167721972776854105096074003730766268217050563274015793748321013287885561478749799978377286431022692701724566169534999995558078811414430737623391814337634818438285427052292761407048179369019162989722019176452927283025449498881483681994457057383142669906498442248596238230394087374783531951282414362729389279626462930605327430532739951902641836187034601101918412259635304004906743065678661798763884000653848536293812882206323015142534870713946486845859013720434958434940268162141971866294864229179818704185662371514891395558402630327164235957580141232873119341085635346598798535712080049790025120726071775479919945341138494356774687410335733531258591230746024714868249729576787480881678461316862352045185337983765084059784128078484500139823418326479566892546511471286403645782311165733446081207643965305346607731826858073274208924411871247086018448563112474739612491048392612601504779427757438172921763606690036660781259590671522273037362329085832179989598786142005806117780564270492147475604868285091150591347870762454019515898338370332283000053612080297991690564277299215696643372287017028182387110985529981727177757603878256534181700356392065928186338796276430032769470754796142489120679204582588350995934049390581118983074890398350039025797325761205670334904355019217796662051840725480875735483010682088652551874625916631958704992894514439610133285225198583846312737404233460676836347671422421465632581953199078819207304262835004181424269958922299233831399476471524063935149029522438665960511984422564176243121087925816860828717294111118049587300802356553021210462642780485138998737191760335726885224493357032906235528609491521185818102373675908157784236601305109995183724274751076780995596477997120857388459647716048239785376679054362381134527200712807757364397959708796200688121217472247985207944284373447780084789923803108370049070984869462330648354603709095768968875539456007735391694582546798235276655323525607845143780574564769588634610470052308777106812674034564092995134090150453729833795013542248766660819006447919318570567620267913454660309351759390667101546168698968745655229298555712175509325827968168660806988615285459335096878719510953729078204211765191411048386555845876561085705279411580969443733898940760733647890985571640583877251613391879488628598475080061644290355749741418979086659915267936236364949207752704171662449821927977808224388270147027073052366998084699030343446104781884042511918772977680217364158375562138566138570021663544135625640629747369865920438730864251860757719310859513055376141681159577941867001433028015767302450080641093212079249334729336373075036313555427035403031215169600254218488358383165181395507633667031337536853032879304104868403786735993995393624301142616302575536293138107788071827283693649534738075549882034516531817142732772613693178764706514333145819154772832424244613841385826007063350981345789330177999501884302519037885142911485459089276947411264561589189149651454078009319418204326879954838671310485909481099326546527644487202879517935503710840627363268327559133828907664495975923738751627190498038332401254441968722450792001887130112573736743217638568467143570285228044677166852125333041233292575021038035029164743651495681283123162843681056584946603446909599517541404803601430254485884140579395436052834771611075563271555194403289881616116327293550335805335688293601928335765987718038882936874916448537890542729320508794078949097059266906001643749637407015523479942809954537295177326503038826003863553183291659706304001418140619377959095948473930234649457221247871306730696374577829686620103524161604538838760098074243909570267449499793675086117836076431587091076559304188498404029589941118380225214225096576717485098376737367666307889725288993493597687709825018604528924676341938458567020532526631687201420203296215572871359096165615139085621779604422323208352160960373503523076355022803798161515908325977108600601710054107627911256843926022464694104572227679407268860860701852367962858403830961234963097949028655481042395356067620258612418339568705472348914063707543649936361438860510946295349921506396649886230021912065083392224392730685766395976290743605396865929763700221908593041539354224736432403680908427370769178053460261283080614601701985851314357601911747663594943437228833629621992770363646496190726750836843561863125369474199440872331226269713081115944610060417623091534781839073357396657002245904712311743612766941246527042968405907438868366172305975736764200241796775610592049577480822635745039406574835452463874425130196918662882182790671755465625918672882452011413535880108762584707084203365693806713071687258589416107024836496728439545283392222930619037182461047872048448148486331540086689472317767276751015976803570656452849860286910522608590789052799856121922296821718315573946035221138960678377703506240903048686340490878233875370176013619866841444150826862800892626208076789295690421773185479005401235610816112068810431321874995769239816375584691247698210516492816247095061352160076078231206082824011174650832183724075462281547602681013812939640998295391410094067935906683552497168737688862365928416551100785386526028349668085735773451499111191874564675284648256012066167311241817999440933216641924527738800195036566156069347939359077250048296883438153198230085057501522798196528449822353726590790020612080454983339091432562184595357908793764452717017617057305741988347574135480607462916740915392721024004078202204970837044030595484422307015042863463790655026005858833906689828596036619555070245079668111165777029800840780443061786661826526214656522253704615592275470660753681903146076937038504599139580858088022378649812766186809955857205197532939276839177384456217514554538009725119084702643485137742792980018106613497664372369078907130451171872236536769346542499855731512321185547758132049399194908894660787560256726438628449469416458730717281083528322965324185185942641021265680906109081131897632626420801149399074211932865335536642194374211909207952006895603087049346591718632853284243875170444368038247841547957158366630206139198174637269585971111522333795181542985557364462831556519075697177149049574145014497514609872524212764568261375914518955938439524958788363329595762570874415738180691725492139607634216194185276881030926866534787517786148086108497050732281676817843924611105722643190094010741890851582347835140522245386563507164627442845959631872691864445735200847799668974588082474769471781564597328253396341881323456473635766331231010032492594556629385315343558777666407442107418578770478393383326694711807861268008168114259784350416644027128006698556864334964320182756122358468437269502648447896365001907609152994801328510307372196283275560392910295286018082449334590272341869477840959291473945019720367079276173081343848661384967686808019763559903238686384492921465710478303629250442520462286588603211177717434225682165827224030642842840985626028717700843772020897588972993880150094474460870029859899356948544750508760378898197318415852129532165592649397898561312700929473297395506855955746955028409797191516776533330269930046020613469441253501503336787269788735024806597286083871412566008700679165962538162540940190670045661405990175136420892936351313602624938298614436895570847055847541423634328211163349786638614515498141766920836029815310270745040718830141836306939070303590787594455443279191952616284875419748680492782334348818974631793778179088182333411629717630727791594217591517875048286359227983295749645079871656792230756409878134227730092090581083888115575655791477355439752473994687718387442705009255373268238825985515690978276252114498896261736718987634177631917987240676044998751565280609288347018256349839049341433388310317702164053772497596844898184378960656550464923714886943785940035254256315297818884464615199605193925861456066124854064413578162263716674369306913384015368651356119196925361048125036134380116429041531766345302135977819136669605260040942716276753720194783421315716210943074310525905279204509916123007119155266282061466067869334168460444201058466755498520575415628527347580021273903633146652942578702647641123591105947533250756886555395934056785792628608925148688613475393172384014850605623493139763297652496321456064729186984013871464087595250556609756996469827228347860428826886182431742725959176460282720427936660018611147751408322182633439613704871684828517686447131291931120562917840647834720823755424942602588865191585186119505893948518052034981427140679532358187309994958498900161932320344046981271461335945739132779748344309492344848146820960413856525312742527335139348795164160565094993241256998720746440037582612038745603737738299095242659449601019234375301213560908463958348955675362484872399071757063377191782764457689073962766050259438155327775978133099831189534766437252825749875128918059577221029266320250442374077822532796457472785103488061888273148837850762384553137899411059019313533064103023945193460514307133808946249092142797260373504328033443403954724560379369230408238589212343086276017887668614508629483031377344655836104655525609834337655273956853612193331563880424211703057592787263837836151789084016473829298154212514226389403499161740704334212690560750643008147103626814073285678177305202341444795653186410766240527772499395535164365145606702012525187101072995404413834366766009526209789564125522588801037809325891326170004248977187149917304570371425139979526829753607134463831992722703010447218427981318325150497590129827136665243965268866383466636251299639227154875355575954573381038049075538052151415414764684639115793477208319621605609729485183627410102878890140312420230285273857424816016880722406628144554780397943378581685306586354978192080051391023043487409047499389215306170789061278823682196925877264977783683526055483742669404465170325167455257483779559011914533752049316013586050963827215500293453789919560948609525408409781848494095708942190181029724000406076579613929002524865532879980183443847084099979955852035008233103799181284449817380209952073152925162592829277700599612539475266104337448451477836268754636137813642744210670559535283343107585116897406281880879901688414031263146389376352410214247986189633006631243531925228572708891335749458830790847939287254486089658406266946698095809775210950973164256689282268984318767730936885360811497789271750056555639506404064370557155160592890860582089258315231999605398248701240710852048786924584664000666744285189140871109893220685547095925339604195280712236632532163660172634624436725043638335962706539092834037387863923324994864719751307819734889818742548534468233500154321101132323721193770626995650199219229364660109433728582219036529409555604227973512514841111321740850050161547547454776908200027332314998819239918045402295194245454098216098136616160100631029441832666781128629464215049650838563659034985097374897968739775097896186748975739106679264550313433345177406313025652309183288460629479538574546769187754990484524006126837221659054620436739467057518118641677988006057353664255768056080901972245827192517234852470336094034569718973577771379987921830610444987845189609087963110406612736526467201302006678940262973652915287165664774271654814332697456789459240158827941569300956669246693484639294332502983381969356710228796429853910989992487614248998111238924582969111309864669646480080667420272375373348370640736210476265988937811238017753615829011602713004582161286188846008839183734185817116033120331039952508606977649735974787051982120839227235807582865449597563810734412181686198246237044942778730576281409114874578248067833546733300149716925788213537187953413122798566347478399714899104144511914406895469077056262581856305738437202874889691537940264321853772496677051765373055938268461598891354409123099490554733301891284624793230489990894747336914234640373166244529916917390396308755451364348821124430068690873890956280619503365708907909054463892863429561523071906818417704352577595559708650017392860464546295031738608707850514501596615994295768767639585132062511585143033292841547421488237315221226451627070164224436091800394252249289130064529580371983954145172606974713253024562708865963823075186732112161508004918215560330480878329751037238593941901623705302057598371786634994832927916716592944463960858776066015002584950662021671195231317345189949121953773805747591052665796143761268474648508957693522337760200739174725208244157248341127134722448523248488283461970998502556734594340085751077907284831170930548409393651874404533704075116562651745081045134565404456124021999762682842685519162247832654154348194438126970913547356932846000710443323809818975247720078329305808872399520737908556357983831771788574296179902194561061207242280909415051812598515778312165225428479132220777750492298871013568631605786278675325318691922974838351316839844785640790305626044331775977737825764074936643865805653911229749672160125805199929223589551967683161934535512073721792346514289637848229991491429151621587466102102478494495689172463841288106308913268812987619304325335102062002324166066367132444787536978320254761622130601513534342227542835298409158101537544743900430635298956175243728510598855132026260499251628063973004102619225120740920784075483332931679988859428507846194371118162086332635776805202616541783644696187483911078686105179116690236954102149345358358055848268147176102740321664281278514056287360367941368339498592428972707841053192508059107175277537308680189566331216947378815126486494513079613955333662480350519651878467380993540324966556108122888546539264908054930713870987381030584087632134732333091048877554312004619410354469560581979658436864329979497898579999253137276915003668528888610230746688966480520226925202508562551576304291090605557571312037287957918966329849101403401308167575238906104556233296386562345396199823947087195414440768282105196187987878796215538056084994407864649377686309023943455832430556652942848429974367359804995552383395516922226344875752780937797823205893041467907472537407023653834773091425229282052492639104348138103069904513686025657841046603199061827481652204431418475418299038134545623667035313949962169179216789148599260511316342264447897535429096112923814788894233048800310426835546906095761831375613487080115313521268909383944318470896807901424827549112624885089439716570224661076925539370396086379407941521066203769102021125213957176000231050815069058151815817392974810438316332703512561425273546947562268979314606895545668736322383663462086356755928831362900641005755936208996494565036503326296828330676599866178546782014450509614744279403830205623524629186029805165439129840292622880177235537100087762454342650906101023769677378851701952547848893805892473243494070703043869227862533372894898647399624002531046682922548695248375519868475717119412506454773096750619639266789426045593201525370962699633423621887402542082485216530282683581486282269559892308026339020646148584808838372051821391506119659616479871969985489055759638764349438269410636069267023135990587234447049163420779992721275833792959603398789524361404924527667116736575043159554915156341863601463950230769063449846574151211011765051161999864612598046672588416158527047799878411897733447472712440896060302015363784707806600544414087058605739135761108217553260976217025185960937461108999534553427161940075709580831832103627280103413290219573749308178883724274666923692636754269797618698312455433940896685022367042174144424264593215152203246630304959595659734325230241602369028801747272633721335982885254653156286561840846646174351617350597036003225508904350763796722642073589681227746892178907190546010891409823477219118099879013496690923797326265965357485019623907756521828717654265360625834956084904368945886594259191042999281664901817123365527590457819700174393906825988159682571086923300719258966683368706297264075242908909739244236406333706265819938544426296176736636794914267381149376190137627932057529505807106787887653415980095113261079911277724303885403884195141937166442854132697931712129549697878472087094345616347361535454716010040798511973006048607482345681021212646512836651814095206837426929445152550119377271955794666925347066328031509220730708904257317525999281368358483200388041777744470523029865797108752002098833032966151774668405249716259801631155376848978095974939646211250121944139764332163316233213101440133530616771671281825248231834998496557934610863686784101661982234203959650785102052641311502159982764698441726599856421315689693182376855475096645888059449080732436032649574312719099525917083111283430065087090626783979747746656821284692928236198782611326279633329889558097390874527774139720497667446781556512536984342142001253911910394636888452132866003812390582786742587957796076605067226667658057002237510697274404557107700328074589638242004010347045627789905575291156881486119555896771590533249056648082361044595332940705431847781860502413154594313421083879889800551278528151988619404885590569301058483674807756600898623596918786173187380035489438403220969955367668200985827277435027852122988882012753945632380417536743609054842423419617939148105214898986051690798570411339119676033315092687115209007542829603830935941791830160066904664417141955254049463738757315755765653101422065739023515189551668794312877324217354418501791014319221559085617596351302744999748519738247740733367873561080969845105849727554862400241485494537585645052239340073494553705801157806719854173215311944319686737181680405064799613065186932722626929492297880754487652022019472200558350892762947677967170021344924300101940130110781028615535047749376931179343755748589400939649904872828962247363177374039667595768298471319792615792901167512151082290736649262165369582833249723167289498311447330911179302371014444367211197627150126310314819554900859750267506036682425217218004425618690965917610369510214365993671433217089695071288966722234255473590915526022059385494913837007186827967136538304738242877850984567218365806657236595800328217500244295657796950702625212916947910804434734142309252890466275443673282924426469957441500162557918062129864559170041967462958052043444655655726096011368254547830502352527024913280515887431326287994308243096858822618951943276045635659992888514095749571227263086748173935435067399775234044832399071706992988069415452483015072535906453780310342791765862518990913544321628762167936686351499094122165989684657463159049550556142780078111684950903295134853921272188980847433542317144247747599016511650435062331228016270919093202972722354842220836091405620620200757615103644117122028214401899140927408379240380703456245871683789740821700043974650908943643178574390903935140236688855066421849703419912636579566106960536362015610569358630917487522158237364864791931047406956165444110527910788121827933577956152905760162370377675855556548519078700028510952963384852239910985357051817403319163554456394541757906125532618908559048156578927692249904325906998897372113319287590694500919822774679530151189344534243027807651972176274269592485772838561818758299163452006567576167486728726699465948137117106134575008931558263178315122297367580789784443436353146577155840859824299395132796420416465904546052087263766572484671450668983225013272494814207358238750162125219979490114166023274546391410010516398023374586038137441999269460145361905921231739900960531162796774392858992063405403934397680708493786138410493148799249856905124506870651981469661118538931905557277714565392320549197463898599590972339256201421801036501489409962048773813763325805336762554991897398977727078752315028492566695650882624626896116681272449164005242674589532721829116801324638921064570002063230057931865241476336917815491918967581855482916541350367250008225460633427774287391862693617891202572461532791846241695733955578782243763499021402617820610063878125325451585747201164157411443198899844635350083854153608485124235502911825866421258128371269012690557313617843016300412726674673682562557315945962256484379487847280747137368919081502738062840738668421096800679422577495284340452316549904219360969062995475854337037449277800463377059321569003199847633472650439283823666286393902874112479363574024997455538853795154609478620329613883290070614095648692843643330547907065069228182895773149298153987191758826108298026959431021046974190335306187662684163069106484778149715707105024029293303707392177083675916482836861098105641061858186989435653960554878984691081708223447197061401932479464667477171796596954060368938792165037988535900301729727878219107263592421154920095808178698564189039840720628282266571289882440475554973244931766175181369977814025314318121514193694007094196612236092228707285147393364853490992406822301405139643678587683980475644116479714731507521183625518952197098044301628384213789609922933267680916507596258727411083213682861888081212472651505446655378270297814822733960709630496840971525150738430733465010524765350289764063063164756074128473928326293392973570813767227808175699449142953535283833273055542321728062253862554504547603407108470087323682261586314083170448807066778384050006929406374666849198118217765141316870580704266068736336857748607206534313395680302436793251869392164221003700798623749139843267530610428265053113424108024789234262642300386864037009325702774841489771396540409682999327516324275845382497856351533613820338176304566931560320646898370645713839892448410612679048281088989343025990773947955427595951414809721011351532696413341815895807525523527731275484118018529161453558538305929677189882443846021568544109571668478235114528075686845473321130865201118089207149389388881499527371303331465628031703825910633114368226421533244826063206879552006270043110110772327829437825244664188732091644406824959700142088107671134138565918514677772945631086162900697463034674251519157344805721780636656836238035855255173608538290080190614203394467315404887740787004184354302998109522282297988622510554786442240722489790526725797955350664982441405415858137546569367137205729773267796721842182205734427943846449645971788839792813307765635695006086532561642409496947258252577512835045957770038443598174907359202477690747291456196271043265965224247633145126928120851581849092319055221267319787084010136345046544522801044375127585978280064076329813933860899929392939412505435288833128608205414374468438506829558603504447529244807599995413757285388043386453810817889920218692726171904248923497215605753760711213411275441353085013442462233082493203954406532611149718658777852125457310266513866245511560199681541017494041169787695810447735800118408296872227972423714906736490932329508489911175510001350257910468542102246831693333442608061162801131422013258600592503983667116031766756613251507798187695091262788865582485077076710674584740297797039745338257520396722088944998766005126307058329985921309397592638913647999786162248548137424753722792040342351368534518092486569612386887512313748407523968837006872952455722218005958115256991936358749321858837625791763575289664405776941751269084474757689585476857740212451228997753402004140003092405584918902013876772047736078247207082558816660995125257615169701686641476696325424692461780680009639600199506520851405205924418894149700643996975220980206724807081618189662155966927810775916207811105770041266262505993215323071005990789683379577949487605004992451415317622651055248831329019093801385418724917279298390498198578459008008792143035771072753468496673013871224336813004023250221758007101865085651752997890612650098576889008242749956474848456419464789525702566814927588784970159504188553642833323117351289953002374099596110937307396925396328704915336235184828800922960528082056924238769572585868943005069562420089024753867879960963688296313888377776840091319808465586016882283868175015229464541602544776004763163366097179543619194812373336305482949612319737284475271771233369911965995486143450882230872523179803345518535937728090856632037572286062799402894362761732501998268959997146956165358162669430167509622395039110349293799469142759831664205892024758490950573721224080927884161720544965590436149132334176707249219440310148096069857569064755658591427333038168993418094946590280214840322972363349609085337358474863380376694262387160514235263503735026117597854446126346235632092550410450691751975295395526640656835421262150524796800698812625292653585605570478305950223449197903720221159800683944109998741518833759632861891522275912043112415018582032540263471232857199048061447831128572288762802059073686947785935987028652204346292270697100992432937514044995424651230722070447167453349677089245676103216323083129816023157359881814905160182691858623136505840795226744189848272687177315277899521320768469078316916812686007229340279242444617708040320743881201657474181252086559718250388087062080167485074216905645415897257081242123446497504392950628017122341926082615194188735942621728715555221887001855853364876195543870023790960905512810671877111965555695448273552558660931260730341091604924713522654434696535433347611515219605066068065256305670318138531322867851647375466439088606007872576219226876669177542018280806282048773222265700810978712022210558442710326627668976997515314905612766277409591707713941493000352198681284973192746287350790791848762332656343626821043409798028550571205359429737411628283039677626163882350061390841383800874892473738753821879066177810296759170667125251527171941169873635066093653288770217484365113644183301547915612519779878353403198845874637536245933437490664873251875829447907401522547532526699171637222520305202922504961801326268974496074386382963292502107441034875239924036677580342866668026434169501356134676857023461966529033195924774641147283997905498573252887592424355880615989443141123702743355408504680885234980873608983243305322451848091386419922805056950328084187491715376881352516925438159443355425349383902481383854744506377393823203353809959482049485331891288925016728525058276719641697341597782940305230355937466133583555724909524369476935409880598523850764966415166041021872277927652207307394135864496861160563026139441554456597024270196287044567993124830300760137026084383606697212780586210892129479737606923781089370455097724799507067502224534616412686675503774255058671559198153517140383085737308093050817955353719777250134624106497748897163405545092671257517066635364918975559303025628604184293584694992957360433160118134162950858460926779591701584879546490925822312074774140622909256968368302721385663004243235220626204765738572550540480733491064058453087591587554701945854815980675382595450095910712881661726832247519232932570309397003387764075126977675547801200289277363265889121114948748233870542501682239130791381861571830308547117028373316289323661711773780988321265461996223069322352839850180514722057154091223400610806631204442888014358526030326556186814466800699346555255090226733887883882570539463306441446252551117776748361833792451436466098842082728057778488147421346192218208631162273171207276743596451366449937838982620942522022330620565923120954047485991564181588901057236898197829263107694133075789993930621113296338201283120973847309902513485504757441353075285706963259538257220491491345824199610096215726606929272704294168076860658362745259017543377924718406343917357573892957599779168071847138991898569520210892941462456811190958716779600443205029784031513965595621133629837483679820049093600677029575793429957439738802992884612808050820824998587822104811024713280910372730824928535611586456784204334994327758002825811895588675579279290963027129214952799986223032452576361546767448132880929447082506095905206181190073788570509878900746576520862767673168503665766077823399233701434637351161041892882157296863237562297869450582270013837811770981447971020692605641758113113711830369267485388546591487706206674804573657112585732786264841935399840962038393195731063781278425617684476334774564582143601634951938302966254174514051716383013290986031677990627556112864031956186186595504195796506492882873235786457115942860750765976447103934242811256728081244255513482077195824138535461533958361519343873767368502986846258850004880138351441896750628990280395633921166950803024967681994796389025107497785771207982210265702062847866243797360933783218989852879523178409301683486701621441982627665324903232666049145824171175547375766280957141099458093784657797547266371955092928618059721661392383656830247489389258358849219889904197578065840042860014397224337072845876354391699275228868711755372586141052240739161527673751503009606379367940060089348236013658479966167569447730449272448661442202007099545422937875937437347301335884685061733093012810016413951628490027278318934668447670615805838071378547420350495410859479717962029162648976959479045122376921178704099010424694093450124227081258613060760967733614637326762329493561072602602692232998548050042530216089166142652052016456326255373943302422008545337038919125047986525372311346024425561259966969741686061547786322249271151478573633102485009764623733791672396091598130771908519518567315451995541723736449600519919100012654165408285769232587102525011639931623566580867172451355711965320229852743761960845037336757060731777383971057175662893062865007431741785568226630298921952651405926991769676573562383401324681281159813169969124387993827215364630303333180310498599678155579008715389667651085647857411532765311026693826043824140797194291238894911398776113644068138170866485155176064533939441231552703071654479862544237590675842311797856835231629636817210741082885740772752599063183845612826428911378660113446855769516791043912373476420220003002441705213128403549190399763116832487980078167254216035000670772662693390059914179640152940064089979275100221393698951558981583098659623379591266630827579816364082105218737163178959916889714309016140108477963771796014936769190704267137633738730706765759085440145504060322822339738847633269229459561253716861539038660015174410693253407050228186298187855820339500888504903192196849781810967391946920733830111277475368878922730014984585203070632027019503017187950466789179451405798159002390220255030057498681532020209601547633201571939996579959240521570070359502399812745274951056689308182373685680294305956265504939891078514732873719836758961008796403459935804961147069270175881394642674730606191557436968973771403961698620747161174592085509451453892112077433689900012967456393139291691347039171204527877708778690395738780662417870766893733566357269829863755998208066829109728274389581169850492350583714828246849976514720068405254568238416113804381990499292771386118017409812222671227074516489501757983984402513491872952368971728177914759449201522972274630687951401720516931847227835755346738420508171041278763541139592004218450116035599868453594988810129461419730858732624280023329139599511472513782035120644305492752647242211524922343086462729045426311878411489491308727647204646410130585121198149238375996753053336490563134683197027956278468492116562402741845492095286693887708546693978988800482174098976174778444851021058691716022821445531725737444606964136497728892199427559172684233342604210249429393596132599754711171562120992536367412295805807063213986950977297766546092042227884368624680845859594140209879588278921772989483557326563549978479187899093109307020757099135992070797215320959827001764569446189788513076999265074232528560665547024550759198144947870489093266124768967664709626409366063654281416955110545265332662589236649094262233073755532316943930059475877388119413383060390298876612423651147171549850822283653895154606165150597436395465892693352170163540434743824393224750407624528108332320629726922003521527584572097936207482034098976407903517922096667951520291029066876183647326664090288399179543226324926963913312722225359006250669888889196675177856724175641527099823482238999713216380997895123455994442161893842977476501581652985012503073003402599651374701146442016841547778712351307516892441012384396509107734199667633638287378429788677267381912818578831128355049848194603285442223023647526145943901005113938569994433121176573809200347444556433486023678536563474356874312813690181915297089368167670074787358381002808418975770850102695434323945401314974615148158432939892288672403520148918503319894956401811624427697961726388739559383941886663723336108014563262568936284179459954859209391664172773336324058130844497001786390014640521982859521043245518152399649362795051617082189693157330657127398104645661061397162302158808892014564826608999004943873815900816199935648824333579156605256611432644398067540711282173553752956676471315920481462145673160457721677085086357166252085900248844810347050224696119899523819844018491630963682792901776292965726517891181109596608280612831492910720130383501598113478934065603042793870275358978891604540906753767091265197196999793581223772887205633256495601472252430552404909028521957249751302276967844966089697525217750294135899849582275664608737853184782311568635209227049083660222431526283388830819099145744402745616510368185693006050654874827740472074870911327440199355793598427183042720016694380275294620138192077476120742984452780141439550463731445532019041390750534742458871921618910554956937349642420411385555978543001692273313494428473286313026348103954943748048227079425532440036241352967377185842971910597732064615030315025081414314026996993184731135405192081871041303989023932327734605346115869715493149655605110384015369580772854594599120278917951942514550809592261430926799373339662959904222661475986557489299376852819640123123470925234698616796277516722001576902474984993213092157944394504284441398322287959404806258027334275593516719076295151591623356946185582573749377783999634966510359813761611150475859266628610543804298028065014800025423159695965871799075177491841742121870163002145133075303549129074968001759835247865395807399233009330275131995959798421060238620348546252983051236375314408844362452212787630938845884996451860444847150183718286606806912649781727429228112579928760097532664098678667231633176562964015907833069010493833523514401819885516573873769480589154008500191633760233189608496019092157226850498173507195759476645392276533684189495974540473462453055214619536874167685678281818067037104592001294850839434683445210933398965596714707137613711352353232431110380019424830352400283379282337225700927779441405458617247174104631619658275444309429631553426832626700287384639477577418147013380480123663019381419435884599380399560114322000680856055246454846612199066813342311138098572406308012831006549851226743701342263889110916146690063044039733059984411389927066845542226581107024261496492987332036651545008305406153597275155917269608429804260023859960839830138563399993462502219166186547940324480969805674356821532644262394357117863098264111961427860377261538273648680869300371962823745854391467743634120289063277645905673140688611501562097266318864996533343532577774858954287593908825730220172418049686791156072593267012347001030972255720508097002027850754636913840672338515297506245039364957353659753931884287205634856920797949914589605994404821183963102726685213316737452313825820685682788019798775685796288418880429694373192517701665739099547257540208871338104153230692132392652951905583293246619766349712464841854010095614272010546061959636647132874618672003495438138084304965123919797461174228858628930607293948307068657240413299911803260585805157643819648758700455897649817392803568170059284814635121577966444778251037559539395047165056673432237922663925962819155684553193095222330501705454293356897105229977113933335085719357362067133011571261674844431548275277093639517713025145855889524752741991083926511729645559886223862100197091744202147773701604025254436555345057855640171025706211125209870787816274170427536350845556452938750093061674454075825335120432415242761592919037374289133536492338870137876678797439552062494936212211920847863176528622538598333715893291706829800048667605429996760144635075172685340198769748617551961911905182867638010873176604028461359150196223821915582588229120323771989904042371976218844596722917412672306588131524062741181888800316295074856821911640382235305097909421670426245160642375740390914287147273437977141972593380080018681487519306830387511231755495453330416231227448592265141716515649143582628006169067747580912492753324399855343728397852424979203688652573776620872971223842649488751615107245027535164089596820734876494469942651231674097989404729921100459630801620522316003625595899424112638974035751706487314468854841154235913584970152761114921183715843699697000479932263671733426558838168761496621027509688420463519619901245247264603705990735828924904166010873605554836285276198730231221782182626927077634285907855881203738564599619159489413672987875927961174414259686380158420646220328832087600055772404185993390281336706734419000126463313942354353476440240466286435433308541016256296725257349259098994572628703151603327099946194045998009827606004914763679910574353935922521962476381268941749260572206167381403775946111562500807146828841584821110740195846439420922631504904723013110879144224302363063457587374716988302704390991247902447959972204107819788133361977781795064774739434546179416348241898664929513836643836255881316522160975157378003981904880756153406342615147908348226775101811255964451690279543781032993006694269843163640678778860363699423513511259991996249786820560761904065316197977979825138554934772754147953752480606769588315922646693270788914128999209063757269168675426711553779066385733056258391970278734330266835833399633648267782995098709957983350332368765102759145617529019552236051845340267968667940302521502865949571799348323322227742858394212942996492072668744625413309327132630864597293762805057694136712109931364540668609190939062589295800431255931685975561173074557838403184782190425160004160868139933615038279757227483086428106490969477553051107959136005563640228168499531921015899137821054506103975625334075437392506801358176696929792100135193675022141304509569378912006214732750575752785890123931292569340765225390469650483278897861382011321615952270395845870777240782352895884221308583129211330175981753467852876199416370911139073829206165449961757332655005115461178098449901213914493994644293817727735923185963682967457604172441158209102478814020355425075622059505886785401590031243221759409735149044309940453947606488271556833176127017285909815702915541853646193582356101064764274345511943122376129600193824625988341639515785611653695534223758408725868060175055046957582661534185321810712363583401715601920163645814182155370826781200871011086160684526802991649239549871718773882216803034456321282417906737990644707307491547988748417415632598758196354350966396620709225484549417059140496507786432421366839366575492970827335287439808784989413392162435120666594296880468297593487903953707342238684512556142540089562508400734692692758865793844382256251764196143892987839917774565995131491805832911200030930941594362673797690639721245105037482178111213984130770055875064361313709875261609008337642497404219618693040589463315160420146282815318796316623881721819240452628643237955618587031526747319762707673285152663367022484554832726528670387448899008876961235015659820226915707190396212816020892052745586531789595723981702449763803327521405850512318065470439536696214986599487907813105457216151983322190732476817185994864688255880049059592882931692534120010126887901749484042412753016986259975439461510697709874620935028468958963984359958202289348556925420799697752385302531139306105202856755461551254975436852887052789585209766619953346967058686599378134165178278282552928733175159339277441062917174676163283612778013011436173931345168717031902806127065088189081894107951551245615475418989075852910520380654171548492779139253753285176198261023882827063775050278392966758108333492232344905808014121065146241397506384476820533780661014429132459268826214593640870992983634962584760626789018853469115350363132070396684346503664197642040463245576935416805597588986738693671635082927609046876920119279341625956966504996402420645586475260832965247915796964767151247608718958979324649789644022068656843353984863776791924667524422301450114009034365812383490671630922438965724472011865455573206781470456255845871770336266328268539094199622281426024772086286278551581134508313973024919093968358632480617883269188293252344211032206063349519885248027357182161899456450199146881668580672460870836881248867728918987200841933361666766799954066970013999425947867716987472660313248640267704087595758715859905578711291315203043629126669471312150052316856791115117039333707642743848419759300394216855601405190179026833827513530595574918438937251128998862290047478473357492734413021840972070037718348281982326805346515264894475037157639544384445963703359464001533584745639582541501302544131900333550494610441582022693418966695364756793121733556103846833577727440390191262690612001116791072534207309341892015169752708788370869736423471273080973645778557685877992089663483742910197377744551289632411979992317622876100036950600186622852974634745384248418788315932649235465546023921726741105973826424081202365816131769090921104312891214166637489832762859254301337553529007551259828890017936825013281373375925079445486881840192684134517952010019049460085475995337517149306702014276579460978039419846927017151082918428909560553376491849313665493469803831407148456694905597604187991027639760474547338403309120873450352838676107254875584223080067037099651901836212577202764211047171272366706785478929001059975348291091069126260638591930764164544723333059617697436263106495356298623431459996160317236951666352103872939162662057475117890147280620138955920980334042195730286326779542873790214346230432473844331134155122333921218241769685216761777292499588381728552675327816522611237525364850616043232492668868169317897151104812909186124182105636733226591476623478269724760726530276973912728155044515983388099827475647355287462614483240899569881631808159968817865565767409315686135553785237239829895448967376226029120467128169027127512445968160314884273859567071078990624558211675406807171488386955993649205735369836242609799204803027467602028369954512013529047306255343191524870563785681190002818081154720053855688027661833715479890480683052454339793277547865460771681746958651116080530159649395226831775332940498594135432604635693007553138709302131207001476306686816638367836750487673300725713434896505184761430532293293774552453521639879400266755190637423773572432212002811847531029388423278299936754814074679529790253533888513077753862170347588916203404991676797103872092788868761267642901305143844009988195400713988503743878460607066626512267118750190341783068172540354162557333229926949829053577009693170409968759071812825416976641502427888807869431107720587473653856100906894838237043128213200425791382958278336444893114712955359507712798601669891676939250026893172659403733563421098870123845946039660013198205038163954882817955135214850191964576299216463111113306290089939533391967013119090443948432356746506389887733477960107820066832380785808015924953789813133026297561297583761644279680374012984487647186578672450070904194636307338892010119213420537561093425529708526509295720532461592838628518047629900130207839866886983681128662144491236425114245203901707411434632053344865815092537705598318571481967864562588020809953277572775896815332946844194588621527806965592593233281033497948858526555180208480082872864547278852284319127579870099080055722076507548087945337229514587135167082592339575386384093669053696695201530603983084029535985262317111864869270590760391788398412048267313866125464966384078292204464398992689690658141243014918281138228779352155768410086338676780142691050918513899258558711436600107667341446431861613777000074533512204126959335099605378142831209718240255903344906969915376440573963811761899311925104261693633739645565589795706348571415835971715589660268756855222054136720114288418538611657050817197551812613183557471277926176779114382233096166084167041694957992800515065070133076177455388339081913152769456339542632320944154823014805296813153189742769765252192689598439008353751108540453359620467793866199564897019895511130114154249342464462799636247766261770985176520780021455417307830882246156218712609182712501739915013406092137575811100223898826703930299117819302756235376907939787345925434402032771159180907429278448969397785330492637020384893496772433843046346136234742387025243546557130982814239841061559001714268855056848673487673390639151377408706700245802927352455445011336003191544123193719797005939400663870405241071902961735109531315487111893349237072240839947210635072162055375723895122777636625584790717356152338268749216012532560524926154206719242006442438840066903692749390769660983889000591851626507287066878016821184058225929456298402376034411137198323629061930460703176291482816951157835156564689469897065904667208984012155461817916458111755850452074006581931017432927389892761521400851918941602586394042528352865638421731112555888073513812378728544528544554021318472291098712709566751517731374392948222483687470756056182158672377418318243069794318989169612280945141001098930417639998972168948300037650343200369692230124962452343943200683169066111313929705405775748859458328907279360123077777364496199972372171052301952002685893460766917950100658676756660229498340885764129549745416080119244695002996428825595710670957084285463115251218878119039572782168607840326628203873720056090542821483370891341204710429817485814926603252370985428258512252586505571912625194234106363269813423262206005625264420095048466708574137381275776660587705423809492122340411217855790065467060258939184971029411279613960446576195970085378001242398519375102783924628778987520048368200537336580578857374397992375282595550353164959298211847105579983109540628285509028236852987820175703614834301077745570220891453134284355285057032868494983947425631096494662427592093363145422281928350471055884310516228290463384598356036219570116666235368247542710094510122190909523620208572385310402142180355214301105018670404912055392305173287074020976066991643569950509074326301041857585014520296627621992083534754120804794076577086897780329793319224378886326733441606095254809075909842068718262867648591608763156205233499465060633631661554516368222585250017795890703478262268594135682663296883431857786068983012002154084095221075512580004446572975822058107173562527837719195147538065965823422352496791140547440774167004042040075370224371221714723670856854206463881274645096936895398378767498343428234569673009828361124381113731247733519398111988906019771383723265206503801116775263658455769655822682582290131150372040024936200971818571671819910962236626299195789673013454185334285675168598113356393672814866463408517787022240987446961878116256186405816538589401737410451507328230474379280974815818745238624932202755184210108756974284310246788177346077492005829303930057179411244286553692604894422345040811400735621555523634971999842542231799905788320205396488529812341334997169205142707067886513953035825448708984908874480115454277160465880013866954574702346325560797366673367468261557933937737902690888304319192693358933211697356810123074291662202424534014862815855570342154814673080340221429569173156441709285843343326880985885101593972127159758472248296043189331294312878932517877826684242021270494434238297321109574234795731749486986298307468752094406960750140195919492031841178677891514570404195148634266004992396891966065124184394314223857308171434347569438974271020948551964139646757793971120890347846520793541227220425846436668028588576517490504770067408504227683128282625050648721479634879852112067709515167789569316727883046814661641278058948470543005882508046819789200725254443897225146562469122434267512960637635662615233834684226339716236538462984885675149545538375401531522494859875383832475465250066276379674357085349161761536149973577640685655664917837480164889432966571637208466462139365001679559056067167174510695980340671484599322571239699256862855417914441926689282921475976821665678763173196106013528509616441257452536152889914387245101768763174930137996628582576958190050488628022403843377253334062304472334357140005313369472229907759706921990518285276339277897432130357825213198909313050684488003887797864611639063555672980593093797065823030759020246803514366988647837794625176450368619580043176731877529185527303492320588907937729418345186073748886353197319695259126693967177087584058883952597882187785970782886406167503826391309540924893080245339116062044863632036255387256283499747913024056033972322115126258651485325508508497833053473555003997323159273419989890020451713648734174589909511445755550246766764667000998943295639622760390335984897188212914817255298204142591416062901611897744906191087362644054700855868491711870559538579448264247685070301579125805116003806989003947032820081315159210385269807154760224019090623486126622438227257196407956671470197896135308546515184083062795120279607268543827282978331148496518439068278380343782522202226252661323918072669913348748301910998294581799515014462413587979237573116854235708325984693042046262826355054174844627353662775680142543809344063809340570503855887504259645141662578560375335070228769902049586924807770360283908302123936723568516892311049084185155047573054798333866573862588895058683030915018914789131993601895397872155516251784482933063445116089030773121062347680502340333539310903895954190476105577786901295420277666250142155919723200320729472188513192119198947637168189588115651691049301906210464589447288357944957503852542713278907331726013643733945047483962392656679744525772829782180568120209890863015607981104908175246913517377077242745765238535943418945587552261963941019550844545237710452880514946917939646248745347714612064742740731793861648521346221405229331625526624922306324289319545986656842029118420035279844789124029244906987271504762020345504649787317778991535499170730985157831392424377407079368933214401248745516582860942065065781500763639479248665462210084779381729610937249772674410631758732086622356955194487996961244738041140402282329844722219123577807040977145449858043713560858094437513724701154826463056472898145285203214941928184157682760438326882158227090653494162501469666513227461210247413908487425720338985805676134355307945583119583819568880124465393201674756745177003647030442550135123607410247741733610617929759269934904278735756435200986618093077739657016191119153907315238776825744431146967753607565693075005771271920287764764870791155914155892145629054078436293055291232269029357310666966402861101828538150135466178755981937970226318844588352835651891216404252522132473639649423526634207053204498256354331383412142995319182490804310876052836305678646234943807799706710482510448925400295933687354462520647572265074960769435493995423483812169106134918583539495822371366850130218072312672239364525615393736814311762430667108756802258437040480105401491766983069496509109570073982822642216097754179629687317570216286902090377645917827251248538242844014040368635355144900354642709235033098006467116192436847701228921816741639211555371493525419746302323022415750120351579792604582860070120248271668689544095692852453563046265103039990633051598248266643190022166389283837892487815266182540086840091081007441046243548092070526197542866390104264923650105356846290024258315684897286681866316037732899233313632033990945227794795914472859467562273198433921287883640876116564376727205187394269905341948272097829744148188981961070700674525895661500520561071914844888803121204370085264255358008811120279069379120772729353152917396998948553360939292304128177668972403249473386525977128147499945853836800634428572163353751814442450913374053023107381112047975586222848006271902329965856038225895655587173516419558891276461900642491246186013959296630920268904136408112652346535251920038698583943442013096801393354667119947936188136180309774183810672274469648133227124941160122412847218131099199544373370405639240782665481822918417084283822578674085886988504028276005270713041620512577089935852759546861902359185361034292538004759292188941189943008212992482948968984146421945636479291763209933516965383730144897255546312705943903529620246737594241701170018340562632214008107514963823094977367271357719458690203269123696540674922651309111233361368215988975969741319203578352600635947652548723835600005909132131838101189134637962472389872015886513627796541219272154555324027323071032799716238084979681292375437666323267489300255838107652149477182370515023001897343395312145318604125557744317174153777058613339370184037991489895011656364767669192597442759174383527273418573815225897081264775896930961866354593542743472762911593958385041219738958937348693893225153023395751921617396302266031335724026441429224620660553144950936334277673866573602404082975577846930172379042424778862147130767355640039523802552029761710391573042473057200505064793190774575863056991708315945798349309827239386885304566933545641831443506728897389793718407917063401337243415457579577089097905589444720757444138250481181377024095707355237256426990659811134843796168874185760002841593950636714442054136667023941549676386719103325175978128422520147971768293480140354851595102246027613894111938401429103495163387578383363861663468432698847521046132143505350959514620718380065219018463204090488493501963490220963986477614976291019769531574872330306221561734500577660057145846359525012868102335393845452321216312610815837759801163464735246838680699921701171162450123975638694194769823369024517724231831939534141159235550261094434602742219303892907216416064318855882619258116865966513218674027902215106690017024019689152776578332752790525765042326276386932842028167596403129653571115022146925124816200015052972651982225272487589505781334082257368865471764497895403658505578706603204111452039267578173790499978585247421957028252742572330906319034493058752439607952210091609819438140182418710640823671059778068504294351188078009277640522323169577159477553073407891188108180197588743448259817058934951188280337266435579490136285168587684033462038259353075795554659939442615152722406114766294217472336891735159780962654620945310913935665904471867803399199504579098046033807377664087329887238076653571035091382624194866096591419823158671280952738496650719307441526052464661992710556894294040318699347445695403539968295811903229464655080524064910189306272183789743647922732131740490068696942214149138056571695016769079580218993712463957999879076756971467903532077337446874952451376388872068410672961405979811868032394720702840275305616472103805347770336540620986175236239503889770863819403589183619267312869026751347304302606590294439032453294447030302202213701834050428918372376740311971753947320090957175998634727262001864106623232280543183884511735771568462796497630999314524608654219867555055499799680307561949785975855791036768100744493594616997116418362975589967995309814963060542767928849060285078651280683453969769946222031773334389628574115750418562593742395030246505467091417975436046345329586055282690877605006773559660693246881137888177796082208606638702777358779737638552460166426378000963906969977246605335381821706680227078639393868686013552538862440673977538777835662484201078752414732905405707694378828640996342692144895256883984697401086575515009239455250866498779532488922738634138009591097779750638061436478199330543554123679052220155473281278261041701524858901226897551096573959933850509839183628630446852480715405043839823408441160972837496502006888650154508823166310297280605256875767752535824022118068993209966876986274641664645201640573252596205926955386573276103959538366342214998954494930121927227032891558437560397454084027701556389392925416881190547164466019343451294603126863587130709343394774609395843447343758216457224953587326260421258978340882797962524527902785738680750153766562431668996427306342486542694330321299047240253217452297062911778068136637362324321722125787821069434361685289003017490158176744061487235827479258183090571421634061744388012429195907348368928423527907453405675015072246224158071348376332094918390451898764764588571781750870666354502905115951915905480537623835592132846363219191730917207971275690427776028400767165649101383175060239933425270400646725364491900085854853466888125567802267484290631407690443465136211248310236871023051188349081620243043049430022545206126410602117604661619146778175653101862183769178774932556073056430770104942593590113870090420112892976432427378750633898722287754020552834289458802945218006049330480371463707411509488931095165477505271074910075896019008560329925612515704914949744238255558410613517586144964733393863540450502377181530524427423864070780143246828771457086483605733784299930453812902319779367164766076563521979233661436425903769438343852813243112203860851411223681473359272279334963069695421269260763339226940030988995874270664603262899419996289287821574118511309451037078192911214912586211227695420167753840660211978150676997096293546307685326236553666399391041819324050309672331380799839387498091045454512832563918606540125277589824742987579711617889773116835588810313253467934094729829737201500227846022550736790046274648667598826938436279748941114121394464249728716694241421288154148728997074814278786117184082611047022246922219275098302420265226693286317211790574711720474076842801508267673813642383810718740879305296983717701939043543249147071442599386611599998509516414289017270645969433732899331351936275670094315697425931763636262723488607058158721361243092942151844333651930045417028077664970063518423660811672527717655564114425191134301298693547895110334563788958542488804399138253379414712763281182958924298092814154688254093700714055610394800529951037976319498457672538265373305300700840094835319658762652458099278368800817250755810340256103187787343435902026147919097424291812621875318060806815782084701438703502064283605857364100345644223950688709185583771815487373138920374322003368124438283775272601221966673525831203846516578187370695461260606956944897330967196509277662083626291024741840878941193295666346229776036017495259193250714742714891885505973514245574352044490034456153184553238255542228289673457278647825993779533065945563177775644978642193720037846102471837982446001732495182251128088725280450626639770595629321966864734989240116316444242979397943598380038449890035251438080725128899574636294689327244321057821615200921979564718844537163416578293297245644829776494965920386861539219719754932144099931989642147315300271047565985561808472219681223525979206734943147507326310319466216513139242712723656616997263386547496281905381301740359628396770507331592399048632585105425474531752986369514673713027730141550915330090435013936946726615244965257867904445358703753524345290644216287501271044256710772420177361972441658530993116061657791162664467200099137397204712270512068582092884084985075776951535570604345204130437676122785087810185963371442365592260274849417301317158273528430305320245139702194537374318523591946037009709810617386236618371083384874467081931446515627894146600375351256128936827124345424819680118690017407062729470707824181591066354804984244485437531289127724344387260062857503532835089562733218510819624057063572311455876318169404643096439071178270868367219468789922908363717692868154401236993558063860065247435488324183698561648330866873476422176866005073225212308409708749515082154969100682557936588486923699808895076651278948939093906342237970105801291738316303462963832980931311177433526792513107341321447806388342451022415387421279344316011912147752291253265099129869124618279921296470447736079044544025610308790152660632182460862501434313438485576921928435071947804554128166563131256537109346644672861543873066571088487043436972101880714179192084378443577819412132230356543959406295701836775533194607315686889680108716316163197860515936186045792899540529636512583426544189836444534357660479353458078572181711178980108950769148420596953027135528687501180791121797903626901715046286375012884112728614102269276665576339781993466560951316104027699373148509189202026597661207503662125105034592089085926531819819805053613817747354453894059936624556991210639859009973725135156831994384579551219311733765799643833380072413336474972008948343955583463778711370545877943709372997607415510412629312786095027609452704931659989590346809503473093081885533672590214614453429540473242131822774078176007199697503821748090525369839856116014796204560243164693611405987051321284089414873454706190022188889305613891879222159585678992519304381776017660786422877941199485016028398507836717477982155474473041635089614603166629131215531906321837699818379662322668697287248448130366750703556126371427259023718457945374132080395595289343530685520633307654188910025345994142565451852220257133479128292340590880494725400650601947902039082039645432516045147318693351295198268080599322810924231139085299312054695345239559719495211973489771955791620704296343190779095313689929897844427647470652721191635765782723587136982597281421893521808838622440603687925523943205745586362434345400376225984952005239254465888525382921994963176812887214467467511123934769303179207506822362340668844080311663842609275156432104648617950218287363340985455323028389702509942500481978825416943454531733558096671801392629343781752386558606257761807535924094801774690149760874754860799086452836263936424511089818384173713903229396824135887181359608545165043554642512341416440574596117493455333991464377839559229712423001973508125434429633578346835546195981343578068938278183960672239950729077807424629669195569192913613898474155066755578785365473860482945468453876329743474608079975063166864135856586577288538234844171517732761096817024193399069159178297428201200560424245240047988035588603220183307596137090189359988601185955465298727180775563514321843967584014020268551015761490996334832458038849189317046336642530601543043595547894050575771943645973539047076239398391166615125131493744621345987511652283065835175110650201164097083795881653298435462203551246314317457963217069794074976622821058480837456846697744010849738976467720962473414564145751393321928670258370818448540692123092964279157334666593457336115818127628818928254988394292909808254952878028666102417725963003400212241149409342638818202405065469442591588719028464344046107478496142568491598971192304589074155282938196261027604815589738980641672207880117393134020909149701379661350847598634175604493937898861283134208573347281570089509384528995842842761158019760083747359377868824805404857621359050245287289433263169070218063033658443705364416864828436601503514079418822805491975759280827279327708005237800606580659018100962113282849574203493778906176765658125090590799826533589874628644839599576609397402250924676053665150923530972104207188391889297402382036548210683252817141471910770332137977180400952879000218448228023698188128403323679130019626874092812286800982358530050781872326750297798783957827765413321593677297701110945503143231166109341817585789283487167853086488397587767424929346515386710120398054885007412125962151373806976259156476517102709186845204010889614690834754592974836754747276865385580520549061502863126329592617502151893665346869546028298240052080341107617496730020532815918919768253725639354306397614254494359931518394555655670779782211978123224350035808271907522053384029307847722583804135997022436170050992826280951617910993538569586365713504008848208132317481537693093606796233016673242866522787778589536774808078426459473645067381100224200187159719231774179299330691311304363722417109092687730509735545175698901983230399258365202591128313535937316533471312630081764248170162420302961981408764421387602238964599854049412040385382386686057912414946437118640521226514078504278511559050783722443101407121211123411953579532037360670124753740060845820027924731126998761877883491460206013525656289338458618416852279407733206243121297053160221695880456210545874914873648927753189867896095190798132947071756536319445429978926599474937114628098516532247790656068818696518330084186657944162788242646463638282350284539787033825698321310758106982275637695709884249376346758572028760467371013530652735370822091207984404585639478564661862166332992687455200723126015533862471455168840594796669780576218486051206027924328681304955097088590294259973222261639567876404246893630256582187156256653568548754396849546690963635493793714406831449663794251912776931698699374039540687944106947726211521636634602886757103761845869282058078128208082801069776655156393483501872646107145762911020611871494230943513328593314582099878496407570727056185763805631553722971833640516262608737871692159057175498885576110989529027878786913860602553424778451260254111292708399347257247375614470259625620028376267450189101578714472855855520663203160924403349087211203632785923092412121878057362291735284060432536279401722920703973440895465237490700166188268658840699308453725954451418821542260189024613059356772511051748317680651327989263197779576500029835019224333152832592323327276728351197904310759947050231567605195913784936419671345711435295973372221428749703184518293663503113102712821812381465338411124386599616536950816316717280104139561620298025252136835011894491343592450998066399996239008637132432998111930149888796559559830336132703792599968288934616850657886883762025426806130110510408007289337037494667355863167356831199425922251200378456798325451409375491891074329982612101728112238026695604290133272829487479956323825216838556280663955350906138003090061286174910735919653035356916486002721015834346033548283690777435495614404889901031678468325366694149634269274776050043466446366572180720386289037035031042981326521087680852432710695228826599635986815318789949766199551196692434490207318304804398557353111225212164450967976572726555820620320136850633695309535018395562271878716826442390884803024774432804170774177262084252005355092999926864699302190534867003503496030533368138428551902732470843037877264073693224984230107530100920585925795543684110361201905632156340220260708777977488766389164113801517938294967299130191950619494033117775652566856802544448728374496043505873983600659457339237531730479554292365275093878140022282268787856239040350673768579408700324728924728044253576909158992008332396484495102221771349162320607694342554277854849028360554072378089276748043499379125254371905777293559649438404758027810713734671230903353576766000976414815622692176054597273825213991040171213060322611196302466505965382583571627673027955090305623892250579070684571330885068690093342799527242753000091164417647513722860681090308015309929175336333947589087864132422608936393198217356104087918730175332523420273715479302397230129680044645251999245349658477629730175796495982267979862224817762684854378259152892906086141456802576261004453090321575175885138481492539240703160045451284439961325530808116241465472332512376307349110081415814476299394404441522822219729623593748986704568644800292044816970088683320713217627648856437676732511975988539244919580523985697042903842973731379692083516407720147612718999453332516176186187119823278199066718376176879319813487161138609643445660674686159404365889776744877237184604888202913984390708648450820539720445158406343719567005199290184779413232109438273908296666843787885159751882999298026799215026553163788087923197882037641661007788783850866105633764915898240712080953504071139747116038065750688199501929782615778209474406778631344734164763036411865783989559046358293874041643764535948018583449392323929601424991234759131961648417086088912125438408014421302917174572381311612751458783678097942496824645754519163866588777768852831453898725566780388075993516482497623294996493126871330682078771963629829376564276156041153990926270043861345990519817582931513315675078484059954461601155680584248711407711574468490403196750898600732581604384537596489064045918669620304594366181418452565935552864218622070650234727402358635563962297801724640997972785388596709991588568003654286490336158228157682632070547398056384952079345336480121651158604897202263790251166322599708712515069716517100161775176390539194748826851207566426822524990394273170562030794964054457887209116402493196181180380309609065994731585345139843187011681165189744819363999686121391776294467059404993479069125389255010509721419971619243003638720462003755902986510691318025539136408362460566898274141692586346248085571821195098536315167759002071569743044972345875181290422510756556423970717918752875718328600607069211546974136575812350690698089747823238823714876788452367864582943239338164688793729020970429354323495801158802149067776054268623342656146980452118609344806815921724284277535099504581469521254750344356304309049715803905638620665098058265537873894814160772889105303500353173293426261639418387915337695385312628959529513149071682377406613087601451457540415704139774530786644842170508200411835669200944125938686035937905948716690612999697822748399614252980206170549883111086642816928282732249043836169439980098584549212516354068756687253330099575849968436833957201785442273382630915696535914151713813174226992247815537029087595751327138708877674887536663912589156771358183420556377625360809549916010447974738549684888701479351547329350826296928177895612895631268761999579231227109608933511223273369600950554444629117630988210568339190922322409747875398788478010248691003315055307899795267327903906475937129787205124714859194338627437377295658431480416879211417784689566111502303759412380585203497948332908238698163979952785766099902600143351186140523714446436475122307502852687948700029014384196706216112189039925053360550351926377162472156459628529531882749459480196069716688034259114218901890371988888241143416910742037668507110549598655025709442701729631036729037277044283810786996768998727623922816417727686510516282152972160746850915800956099913227040952537595149919107849307327218428730142668014181951842855229212200247242697592990036242335166203406469767021597597656954214821386059782624983922569631136472675559350004777746270157147909356571943726492173321210972693474336141942234851482465012636150848918906689148680869977248239871118544182570952471861861457071865015781321717052092272286491018019178010596937648888829915304134337390102686563775728118942064086404935634298295990985093136801432272934370196141558691577030285755803462993494426072873610899894642745251298723502071714228927838426086665611089853463714114026539424288591461803682199207451236886759780863453415765383083816626300019682367756191309359810249638965408336714390654467330328393809605603797418026487471139549060379121095941494290292942869640880962617019899337197942486176893375792301581396288246034043728652179405618615572686042377958855461272031011682641030295765450694914344212333247749391565774903966682163839519437370649881780838356131448686208645491352579872868510696865520217827782234851359787218479070133111934757799622817726750688106212850907981166367766819547375637482692853558571885535564834595418744172775626835754787757872368363599642752123773636848727848380136179824008418378516933675829348647586108818555689276255594725866456938197639815188566076471015943790498910230676135768975925332199234563063768880235698511304610893130571936558391687605631756203729015878809997300604386852687231844959124685351641550091456809554956516664671767792647596414487287251450261723520277246193462163183917827994703282608605620127487791984269348278233892660391958016360349854953328736774660881317064097151892154675637287723812277411050951379404027184485353159387413552058393049854849669804712673130801268675556928963763556455960188335607551892030841640050671679254464041385034278288418884742543463223254685820597974326070132176442363691853553840192113601293126280962564141085589017680182575147064243008277345105810908397946255333127545576291662086439698196244756335397277335368304151368000183537409352099562999120827537214006178534418347940732545818987185273931008203080259737024793784187371376700958758279898496686164574335351283316519054089404722757880773318848829812662868973999805347945482470614967320782022102969789891251467857365940366096332987674150553378734669373492128209219155992346430125913142067530582086587329166618811397048223023495645377578742745568976088454351385094658951837476655028349445213350282132282280845817138767892924342730416211090003440118283528992179050681316646858794765720894860032583325083093029685630956732584640615196450739052591604848726965700922045978818444290413865578148901631902182100814176169300658159423620234929633660069762755734789278898778357426262382118395704356963809838610792891999927196316421881692692003811885878272695016482648569053234275554686113469563411980279469365071235562694528665501823282937620003658451021867438935644485054737083459142350711231777772117101820909866440816227653476434080540523931954504130986590706241581155797908209484534464941442823633064514562458947843939826608162178046920975048937444081983419827146874761005518600610291281131190314483359663732482989324751904475855011839464586889003922635082709552990840303493749709033750302649794195168900258095356107699435778916195798738336652644860189549871527890382466834807989742261374644388300425727471607571100645676687281234863125518408261757402816405751804336844511593002182080017758998395394459838996736921424294961613307463428709244401265426659514816339308347202709160569263185006099330239130676319992657355833917182122468598122949546485349999933097537172697660414306334972684670226316354318909036495856305265083402535653589328838356064793991161117089960539294383910260377502135796179600791205514300426589858717152773881807052252924556320029845588524991880488669545176146276770561724445885043184107332577426062135842418059795771376054742302887335890020948122492979014663696548069230063059338128514087595265880388062000865345729492687703794874380056217094567963760313708244444685516516415497047169965831775373822412995595268100072404538843238232487432784496053064299915530355641498515383879419594729665300080081461416521104632185019172513839868838582200771836896629729443773589830298544567410438823934183990755771724431956530688837387862187997107038782044365828871470067108144787452845401082055301091329616508127733104817781312804591479715990731885592572220231488954387230029722622466631805213842226958299657258299545591015085175934331708344492200029045900031987776167140040786775193493794537913758595229377917721213218185564371433709228808438831168060236493602998320794786192902755245559012928610106941867801514161346965664832319649337709682335412676548308735570753134292758972165730144445826995331987630187124463322746280779593956760960813597654633321787584103086030700668028049456172849163329542840691614929661465629442451796914939236799503263104808726911852421466891764052392638143357279866063690100074810295737346876193897152816283737841521414627502527834232268115470296734530299722585332078267255625574068436932975773084159753661582671224504320827856437122783793410397154141025959367503976546612963770217946121213645920799697685519112967525423178010621740599624638741113306069139396565488459889766084383914097401327814818819760197721255245937545883334726503257619858617554151993937246641325856448008880037075995636484914782570657159514535623913580065374009545805468374509298373846706635989265885772184680197132889523330924719299417370968599963978926426697641858093609826495593795652219374259752837121703438131494540071470924159768834062457127923741454397588089272366298725287358956449957168236642113536130347545004558377449409976933633087862777608424039932803337388232618504756184180156958974466771898333108918699547833049253376330378603672882672779805366427348789252637879757049976896994418456607806287823358369767556671128763773704807383193134435513255000013806164124027003488713934518940061223345110689978763163350170927826305520580181064308402510627629691538933502964825613830459513125559686461664130103095251765352599813671262365343752280808028040869196598348292055083630489125384265882797120901222551367623284268285426873724155164031023762911477457118545275194375294796326287430020625120411613964694601302833139180048502593153068387289826169259982428966046570941113717070971223475115676919477517423156707488994347645050272780044555494368422048253982708422043460984959609612233213787191000044979061804085838032394110899952826743732205066449886990689842791249782686930754575335519088015794704288293303173064134833336083571664911785474772848489160434295316826873669601612620235897880666234828409434266958247243441019165206441852598047770623649002090528896394044944587689907028738082118749194911383778256988662341882765598985540216020484313615931733162522504309799811740231024528220215412833286469084761856282047220750935048527598423284010886229923740968535377248592349748998103066400688274899128331564435495689525187519702168068528289813719298323604526436577111199406852266277800209907671026452675374243808110289921435055918005048624434649823524923664817851401963932897004569965820171810373686278864125302364552165354163477357487664834803219924735319975540058729556115760921310634461760362317914183105717136571959797932784269200862898093166755082015017860721187769186741270993397905519873526235138074321987443397758432978715199861230583167157837287001877673184110727000906916630612348772847763212650082109274183128446349790236609646289047121263653608690765878823998439184723624533806356766793613365128897967824999086436993011690008685561550630706541089081906272924848631522160376360533597594830118544305243830670877222111711259994675280758218937719157658574326955322752416517448158060023920071155287535187936814928502978606544537690400784412885168389070300253070025035270844480052203008728167625626560577076377409173108189955682801034592332033056319012623157659831759667648795474208251157201851647028247900970269401587275632956031520766775537072666001669545480913252310066852111884997252517365390375883250652510901554422714136943695395059681738027839191873634584212759037503822727353612588137307175613065850990415545176231025605147972220271822117503877631302153214053561048938222837801658458290474325071108310986408981378603805698837269021809017558969329926548600603936759068653323591041526366115772114178741447700464017857253329098712703802416282340490616958463691815415474212044844699597719784858572927578995288655598419019712457782155463732724354025075920452984202242167210760424218440475987636210775843865949461068424852130413843828516267137498746979738631951466470426548623340241330478487225163988240375136989330779634467846894915016769782708731547241906025355104175061689536127841596986713381738867136493577781129928424511307135402408231118214796191006698187808620071258225869800713448533695359924911965966773266126708722134192266655000448391665838803241896848864859913390959048129231285256274460667975270444564147121425359745172181990067985154079533617630226984167001986378092096574042725101449302942039350992907679460668687926447463366615245626518988787951627311404042736140724462238457397463543639008159464019272414621379426742293037802272804699466198880386146869397083893713169010433769722468504562310268463819716411458214189366037763672448024259036704300253841933787432833863716792378800146534327156122687857648729943688717083640403924293550841705199700742854576925249393505345914498724747177955760833252678250432020337255078948215679721765923261979860055152315281405455020599863068127964718763913806577513690809268721512592728655381956223229958473366252193743148973717348413970610366322401594603909749124656517405515705462951033814134481216434102174648690757907602920201433438945602589496931300730441879771621099653353514514381419900507114397256360895497018443041083735831641410978076220508135207339881704355801536263204864662058218676126748811157653612383068820977790828700764780836629290461161381065481102080622414673649946377318978129139650955195402298508068382767905611642143323139116974089302938504171628053850996154821221947579059064365545873390317807374435854599123397010151912912770519707978132411396194875632323698427228927139447647251821204892380083561157479809367527655843944548137940752617720780512189284732729733209914507368710485741224354989606647724125669227335251947741407109408866490983619289894847164451293609747365146350361765771454660625476225277607142726927656030305687151217070376014653715339721657589937837869394423071079143386669609536796349257034369301318976599590425247147148353809825951952565525057039720693388803351351257595333340607147761854778229004564726593298941808477730369226799518967142804111037950861152791678341514697956821488062532631741171353195518109226639879801953412248348348951903607550108094217590035720247952573284932239826107087600240063079741213957939712396266813514175915804192183343081059688279019349524386133198331873377970350757719090531815226524721333006557796328951156581052046206883505221698338634074752499896817340874983646036671475854366877929963695615390077122808768215155100128079358986704444668873338743820456790017621327911321123069861597085760534924598881016344746129915533175289147923256832951821138103021640415302652320212712533856692902155367329280475593993065912901318240703885432220647565721218288057724218386571870805164410055766972450672893899575614445392169456444011928082018924592875919362709841318831194426217569748104314324590102993865030209815258349212745909603070678710760990215712915448736567748808758396742176432107612237303422956232764674855168590874117848694886678128887382008752828476643650164536245451548621025998779544973058609390545904358130196121656348906378080984010439635579900839476534388317460321534820308356465373593862784897282208350691641307116619118483358634616943315288586119704457662219021510570618971142080128292451464122722982497611352774547119686065650733036861494521293627313003292578910968117533881824636068023518025815081831320741113667387948089309950420402436057988886347097221484386957073471500321591869844380815863120077952141852232698829446326395408311909809301473701190812693089551630267779862882358077749473271447319694369081089020028286469949592324950865856942953315971345832889490997966598989157730572581337209617225072181769922569042335434271483819985916206381189435775665058200464574941362144982431735373816266307829262041656248078039581700312819197244664026711989898451096318308312133967040952608497717586318153954921411361714469572963318082011473803937502615313675548673604275360708574069277068915536917564403451969052127181590464631201826535961991862411100241219971090098951959384145619852197007465615678891229424025132397641844159032327798921028608302196122833934623446106185771256280284565913105887619981948291489553198634523514550964911134964043598854686331839170269092575252435685651155874944268263847716058965008758826752193546546250577291873568186546758404528179423617816208431273059661943666452876506623493109812605963082855365775060837743255031667496466408422359055681547950639374330035830035016381865240343799431137462513721408412782188945274022761217857246141839355299475652321197188470372566908211271734260577382806560088099955751310942858665035706400536360570717681665190057090298338087131253228197160885584892269974538962147189549056894756851582444859179738977736510164540682240432705466574899004744173521925170040156228030971184916079408857933274955417966516500115980244572904252076229472024598473638571587908669132732822573437797401291939972848213121755979757387053340844896108757298070361989460912880444273107120405737231284325862793921432991526462409044028767119428687906728993169070697572829483292141253553108476366320352057265830117872799793025803374449614948556754135487125554735808294775131038208649230488162875597387701715686696480010858851870994888266570652168380483009873267856145357614105167020932631487006934591316477009668203393363315857460607314615636169197616643943027973724609649823991958023012778197015695716606909509637048995045483298784089481967582907378050364734838314248504009374406376647304880545649231332025582605218546107551295415171210845976602241824096944349508263301226904680421584183761985764471397863830363840931861418099923647833346202624222583686238852883796614416379535869573949515294553852042315983882365302584637020729885298332494384812834822632479340893010558906131180258148916234623719804106952655879370668958080453950522558198002766009612411823634160064986325616962313924744288814587827045454280297013724117136814761113840634834714528015426262979726087546516290347433791146262923919663419514086018422046575814560124742957746978043336119831823166142754273206690174187370410480409517609515767067017462090310740901292995526009045698210431692700304599008278380384195302084729044000240443454788373797373484303656232703162390490929020637614634770405505597241931539865141102564230851238925680427685872997195676181818855028658998191564254781985046053867143748037623188925759142712289643230527345888200840232810144625146829429415541182000004241731518116519521866436426606988529460530633943022420300345485530698957322710968540883966022308690692942662974608600097032062912430368852159131483564514707612922201872129312668218156213834248919013840846110053316454610771363522349216398798269176563593693990541567428201300356153558230874308863272402028548534998564952479036425581324336945687877257003891161001037285508365703571722310672234020059791433482736531673078738800475840639016067646584952742006574172020617177406449577351517451337388367960116557340027276907068066316074879309640941002724546008418088770013124158580411301216228659156209390756609522048638577050207133755400513151756934228196924673089319324658692084284816815997958245004876285248605268920251541217629749539403315372748811792125455974954541162433590275696952703120483883754746790058449539015708763401204923962798594092171646249148324639192593884063365028081926807944647414204813811115649232836809842372012700282788184641750785751237002717280303455268421163727919055648824398249584371873519653434424080686525952779509745441814715615390823985775533846249603766637029907910670565099545804920191168777386442272719971005597961969852149620361867963585694733092946421890940193927456005063576648585777266186431671862320975669441188935719392314073188659383529895388426038405938393507888238088117184666485223375888989171097489084091282391699197864879791043146476368484174504215120849265243497650883853636612051127519599331197165312485240797392094284472040565845127446797678111972721540248768990237938439502679599205171074089366332974124166409334274493488275041185627769516885976301677459649235910981777618597000316627002338400576082823565689990608307128063351453386375291597741864729253281895246004283429956281941051502946888401051140510219060540984759841003985775618934028825997971507523082909344290840343921158527302101264722894656805091218634646559142688966394533782437477423122359372651735176478119210046894089364473047366015814129231666531387018045342093370241245672075833905385309532852003948369658513403842745001916960388710481982537675097355829614913658384604551231316167270640534889813224888786255736505366092626286528307652830811894446074147529188132894483575845972357628660425919301892759411842266694567886033445614747360443928778443628543474323649943599570919308776660334805967787008091094795914416601048959350686610089986259369802743451976462108231105201047805109785761570917933904576752785049118749683465642612935559102561303891115220325762745999508625355749134442815780302901018923767065903713589942987740543571728353782867681598582504721787673929834319130386142849229600717916808782253361303720620943641256310041175103633789777052342342199991222657425021553806472483997335966006815704150391504726316407609857971650088164507819251225710007254559116766477791225559390809513966269709474162071591480117639804319055785378479888286494694054977343991828063920496662681249241755486093709943855268080524877570074371257053852898027136341247739446543264799336269226494897195102463480595529515150515990469899301996807016095772003157942058596271275340230638601780423743006145296743745010320695160464919572130087849310185208056432517163427574545184968262347645592989214077598374129405767343860489496027078199525944686154973096009321915594939113370129722689181551499908405790951151278518371940036526931642402946413069677636436796818646383822629421153419653034690004821125966733838206440376086180510410709052835179369798524967644447066143981638584557642810322402993615094739784705216795890422885423517145566809553232193855356250077306335300190038613367855136415784415291328327889940520470689503070757783474413162961685775983908999046547925812161111431981573040706255480835674077895532216697411833616070028002205898895427621997925214572275496684316034472351767496155742024379305205677020638724519350582971591452163083917626229689926004442827117079632545701038590383632571606351229823913413793346510907958394204804147235952860755024223853121870715189802810710094411704683305805138334589597072568709371715778644616461213586951870489340511745133276368729747504556739321138322942768216805245346830810854182430003972943901889829173878246408813387150482208429024316520037732986741641641569411644071349254700133966122216559725353912982110214312922117251151133809352499805384074973569425617115074806026361318660146529352282405070161442369908123348154591557401610906622345721564178729742744104392001728051150629202675923624562731133689584502898998496881985035928077276823058745017565984371038000161977462356309192510599092949693587397819163374331063183511351280940463393723477134968002405567167211350540630927821908121818305320686006530429220051660251066652085748319677206607406174060665592148370682664021415319667019368386750525518442081734047339578941916929951467130760399608042282854374772107313680790257914490836838909530642955943339281459713482398592757059794606860637602742507843837752168440090865983325392958833103590319783437534204722896379268246785938823753143692960356375535465704574691256256040280448450910451904121918218052408761912569510616168071957321360108573238681262849381303471968557342928418766315172910719402727866702006019394366971295956707942613077427276667247647417206168864586031605405478579164831975255450086554617046883506725531409315780964583619675601284428985853470000849688721066696819581101775664231369411904288386919129934028808265405351397152825935103707374730403958979324170984608184994674919037448439273036885094554895139834863785666289696564642396021148715878735041544079723226494495617251132358179260017912665066039401733453589388892679552817900246805869475868416086536561178805485143009330223797896249911368407993143622699659911621140203019418911929059518589468435883665389227778188718810802930377284310402861801096991676847068257730915888931541498189295339863773118651763096410275293922811842936525460955868437247096659716371745514996640244523015470256558851191865765965472776765411755693648744605952523037594877034844084810150695818147170907960761157743801574837889584991206430894680901228452391514932618674872899691991058944780186068134932326434357802274524856288214821259024265480071270403082042788018729396469218829545298846278738579057772453328894845260242924906393061109766446996602070323439483240591398402215175813971775970035209911544987579942443756452203226874327261192021648753776499945716692344853013469628759569338744798342575082667336325115453324251682379744269589084853024551802527942623454079791858880793446711713479092748858744395108183578099322582628257379956357774964053096632308317552514970704330585669052591504047533452808893562475744405673651624486490686708692300232491740298817364630317319463075071191141927859763822565757511771257113374350077943985598045927841521959369294007294336487417711644067546090226436717189165359988141331926756195378207636180872512650755956160645087133125290332560815866165172052070439938204547050114086786202142385265992337366967790884864623100814326781143660144657914871850712515295588307419511233354207066715015589224333296875879679930894462351484740595911971631805907781880428403465489045768807161057789386649352574614283485184779714698773176753649764383875912867921077740429053966650077333266575000172689257230093094777506001171672823448013320436301363869639518334433686783512376539319474608191283805959219312226166177676922235250132379607786174964662222562651749242545873852252401800938085439271666642472817258990638878421429372578382441403415586334250760437296574237633509702251143430832802436426076809215690544097985511843246486334655059314595925240496071785692309127025011653396761741156992761487025402574783147754396157178095526540479255565533763215844001434229430941815261048631480026549116853899983617850845667776828219547280739162369406363860300197785092575145309631120996577211175680066592522748394031317592003036949177792631247325860254395560185881066147806989854803856179615658494054968914315940214997514664649397788732052752719796855688014440931589942601432160852865900543551905683232493815159083869262360070387459558423557757726556171217549646790647573990351550467273601753267316638156853910021875767358661923912770220261018670795207157275758211376614657241602836537303572040516845141681244114761148305143355493112280289001872018932851653176094459291914221767379911193331885265374595338634386132106902721704277424941766945685906683871552768109842845205207745306803380016057578801260196559413542908348868144152031909786138213631639000159624910442380260512223920011091482315763847388313085317214557126678704744834172883910692945727407659392136233219949898908810730141213718480664127245736126483393521440585340913034106185319538352626624064583507106716028722484060967025021132052594255008292365454078076382541311119405337169435005416975413703444944090725832865043178432291682594577292693440021335577875041776776502198946839455690315973561756715611400085241848028384160332610932928759741888273498670673346972397137651139257884994820721945218587000130587792297546186425268881402181638370584913510349923031725305562699190986443837442637610992875983165705544954602546684850463530746660064503531557114350307933907622103743668139340835159811970897334719954498331937329068604261024046277387254646176602581062514498293748967526893524501215346961121649029074286643134584940978578943497576459660160446208605230237112927670896975786195198586842016194542317047759224252564574786365411998953768312062329337312894991756159940224501606182183902005450414146745789684729661100312036179874114718492178116688568417420454427798121095666346253211762886632800095534672999378091125823335366143979042688892641651579993904491401024720348513801208930745674790345715310076610398083116378145250242034928796325195802127720852510945600281556091454495670125156857625820568736463995524395396719117098989575247517217919926436355508982707365469381469556464720662890947696541214089645290154545033363877819600123666681575926477350897125130926529064326513234551642458550656652170733060327745891369700637492188483306028301411956152099169384977921957469785055617914297833848974561641926232165737153568106638063428983038619282544442748755606122835337520180201569273695494544285427408399778054463889840210799452170254816699892343185018342080856816369021607456542611811842409769651578079857868638009874680852250046596752007599181512149441921996542597063284570665069566120847091089589809547208568255617989083358210190878497002577393660596475629506899349029322979862343422392116246760875656918700461957002590584420398615852922198071320979558784084781952989337879986838677968628654433310039738018292360776008273981426374367078017769427404256300885258007652730848054265165234224191894522661953738192778977995356726421051497430047485211637170669870099408606988136034864985459630147970700848028490060708560951153798363562085369546573634919027876783807768772571332634318380511941496283415929242361571436144454672088097419732084049466662897889804717541330635618320095187376947766455184502896052205271015170185999587746873281150932738859463846378014181383481667843779009472348985829268735421311590438546473123879922386406008552242448860547826513936049493974587686415866146106231117181976891786425760303900314143660298842101735028136518141900746728961623015397421970523570029588342766378966672056483705310151702613538478474064961371952895529208545657676371735038170986500956117119373640371341879146982942863828869398760731899244369760436610760147017147848332744529139901838753373575556699562695438007626123011670194339635743904772408930195168447510225588631312958558899124971652435280776695480965393056814062885424735988459773570580853879349595881985715698876758668055329340894323765604165441219693985357882140285412572832243080856141399624651492017669615239623100928804531715081878934112300804535685102070080142330842968043921080882116535559284358483298853573618014733507716565231591875750524411638101297741669718271839692154780422453984505231530140409031769938630376813954371545523586614691552167766680786678058805522991000535722911085238991985360840446440245790136284768672560038861731361976822405323662564179351083500587817740558518678775591343789846827440203281137535929830033401947451408243840101549133272828232940494198721986072429068804172329463326786851431539316402663018196198798468247453930267718160815657450892045834590979166806048694961093858956196419268341289253884167393862115621095590810720947704799845660323956048274155817339761306806103681659773964174716742445591892442266277742820936233343625532075011294627998165314365039923011673972232528896447156730359776733017171086292445800302837723776956687098807403198043838759860437706234253635356592920942679836179632499037789492508262916196377235594110434122860811427549262343902468505555167765205116522112855253771952223751835494752057904524758062892782679564617987025749294210344882069597528492151143042675512638896601971229638741769163018580571294789912334638320412735077638434370842480329410379809161267377955164541464844836710985840149319666857457134762495709823984557932825581114980816934700908817994942859762968791010584759371547686513654482597252616713847040904518199988009173703103707250179343464572519075116704928559695183819570218190337607397676124564712676583874362969222021026683982572109322376699766215639851931357299369275387506606933404845738980695469123169013212599806057596031494923861654461108588262401860116132403524877533693288988476532784225846497769471323506126643080100918448104826803533897538676759159720381999567100573539502905124073891984401964319938875167720624654553123724917027661535613006729466189020305708132405923507943333487478227187857491558170912910646980590326410799000070094009571595654582397769083674515248533812400643325601736645626823182918589401501109530912398287066654974883815700822530665946672669295113538999884735843791051650327418622414300310416756512381647080522257258422293570521356171966078592622275513427554809124072055928597410197218789108877976369248556072433203664686037922259921590710974842905631905680229623884498313459891851098333704397379044138069886756949201157984463334499688822200944809791683085548025572564927680399432099213170327225567355780078620434254331655350409164173761304125867854256369393690795658395237917847757941491007277969031675418964072806205678328059690512880703877372097371324485051256118514944165769785036174991283978892310373411712860800989710272976684517692154022412473359305493819912845045283569685093862515104409669756744838731842147729364817797825906556250398919603747313797422707170148261950481906840841420659292395720703543511486266565600941710972225180426690660631565775428766858703130863170275536143429593422558130060855723446882098020916108814687943512113406006601941137740076926797280737166595496980079877342181703254090776396368737091439335366146434982469317903127320072514817821695572397690549046403199158098022011644220211779612267360964557207132238209646173258502256668157797178138348617091791029571196606344424580091693739757648925908379549892638977350379271621827321167313462355546281439027595951754817679976610864180030173865227996617278754923615672440456561321067989884723409081981541701512659857872198480538752480528194925156041955283191001687763102256913184684604190941398025637032998991511166418640916396604811812500857275158999888815730219707729788723201586496912618309862053944834971139884152796717899791266853353790702089055764538318898187456950248874624133897131753366964981790272225180535119177227101006244579510776174116412484302156615601812767166368600677321972168823390127148114233060148429390572409501582814865673162859546184717154588798188945611858090141338154869494680802772347656996851544179703652597631002239798272317095957671110457765473642145946338813569182863090722216255581766622368043257221891737412216168654085786479060713202962001565424496745303946050651463621959215752373027075081505633667557210900872429646550739082083961281551325144712252174918589970393790298066577208084687352467637762397123212855938685556489311724739170045004457568649022750765043110732560558097018161299154956017487172974318200541407140231880807423588913773677749180331311988621933853899529699437941383343704289318400180126151241241839700372867678585132238490824796805964584350088909312407049509170042209818963338473006347329929791078682342286892134629353478743201067874263095182823899423091781359523852266326237414797175268497308234730678579366084900890449052976164064238539501245540367152286958205873311180443517775604125685301601093995558282300980976382414572741917637120011112795908267006328016398314162196110504877210168001901866145939022509131594669728257354027783741051565705053761804475264097937558709062406746687640719936453111733674249025927587480574018126108443409378686002008915382610329394648903738177600358588144209256768606793268612430269812846948105307571642692838991805686945843463618409772866280209400009302866986627936522328879836579149519832012733176117131116183018104527663563392769477165299812992077513532225058328798803870367428801924752009472015088560677092584140103753316307826903630491562285873647343237447390380138092652872333145005609521696303385461921052509865027130337261335966461445809960925750139392683025866001701685416909108686564060510473995618524798989498883474163092076406247741110454480242494312231196616331165182043800888292797704030885189649766474403626003367305151315180551953431474235011260218880500951956122663385344717704521780383994616876856991541562430388464635311661082812495905769247513357860244514471711784210688384598277222076137423690932173754224327474972023539946045030100563809277339575569135692452617626435182161644311835875593061857103627439493070411512742758266801527878611179428321967056038113508050390114375162027501617226670255483359176188787822019365392129215400070858185819394456353584839971388814543067372046049284749603334186674194422678514226182490733093480472199505221384418468385156261769948323325151873241040286576058008800082339278950059368264332035699537643545867403437046972186511065540884385357345314415058515166873538261629092090549886071742249395900542666381786047080200569100819788676765683835099385012300754379969358048731483066977868923844902364924839627798588533318960989087937764970642860955007710288944890047259717312988903176802004753704513950085915938486883250482444129285061766031530915192195772001925920091264878049942889482725662672943998390384000971809455663091339665754610872842572973170975729650762197577718553936079044925612690226416546302736622451424745499136894426610313196299036926524300347221436599355523647778870865944872922071083032461379445670586969893614226788182224349767077680458379859662822374123972121326584083084483942766788212493980787382301852264258489539868944300925256129212397979873087005738516184715994755640526619523155916593000262990462814890160805707006726745535597727112332213568515992436503396876458483990758978037592147178680972517371671357502854649273689050245445264451920441034447113307952509450070760877697444495308638362003650043053313271626124489174318113551288496679317691884121739060834163472025923029301523151890965113651579929410024420854093584424675054304584451347730819444762599472168146527618450663566317926875983646629618187872605414734444232638439963304709332162055387683555539478927700601314872305032308748128095398348369484850775488824206947517151679022383144040261863264782665700967188923732071302062424240673831126980647769449188863008649442545838860472636600023831856069194971869113968803540123389002274985960413614160180007210747135283891150772887062946110789609654619274546902087992666666775910721022559511063877282915895445480780099842952515599076583010943264747384162694241011181368851559039447704589097280888553615527290906983948432289461286136996764470784454747242230353044390305719816474433193987801604472095359083611234902352044349712018900552012647980249101606247327816926230181408654000902238335181737033937197572406936567544840415087671768568182335022198908514047754677807339845702826675250626787269034094942436055402053048829383885822591832213367519193017783257318016984846365124504916159608807840665437220070214751668025727484526074539793603533040553838031214222647855993570421891685097747996816846291818751244597790272593982174237942468800293074906191934188057224996274765089380559022036778505813563954936769103874547948721597097569898670367028860420129206002285689151618202330946915059119563829803466077774474348654834962094167771943438267162080284281453745164481853380623613243948548610516750710908058020237911296098873823148332158030245711128799402130102170011652390789538601709994937160141218130452703283961853755509054982955165213856541802131101087286275235509331986337872380459681569132898384665714946362876174000564376311442313101443767876037534328949141763479689490117035074490888977369129081881686849323261625312793689672245845493948693549805808182891565524045207246121965664346029469886269430897028170003382590017808686587588385302137815352521613417268737143556948122147631092344190848974234800054753880266549432750444952196304059400988780434366132308748262673731009164887031055210523725490136710657512387446442108485111311610100248351416618588846545202780903746455289483116927005090732549783228019415438527774436717500341112493200100083965341025908579574827040249495227206398894943685020517414070990707691017984934028615482423230448288881039595138008685620299251211292195118382866862496067697371898179824768104279928810632323174066177750141451547882500168758747524934309970319044274274731119251033627682611313031895231943281750479326181295678685749467162727082708198998236462406559219491458604722983824640602605374283261010788832489097225563490253756750614590588841561508142427545541872129359191785686857788632845754138306107850106435224478546956333842572957863896095923468880293267848377495893594034426370636689433501356359873033234306621338176104046044619620105059754310806304113579115071095435331403476128440933231816259793395095065242372214007711308164132968467176723233972741153040120540309573580254204592097910569162076184124477350521346560335648144370439584076805844681581315051585021626246264382460553719830115421743427529528245546454484095711869979385561191832024791967378900981038965936995470826001796270327305861278514634801609887060982551769451794732065740289211113033985581534164761801028628130977248179956866835095784301837329214292198288491163521300218812473030373186232355124572272093837637578381452620940533117130953183382871791467014098911322523485318503862559079211017999523089117732701389844113470537015191443543934116355171166498385076045635011745047421897060987874358651867883794105759047115096105505805692390430018835865760321638927312634432794596060447973404481792751876575788858298618544169876974637084923550003069599331237402243199406270876118572949394131008156888343036400908381177796776472627895852199647931265198664883339141164308691683334118689442264257341959791855617478205196148454745820411696348809871947395679512067388135738456458366501437971157553475560901445734619229873149793276048927785476337346089305891501924639439838837790720939336019948167309141052251810026303184150536917373806062268521711373358429523041217598360497109375283230456905565771323697392157778533173961676173171034328489900079127338034969768372315772181468795060596068824626163246993379555377522192099543242174902460428167486948547239445140651725346959206913993401379797697621412367775700252801960816482926423492726414616750651301248544401440164085882210659646771066369132714596401670417762630538063584808263445044707120578507146730688599728307660473762719672556117512737052819120886872920017564368827575566189935808242806263738219882711268469067190141127529933096156779326413027919725614002159385378978649916982710810076723628888532656239463233168442963480028573222053342071073205469339415614124628042981412289147470551766942996788378327352127471445035896170620356134197102205012717186623089463514442452334168625044143536098620192631226002632349806516194222383012138134374556424942053746841571667347584414232941793026267367741718370504495319220090942584547030108723483290056909460663963359644914230314950381369355814173536773731737004863523017011141005590619839118499579220237792100136457252216620424931059613341041350449921320598176831396532693475430188950124322252076178794392601277521598092922546834111003885541356031387698969632936399906578364371119239590910430457055633348561385974639910895386278380020196905330559125663750533923843048413045323533924493833909529832344571186911481459647030940355838656992966739319713163335125388889449613004758139480453311612216614514112322842830883350523823843945461186840723449249261446201574785062328651427555543824281314796494346178295278094105935958049604113894885790402509681466071692665139533357756094251691082457672420129289216847361879144972972532724883308890764635663365314459113340183588017729835683507406011887457374879749154684780368960204761493581539153114639894054271910714928645328574846929210847776011136392978655014488384865808047072136208665127611171730287001684100682949125516561363290463653533199434718158440347011927184372882756084770714812940914021774340067954614675924020257125475046813104748983753051425086375782416787629038043602446411090018459488684995885323869872085810761323014629393175536596048760048106303102464992865702901309916848147238562711050276607641162151674217072094196401776316606136204399886549681297982959784866673174216044420778479254203986077361421775025280847410267878243880837872208086168832603014458689836245173186637138842950384095082339863893355079028260644303788419631127001642940540125487501345823765744511091084177595434144323508426012380468811481597202291623975548544160884984005033002143088822371846533202344540075571458995769563883880505089598856571848909960923141479694986711954145625368563759012934386571495539229010380756687557430300001546500710679936919282195465628771639434800592910916938343028578999179394575773235181665892875777000528786655382185796334453928919096785109832455800454671783672429089861995151534835636235778418173313555825992266541026798533811910875710557686623078493371611075904463389504208099001596214712949117828833436159233644704936936329064915282954392467580660515691845724364197582291112235337603009241117862970666528506931425373284722211057605840833294948934745280776644680381784731261896607296940643246875158824678666899168680274732828195589432268373560837718983500529676130330037763827668849617166536899424676983136200617985817006640554664771333826532441149825314520438757468630117764642542524925276942631849820085757535435596809313387908053101624538478880888501326282800018028351436396410328085148716870315574832648448149536488421524864620681858156664143406477445299045809886861608629711338872927697073545532520589433563129150401856584923376670532457431216675832698435765556364257846066556919717084538255923079393531009245424229060108771993019310326779365233388717286940669985429950513926256315843322996000762466514395445137645091661916465663429152377916413576829972164966362318422115958108099503643823531633362460438907113803046777534963977975419775166877601897071330711412133945059861854267457694775433213289630109197943970071809655120147091970776747544989913082250645241803262778065625561331414232216098082164769233066381061045966051375526078219140626312950056630064556660491896766592479978706891818181625514661926801483153496636567533486655286378564595093747419381838755089107100396220572656651276324100527972316179800637546542664855193394899044305731744410105213631557667217966934358998165486289053287576447685194364450934126719126091291659865690845616790564263192707960522039803663674051899362223371304571060729657755617105130862474510188624304087476268643076203697227329838435096460175208862384097085414489403893785787779900412980284200672717857275673125746648371358481225952961871536174021292838545915874281911915071216161901254518579343730548247479598727108335730635300815517904184712052836612157325761300038888936644813868482053113728799512881793646175123593671981489577325525817529460305071737552550869536490731739759552575930628129581654216734372125818498038942315524626757626039374193257922367535002758024982967698967356395447800639966568000846665090543895201975511994527335939229774739742765602160565962389570386454908134965411490385269682444577156885682694528957667159846999773755374183442096032172059877516954230355857167693446733128279551696096569005098407387878174371362627131494343600150900674393256251216524688549845466495528360776058207379712853271556995188963109009215708673041443385611498485735718395405052346211084771886082077227700027500348312405561416132032376693533942343817579881355797389852522025006445290538187656681311208617923822271555120421553710271269751106262228742146211008707956710415713563063858421819638559348534708764599238666827728526524092767803652571555314282516589425575049362002450989417207312779223931704311009111120859351242295874020854535497936963122456736455846775494122819976067022150024313603798963511299152887923239715597794183148235081139465505479819161786883737419147133835940424159039144286146771780628156186478803872661004207335138625035495410220279951630024773134260819680276391134899998260019702966296649023128942219909156122276589513155491921326940685428653642709175875665623860216749104256603306468916679434609902387048609121640188692576369461850328444351912706504788521162734732950667390259215359413047775433126206874585042723045101709328408395962343659164185376819077908811520690851740429494341282902811005480050977591349900007720477842534596814083670500851805445444786702957888614016205014328772585530735640904828902881260646490709065408517741168365876054096773261633298738301447523167774713588890216722118213676529049561003105510662208265816426540904127852786470938319361391643890367505743528307497200752276099269485916037160765629537788134758192827108576005240437298259509558715079386215172653728688962915965761461418829404815090484795146861404683385253510738160724201680119041287648886462168056981184204425100697010284668945169913419640004096583247035605541250622598347358747868636566263856184317322644175278011960490749816727243883820230540984850777461783806777569330247630614926259429205158929765247037956504198329520237454214830049384437925934981902828614618114324948337375685330845705420491417891757243399161166652683563260888035929939953624976643003549748682490321335618965560109334581628805745728880511339880328514957261074443354726834251053723629375223737706216428448246855555769843362498802887963291114019242171050591930190161119778965727065412276999718247798463563740331237206241415779552318107410487294233317008794698799878760680370398695484128393088427112712962442704947070336093090967270064197949352799984193540605496817041534690369727643066512936433760648269732916458745836480541380950119269450858497206092104142532572103097910960714988282047310820549595716046867010384528230185542835532597587753719407572502168347879303931328984221470897029771098952006233359887935058865349648644745855843885071546783077536958378880006328226236082605224960692155895905284702748792326427656734142598906590828815794934970160749107778376944334983131233600198902061878395062621537338318910355386269074451344239893602320136481654274266593588656224756813578031919912178542957190809294240464883983879679752968376188452775413447323244846346244194135024933285517255481037024124493802204225041309331225647404049688528656571987939062702029713158347549639781321173009986293285313877362623798188649862124555149999844992921759384657403632503101833682528345584387887921910748801665177889082691475041363906505857906011717316748499183684623697921151648443855905948599906005045757247494289839629776306697094642423326488216882257146338971101860127617879898555198938557922731846926302952554377741468340356985249659087093912809549797461934820293760393322797781672640105848559718015077152594879736514167575382316206517026079744723577210224641264493986677424155239818802707138405308903792386908752585573533291455115685319598252900210926447043601118321606837709125426959988740505066875864156379728579348136025583502506599106415978666551011028922611374874760127068200324640261937224767791035405802977780981815399893367612741519877111467761378085322949811722669084459744456440613305046245994817362850947334836948332961997832751127100587665358891812855801610043385143961338874353678173816074012739881219291107648248036100775529738076603481945306715378040416726259962451590916910406902883974585913452731727748894187692501234098029713089303129709057495015614313122169100870535978245772545992039823166030219336063949212417789615918676462010418127849444614357706609591551689012841187205596488406883637157018668663831593807223652805758498204007276693590204909937515593026527549708379065498488950912044719619783989370442216394185923923868881112397252353289947586635955562553228528444210142170481264801121741438758986727360118028724743802829893516380008217509728581397810213199024775728981910293719669042902536398426169174347966707586835077762196757169635780514827278392551649956512957325092178974593379221621382178560609412222356774591021608361136491651983272661980666258130200938039193309498378076935933647799191859886163215733210772181961010349336639944237648518239414345535011440287265731965324948933017411664284826488062675105145670289020787412080457607099282040582636071735582213059676536332847349853733827527447644821091535691095894304663369759162087228225109231798898192199969025820622547887425982941246776732031329651663689740319390169359259047636111996331599998349586916125056696266624367324333904914296147391125853799005142500080732223277586763926551310478704382683240319293292670177331290711820113088933140983799159140785862500948132653005172840259372612289380155223389542756578541602114717677629708840605601099798840617198290052954466953603415581977845230761514576589840445776644621904559844229674143017940465110649663379113999830228338494590172725244930758352925345649832198365541208928578731625576390571493136832705033240042061401295925493151422930210223580914108898781406479647128123553892291068055608682228241486912578278651759577865971793652139909461928912602789449813052500440197843520296462217238824954966418167957933520903761687636783963317211513462044875320405381595907077895208295274075107297713567167673270459242561685006003723845614291315173144914272887182795268602132815000234977671502333430517171467636561624006937918016223000767194719184285582258339855829064180377651324860506889427869525999670976829521547262352230189062053770483143066210201340551315435036392379001283764419407488820139787250548589685187064897130166544764514124244061877261955583819222917943855182193563587967167344371118872398768634812590397265376443008052317200329704691714913291832278464061238718740881665394097915138114940604780509233605835992136589346847293761091767672307003079700183642957932451345173306472368806064437046544143188470542126372290798429474313792702277902708704333920459157656362022836139007250838563284145346457625434856698872411985405980421433572934293350191637613468422105302848260487082923124143936821448102190803030690379022272462854534225955804257109601253773119164629741684865908715982018992148971658060955264209706200474605116457863243193285658589225657743879495641773559820826339093371957970063954290169455673600275202637947186253622990743525977967524574645985841692388487898607792569772087122392354787683078422791184688434941819328949423181531548703169723123091946935277348171352622728463575032139500377582100734975712783565684250882246336682025381165286265579064141514445720082203213553306371865914311635599162343233596895351550849837251716727516001112592743145085521733829014398022065622134750215906417682559710296066398138628240462117669671745828718218445334748712988340690439643298726982119841732869390901075745703572204986139652064020602843029039300623585036776774194137477246720189658601628566542685133939456937849080216406900862234968193388735450751630386002120064727349876041210608992886575220587914986701641359356267157834486960607951590202411111227904170338793707913524023756908359427961003936002306042566873082553022961427439354820330519482561286221588788601399756470709849460351723887647811343500015286705785626093141328016947787727039220715459864008118567486949392119283087946917466162264157095010610217660116703579882342188597249351796878230210192050545985776569239223130625922850191484322235151218770559336868525772975333708881117118575066403133978842480923098669876025451887297323344819765635678524402253592800673225275676427230453086209046100717570118944263421929159628783910521869122253465023638071728851979233159880731673142285813595682344547459564323863669253048085555851255904492870599839231836738773054282788930709258807438914089419968619424530708694171921508155396347326729911620835532143542186847176541090699947141724787094216561880916194344279014483174765454279804090627881276584960685259529204466526171931187515105356524970949438361337521326426979018699395317142539727343679571232265712949422205857371778544934655302317846033430527546067500333202482727243653123529451431785549168129050941799994683955089174882003843044408989501167158575146138175875966420700699765664340672348357249865171373576129576018513142778551978696653953327586453109349018966544327539362096460718999991845019174246442721737677811327916612248046116873135960905818070825935886632547224428988995631782674465788714551748183425419844684523069021470038287580863281608268247588765354913988755452346344034852284528366081955967874916471670020330257723618510830100308271928002973372792358814023065531067183123240301916255136914970568431512920597458464397998314773053232794043429230564544905117582468906202901210046276304610523574906617505874066099945264638436701354426546064420442611352587129464641843842909010196593922784485408245784760472965378733298394572713131150011601696760022147720549048498181400098849850886919470138236665725768100292937827969015917380137135575717160214283468973670171220629784387853795204874297967718747570657679166131423214245867880787797772961810619621456166255549664957549856311630511452286183051368631035726678149716662598270673148039149737314785979176359513062988178474009080978186594835275386758625393530147142884213047500663520050917953827841487166050140913164093068846401814299649398003313843874927380204582361888732315694204206742969634448643216686555535290616815513203575895058663610499077543317677117601416748305815550025422828192397641761435979515327178401079673960327368401794319339146745830482827054850042449334278668392474404657522359384897186538876848800090919072610483622167458215524532095987158385359533092327565025637790507521489766193544282128209514886951796021437546213811179517074091993835474709848815474307693931474248105418771874345119990432343597625466367975998886219329550146453345877477957270248644034276759720904169262546103199876712002340005296393216032974820083011311418229742165237401967859664682022255290699150151530174907698765779567689614646400957654618828520109144099402315143714100270751559422959529893963926648926408374332416015161427069714995274019677069684589320010296845893607288028618836278755884524492364909558069196597202325014554510731393109890038212541334606519317361233408299902814692110807918045309842699328704673645742564752995268659046832428663139594749186148424298690100563999818391166902218526980896609958017784335339436307999983745313143938245456477646932273776902496511695433896746635931955655798512343527057763774769959367752464885632237213886976367620139011959032597675202498801096999141217166980921425995173468061311621494043271255721401037937275742263712290055894829114052976649483488864011013623593195276948314519516905740972367957302340533748196597355308213808704723491921953449904840427357002355377313716971652378781687048044721395557385294708289050543352118588721777283156084919182109166251371042031640675724644499631938477202482091006084958728438562483238630023431841054410364361592178403660911190454068788893284593541475959668373786169163363136943304622436769402777007810003429348204893470897332583517040603156254790102575638024980244952389012897794066138761996872496268542774725432985141689151983417884199365236625809578091760094191598058633359624929604128562925128076094430444480719766881165285293278114464186637556054155952513141779014927862043767662913022342344651827307186538808119470630318769675082251855311160305005727831907686761964429600840999520690473934156807586647676504883846930119053887798782425482466509148748029666706257959952498415240391258435879876336116658408595602515118319978549548840296178446115891368584744786877543160578936816739687750543905674971105333515668691709500470575628735763472752499448842168765974607168403151341462400888191889317281574075478598690798521333621644687072992766676965092749092036660833003367566200898186428330508331530481628424513779107167972507662157084351962829833199229093795904507700905965338375481845413269375806626555099196949163524846392552432162879633660050087128230112483972291739957217817452634283914467306948230678203248694854406159281201958157955611952376407993796244777634264842507013450983405428506507542460385823201608607477555167796542893417800751674382816077108008503599869443951284939005429849677369634903713353731036145318945899790882292997249612354297553888121764354707089304045724427490833471469701499540157126676661829723496378750103697040666086223675625308576858465513834293757656854690459736195092650589732158964706078533442978626222306938182082044589070703206440070577013058820723432949670904761924203896443485391549406984923863347945815847377328044801659241738451811704866548561535109158373587286208992343191713460133644517350704044048915834231999677863514171323571083135567405382993805117708908146017365050193323128443310867739527802659115508099575157487467651118354728876962274140624093318326460822638498010009237383337459492513627953952480604453682583155339848004494406111025940799245865315590520419386237038378296605950602248089113228289112247101241975630813814617361935083744462088270496210751499831079329955937388193418827593782766123812014904958320400008807106027211604328685820053440917900054056636045693522259313375648914911018738525599407099361005013509426976822185404015095767722450224578623347394831013555184172678612492623238367456944204293807283761169004036513423721839764990479445305047548707135440503788104026344907318110084070109757867165694819027493883777660492278715333278015085817650963537149820239297781449131559262424719057187746746903405426488942980400963384905464644256294776019260759721551704135198626569880221903563637161350196449184846024793446968313718715637437711981823990767850958268429795631421320884607433086155273830955088152364829297297650698229611914697629666005157910081098494563523505873908654840611396799509904544065092645602475436223868526655165741421346995150269841559562317792405490172857122093815521895245239191315378880815963352571436901248647616559047822967755238328795944146257495320821475903917816991751383424913936930289295331201928937031842389778587799690193030965871122432315559267028396584631103443409167521925255457636322583062151087609309606391496714194066768194078132879958058903732272753963968949340769275073057270741894010206769875452427799538886926178685471389332537951232186422148208031607961109346198941716219384346923925602145645589822305878728653993197291143755614013696543953770686192297138831859282193205119459088725681050730168483989309508569131106867043959159490935819302447263096314845865963512962681185749267035402042472125033860648083645208263558794929450264018494123791746893125510340531908737814300175649371196522351795734671888966495650475333747315953679025617302764908821369028946983038661871496809338115363978361604459070064919918908985342056238743670263913640327257429702506066816131978963484996479993863081747024678897489642229554046715009528275057942053849166499984017646209216786185729141783623239433915749353550334463060978201760516780547829625854139446787794688442733501482157443346565190203662998994120625080165713222272729892212550013086788492077406972187557053533229188478828288316697785677651940025656579367142132352677898586301170301414702975235478657106695180178238950292484985124373877285096395183705516284503475568989565442811240356074151196721391626537216358917521908194779818986840634035016324848183635987467808600031717168713904568740585965161777416084968870440457257180424537901447536517178958622634600608777946827407950701159574137816383884494414342608169047576710683891531143220191358396515608337291376070284686489905917809498584890545368830545533853044094652211381876338134093820100365075345726659402814388995604133640304706798074139604921216103027580013150266596150915043129899352991109296392030422452258005652201441574838154779998458190687524829839862242432641839046682559821344419518369527913949734619504460246647940436609396767572919331825693571836377902200956751383691660262020007300247742802257938516204557873341350906984999061465501548178869618793701849455423919457219832238729628037838694879917923932000901114498315149183137769151433336856367885283840713670334981993943803805837756203783468385697896292439844506537825815334394986112282952541769026274894815652041193602960147939858946057077909403905479056797217353446121316785952837270048901963664366789930867797081773164753723153964520837093261401656064398034797281926159598837176765118633734917941163332640290003716763341193522888983035980893571146247066727848134394966107346878297498630074391741128599915679566721241525719641715679505845121947383100067084708477718993216166347388256740380753308430664587098213260961570215672512741249557183367801634298040940497268389794623020426226553456992252698306208799906977185445875105818780320965935103157945934214721192316253822543764774802749191302349156998646614908057601161249121260451028121879130015108386742276942419089702188250354753101285777661182859994408873485700445312705987519326430060227347255589122571539490821771346694348691541802064355200954840659806143935085530875110089342954430697651579598555533834713623874113413091132541447770404192725110126548876870336268071453209775591832417759381516503327032868694208373865693612257457298487324219395599706083743103543507401484682992007920168122601946918702908001320594461907805824398384031247267723250606907179080507150396706921639866509155810007858353671004702643534907692576239908442387220073779946306057505273413955743186733879428263338475498264726368088981112958573965633034076928041839424627598913147009725412504547669712289186043550759253769225573142450120097871512426520810393558302546676495338627589701495354434205005345250228277627667077716539381731892515079314592114325067095812191752609458659612429596424140404850243835595288211721734846541393554605841240580599939647047569449081715798443777449256805225952608633007350057045984227648646824634189884090211640017854108734478123710778719176911573478405917810819065595032404459135947775394537850941089149253223885782495956331109423593271154416537233530131731219977744063834486296167900046053840110870625717118669632371647358513524784108951822699544814883376985467774353657319084064520973500551440810840601093134868884899989188599382305211868739847729409651312092216127102640252452488786150676593579157736447496356657527409956566326439485488395583533717489351825852473666011120672772709015332285589073859051111595258800058115081912601105233545892120000513355600856806024062887766577210282606315948109153174630989931937139218670785587237117058056267342011444962784239583953374376639513556104338334846537217690142790457413673478293406671360141147807801767488246006481988665237932822178577465205293064905636924102488722177132768104131591332318325186770334294287405923308529859000226111059756671293112924691220737853282148185113437319360336847350809288915778376151633926973713007169197805298892409846070474494809100302842974498672481127065824848185842809523403730762639152045677527438047366074615903103652209074587752701271221149804870214253520983688564250986034044540579722748097282324618058270199475267877153692449771848553669744121515133291421511966821029366919330577044664226196013159320106158449958463183849126418289741201734065834294717168167881184698979339420103208936361076551833654281232319809145913951108548444090617083811930836729926242816171429953445679360465666440513762740646371890417676447122778155321408552344828559189340865087587882541766636650835500355338130533242690369899821520839644326773032238142511082020927359413531335851133522562339350610603127409283574345543790597587152503438209700266056938983944004574778104610725613499662494718993632992407871191384050376454535963779697592883233621395706894474604205353033904224302660153786298035930277514375590176392416525205573835409058705724091332662731943876873667366315723916766291638814406432256429392784248195824332366531942096366841638043441448763320768078372840178313314347614976334811520954119656574908276478880012650516415774335705855110513849129495504276230916836443905980476815467183535048447296371205245052608228407411247738677466680422723620043917317231481839214303003187579156006467462781254125128995524101105388336526510658875839446434602424467689580469702020679626318341118678232180151727567221000445256042864484834989377183426865446843925712037774111428746745302244861670413516963462227514871895388025639529508162031840081988033633240064864871782644683020782989863799679283947488688757388110639135504083860076621657182884472615332130413670864258283023537771339379418921527086640168778668289749539342642754845935716168180159751136905508084368066106286950486568187715253373835306887700013030383773866248872279550426931243560753201846351791652972110657912065441259280743781618662670335331501080418392676479208540998940829715668374940398953931763556791035307383173886619831149576597574459598363097735895683580924052699905990530193604267377716637390830671647097070017266319188332991074223561198231593235524412622590033121553965448471826899065479165648672227908207199824848325383940477805759365470285142685861632810749927493688543886728121380301812197719196457315424104628117778279907957381041263872633309500841835166159544161544824897969809790451522555103309820638719925839824594436506827482940721574492086307215022828409713633620625099197074214974144945392643451158594559066845244616991853973964257423235541553391106504660996520377956537203938402623731679144843508312193024554951745364558713429977884659513760193913149792471450929717459459902152261516335301270276789464217817462707993497172122873923481750655099795292305519073327553159093988026381162037871132104020402200248905935024230434549786850681907263618117289230815416440011151034560184434549649251980178855260113628858994931852491538675789563369564420490359644393863816435095359589835570531471473759668297866176342864612214133588945182019516999769723582622842513113301033246598487432577621338421752968690763116529144912896194125540991695207770563349476054401885347861876615655703896347824721027957055833392283630807238021996813000190296991094801194586582898285536750098675851961437255818267040183717381252261537363510624011211483866468982752018011204318256986462532661207457119314407037367339458788859408972483201412008558028005903822746050313198090683772850888561433748160455771279622266340839922011922331857380902970167880342009602227050100174402798024404288276041259019954754603235511407771472451941551113362840710677558949423520317545338509619453361529722667116381128716317698217634607992949737794822507893951319446983399048157645534559816855626439875577982204415593854486366574576388227651861857047747540925389822021086645621143403794679748021999944453988927119012639891616910734519833070719002888201763298735551137562569091552761245255489971661627999892930702076756347219798219941906787460058104266052015182307667156168310690941467531519972651504912552759193084964167175107145682028904301715794073867765032112671255729233221946149347037099708912451202462108832342092034320875146093862826314474589556963949695459176814785592819266088337132786654077023089099316590668357071479322500457992099597510403172784563046331561750992727984631712850198457319678623263214172453936746897624955266616860870487695646418570589383037138620677767203277684672726815527670646316611829198225251415249423697002166325094862321487632325905679169639133961733217919626474957742538478323797983734589142612633062599317743438673666629670186865527554919264094990491466762702357593600305487695644215755874925962138207254020504251073689168763355281459193959125841011522262851466126950541944412812612967658008767828560583877775182855033490942880714877555794927896869385785641337418251660360996037387209656668894059527133896599731611342701424473058285775517764382145494845196332492794765325187888895598818998837226707254010627742594619790725268399464448167618188155792821656540103050669150154546687578322843726929317363702929015403289124930789107858303329834761018780195422745951352649055553424813768791800558092650041558286623402744857136205025363697486851087425743073004411162047637921506890883069466409581222954859663013263502119337454914758399384857434127169764947296178266119555500996788862160010648004272862621672109172450687222035597526213936121883897927985755966232640657404024674187051971945560859013983848857201552476417483258553119422468395327412617131731929924354906208122171103499724230283704898658867583088591539374652976398293413451094250499203420598004319587843545212154994146115932210647062464107318524636010645063832876550668091127221128432432665534262270624507586444584234914138703411885962469423630921056535030956231461524498690889101365889752794976116837871713377492497209308868123067998836778300216419823816000411344816164727101833206390960557195822989938477238392295844663429276891794008424488042779675499309126217676926089330592342835247900877685992430221772853161001218060608284167898275292680431153671432273113012570317455659868168724368212227525841463101439464536027190935986915649127576017451319134967176447302077565280300542596855888558783039114044273426072504799175274971708257516967149971486754702495926940923890757491582228317424186714750670289153712951000653548386374244153697090887289372902536812175444625560263564701133096850765330850170599885122077174411972022981725562791657487075159021483482589066821715299689269003303957523086273209216953335004638411080391168379788364571462486773698856908754089505629923819423986111163199487265613378915970013891183536532916882101684662130961157818670479843914480030205450685054686812289645522218310883853866223897223634896457834826634015093513681863137600917274199529031979247587188611055826578668828157987822404489692118739461504990752397617663323593479050171411481510908805281654842410434605773195393391944362920998335943361726927238255131794002177122773809432594462234241536233577593974240504792945744272122881172004966426919661975402401022892753739890311793625654871711718872298920785388170440761620271786955987798993943554598811635371582442662429963883765575869882246081461952052279265609865713850970617245919907008972049838968417320215856917421065248980402317464508786796083210937126991702843793602066640362432026199384681340668975653406032184918315330378044874065708986014095815472804347519666792022494481486996724607908150213608205337615398786955668168351838931919818447083899750726490590141390593329256108719741479710835889947360534051995168900148508077624948376107915806568092663509295385580374401702447801071708528968238041284894542309400260871475278250149201601700827769629058620358660244006991079403538946645756813319271280475362320011719307024597506725678523553566792892818716530085178159290534670605930837555642673714515088813727355857586279682961161628061507422404644066447860258042395173152310402526433410642653966412636372503110584113802004740224474374138519125009442997192695364824808855694292107420320990068431055629551796134191280037303727291607842113006966477624816564285399816668442565355455496502800691316328954732124512193504327668209369499791322509475618586905863560438919124784465949153983238335071902360108395956979461675358968489860669852977393139053398827022295565453513093798310515832864780304272944010527036185473212935383433655788689412709326530897750300622857739109244270022679279928745735912834676216113299054173909518170841512180129579640275187217198562754751238429247264223887116937302889207801740135491381567737093462396982247324522017335417833733482835657057706313759786098195888557853846662359479729682055634652844878973081082439245533858034548987930813113746666271603946731626109077445125591259287475957257419333716514307458216555458148499631282249626914989206055645650124428728181124605986130977845161073173097145776450791939255180707307775794449377313455790593294907548101208252503794139143640346407765968633086030081801685683881465273441983926449588575020359802164006145334353582822893217796970555619344536584273821217481815002332744896124209873305775358143508928753189339700813557826475798715013284479485992834947288305510481561349617936741065235252996543050251868797102213141379388890977254002508381983982747563016700434868958986153205928232902422151499188551767371951074293575059912597473641198932436071968869587107790133697729314579404297198500329395600508064494315978453833526018861995743247448217927890005758787168171530150673340826412739025806650707385569605008917766671269513269831015211078283524072729397206478522044729624502327718740846886530505765304528665098992058859108263690291661943567598570452743063677452192077872832911823798238015741222268287707586963500708483134869397216645374999509735002909233748484033821110735968119376521621736430937250023884769727279023466799613484889452241616281954699276035455723475269441373254819373982052287059658594502267332778228737502733663369427264214058793808399953102739984628595933974772634801944259391170588632497740685301561494517279264351565022161618071089978685639916067433456130458181932394216758485511948100062205149487737557826410006208682627101802371132055490761071998186386495274779255384577257581033001972168088504438300084140388964255299832870923756222406223512872801341072723513760884965550054397841063405856840210188453181501454025578303659503141440005519581922295195933677737852406981662202636541205212035680627068889799545329899889636076633498302183907490345623688895526389750689515336043134985383524753450862013163245015063450216022305669622867519490352896497710665077228974170478577205485443007886555836025896105994268640472764517085922237284100470805236133473093886314127463905387030693945206549822585577777338802301959973352142902653155457576620222637057979194835627969020753758232650281121463534070354592530238155339803475970526898694436431587113212159339477540714471832592656174827085160392716699820984586145402148034345010200882688909847584829568611502240361688522328935016716186090087209225300964096394026828572750719791598092367716019962444513674682978330243383395144955789826230063232262120732193015573197944719603832687027518383190661560363397889734251094649837682558488426617765657594269373986397812877181276544621247198621766541274804426470066368237907731590718618505120545882516896371873342311749697670605124208426736061537689190751874780894989755531756184685070368330139818195141704379164816090907431734803609883798517423197174394152772865249112647393096908068578138548966566162470974357814215982893427098734707225513877229805954048101009097806226133327468197057615622642937065878616008525534522142530441970564492209166212270040598026271946192333406162280309346691132728480316563021869016328356837922082063227262450533312189196063049405522649067021326920258818497777554587279403869734306005759856425093555860469260887899517616187264400697743609208012441831479615438356386347909295084879657874551411046983834586092006525735914012192166460633043903746809850101772453535790792465551135114081875343798364395359617498159352376486940100336249235125856689111717101315119267815983709587562641395077387929959042414707244371675459034527371326032105122142257065720964781045247939968547163320866734684019637735301095529143863428729422185474789075360800121298225144890191305659771045408916254890694543375253333977400298627799094236533183819386411417410693598997431099862863722046620797520000507924256249833280066587051758989196838712080875161107257347239685204900001648311534868143491680134130584393801942623169202588210088772146269709551258141189002697796215154688220135602170936263987753564819976527459278479605683578186532362704062057795182975918112973225871212368001578170388840105475085733424021788049961832658588143979680688934191709355677014365748214324537305187988784105570254977975704759196024843808233606311801478193332501067906103279047514359786936092407105770683685999456816522115509778091925576300204355512513940077323625939976480259986790474585178046945801713085654686454667655079650479319043232935307271199985919643047260791458054060750849601969576656251972836248346012535135531232263691448496814543907415362926470502866670742846994386870580955550396067543566971157828758450299659691441019110887618454915587082530044699276894708889127663928240713438863883599893917610806991517604136493376603048601432949751011980300078591424873968766770479705252650063262600894864291157401661811522323741276846282471148402934033465069044013953699261799614873496341434152534857428718423454661675027519535376837975339367539270837164434183436378924922248577166639813382477226373676044819543229124165717554479438530895531844120780053360959773568397233072045640808342242528449441014043297847547947576098554860967677014815733554669862938446183714766302136537970876614471093266167742791656354716405455511543317170108037597350091488958197305666532332659284522305725240397085697507983746694157922202978559661592976185889165435278497123134695906413492803529077668024707221003097482036430870724527519253612412932017250374248346110650392527207439444529783002394907181244048919093284025986763881349744046778398892668936437410122445896944008211985805261335798536426382962498580116155102025586300222192982472020349713967604860781389935540417668253378308845353847382902527431332116795715412794955218764807882002238796208848218860340345133409601073063621543571199390443570363863313151595089050731100991919053465439280491578289239589187343819307960527406578151313175594546571793381510857480018520135625450081552654029822325226015631084997245989350074572777212536644913243751892877733171171158597787341767870476078143537664787749071454893028634752875045800230293934623423681129359646594612310999875027283709627432406322308445720077654689704878357661296143655100772933413000751250998651412841746081724495966801270544877906740618801200416798678659986059329488331494947969402164007818238735865691212177664158807451612597531804798598353382632950105195107266912474018461968404239213947166962540306406667256986587236788545862593798365440922765986095303090340540760895780762928862661862594700819525136822653623834344136895469698076257140200948809838217128431797267207852900367849355570106228441227681872171439533774345305839799011642181369597347938454287395879645176540074845153261471256848171454697100290707405192343961488253929074206223846547192460553108055548042823706979004502705581537870759347287485281048495010630429511017692465492694965396310949269194310141100926969493242037674965482731023876728475698977165677298867233864042833960136355533137054804607946496224377511007293712161241480827538574638884653747778903743252764121208262499886131779311788118391492928274998826772113843396728750479633489071373766236429434477062866244465172702939212492493715242484936691081780214688922890045100751074933410110769559491699592818987420894671824376396438830954517042253573425675907165091470724716438345412336195964603934772337493164499486652524503449180953261538720222564025573445534333604460930318338657566350843638362530247775958055320389154382201346095916113988257418054495718388437177890065451286115207383045948889084639569484460813938301242444755168332712197609482933154492322717771487449981363399487139216206347915019952791946363888201417454167746650742230453287782079010996788460557752542975350403125926906174583771832189560317065381134452799611091271129978031358585533115355659674705490752996977687395290512073486659544561510175378113460917933576359575761468113550862085671911020729623763429488562306964561956802373705403341416277362279635509834250380639375265951193859353033232435146337862169095417283628584828908412370735243105318680395133743647945133107482500967072369387479348358343161161563135095194656146019146216585231461729833901134332168109711124249571233894988434769082910640589070220480151378036701261474460892301358454067006800919524210692136900712113225442356146283879219157150797669824836582890307243245156897704937032544654475082202087057467485140016272982274397727731555142267290202284091424093885947062531202685995452375761699859339474485699048941334149939098861263722366645927120900222271450151832841613920510027744995995738515414951202896321425708664764138904427300206624857500954526472340958631597791451857724818884036163716491283439764253156071452109970801209820830599366407096661415682179957677888792336705749050402162824448582593197639132776514077678876768620609481876137475765954710101389456633566423882224947449415128919075047009106283228952679596595530339516280227863138476730662949862951376183747257346823262269992249301513059750142205392070081849530305506515781358971743239329172198464691936676067822109620736905877983884297727825016503751011826820725300133917211035659159320038338613666405212196292610836611357609257119759785096535210100234504860329283061383885998887984440394759507324041745420991279260791562966152187707829583862893643800873071425715021070399210169072383108794113237830444938973770913028886758320941053327154055948656279244587839086444359453931474248642002021336006520899358206659479064472829245287116406888092829034726264694084944218420273280826670228558054440954532448786303519137127048227064726160336405679392633001001504057931785510904399864687182683305309518020416281078401689588031788750796029765614091045854322323685028170489302710700125439420815408825974273633936896544378072953714069511600167062410758657640332793338560630512830581543842036108852549143939247006747313924247563081788033569798868776797891917277477997741867786347998529479388482835627785763070722231580378614017116929824523912368258728642291745869463858686595834308745272442350556417574506402047063484697051003291244670422125789110473782140470704675118242134930499067101929629399057037548057574910950127344733462607568131175870284193690080248061726012102262947745602232004738893246826325664598446033002840782301829511589495266855299527935085662185435542952984886268059763654959112071258642083880265522058757217100261361113318142447129491035675433437332905385588237627509339015844024871692582786422744286984728329361920489560112067264359484039645124822386538272000775372856936506973950171970903390422721995692736135289602933293307247805037620309152097798214391419854535163492984896062850738052782737191529913565586764835635252669076441640727868983321547895764172201653155333374975008087025039719323566657864593212188659013077369108240311972700936232825214790662784226285811631419662834101014627476483876836678917484814591392423666844349272264246766641106947211543903699755393485272053659139110937141006868017545974754782049299483206840680615391879498018046858342352151489557107190254785096187583504621667084514413518561452529867803924129716572833404676391491643291078579513016313644862039623380761513394109039857293455279504602000877404956680648022358060177042123456008056168662127071174440998685028674006136994795918087220896797853406339336463830808740914041432215434580564169627853910226086435958533921228713911448409173441996134554780642984457455043307006223189659058301851543161550427783091774169389112459934568943393625341118173643777768729992049554846036995924982076216094110088842624305350486462166497500846655305782412079553623542788847236209239508618228289016884778630636862221207883218439073683818141929577646468800703601422044550022224707046231086200410009203719732895622423230690148466832319841549480836091317961926255819739946489622536745453059321696659444748162768044518913116848872106548268909219426360296718608487362262562973517416717687191158569580334449225062656863951325791854407184270202124560422311327667274707629311571820184794934935470107914579263277271069151547594973997310811782419937196405349613855221336163801694543212912738858763607738586761748765615378450596994970022750639756206075534509942688844321932697012593636959754674020541872039705163391473018244564532846530577346996592401441092652782904023255162512031462887592426710288706501128871890180864935185541301738525883870642020871159758229741399200053304042578023597371917696262962828018758404418519273291148360829716426604940071500786449086618904971741607512722987871494998787744492657040917983019415312855688630680812168555896392222439001845671891455043038858760240959849776665924272045433254194959916973311452189014940846577084090132718387931909031946748583883436798505685538755004364359906297759342356305943783554096016412631670220669094723240632310967837049222702734345170192034482249158896442760497994504730468419115235164048120332826478862423736918052777464560088179759870669490371726874967750241382929536059054350885537217134829942995465535909226938784222740179683150408901963244938175836072680377000167476871915500766567388242198000569997560000721113792880769411089266375527463970196328858754323324524074498210106829497669435080296876233540298169949478932379869083541295576490403692129690790717698381910045475645466457436635407771821557977100465472937502918638080524016231565363609622638182471464840186970295567749647939058720119271954648129341100448819678182299380206966753756726697892708772746321463988584142620756953562601399515048671352268086490191384577998966025083215354026299419151514202222501285049381822140064858064039036747223591544703480895511619499316655887719514258360394534531033594145010675968320039072971506019623116576044010559277045167600500617775961736401307044275961878813578124177016012020861048031194690737633412902221568702753899373743456821439294285085306258563126104479940741492584818435429148479196333296651344425119639170663239237489359970900615293845154605782304897597764289678178899308731030816769824218957495912562474569280214084385753364017635291972185484973851838371661068578965803862437284253334121376583512287859938586643458150651619655021067708590017071253482511433509793696191906192783576197284896113264648485646342456107254168972827370435673635612948464974701358316956357339362692983880422858010548197197723113070097846066325382667331841204588998880752924921841176029680505436133120602440622251493575772651736092892701643262209138702195881250331972956203940481197330398143938844965011829293021716924976538207048082345795834444152694530310251047403753472101698205560947360583800267731272724448076704127759923912677204471094056213336894283317587019709947421427206685312320102336311417581029298018138155739668425364670860350923905907252500332566147792360031353414127554213413230201345371468167383142335063824119231606101056906710461368766490584550720706558713001252693882374041099459178313953745945503254690867274099973724068821862456933786018803305664828510808216599005689966034821659503984585289358559402880367143983139081284783168018309095491474377976279456652047500731518204752543847475356163845708522385747978243772593246808407815181129825681812978349150882396694492421979901005926132390160778608264013109151243633067866380972377561619471313532167646355493598701786269288092977627494196724356163934164554031066486596668708150014136681255131097908876714457806930773911059736179853008151423692027651476877810326819804158489043051152485310196623612745215338304128063290845665272463311613804359112763526842467813818589780827838282474043514784766691061259973031096424296873381362172008571199401536067500957133220978255303461541635743614736843087342488827093310975941308591592458374598714119010441538344988660970051726889589897575483399291860489512093104559526044937309004253312017405573511361093629661175848434934563239618276668455936540055538509118618283731173911843233356109892107849559285763072197164305414814857699778475760939461565728495100743447127978978711030560699376809410581249329897594397152919452044507515945469166063494214179028982205398628792300420396720352991075602817190808131498990582322461247773385622311980818238690767960445711186255622745626436401613973758472155516767540530475666030166525537887607858339490238746721709915069111295671150066610544495312909943364907065582610020107664006008836198083136793076419499857725406942881162352138755712671547421127962423791933029688191670475895816363572635076969934285936500869526458006150162263382034239732272667728030379206859117289524865192691631193432776105885447865693586095965023754715857656571506815621305038715171832041035189032026360408729719929787417152912280575840922902668329905644456395169186552844305989818677226382322811789052458237324971078400889438376535823602874180519152202874493789896514078591059351790225814363644402623093453314687054005078236286353698225983866301750177384707648082662091279403887095183045518674842781307963279323920499282250796346492392914985881795380785049154974009813004186956997331508150743715203462620625352721354896117058644557167293600952619270559324532800929504850319014053580844486353345675892669748984712353416446369839361222847232310756363651672922777070132813429537638074020007482569621246894281077069537557823691849587687673415980269560007187035484085926186513475290754454198496210742812127551371592455459986076418417790146440833844305404081924771856029426193247789411431625014674588662412638343462719556011138075665472775766164561614136635820607284479295686346467818688554961448936987940080796797150661776964842150578616964826960273415275133280052332591199910153983294105169525490652492623981522624844587467919009812216708627673834143686816194174628993588852489031101545860405369623532296525850543572145523406303217690160734882618700983250101773236683582332264791102670639854268068562478727053524117403921006139304713311616002143724677477635787166219584958020476315584977772288967672673909389196273649014561768627655365942647704063263585570684159157707766317726967841786992875979317665393590528161157064779575305088040043393207422324254979070581963518787445867613801136645893201413735942161487820812062404944038832854846041797828721557340770753845497018315448513593678329332246010800090440072816372279574784663802102957650496857990725937807673424284455416258465577006133733977909447526602655187567559908154012999060096851417718324434411044254943938892465590736539695036298311722780731293172931594219801597989192732951950245818505799792172967483015149759313239260776351211237409215327810556936869995524839857956531364023759129399322613143680981952283214513587428081638881542471766303434063232099943090039936675311981679298413774055028785969663326792545814426663525954882450250905856506494804297684427394761660830613041687178048714899256866743448060205466874334451964664455445394066336098393082778539985046126330155606331939810962647093178744614469901448785551394615682376242256261520242522686926015354758907587595480095041153418410810874216661113527205086973517971809934325100110232727566463800425204999217181708770615058238735764892791528353110313483186595968955777889111161434926825317368855626854117958830420048987057695235637365233036974597868203374295023967688088127516777294139020649961086055494278482516026271896774914569770321966931001279045040309918322653909361022137895338910467136859582609638041166848641287305535001745701095285559508129039369656414147958756713418875531561858395710263557093819857181781591407154710418850358973540490738317964529108790333734949177899468554828438903601205619039538636068328503446881064714288580896224396496802868191368883224799452334849059474696358701554250479608257373884412399344963184313801944990173316051250384175257999554138078552029433518180414164266196158974289602683817437304588849209712244407693414464631310960350383040439094909918033900937526299898717493897045218251389386227388779728369896451619931850843775558663237435726293088070692854795445906056597014685385172352859121842043132209753038648279699826901379448440869637330310260120431573210178904243643255120672939741817098060020117092777786669927399493737290242414398816936739533849583995426990524902967567750178274769117453060554204212417806324078881709783595381681175577470011674856660453932597463938214531234489770995287119725689016843901892706717839599798434077208204668079158042430022947708605379198333950416146249105629006617118015979471082655143384549588378285376597057923286484690664295058236761267337401774426737177628483536207866132480540128804768182982233267210817621956802848282662721239214193259165288516259021030050180079354667410401113464897461225350188830530114167641841554074439658834064695685187753693071362827223673250653536420289305024245591133508891628676421899991774096622700313026184898932448802725745346763573020059568190718149276040414747296788908229842264097108376400181798437752828411900559531820685110108253483663758407570824887941947863911023403420122882225539000451112644552986165644261101628435899486929050129329286226178799195072166625516435464482637252024486290255188934610755544326106910933725527252626829627064969546117101323874407436842088144375093376395068593683828539390285940549254077075048993557481707281296749962430543919617264955932672603714044856532832588919243562534871544179149496154549888196366009857059741311313760834102823653143664194765707835378614211805825533213698133470246255019111550675425667204519759263158925066762061173974653888717989787484358289640037260303049346318431226906402309662933300187917327824913083064288419439480180147332728895921147654409602731594859311038993016110360333196509426782507560887695680705907642110951768843254871471293386734186218866679462291654070539693735912105648253079268952617242697964182267946572151688703847446482148750760924589094724851643281004644945860608922467961851766032959489304570188408410310439611122368072405624736031746422844195095496221683444996941413522356496134724990276175742022706379489253622244991495611478096483361549660890993240592205402723697583123762102158915207480179953067484281948084476223527491288658977039963724701337744019667644257167613098202961136944725034312923446739033206880034001741023288478523136915414529198897126097593073794432211912772884490719567704121185102855420016768534152372090208575196532074389875149506952790936506883341977750573273997929916542988845269255025475245423040515920400134307398814151922036829824098371004073071594125648889779597106915244084862656234318966871725832962633077857308717956398661246060018066533319320481854562795200232415878791273680467310863950304891600926462473823076684636974184978557125853111157862932961291432569770786042262604945577166608134973142285812889453692036934984579094755136610796048120380423869264270608637113427857146472811821040674659704785667885944822065357562540759991159570733618457463264382159331239329201116194644654439884944368099096603875422995065730485294310671374487737892711523886306186627690161051256416064745807116187939293012097495997970605102132553282624601411471952204135426301042441463517315997143135057652423077786258473581725462956145293516945646316801372040734224926685972094513064268078275768574441682683890841024000402236434119576354241173430754118249631046653860210029576052054358245526637167196017963086790179954199677215899609306589596557089005211685961987776978704731970936053890817115535410344992253415045221335910598113730036841592335288141842653600198476278389938601012225721825501412494625347824951889257524133101764096350268532310990469700821194836497386037158759759200023738291134664561252216968023090111662732455274241437283073810910408496348267975085489182035416804547271434223697381572206930350528232868823653871667481757241534845807304613449985147192302833096325675319149287617872146150457260602931594991942429253062220133666492599835381630002672538065118822249274629514960601806578412581471871770876464285052266513708670923486647453271319137094823720088954145372340294622617392393738436530377744958571908569146025500125808098171230193857424444961168716378411637698270306655637568911399937694863636660857956211407932515832698822724442210958476614583544501229513491804022557210625624120235131154691675060831484546698301088684527913747086156190872562832007803438476075002295688903673322873146230653796389253124984555750044553302868603475211656904998739444605909318286012622350498649190102845036495062797277464057109754995294088332060286139162085504084247087560389243237707783034699471264212759424353228422482396391899016616350135118943586998537222223768831817004592514762147835303835678039239303050501208797234112086468361274370103844329539499073385197679370742898148361544525290368071178584694434843899182803259618748458389159749847990977287987486630830822924604324938687325785557960540608344909680459993166321421661682364707074862276931703414471863379901667304178919651233013159259026403434235440743826919485968189389889685796376021189591668931546238737993060288912551611165410892234148597230517013102787448712467053741861386679987063218545660054997547537987574781557701600925375989559331588806611733632573418673791633325761351833702815016612715287727865603544878877445740335094657331911539045304986527895588028430837791153711883267851575169700655898458410838517636502692089974529312230740400505898399614682720538463894168145848848508885356445318330895661911011091766984943435457812494757569827162443538750352519923776468177544743108852702554036858281398538970038498442637948172481638228502470620864985909888526365651322260887344994549110093480948330667544351852916098085325180716658400573687690415893708077324341817088836274505676302803346177593832749506217176940613686180795369102751563215182932094871189316181352421281155221892006863123508024552753058106735830987807557527428256300198644923835837682831791421923127442626740343073344946765975774598829904644434567080029507518514801175829925829905410427176993008213270566871195142579067782561828215195676826765133280073251714550560254154839538762603781278625725753138504189078874440001751378961281374073368252347612717503789945334747818996662688695486836304091175324391657689729479389901832559548156363109252470982242464549275093340275820298154792459260221624292856079350790741908897292740172342560563408066476360096646757001674589445878972765035893832766933247624165444083153145270155317029304579492820327118523803088168574507171924553645403019876314180744269578869510914025460358696646562870977676004549457256397168262510338606329503711768287623447830548262371646660029468243780547509756907259105383170703249876774529623549005708112769807147376014242354483461384988854079795614725819420091039852695693139398054725609019060634120611829169519029910876906362391701409814493872838735482438745616189988370676006798281949892206511470809402215775541336027627238534217324695265428582787617167204181282815717169020388784120229029952883415988090461634207897125677993198350220743290286141867283139665564642112988812975146121205565156806354925182975917890439692293459145035924182871721376974090321817818705333859630737278028940500514835949908005876469456727243307355606118957397425364427776673612737812615635695834964508624857192080065254732657815031506302526005940463782874560304930285780305189425970335499223505808457271370772592286940331348426129739360762165229002129352437834539664057678135735371152130747616940361877540122413103143555290861037729706380445278847501879027445048667624151545102383830830001463840524090122267609814912169104827861592990975829866127543572853356316752350331718801613315920941781665143508912132744068588851368651582619483204019286023382623118372590042146403463839961934548402453429376588419369475708465024359249422862225264840153292765173049383200704950473907287307089333141175522566701167516888120066249640155566442121441329395061574279856611421081496171138272994821647049258339827894774979575550868761347637861192789108208269111475621797509558125213528632807112953585736544304225477977099333085479033512437591635154701366820353594654914694751378064764157724402344855243540638570915801716904199662526044251641440064746687145173656683111192627771670293616723251809714146802498196849173763477513319306788662389156070534597376976909240647642125255055942966060411930155906074422276251621892099906207879271017413482125632252294599458650069221119676747094194835610545143335590837874849078153038946713206419342036644095511872698943821495127283312886547817162137109698552972453739878078036515208361405203029483529222405878750750140666184958654700142393874043145503000667634236872872240126856552747046956680144684678024670480719542230490818429607634508050018397474827353898460493632322220286290952082844280695334102892095600802460505379106848788685800753478790382150946383222585739960095268931360556131446610469320538450278770425797640607960383331419226353350769986888744701754753794529386664206859613924605854897642184147777242636905840266967965232676272873131800366107919951009024686131744864548479565474342897642435053775937183665569146691020452327581515153809949027234928848604620299396430576511530216883335220309837582422338111845626929772520120918414316257906904994983960707439730959652737937083107000993886740922361567997991461193949111984542659929383915777371341644462183726463411739654944813293301575966288175460605907963098769038462320636165554893533854506149371871537765894308697185478584761545793993514829159794775756529180651028628008506220773347902600495362887143610811981821194641773161718907092289550136236646221507156532917997560661540759614483467877890350999394259380403907281452494858169889909014432950848529623761362308564414019783333156036609007787951028865735438236162013234988246999105349583892829425927843918652276901952347225111015861425255401679523905694022272267309134453477686491034133414294555444787789890432716064346066819834822797068244737915646225887794193641283275473826594152984894071310451796627428883865738612455449999464896444375543400968449211045349412081557395117156838427949869239054091199780950918902243069277678356512268739990087533494468820080728653476716742107997337876284540416147306245740160652010688651794537865128585820449564559548526598566766850322170545659080569401067847469016282146669887192505321069660965330944780591048717816215124480829336244045871823123724595105428073670483880346179531179150354117760148505133133984659462455720909067058091880414035191840951425475277839554063263865997974111422612778435108686820926430522321319583109186547369260988511534773031795145253785613328815532738332885361589240015951201963236860738911865474402820862370732422367163279666098296850840334467748912217345005708639979582254910094558044663958202249626722775268082479812823433903892932705193446410309528990405773997715843966245538477866815960337378742270438607155446059184627104206624920163789471102447938679728706133245736697427573697701103064426116430223375116545973007915111925993030161195409951069010924020433790637416575161084660486352158183271610683510988965002421935752932842174202937469908547031046383318652211834727396047955723528434833412301565025154567432435450808967265143516401007024649971472938267215821498112291245115209523910669035762749283483699336467785786189131256630274376903077339962405382875835293111302537178838810471842938499788527960029847469052791493085647969554348714346670063268899601243922658464814244591482142286482638506576275900642168187082244519386765220806879051637014957055998706219121119701013267679742898368093426479915589877488638226891889940213140779749686666564303060886182308870853916868975635025770989576943609287177096963356822134981108761756971415833066539746906915046517777155194628573941963871258374069063945604446512277302571563271491768116161335661852808178574670124544706021208066684766134478830670896738900573405484309347398948487734308925477654217425090721539907471059094780875016230135384381917118888044712313370006433167741149552248454047000996435062670133149215537163351621306440793432163636609398132415778942993823128153361145479557753512437016789675183562965473229955747433955094170279676114625119519508733358838664497713653577831617409503917463431304814562779783391877328603708106771819820481548411167531752035321002055162916172475178430044369180398925236421252107853626521887914267009600332075512994206053351881374798190551715170671183707667700584283537739359110234166917125577831733962857136402574029895384169604682159671345027603194139269264829554273040889414250682358906013024693812253925680702146974381708784613733155962872108786437026250884839783241411931342346750904582831838805262940099046118578467237733049948086163966283781653904029764970277172552732374597361355505650262978128001709591525057786458012476541400900564423818380082485692255805604255949265199507517714916385142587069681792580346942471933015474523366149903365829063723187330789210190434972734540698342634081105003450689366377140352526125788426899237964245432533354931087867147976105279723657147009616261421154745392499535316864211760407601637762963081836712437180093157820340609035096397173050264863780493958420424727990426737828085317685076080500628681597239243840143819163759833686572105007499166316492417866193128667714078726637725199039489661271320668088764634789284652207704064728679435636459412159183408995645525275475254123222463162552839652284386968859084078339001530952599288090255996530227880313601708239090226233459275906743151252256291170564312588659883521284032859892622370820979370862547648115282196828060607691731290568218817614329339456006598793874653080967208467214374064644221615161317832556899663527521339135882156956502307975480694352639583772572977154924930917545561730185562197829681970270933522746395955644698628338433568103058875972417332697759397116333462774310440139785257524074528078930586596886460941505298273854743309247390685855146641787319999294486196884562836498025527319909058174548965859713082207134291632351520067588282800028093474335167396659153552416449659248091702954916225926170922916118375088481376395860104623080971266245053959191028345866746623346244595839525699880234788549272936031862501382239325403151769671658604138818073571295242837101183049012244514790063267154446336801486647859522995870208005383576284031637546968995630201278821647796777601473515908125093163282670030838462777946202583348312844021062683362194025243397090285576991638690645681557864175433993031220330613832174397028786536894943705795998771774793872851683988174381407260000736414816111360147487377118195838410820243623315981173750450588696360573795204109202460365135175809186602850523428213750254245837335769679369108687720765909719027418207474929835568976236685982945820988961851256970940888541515965201239361279868326881229298944489400100320655697466852908268503567899906281939659914229466188162059859176390206180402835465978109945463746900159045272354875568021831595393725780725096957393778403667927127454234368979726184492329534891331509564705869037757315114001915139286654324971730053966740034888789577991219202311968005825684064304570189584888782081206401583030247660547046515833875591788206316571743166793218553676901532947112647816543091771705679997912554490962832482195234766878676768453232481231695444601702011583758511249675913311428774263888320129354246237039721698988640608338076288860702067657808605956961597375501025448070952175529827014191734571569623501628184138303721914460586158307331794469307265074795550221922968003354467737714794734024818175737796485132899212546940244066894399149169283131475774745854961248822753604972809389467758566856305041232114816418410641381113555683759197637956016410802666637226384106770166370277967301084053957877847118620692506089765753027520201549737081571559146340936875182343693611485529804327840402428167115147513505209141538355748078700741406362741066553298030181360761844815576922278813381500600242676764974688420981703352219305568379910717769229524116173629993340650817832353674310749135317767795455217748899727039221311379141453021492131976398954223952660948675913956538475854922876066198668423950753367968287225884237315115747566948650075753405033034769747413311251288159553018179963849706828313412660109446327771519856177321018365619744355484222767840295893439926520954890450541718614367431922593006975308685132785481771011664500862332535322965911152767162483674080420754119352664288011614903251757533512774118790799117817012539914174748751592172403421999122874765526981001328626650664352783834735061831256015657557699737237143354529222470864602259456238163080034090081484423872879477744535969842537092870207396789538311564663831214313896173890653506693563017993457011789673198035016179880045378914524540968080674858887339300450062878496426777318344019140401438324155850988182615629240532406591995806909252022197448438984231943194712875075222377118791534431134474189235874193292542585501845646164649851585248969853730537577974017240162028826124167372509814745288601694566789668111164070411900296900640131359420102182767355080015581828038310970146458643840839462372374926952551185273741599090346244248926478672439347961075206217218344933401187882272804539919459074035348300783379281224454055098139810583056521479616437447421739302614186733588343560121102241108252822553446258048543821011204718838807948958242311658665851269544686342818448680366351720062041158036461216420398060797895157843354308127528279940719068393067767127077587851478185693283207143956602760978543003695635079429001879799335375425290805755089397671172120026598522241295369470269238775332607792763513760310340658660464322807502130735249371330105377937709785564512716430097241647178525808251950925545510941409214291583463816601980522341191994498235412933583380275936700730713017089403296342166544692372108190777831550857877581385267049497340585603587355839822244675898904222655974146965040665832186669242757975815358417546893989067267169616641862631627038117230937435244606725648332901592431206945607823069959962963995349347156755725251465941939249871448323781952209187253464775329515403335457266767420126223751234909955352461534696355569018682960343096871120288845239395234244494277333202563383985210209707997629637788738213276704404393124446537531887985239390490666408243928333415248169326913798514002108957834278049940076439814067966573901547898214798517176871615085535447749647764870290044510795743137656394726813085044109172184341160696784363309882978107166637238947811491916700665891484587735329021905083050225177440385975602874281752152116462690203775523054737063099511238724680607413035682689235498404350246449704876019981982848593342034174120276376811919402699140284433285443703187438087134299412146057666553699278415079530655728186159188515900499109057985832186261670394066160665307284055728791255265845167451670656208718503207728564105919789953579762783793412814008372736004955386780186781731798918141036930676174729974534458509759898353620009334291202849866953469425875603112966833153164832905260268429520172611872125530743883905605232324037862193009594077613780689041838538845553371002288530172884569203826206159740957861247107537046205112893136871929896256011163625938612013311845864276152306105192609297808070112725540905497227303638516535240730585341613560624137162582481195096980458755508416506942071688492443175340499627483180956940167784861822833267074657686466072876944906656767629267342179442321527398736568702486324111533633906873425036834174137962889399240775556576053269292875277937160800112551998557436937281451151788724719284544449042339305509195724613419470026396778713798860908147954631154867715026463430829918834391516524183618657618660584653866174576570592446712542671356545025152869161292420862529595275027264858498655194936199569299472517600743168214467239079679222800380473339945967948650914023397086808338914590115808416961615364634102964329053557925073215306736046654176021718350920359838539457071380930617908479801890994763245854323775877339233859906200766335340430407895199422601451030802694719215158883871517963899205214251321801769079110047852030633343677721439141210780247735038838955584461576024467355099104395617458785169087045049803984840415518661226584268969979504489744708864953097450693002455649226457366648051337250186235581822011376513544517443918920540484264937015340545141043259686584113423988726463265145940800954882201563592550540222170872207574974798054619176839824044035095981521413070487185810036136563070535301218033119409203042129728476479265339464915053564857252574712723661492120195374931126590417290593879842017411980462122406137093502867857740531314694654995450770983051504815998498342455302757052827273449466609607247636056275224748446371718463956358704450950904563614682846556678312925826370617374441899945228396035668104650174426308269868457951808101495969453986133703874881023578457413052028385438008898983764885109553922564703270996250188615455458832360632232280414274904467417796146743891710556184226239524567004958643330247147187768392860753939176993402782584444842104805749337607145807283701464521365527827148336786925245307467712697276272046677246021870263855932900898163543277978307575731455168942983537895580517370302541304121969247296767869480496167465022269852022391712144297368275499832835202527746287661923188033245713107489613967501665235519438117441644980831986248066124040702174134982930781530777901709391193588757350192667501235372098152509219926419255091297026973167354383155479083233199664434763381757579538114601656405275884544944263769317549042823512498750647470839498391595522718071141435823815494970336744746094170617391965169715349986738739426734796739353485164984307177445034564087442899122319038348894300207688332237592489614137665501321664723840629055726800973021926113173286488472029904584405436503152766244261881562276210141597150082134584150071889536563665391120104911698546829593217397674594291003223888899365821640190022146030067907762226194187824115647849006586702072372496997177046611510883523403944382826871381207409252285074309602074354306990826905159565683472394391643949989247147935873158205861953218150428545837081442102493706152357085469647624814655764158894765686321761102824634220966839515565222897599623680777047325040406998653208717642277489846901799396855140258613972710905344936715176567608540818628287424464427728329665667042455365191076826530725318275478084934050658529623417810863691596046010183804421678867802301885616837367513890264843604854568149579428453300368462255652452019169874586697592729272302842093419236695834309273883893788364258515174558230111385857738819032843283917268444835503645277996040267576162264372736916524188816895474149669521518038449252290582511170313820330489292431454154295728018362072995215604792811069646056156610213984813919816759251844904449418233872560965399034531197188055865296374035904143445247115120804074763050080851325728870306163834015747837302209161884564796166108307934201602709487776159512647502699265012165416670832818330791746795665493490377173656392066150641203445216719679706687001132297224294165384726829998193693360609440231885734036826899416240640766946234844522048416950994731451947502340638019810576177008044278457172278972479147809022144664732343837508189895175263864506877691978028162409726556612008847602232490746661101602999358377370129861740097970925858129594229966695546577303940872938674785813397107138284502670661806134189132707272779641849488869830273115728575020732668333254862787037065739394445982085445863791811298901280694659268590163895472350527202096475771653471990507604588103639188748694516626273191301415866630493826967536282129658404500757432295017797489765612105518681938058513765895693156587607329300582889420192119360542045473098153437494282814304334962977983281436431758034870997369319317312739743750928256290777619785322497174450601811617269619000466589762024533334239736633951664341937346220907728409553109511807624554221680574693067475770870365179800991787369268094497147380196887228961821334530258847979527265618277500542286947783326581813717837733370906266204836201385275780785761268412538603072527767932148562683359206757628224703947222786789867852737735279028035719934287776514907356357286890362883427031175999259677734681350791045140913891659372582088834844938175929379213281171954793122908058094259444446162092704492675331672647924275782129617573279553646215917218621887872270149397458455235757499004170249708366075147546272044649828970044524903520665953178897258610988239773469711524840149109504402552340178213132095013914222931998933046715517160623089923931239452131704829255624028129659436811914271435218533485154044054399386184471137596603996827308579086022301047895447261084484197954738373925619813094104655508464466145004072561430437545627794257429864170102393840394401873714511357745637636997732478057903205911153259851906531241225892042109439142966355906831100433459585409833001056022918252519619354504061763270938727724463389279029094486917864742395754330492079599172525270996537967929828552085465052903222510871443485834994183912727617124156381337727889961386963286480617650510236596137534063450574943940607947462407342611552371951912271233549845329393524366565913804761005876725335844878950638663774936712840160245068256538540462975578469381932581869855070576718774491385114395044651714401009218559683270828209622808988462452142298905263636268350551555880448073875187208873907156754838696638675180686008470337744883128230274663481090816192388251991571790653052672629715546912086026778134953838161333979522335464489422791043244892399135334327714257582843384020129430197018271863388654434008364874497033603567625724653311190690711579645302370369111123486459830368033021749760740205062471424338118193218449945707994949143517708686456869420774925017788841005216398106280883929133787817302548518596216458139627923635141718324457773456704968525403975108291709234912586456173374652211398306274243998553495769778514261161140111990815463621214992118887191560822114371472972859466932859522051381967368867000472035892969957070437341793383426390812502704237694002281361044029106218802143716177352857758911524727414672747908779878151919850227988620563876855027504078700774165088981038954634684420513688224964433669399771552502588699745576443932069741605999070265715670455522064827907042478183803939650507511004228656182412020621662794800620376208241778682424338105067743586130990445920059493825946184258563650678724320068836282648492656071786141729416587061351330126470797270461544031848456552539517476883295647160070703594594775832051957383260864603598225456218258541480054441624615642809557952913615328904397362585164415817307815565792336960023475715338325471947479379606976502172839519200773186349073904137811869287635124703787484439921100301792536521434519829006113034115444605505476019854639593989713862748033231657050000418740672200887020952537456533902274236975619359908575946683838162332447209168765608093032953429455472915332342957043493304309871618816470014945899255201585030222591267015524406039924959533198419726559081410066697538270685789748953120611012280117602198127480943161933450876868967176573911974735586903233774084064743027855719833608046078850474493121540485069827693453856872682129411415640619459287631748918055757365915046504042612532205739807055156196354024597698343836335250044684700930749404488025646228667681909749388084434948567998724133877009076545215455388595848537535979076712283379329685414484508835205920518166250932142313476024282823083049533550097266401996914898949661152525399180876437936949197943057804374938756125068045835420548267330406479219325242407602535667878278279465647681286934134100128397438420452729890923952500045864038267259978362677437842782870698933107337268130295586103860516170200167749782172837914650507199248059354242569935782494763602033028185544674880875473998401752201398227971426799975757512919774009262387828673561224242483790677590027851598152343248238310567380330350798769340257260032495828173937284415516184479623126649204867069394062119288156955840042665576527614407531609060976504909547837253088452708633040593018344284528391784006996479417452701880554291479118198243524727798548800449999517324624254060213834243383373275594111577183002530369858216733996024576767812873230027749090694714142872618140860289607589890075413285740727111743354078823650492939097468756202868447177135552501684162126251602809615191480466088605124926478626781227215159575752940096027189513995505471994444823265722546225049517371642557822327327088255742528337416659783583457886823718809281510199219302498238370809417156499520178427207418507671105586323340679498243151785346102873243814655934430682395954707503316162272659308783146768215040278962935471876524334918820859910722821965093614527735165025451789678053412570755957721385730731529351556962862956585524261355191515359445341615190460984914536244667156027523269159137587679783301636371561341451065073241564289914371033845047598206482111979440451541957587056478582637130223795804659529377037875182463357446007083008214679090963085290343814222249532383099523979107119486798907547546720174684740444070425984391532515510035534291789835904680953426472623213132178132062892549103951743360997856564324927611482644010846681855466603356798290836131537920159898143114781993566252357177035762861519982825351564528957864081593920135578520534498813878392861262558312594041540184631770864424248850615734380247840924781833390086711579618418706580452465666041569253084832906132190564568318297896795498953063876119968588522604663808249915052868856687156111858176140216323527917365436465185746276173294795879140528651692506344584948575123951449870250904340271496866806376075981439753105174397622237010758644243054360530971606747915571291552625012922401356931746845269510155491970668817800454610356730574367833981790975270287299883677293042003383845733114830591623045512591469428503073281815108660429354034583015649819057125710481428028862362667691669931863022732792885387869736531908122299034687171512312200652743351468828368250068852559786937097493189289477724205282002298246666790333339737423715240640010822720799474634091554416360886157053569370455516431316654650994416548779912388809162175064466752367697855363052816262882004028659403143372188359602344085843355459202744993569925953960281962801659585173459839828746132118091736173676308060621767245688521372875313864347274951613573234262596460300101165062774207073383741278139014027812144783730711450527113410462177376298473458576498291721931401567009151062963908210313069797633626470277485304789033783908031127114644393131549366293600856057857190758113781141862406726273731307313508206681110284975414293796509684432610576794655143752642358489090358240909888746440775895878169203108703402915003079788088447445275904244450982101581251752939485548309709283527993836472204602195015909583133318806264578933484928097632188739890247291122126741596621336809110921630322523104590031558280548600043358487956442344754419305948042741629644337341848789500015582849600939805964956673789822667417235023092826298892754721043145229800349061635623192302639116712835660828966538778116275974258190010791308095300642949538417601851969619832793458997853875646880647378525962086908859870774174548138402869970932478084478450607016845620618703964990653408998653925020233566331281049477463707498832680441711973974981048348790066434790952154210258197348079393323406113229812545781676382174077247164595685549770805545756516315505189769289430223384686234815270719432148304871828550937490910267796997841474255619431695544436646229366873743639182704850398078513014725467354015975503804008133506325938860938294133183843550782630176886639906948420033840707849280197701303374112349387682949335207440150318018814674621491090315913850012679453031046876957714213917721061516860876345276841825183633591330693354333673175536700994912781994477305875615295067853535422257892674241222848495502143101847610157890719210937938917437956968563081679857148258430253023978267595584064943663169337883347606083638877808231404172574162039315827543160592277825010513019885720345360829929505878751727747633686409007768902124366620431181629642395674307491158336156014106757899364403336634500356992657523728831873892458933144543475851714471663556485066769115421172348861344005949640148404642747433663379603732194575920660102881341282714955399574363775623152955023389016812391632459972783173096085026738400742384563087990150946546251148253599016260596746318289078905059602689895134361337370056536632938559308604144566469196885859776457190989565133693402097975810988742818159804807094152392142053526796745509399940437551247165408809038509079722193760011508393178517556317956742229122286033591934571818030681399759279266100978652752218802994729618787558500979495589656064324328563741898652638228719003721047300903046964012970036352551555521287156968706333248800535301881956170798057568214232152687891990714185437741506285870147390639266451998292803697486022372775478720408431467516097728228575811055408911520411271871413470092720003877352340668215287786121369789808740147588234800189481252436752024765948927033022405675966038172615014992996364618469350998619655337270842565160165916129822789494662649689051659952633225919697037600338798549189484720716995688635107788751644843592583379809806646624056812830233034579037593508239825342963383937516617858921348523029802809952939226530879548246721595857070386337505962248879736856056877032287596010998285472000683695384602368155973554754838023837085118258773963641449807160562724506044535126056914363218669459935816348123295124828408336324408991287088311345990020833906794705264206196336574242319740214883294331339679428880828079413097747395441691091394611464508316586804630493174317637229814583793194575693436101266053305959927496905760411121188974034610027598194744115135910213259651319507721510502886480103269086483501246224798858540873145735291679407603149946581453518604633823017717237905881097711541438382157137498212294816410651885286393237267505414489699861902293605983928424982256420861831170001582892019914348332114142056801104373835602293372460267765684377295294493858955797642067413615759130592354219921968154818702108022741963715217027023542988536536145054410215976700123340986741757815592203191644491046930346506458030176559024117137635409858018151606421107318577504996957397771711072611895160782855736444396627192884635206144003537526202403010974070132424258085619948294820561388047408206549458597804430793965328534739087904854569807909914405538485593056963877495575889503955747376419871772319422676313948304953547122991278636092477987423808802403656120350312601227148532695997996101688908369827253804813482925953330282053280509160657986920614013331473813347675325685880174781650357588548155630555184784670997568909005978797349299297543080527883235380735381388301179717734776625031748380671047145989079170168468825119760107645880351527514976240754336595653359173980612387080766734738540355775151892260907402314387724144700236148312713245016467234510346968656786484424537240337542257961606567505614122681771648414610340371995685443982983649187848959283530924570789835037940158727533895739971376485003970850974594847005884290120484464159341844874004969939334401611835072049469064546319400095564281356469519590400791312726826899505205515043979292820265566771327097243481910343875404184954959335117462958267640118394373611816022321043289791461275753272717881940844763785473933403786357033831203666297416302994298976931117612695201894789920382615993466378657776944664137107481376234231863150993864336438102669324176183966251180400494569014915780074400867003347451971534614669693077265690988173355530559509836329762010991068079820214683614171335107293896699939038848941029172852196615661843638502319318228185110109720599776219055238011180540064840230659081794829645734007301834936873622377802865326875914925662346731853358629541084479834200759588037819120832100905704537774973224601529000245261212823185893314373735340534486309357201568992840145728192712855331492755065843711079555681844749923119518703718394588888821102535245296481530136551573006994724079092623666490196738621587336697296922119644357012648863068921525153504231792026570155460972815428306685278954624816419041715236012028678314865211674177785258632746347155916592794085769984205005913386542435228697049909464466085408411633994562542664242055756709417293146110947755862412310529960938219849411037440001324865088249610615245238507152417829428198453678639246371727774565052154705227486916303992096585593810635611507535769902359294864108777921570695762564744084645744332602133905553674805755069216442134546148249717981132769124435862361839980648507313933083070522265310604821262839111086782889830697512231410953990892562468251438446498608608212327373080629498333817012143710648451725712973309570098489434879514111091722160547308074443995065973662279526603648277407619255732499948909931264234763626839580115610715621934244403089411459694142268785135041609514054813109516744283433805552102870015478913316021136510097727088156148652569271848063468578979616974138727191129362027006324383565120411206930073770443477826074658923990655215318370901967494183525220153803495620337680683736765659348394485523629534898080109361442534098833882715698356478304636486466263081358499429470113211283709676500792636625200517978962231192343326709867705845327388813223306344520805960086998964350098638534265177414073335066234574177806241652110260872819314588066570912696269574371371180751881626066178317865563714440822245356405558016368900631709657572350152599046476570534953778962352448794769040604276712931427107869422259883562357643398330222031141248330077677730903335370441288050201988661568818828717622365192850956999644898860927921108220883682091373839670650477898459234598888701407917554865095454089155498371551984900127165964326212685741815826447599277753317653349878201945329673349464501494602281824277110100364371722723255026395227128708020853742857227883233528889356045322506924080215414635406621961826274429960189705543151735476530787253243203794919641526913260928465383044729157117915401413353539577683221108204945956612978171140479029641014083399450557171047162270921983884308469361756597986035035122158852924530858388780642339798797428260898137231666000520715915834932112497410410515722879250178264467745442832817381631406792094182853575491046260192009118892704268062907483082787909086087339427905038433389075566535516699320336588307153308447573185277066678567595338901053624844803417781626969778476851310951710990278634634615112162220196689112774203617067888375725962966846033739778933265918873657943846698738205028765294733517763457653267830715769882999113045834700944027211981198207342023268121252489556579425630896743488023738040887494702940546365970285614326237549547173766139213969581204638406060434270646509398070453160055639884321506708041780914873199666839538441187074343235178543314234654796010764262202962490494135215081316084180542974730316909486267289983641786903866003884513646978447259906713004094192657700666741153139525176379854062137243586381684958295506879874458790660079165206381185184602587434471718167835812924956697293865143738187091147250458849592324043402537485707969393610888004544780093152194871708347438726554498101817692840464093667634552413684949259855686313272014030516762262637942607217974821111197596140156453743332852436823764171439248983684258693982181251663622842013457378701370971781639384648333003051180900686208097038639585986987898489160461718440973420761131395640792746385762819303675646799769186522524206501954089509022360846011371703325053527928715554386224585001599923337022246936151277030379535010432207720881315487605484924411223463416444301142847280471122377329839078802583163446605658428358009737701479309159325156540833263180181081586979261299830075612786702732586455219661936806770883068688800886440770067444229421920526693837082947221867585547733609050648458524071323563256390769830333732294557742928338665332256952280854202346842703082332011214971144880964565505058969584833249350004927816085655249463611308392734432205850158793113601935827064598853620713623205473474627918428249345378865674260335445262185778033113506857349075896740030442573240440640537306465234835356813147047850213648028893600498294508398224869712540447764081561313563871111123117628100156501762371905485176841797205723012340044195487954355473982264577675040966178991698960244803328835480049355163363600113796551058499409610923009511116392280517182623445203246212441037487128650498430885912622824535383052776461010202809071578262046657800825094369762446916102109710520984262907509243896046638080349035442568153794752665328832456091931937708713903224368806086576068753037611093056746977197364514326991805566940162507862893092160313208161779142263219035589099409045484582066224905854397115042835719864948480238918831871766018797829639611377503003649144781847458594732690371815073769083755245587346942401611114312694274281297190099102592444350904916157921957483347799979343568820211688231064818586777469411582400167912255090085591426841270629333968377565954439322003881572698807663867444569574580844958449422184980073196451522838481610371064305595415330706873611578370733639336741332525395545457236862008461707522040907676441971982320055027029570954827268103274501540949945559051131915473578571914801696081377229101252113926330536180211345916141936590757324244319397620472188902083710464026474985654752859467470302800278648846387445873216681793605112374075425175067830002077186885805109839355494432935404370035668062343926108819608780737530675318491648356307256783946025245349939896554291455793647555440797945481526862733687543323253805213437968964983183269187861266615708463032325719302048589964329973851270176788269896851273392986445140281719224045005734200680906185509956164465928272581405872198099164234864546138583306666279147758927514249816047028552975407061491758396615745250743257774086046152500109162095627997280481265931265753240123042564922680021221682136875293419558846246752512419403312717117062396338858787365149651982672968710516007396167592538221595459560389723086343084512313903605655254792369641087035014492829925008632773219762202845902985338303265721466561041913998122474231860868734115528380231262129816294177671802382615605140723869817555938699123423016189643581586758761068878933396518774472693440935139474659860046266452388736217272723436757006157158347275791559487098013877235158498586504360603100894734080384250079812956421925107782667654400333139632604025715351241397849773640758663516009428850768618113025888435738571611262168129033373146213734471133690059465422134774963867372343874273047903030629856344048922722172200280235907369761544038225883745835854796145302854864359163552889231807916459908663476512356856351619464748390678789416139377484669573443727020873811798591321960266073055412914531089507606539998113858675492369010488380206163039972152148518173713663050044405002226793047011264457128985856153100623076429587693622981623490077571142189994070382516433956287491065144855977335649451914778035054209093554440772675123723432603177289406991526374730198394725822447221708870793934068731942767280521730442479629140930515743030916797403345169134354898835838176185016084918404132019332584073717930840347773431761474264546306396859639995261051234896224052873316531092062542404748828107710272177892434614267961808848246815936038477107571819158849047674843418369072226382033619530055061564851315352850276500512304883800545035298158596101608382002260504684412371000616116100511504126908327773474640641185243455972339177932453730264869749503937723383039403564887376763485107061482337582014909936391404315562448845293150477850887660906137804412782873968781261057789121112973059118536062834581539568557202960153789146849737948562759725479408963958159289211113323175110663654861279037569572550632805775603156925628986017888361523595720815757425481636472305004468483467517245862238047978883466415040562788828813391357253592133118483392755800829843827698971928087260361724934038246281232408352939648629512139240777880180885856418239353238008530358554416419687743901429109715344564607013695604662938153328074157723597586347329880496395072226092883162676939484688832931570776310166796793962155191753362286000679741435238461708006992673878471943458437762907687385321133917736608108274472233661449068109812934236353655879728196994924873930576458371605770100570533043342169210670555237827243425263154516935860923287372769091441221726537724441162829395334156528071346143979174497129723536968701907831200014888026155807546709423620068561839169954775134212914794092899470452038738451104781002584002106599396475197779576444541254178904457616879352018880244112130579983317278956829655612774512554390807960287551715949906212910900427245975418468024122352060781921405484823819052943938540808552929927742462015894312793193014356242969639515551042537131683733422738671687839639594752475238738314017271660348750226192485085095899897985573368815428478014397588226098303297279250166703524377489981843297624572587527680000741607639159771541264343333763964284541573061812415899741705051213670398477921432478156108865403100324725047811575787731056645137836592153303424052857762688530035194719537768973776983203747012471795666205484133549469938083697897784494415289940702329639628332310079331541929382970182928470254848539015074497692638118309421962581618707285346855970672593642426081965175409681102453887903808992877689601758585908421250795310205772142072055370712421989440683459261107444580802123412163862929347207245515189154852701969737599984836895954431066097803828776914580184822903079815150981581609989969674148294030582204119280956530329423663741354962921205242635551882720173775044356551982037650348788360531749202000734939432414153222808814562832178365841136947196072138477811260333264783186696813852710646114527808251816554853799746869453520365521544815309870223324195291609904042668737592848009892679854221228695819815512514588118358338764110811367105135024836265992834483157381101748307799110642235367582037379158852877185206111456277911417600285329768190107228505165626247264081293801670757433227006524515430155459450526928640343551528283891727887730516333697139877354078490714481481350956161499697768139106588152780196339586413277718488051128962907746959838916269526671267020060117086437444269083362796367900492638922387606595451152277601607350589153061277975037954742883669197998211923277378243149402462158472074908596298872387506600160569022736363973234069060734359389955054821004812075348948305588559682592637170920137832643263845984414765007262153620040759593013512585952816024309238320266410452833694910618240950613613448138940691068866256765629238171490381422449143041495514594032632457287712511074289633263694308378693287398473415532747021713145633575668457527036743404100871532531885866899231882383800305568961252255329672512756806365406379630959055861580656481658683546887578994416581647566778947534786980219752055460838218559876321533790598422612409392748791387401408463660443809502490434708712746583637075272786337019882624222342451897548400912753138023915477738164132039059156299226114180918330900011220919274753456518736234110840907066944197561773215243191302139009229203317161268781851219739876944656802053883065488296611238053320104359649359078128747307041814907681154224104506389329149172734596049698464069172577947327153179308761154394273285894056117497826201331545563629713609401577051176706804625646208737146091891984822428186300373949690951648288612059062771825119550778750695520174724875937082551403035295139846132282358672544149717569982272057178155308749764726512301606510016424831347538254675414426462744378031675932021261346273904734552370015077268230977130087428787699444159544985566057401421447609463684424708795889463360020046027308622914070002385392814910101817910926530855175394175335926276238052030223431448218270306643571303660960781590405203227930559248609357805526988802484316028048747235818172652065462955921624909994876548889973411887404590120421696471646751994355057501935811696856242719928373764011405598838647268577336600246151943873860814854468908245361502372768168813663599394402097056995697817466798648771180167208486323544175021052945274049855699336119602033136826272114333072468815558126927605909545778299464284398289299295501943231979793310723081295406199282116450536863370375707596842906852470607154523630989681066606570485544246589105367760337613038844398360578418808311044065396447816517143530596328866249647375343854003565039639528733954114758441942292478320789650713429876858586347362208985184064678274262776736480197359147642030516841928633390512594926545835336246152930984447189166429522747820443592110209865665995271535495322672233825195618365654231171074047581950109650082426936072667811267812929977459337780852706904114521507049788469146259165719181693802028729255302208590184144019803559576669371358209221627894987112251268655674589531377798083410436606829675127998505678014996723649667555210565155188871688881763715320288081667183747825786299042035808583900359304074345895607020207895012598030921946646479267784073963968489973903784732004113755790167812176192141550524288940476460982911494594185324948198842045912308865939175094427993659010677404127548428272530680661719591790989844214440091187964615960917176368817239842735306980644659266829893576817852097145956261292258350243056692615202103946678620467801563975793952621310096070397036066503517283491531385848035898226597486327358852113144252750338589816878307607557942734387725698125636639044621284032233084019453080349399258290806662604418523359475288238246561855498661153406063273258007154139332456155507817132640980441157418364348358330627042004888772473853041919016828031816252739999171378707300029350105550495368073501228149946820272696972683264152800889241635808787420885338843791764489456731781163526798742027245141633236838512486729434973229083743653462744314529918112834158125766202645731259977047948173289061254654124145828568817389086960882801035132504778455862557531820597820968040171629280207798138105454642660385165969644087698663305447620035505724154823973278228247706788369652432185040777002716704282141109304209307185766021621456390808464646489725614488679401904188512000454712312828822561186600233492913095620450084019150013356874656964736595280495306079404636934464678327567940016786612442980770256745981347987509775301036546761665355300462154924064716583027331786994627237507665320685016136542863524342666847368366323261723422802249296113855014772550616316961575664044602755965927571922392493720104393673033502384967636469654267876568516447761578048175225046444526268753764459776302802953216116192275104421567618126112243616672115671055551745704975320149374501029716973270825810218375903132754284153831219306739048938910772666055414371499239906010420669781654999723540476332305724235922879470400272233043864559974045719411940312763285096915705253296807563525842450129453184581802255976795131848751509877970676448906152413678957208479038194996379578223168763354040324715128800011778326363281078545387422282990588239873612504524700460724889155143464420707402111974014574511690160916340383561381455854976128105701517747561421575704664910051311842812839056486481770981035242282623942629942105850368905320212031410068959585699109206829733365637622570110418234841171700155247434632562737301566487329591649679714502971537368960421594604931367607780003932425449399862706708238390510566947136915854695401632902571582528282556155175769438761542956396832112367440385503451420461175817746981652765030540712679665990667959671013375092252714397971586361583723382830815467766144326101247221992097469911998333146771093131155822247001756339656745795966358327183860910429545924529231458915222774896733310585342554687282477568526000358385514609133744939994789981878944580243098683744209970737477980388013887075940299980759540102057581145359092601629357023730814598732671334915624719410600390621822790161367394698745867195683383675920554400540408982005233545780368384791626074558063082422088660106014368398896279427332416312846565644135740934312047455343296755771638129106027989888642049115078766656648388977854017912646782609424588419015220353746007420637484345764306993290941865993414506994376737018923919528468428764310478672339461662816521368474163056919425967962631081265792096448043336281547780287226376232812690408627081207981986241247468036691003625948313222374359202347180464662613622467231932284203079038069143525043326957056945082138874870073644175669737026721204902869102692867961732792908240281038239490422049547869315628554037463404222023678898300710946341623940597378538549157027514966058086277544753532133760552660073965225546223001958956530358201123841992751824562538754152015242897135261873053568433810708118930066857318180685360739840544255499428055116234261252117920565807011755743223964063162679579094124706584207813733826287495256699283189642098403710963270611164822280882862811627182880162939996064430529854612074412887091606474406272385307152726669611568382730776756980601152864664830443669472799508623587290723887232939834474104414394918597532210493956059303403081832759282600494715513339065165333884974885254645723690453688367780539606298025143724378047219899663515158977101874423685163418070877422140926332249263935791312398911425665955603200239678217781017340832245719818422504945789003703414847297946802490393210643025922180746454616952664233141241171225109213653338088085792495933505719945061583413998809368603556818384315608143545761914018041306359557724263288388042959936686546351176121602193339795359156635161058840040228102802932045821679227604711111914343364067017150247404110722875989680354766807569403445481659399996781566984845062881095958248431163643591784566247335637356650228075216043232815814690179423791293250621352564830286341772465278894540036928769311878407757907403609790312437455575688135094128129535159412246017436210387605910654992317839483032615755811109744282677379435453146003461458672861642869726690746784369426422321859610475050998785224240987411947680981334036838746179454536553762915151171570742451754237673954914082798828436418318110946493378728325889130151555935164573691588564061317570676293843309841276341820612751996785099350605316392047543897203805744043870028234893042052307696274712719451316783435732333801350480001047992773605518907981144790320139646328158622178002355483268317752000332023809934833096117858517797358824389465371369830147672268924003983954763725957381988870009586266623171338406021837380808498310627321463321051952686772490514080599563981524339654678159108694317320702009764518436827171459058547663133341159565542238154108390302217249980686245510402094373143695830681715976254355387184982376427364629204919164544828153617981796836986019056192770588057484374207609711852238012312915320617548590903267501387133701557793934945111200458097819728766632476545340734881704266414145529820032160083491755619384835476163084482500322612398433068072129144551077435627438975364583282324603228119347137355763622268550015767225152345232226490105401435698662595399616054951557837225502066643028021629552335490170889863298804500818843567156256980496907567596831075589382815413149758127451884312358885875757153185655047557625908425145434867676731711810725656878416850382593676774675390709438151728768826659446961015816161760410100935987820448077321196589642592555410489291681952892329920138129380457588897582405891015817670058461414347030907686527330627929785984983825640054851123321474738738846531998920520383353711234229181233479546606449546579942064656578111306025188998546052535527542377432839713216772915629605817859797692969231155655424253183124107423808624375817873309275088586729604049433985361371341545356098399659261434901565728634629248713680964564392104962641086259649643589502045026891879389785917579513087669621924398709473782117648652506874618377735958123589656213185362034965595358844680095444711933066103124368620844808320740687049669803643415682370639126302012833400756676654583761832295169660467839018478354924413328264225311088580148714045684221615270762669020183922643047740892609227232989675325011585050274678978571547881210340480545630778195939634388912128595614971464275813499693026803054258048486876440845843687922427884852645671621671635210846776722514439347438025800381920309711159468188754219267477746156629744855703334649080331626025500699934392399288872919048431786934036176765436863578229402763769257267226178713450441972051159687178575789483060617462887376426972592871768589765202191659943902390414358445587829661939447953449672531644193785459131281325697309852775924335932850540273077227271089993848773154550628907570208637309401973303136120626507619477733852660668070839880975529292574159152123413517442883928090361136209199592994760238304368030628284008672548186670496557995592986012983721113235693941947480218452353768698772545667893013787218024474851963175089289091690913573940469672252656426555612915130846789505436914202150773913024769030823706426870960811450014525757441559084285537512693354110456239275206776082067053542172060883775412796414446595946556239255231500314969972633939823246699950892797203133423747766870483894912450542373212489813674702443788169174961187307438856380358930908862580078477376643197197278055121003297765340250722560523475993974711595132092411633236419999886421999529025819925865060856266190587457965279656899709343949722171936505467732023377637605751790501174466516197368463825438492446689250063439609851603054062631377928994529551557550025828588472828022871522433233700970368186004620851980804077861279739906795365599879012858338662913397268520606515378372884410392094148012669159194504242193655409854321773986896364995048297017803774311220899055731927533415182455113626702681240275627882373136055838997842306023988865195657524821082984513186431623917355443243610246549805406854379791222169525742826093229605768967457836610410509551360702096225104476883739909986489428622638385100804749227886601402673727901320755371982890513119848853245415574993655991779304067226817569866150393594417056147444665670240440051165179225555387747595876614893762113624178804287025214301933911808737856691118303581268546359743892422614430106307739964522295092045792427876643966621418186974191892700312843233263552932693943860525497088011582185018553395209780286415982969351650704067484011427451511171927467728558116776356778277640125473493038602368388414715027553805638906670426526084218080722779278426830940337979258016606583936143599603365203688089533630303809553186906190910311635661772526493502152657407910964231747566558005692278099070817607506079598244059521453875311427390396698033886691125045181601799724928158205306913263816458701020062778812695888642615362358230252849600160052990326422264480331397863576638635937458938113849472551367509152627237430893925946329054117707736184182662707404388511381341282798524732853257213463990053003335995493762241160107839940597487535055641505274008330526294589207596120271860328330563278418929275053241901453754895456265126901548440944871476641513641656108568236301889711691908482928999635538649813173073296997371138122450253081006978207977496960095961043832503597134370095989648182270071653972858050121027351390928698778303841404512888999737536338583599302076727455695002932540684280650171522294092223411069730369898129838174457482851295206851810119801090159436728199591576881709612622681983350867845486025484387660099591361043890304563811889974247518761479643670972778624675547847204144708504036646639410950630800419426392098808454275944634129578808872441319828593695447053631609250715671455912275810960388298807390493467715797477681412160700305575132567792835749141473994238170307110889932818518916064897640116839411215220276219930376499292522872374892737477910525005085404184316451678131002465642797403166272084493385035079550640919886609624621966467605997510041632811285695126558753978162725642224167418924582462639978076244268480310109517198274078279781477690690065434132521069442376956748191857227430706840659585363941193117463359107065107333900431468525725911001937257985990493457722880640320190780683675516226834383053263570170413975194352851561019967524826682214849822045163646172510444986967919894273758505248934891247534430695676926706881759120322246106461198618543761269608346834374068605543556194768919819343754468119567240311557969622878538033761844679642202360253477794296032078418918648133224902312993496745369206983892744411019458846561671133489769128875194489951663681475365902481153089870581927861800680729288719776991554073638877568038397019317581204037708608724282918103283962398622623718017710530503505805331143998877622557874755103889340704919817540633800580738265058137798131083888083440246801627760413176202625344207948504218321037582160196040724490552494970269280779493428437770459576198124095799534087058810067132479481668747407250499368099391050466885868373615603964368268552902686033385774102254070582626717387378378007273276625433306634773508683397130632773075103507357374755794052680287804249594361581977992908366094013584544114643174641748440566319060539550615849966331922342570234038362550013197477091481019841527763289230676491214451990841378773756556757671174286247728134655805506473134358512199852611199886352987011167966842620795229142473551725161316172419426673722255228744798897702202580352790711231546770038729661505774531531745583351536899148840715417092465572223863349172054242202148689388978063261248056801900816686620804511352802952792273534240308286815329262357044435683384092607896930427273274762654505703129216779890858056011431721734199930470430303377145161110934512212714268831629281540152407901214712858251729190881151163729440003473980899649977902706675303083933368233262372588469270744659496162804021741100872486662717929719790786367038299161985099242572592211253642511096418929643348489870111227575114055203288087310109976100945704067429975547606557710564764294368133021173110617760300863338191857895370706114501259044364167607443186955539193066721865161989923844934970372009288484293572963197088852623968918114524257599500803583512392814257070791323311648665246092703405970301475081269955783747339712777922720712581653298141521227103012005897100596804491876329936961158520412482623685339987387688116765603600601481286781504536268861884687099079318129017620995732478791208240118559546139884146426785459880998007099837827638810548681257647649666273928462738296323642458688405176995254897885519319188160041194463747339531447967665853993857495023636568176289121537987730070613810019884961486354885360698908473588129853313856061572107721823195547545382796362001639531918146004813327144119807109883227034411837705887749229154890190994542857802353186134323901041332649133747328119324037586224163752052646600302734938540218656372532396838553182820839008998387201805594794974498266693040632035177130226408682773738298852523039859181888095968792215013173386901945826445856243741300883706410909974011096103562351404245526907852430036072883714356850354494263264831609841873812359283253068473668324675208467371552015557651439079829205706820241658622009891471530207414052734630477385242487929913236801951010659387414404158824831078441004401057165922511329379641520428716270327614271886003049650693995145555866596577681413872178530591535507606363301816225645403444702125473787746427095711574466714327248654082589449136972446060734369710566801063215137924666852719003999193182873562976482985128716446657876627812077950646561650311044856149563518031624193042596745236038239782004594247682820877734082473952092715104563063483740687775435901389584965949527149364259619227846061699062218418213312560275219779661560624663413612516204508784692569989271531265636329883032793828182058802179399237208560879466031349285119288796900559265032223884597855951524388183049251989672667696451641615417722742984781623849960653171596934620070584712470619836961156525505954848896115870933618973031022778305005220558250080378112146183161062194472812733169628232192231076940268401087920227638498382294532850338967866163283949335282617470627851069168223637929795493998306539080561361585344652490493674640726586029117776120556471619726425472045912280736917224063357195656445973384048125426886547751545719260910262546683983870650433934256522751529759114297502260021109600902177246713664857171439759138437693434020330896595407959168412814848980041398848252549926210460942355872222339091425479219803381708894995487050697828279388696165227510959354055213096340601550715749878702741260267857621608432997105730729408643110862486013049773189169320800325817322774159096292740576870903423757637403023670243222838493448960027511637370699117378951132177575194092952699217712247767216131267798168234509036363944479060274807508763332892308141363497278798840394873769918668347722136055354080527927932437860288504603674316256993019780680980163438943848894741887275640165838532180202204965697135554125500473470020945467926381485373158673243598781400956378828953446796920779549386016309047313826533866092929043972967781950104746839436635563269009625016416639872189562989989509934807623437726823799204579803615896658734598980851226680054246613107840844909536764823644906805581501027867022426763938967367693681068960255725630602633398443247477085019253828740052709578349964394036014093422635855197478103927905467035963689138057392531970294462831488622554037132754283758103106620928759667450806312798736815693407283918767436899243350852006795336334907915201440218729401706772796482239373132088026792709949883603347464922240439925193351274914090550757961811499159529042529082978708353345365191024640898860402674990128326747419053876017008159611266662049821994515054008338633146414519506220931079200432223121912773626705368265094630673584892781239915143990662584871610024313408360699085031580872004804865256665839742967095224565269393565678589038408876475809480321038451313511369027316742605459975548994645253406619681533205510754529671110379318577549588132586185061098685492708581974081172894939621527430647910256256286014709661066721411458539115480597422822230388987912614752953598552910981601302688367204486359940801353366528887601955804533818632486748788483872641538181337577324511407857618249276137251936674297354750558920139116723708181577837204422349709032549706075012686920257594451997926079005424858505805092784162119421958481537419623891830045989660500519333973084032890618116664791513473697897272614603584299133225412756022494204318044725094186764586170249061371882801525108057942372081237472560887735794453451776427579028012450734227570962145508168272443719920905842488610646262919449202135261100168726877210840781145419024032057377693261825262966786391218110739070504370264343984638637229117186808496584379921509847109410340016559844945222928353375601842861610774660970267029173130297424872145881199049413956081552557600761409031520242441544246442763164307588178497173352875104019325716087521198099789407547510463661104026538271942525160028429180701941151167483690047813163573899357681686332304648383004516513955320068786296887004195764776532081582865306170042618662997801321367930597026275859478156921087366836793009564938562929117654500511924717633551590884402605730640200273792844328592344775067709557657479579154052130049105604606087000901810284378683955745456528306308343192780160286154494126709962237910050375588310338447234066179074718844759186244321642230056567379642503392951367711884793043644036521270009858864763303788272483085556789830559938218044265388934293959677268909038750614458116665735745581019094025315358627640134587557258346539127873630971354016567341773520353944816785445864772523300889382238970608943713974916368934997200222530712034475069256199742220699589763757237038055190626891632004060872899572165372676710775442522307331630088498938785376848965786159197950499313527105561038263528648374598983986142120950935386755716473427390112922878449143280195554791560398391519066823061305761446368939344284281675138623304426075753658770300884792981124537403413175857658301800815126389301200764202195637528296479446703370807318811304954195091364012201470602813717608640084172671456629319418966701662222693591445947176932703407175742640583741462910362756364271026584476942613222724966369477588600428317007112020234255440511436562810388268687961876486811557486838930429714330465866283427830071944913888795209387991025066245733995575557183422978840966888065575454731970082561272300187313546120338205009648843410839536164667454783224422037816805441092294127553219938938249770977618771502370896436623818142555770929504079587395560662310388328016242694876711809471548351768224062721513107622904725105898479472503187974175956897762437082281063223690932378778850703167588730499646170440678686735179411886939783133159122497155265207470815929172455151843499751646720655500771582646494176639736726044678524988612969009851727357418912034349275099364762753752872414439669687478916488880483180841642575682518646095927154073027595684982415231243762097250590211583310201031026340902633154392403963643957021737341097049264576379118161501874940291325768519641662037778203419472161643304102103829861513873564914307445712763241523526884950317432575136376003383760417591224404085223050113433697763594992709679574020502622532859253172274984971037796055671092742830157524904732524854101768953220083692151954943279730308529840108561282256353445015053104719543698222496998264090970613278091057431065268218782734790842108804603540613149692401506992303480297084287373627807090164294065353888765112919937046581264649827382901402170832071871256637438807200597849885267626511220188001088810607628840203966857485620448555097023521107725074892858122849578351714263375724033495966131748852382013802820768321112853648356426795446891158104128626037912331856073977064604820074381855781159288619332232135622426903095270494256477976970257045069902344085649904635539190000113811820188684751827628093927783959635854799082017740010343182919231558773036325011619737063944251966379498261340688025394201958767381017341487931443080702991525531498809718834266711421519937956343414296426763881587862221129508950245768268688174261358560695761303945344601813189262987488966691129432330734733291237950237591293414717600233478253925775329919823905763821600961954624978286613074559590972414592582562157777449670839209570492778522922637783332132570222737207393951695297771543340100380895559969552875231690676032842994036757305649652455076792772960408780461853278885485557374015504940128433829633838230508597878236855475633774952737687949609039623346925655344809576725458965308606819113785844790275278397115727593543776674445940547331822853069960755897815054574544819044199478445367076917316343945642806687948534185943249446804364090082873196765184415054260659705914123792827949804015749482647509930061488846339524630707367655390807462781682584211913216641456612144204501575929363811333877271152718524950608595922212330871691079767937670139377029324554886372020466684651170935841841998635714824101297926874258539361451769966558441397143708377853608829241633222960689747752393261535480758120840992716546694160865387343280967475620395714014891840181409162670917441316011245905038562325662289159799202425043717357113212529661208942147839939544064208611438123725306650081776622489740508648307768715271570074584559784656301465349522401831487463882288102441782870188678272074315672722649071282246877090933072810285613019557670330072387077241890887089508021703301552915999297294543386843905678675707787505583175710727721398154820608541747146341592096292480358861375335629576857185067993401124219532245235548717423243419837308118862765851275100432963231489558423407056810458922181812169544616198633325326846468046965133997058829808855536092450380356285711911800650525775460134837080030607876380585946304455767187707434474590481886711920969833141748500248027201142898323826831664663671897542166312901102924101021313633947515921289557428742726406790275250566657890986633040919144486703414051800342624398984410996924981087520951012249132980136052276748089150982745388589368285687877237058823176872908046793676072909115641938548015858267846047107401008461657298651342624917095358539002788990257569998310890858873078011905360199248259313411305469214553442120696689992930966510829990517096294894584732575277748917651310292338349309805193283849905158514169991071473550096477378569291311753564407766830227950551248144518314699314294041548486192167135627594685210591481724232292094481598616568873532686516116719786647319878625696620976361484439703577786476446808646688653219463287441672603316970533176322738033848905680598601169406322978497165204469149414373660153096070767289537072024064928613705726319098278760550592908401248594699419065419044994694705763409751236923114640182283215704293209787458138703122939488250846529915813686531696053883699492338549897150094152031081439116246641593713089742469732399627051108986653081685510851246748278224597986074332554912556591728398183073582708766403134374909173695819523722386237224639877099676360425279554404165328697609961478175342036815338375796146440258445520362169653058729794973494002159316314625844342049800404921881350239518258759812109978871750806094825630713828781841255827019415222352750072566180793703188422439890061907114284435914430129390882727411221600319754603692377578239340256332000567083908632486543084357670466143998417609362979425398277043427699965818638050321119882120039758655313185393590256976278771615942468442831855762415234934410910243486515980483341596434320658954875379034435685289298055140373246362863888391166042698722516242780760984379469053999911834511897442754590586430458891474606465605627479574479935174889844886323011482441402546805758715104359364695745903983561969504243762245400731710588732880566144211865318632191655092896024368519571844164331514153692519869820030396465002761339495739196725805445242212873867896332807780389245406467440741595325663254166262534756734993549050084678298126975904311217421404740128610603927640982524157064321680488724494578968913824937807614951887975228405773240625221444410667261722886072458314286924110866067407141786051280645127296310724643796512233649704278849934806986377367155850801664102302397169291403554133395866559922386871155456012353679240187957498544219186282759203350036337343416807665697753443944491095658050826694350675186436286994902477543283838215439391583394786717304537715371744414467525134065142767956347351540761119712915137667329641895516661728032048376820293454881212162880040149806780784867521671722856775648516732447157504089307457325417548985168964323241195720085896333265341947576318796158700659508791648583664727232281310755136844494905860830877137340928293193843612729639887429111467656406761466105318095476069659719715888416762385296396149538506942896090313704808453356663938377999823350559946942970969721474411736949536358434042236124477183736966024170842290689726523170157100094531649600451692890483534803558631391178057576383830909461163048347678196500669637474532630988083681784698766083161604983007114357103849872475041984438384164907115018765523320755179933454672639738102881654068959627369687082105149433096107703859336396745069257526507015674231113179155138551367449725829468770812357256763831561530236049895756171853300700380648571142294122345163899227134188988439293633318629615754773807316121441774563846755634706552280309864564898562205837566341607086886026729858293003143552522391276934931091758450317723541247689498847466129563554510951059456014301730578399286423583087285578376100132866253221859698153996184469293007394025856470314374511108311586021711822590238623821370827080912524381447762330504059980909564208454678257769283861803323635104251182077046246176546919690168331633654216885529407367498354190279782192044049102198906918244826660951058854161641931886802789723656558678440292327795643868980890010182240907172399772699132743611342630037113118725740289402777516084689308787193500236460574965022940932558435086074938455397195277452975849202645108306933019394785871913427364746152888199833047446525965137272837813737562968992885647451836461216231419478715807705428096677419519432438257520364935852784337939236436035670836132074913749742661501202734618233889361696329098730207534027945042983153534169610321998406701826575108626866167776264565189691927918640636312577891699634604326909859522675628216539491305103555425289017603753578266516078856746996089956241194121147876566304044620077331742618505527669194319522630412778503725636856497672172149147879769403373689968896203328351331587550203952250004854724172224152213222584385124640699018171901562267606661152287204702898271373112516859467537567867266458522872993249512206827231905809146463929846713536427839898293147511192853026626871438305264625255121325626819807144432008225887082577689968243752068087083045500177547306149259170080218188243760756743984260288711131588669294318906577854579324210809305851903392600482003677577277178296362867895355901515904271729151365987288053402783462476232049494625839748392853623033092960541033932146223591611304631858746257550080143107476689627184731331898638381014977678406012637533867398234137694632842949229605583417379695847703168356569051818085164887589600940074029604157794913327864032098562302195544529365774911710683196801952031867535589908845139085372392356464647854504817914419186351434406674516013734193822724818644301728788946507105695690745539517785648912193209242472344028532271120317701965328713256470418955160333056118059010064883130413166117456045994384015184580468796743286778810551162162550134336518048145550182950146998328686997098933865091464497756920525834973714859071141110070008039726442286079545769084999164166597025387801280852615606879070357819702029924520539980153699386375626668040234690880996202706419799807292979791714829279322626402558685935391446724147244781584484342065869011796351264793232217606805968066393051890163962264232843273475198772494049007547220614728727138360350370947000807031199347240179142360334759919830136362252219798753670713544182895936797665297857617959219719341469833762482668941821515495703323764124832081336985600572189608661084083630938639002702913122745793150285273588896097541313808232227202047350771364653490530537241105305074819536155695468295431220135052204995695199432156371555547897352498557662568287713221155712189427998093494769262607707467124003470714136659768402707562594108147329364235959150997655997891316612582771006584571472712716541795728974975749546252872980183949782538715500888402771443979337897026505764677208572901956447385785655548694676574607438348361537978530184523209959531953494533354328783549351833276356745992976023119097421213660964790564672076548486403256297872848295629857103823839265693432897225451573637994612004331302190395922546321480681649226870908506016040366640529735249654722298391316367950641915928824342531776627425012606777464644093335579161804075968599770241787879896338021664670934586033432334381743906719346714514005583003429078764074681621629427890045862035360259257617214944619705697008204672579204672398640391892737283885168351355234772749243324222004225890695486433719953879074573201493861454333653824240225378720887257454933426256025616857720338899908202179564909516148375115375744512446344540355941196066335417737787081570019113483088147379896687744214182289391988007919552393928850926539668779437291228126074631844631842637692928760910568030274573582749386487467311211592258970779734623773830300906526909603541893355328627686428456921188371557610160301366447257537335363959909778533535912835987972247313009243552902019040858122522817221548334506979599603378544318543503958093161196700921713524718996259245536132976850334310785362598069728048545092286275639754131904692823930813268346684656043094377669142751442074959569232016147918571970984151156013689479419155124424256779030716868818828408656129290792701282046155509464000394736431419751062369621793730307283449937829273683717926995921386785173224948688740105591068371154901050644018570022109418876096992236210295333961506677014258853333773266473973096508827330647563664411412807509915152716228911645315355717326229180463439027166563245164580715212505272910695376549185854869413293186155299764597734749974518717609027361291115743192954557902919626553697615492791902552580123788912094514177810318501482016994274505528003708125469027983948924383058318884175593466059616263516674474071284642165940700976816128388024001097271155431480098497731274746951611851639097665769763021655177051484034122693708081710559067432974476125787091403949453357690252454053970304436361452711920941235875479131225595645900406195354232766638471614171159964613372123266337674007891027433063991576451574506850274264523378957084583416392024419394255675117150337192963231436170145509499860196063546762994439048441395064802047133892146741810944900247759414117931369650539837559857349357980479853591329846517329208065947355022254174239324938622689193769689356082517285993397182854740002538061880860857053274090524548446770764042944239285671802277541709137211293972258590429106808625559029158376794629478765406728229744951916937885212995299541648456459265689492060650603654853424623593288503791466467983735021720612809109713273620876412848130761802848271994641626410531641834928365866531718488244069800541339404806494174662185291765487743074770613823854461579467434242149527058959671424879907975555208966915634668604124541217107806778647448389285857448878480479260891657576392327842017277029850345237436574204332521922532559380096144501341155025202648919238254991395718680395132220624722779769015138349687402710539305512982974777685821737863052174794824644192296656049108898744207408988707254538698329003740651342872775685532941022411793024316175908907974387200221431885895545443762025619648698680081122066280233779169647262322656794045821144190258529995133840168900792671407495915693617194636405614791059636933702037456994604990198220185694927778007279625856870987469237570258287859377348155298402908822131302803073754121151782939210798576341678621778299532190276605286840320941152632604770956113972600603204794543919272633158639448175481170569830833702133967440555689756494019123798984247116122965808523202516630446878262170405301448538204111815629823216462399407806570394084076582708989568426194234221684643260316972414218927657042672289185496252531054727759893950434895732352921833931032661928243073980920692232734217407361847022429583953557503556507073291028773369728188723197846551815901728528699111392585449075118611075850984332103244720614139199946601085056301564308108479998752255145740463688911505966186293150261956253907336467226750868937828332571686776751135419369932363571735621827971373888571705732409318498805519093697192421500932592585161359454809103417594166797934649731764419847121422001664673464045610426987530856356269899253642706071205830903529115546695681361836677713031343490006437865117726592770106095017975933996324113836988959819376759801934180590623963930967895696957118563276334980344674864988118095243356197785328682359344937899375931484141246232989891283429546615715125876542318765653438529481739170202620024806810945087268541694674771100096343773239988195181170797515988360567204890554338142530572772967357879850015095374233339986321157992219931781098756288949804331498951280147116607742935267124914859933389576544423917677558419448302040816927846823814061003124858138053966546685602819369687069515950145163303387095227847223590118101879846032028007356141131840755085898407493705407528143756384710874242727356087350352884631927464204105979929868934068155373313061629615542508303077183754435506457581017897739611895384740630773993209229869122471063189133876308950367780813045048224471953345107965011129118498685512600790663190978346399346267130957530653821938584928553130423666692197180028695316440563586067618584239747710713850558777184340877206181075642204768130839873262870243548174010388572322490247976776697222755737795850351502863917233979657370639707037413892201362825519113032999544866760286189945321167996982470986821467958455963631868499263534954944748803698145389525557213348225643493842338608775208978177562808817919101375663872605182689864788371315860023053575099178564263729841762975430996311282333658131125597583241910903542624813295632633751388381269167074766292775089011913218450664513782316657663897132987944763349973330164086925554142848595153288754365227827012310683742132244100799956447376417531663212565767842957990378688490220059156145369588322995311609370149082232006752964029068447513402577428460109619025453003316274888326453172907969209287011705289673804019050571026368888617565813763105903408636909542269549124479478915917596144761253821346597631637758497348677899714031971241220515254625745669411229395401810633691212624015597976696168793342747268284202592098120150978043671331913299320563948181040003262869638985171809135009469992623857191797814062403763961717269137381633335850359811928338488706631682347452098189895534614756905509520527144770609038063385071848089747948510565660031371335670438884641869529968669548946189925398427154516070256542794565207916030773574851485612701316089022680052825697630123833185670589681647580684149607419870507818995445208401261974838135910780515560145144248007067219194541014065534075973888089195630506537526250363662949621079407365571947939081934302798597150053167682766801429795421690930081649706503347627301274616310047229732083174314140777447755461413102467853161796177289695698001201036171782303235615482908119347888465245253557132962745292610749310338695490447619455595614183753341307525503940296386888916254739036331908680887129373169961503182609388575073146865164872044436472453104644991941734847440000951569028595951820061889476515572594943247784554677527257657550610719798473585227682657754239939894405859503689624922744228759578615505762360617478738630291586450998067547292358920188043616805324293980378342575602952270033137640591753946884159390444705034064196489629578689382445733565049469377878940901734687100886903077105533101173947868114285440913397271915417842609250542211523344561584650513883028872169227090130187116444953542498116698680266910470985569200514219703556876318721233879632173269820418392562602324429462088920094399719559348155709191414816199247361611999126713666011835940131606218720057853538504729883685870743444323623227210338910880789055728730530689391329173018177017491111391582514594563660753294699974938624781301700853166725159941123653469601965048816445770856757048696754580638659772103950438618927310283921358129718540415326152594098982814507094370940491340681807242151524964543793014492041480191207292333887667945653719550794449177541176008204071005244716819192526699288141593175948095567877843379924465964275069035298549235024176389244893271848854494454295041266669481915270751384840566898788183200264678128390335708023690590531278385201474826286540815691709918286374400749375865248190649030508912099455030302080622650013427665569630646446587538484017478978196402943392367891784850284933471158315868977618395030917533158827613785631359243751323269837529130311277772452076949718088736283729693702975419331703528834396324660442719848908244819261660417775229299956598646667435176296287348510210769324682965712212959304430421072917633629570521504721239798878625445926283695529143765605877986946607815214939894873397048633738473928313808837682790103698915769928335559101085931865875123986970510681398656541060046690154321395480323709413810266912632856974697049056770749526211746859864499395159199362354279863600004343397715872144670311816701492353043913322751975064360884569542446243746437260859247451527409421774983140363158064000529703512008220774327347936461212078851462875276740355411981574762909287318214820180282339825178949036367352629413603301624230788818911284555387183465442989683311554079485454099022221285734786794638905285113764372575136619939297593856037621680074484269174029429258458725784452950540460668143744908539311770301663592712167947476409180714333137447045095559797958903726553447795842819718800766272414294131875547875704300423808285368694017565588036404159511161143474745660321463599469305130847185731064907905688023778276812996846344922961421565474287122659446938103234752465785489221294613525806612513859407227896010877799474847771443515281150803213461622684822104542674243708329035932999482191871010843167490091591082731609700478692610667029153594202600312250646762439590018628240288756015264286082380881604293569853093636971052132864500295344002247290926176577849377476126473239744376313845575723955251679440913083537524714466662582856861824758455874111974618851916042513074665100023203431905115657328382013784100107898576364604874192744212877419438262095397414442492007420755250411276912915509244605848240436470918168106948407219644889089835423061190356837030637960664699527641926114192617553769889205280459788943569415108196306995628812271254102098896779502301395087370643364879464427156580605198494300078700818603994891632390260881693399601991024181672257489842742881889531747460226931255966156069206742544795522586034263674800994806821984481625161658637320946810395226921744537622413228839288649836176079977936487296531887909150596427824125860271467236410200723025727057123414262759982776693509240603796017942484941184857141099800015628278857656730029007523683733088454126685766415178653760016591125706854491786046128799606407946413006358074686462710343223850705726605482566950106994222832081878675438650667551399705421568082176209859605051889670120754848296476766534051720423043379924087499123823519744270535655976893450192679821820920203085304477577069572821936223129054202918750824752689384988352272996791575146821766851772784463301309286057556374689565447350874830980491118151313819266093119668111207856757382150887428365540569878261534091829762959373726034341142362571724821674938854513513641570139992572073288903179980125369197729998254495670273498855350047705073190607010761469705366097717122451896149618672162040881931896137863805619621504482521925228659149219863225949793685839761353567507880218679503281798404705670464986517643797518745091101544590525267305674052096309561614017979613491788065986982534448625734623991115597956876112710988645128170809616199037877239938779712554332792716717251341759074911606270695046963837604344041089018959634062304700950352164614717910914452935184533982244717986152388764753641419791013626146819263626080724229007759037030920293330015481823406250196031780005124245572120818395948744694661493232542532023508879706478264189764338578354712870981522632374869274504429405682055562557343007683464895178715465390297203039512922812050919296353027009155016719358277414979539500232724931729154420652616455050667095934830475172060800792004650162597615189256833018974681455375194538731371129030932516133679821890441119136052781548580332243181202557703120885337891987431163136012685974243063985569621419569751016556007773722834447203064273466361940411228464282775141186155507245419975750814364648327218992488976585647808303292660039015802427295675632991644608400012865106240536944142271702236371116764484032595862182735380075894079624665434664215032795972792338079827499387700529734476281125313957981745507748136362282711185192906111284933586970970455051990951046676058036029510323795257184691177549527615436577110004616638548376989640047433660711816387024325798214486891974798767568814570531085407316158226216945586022051269291947777395324590799634270783972817732297863736143331090220278253083662300846758582356230146394028039931057174765477924226000376954525277273263024861989845520593601295151140807742246461266262678832473237886739203357716583992951017110476747294019604222933072933542090803425403560525348110512319146274852799941801488553561761345105827657540529127652150680799340771497313180232740710407640655127545551170535669278774978304231426489246745971883616816204356404758554580350263478756625342653627480364903661762447596037533057194449892217770988595710287920324015608180227491713540197392330539174774949882723955074326404084862967627016168964873699214985239937646532884823209565032924253337249919177063802839715933339688439891139737084986239250207234766627176332474563079784128288783184011480944842754758581071976648577259567175778957032379547623390910022563212568113934547216759313626455298582295215161840135695526785236443831419639917773826270920053783502016128580741412504004201842501228892264754096922694150268106773484744590009663688469980432323584622230245355621205710699244904794827485793791481993077621461768435623846559313228035829250416969338714618607658728076324091818126420373830064338680981637858258106410410502832746318203155217138539827476283673709932976132888098010218634764020527152467514570625634153076261043204565888028155176655992011916480769034998191261885606986034847788166649530441296996312602372289552999956190857431811880348696197428802487297250115599590041009772697572251867698013181881300175035648214297598339469697923192800915210238249881227278119255243940279292319669522891827750431820314147510218813971293800100635184556009296370055292811136286596963004306470391825692274310743932801406755021790636540025661355919806765233312964403250468029575987391913916783781524931126400994184323879697546116924657740811605019392766825705480856036544459107253811835090079569222697288178252965216704295302141713297866462467338873651390595054106887091773323562433364025568760008985128892939889513538936592934470661915189981896808206046253312041356942693990490664541946519068314631597078511370378596983012575320052850487101044781171145892522250232782857938747617863956582082393744674134570969212857208851658674014453912760736550891797655529697120307437376400212167267712394833495150216461652703098946265483605348454994296350193682645425874477661311579611995067452005396634260726899163587532952609081361760336697752227460085257618553413759227363622928708710574016099537985637356975209399162479753209915953275639043759041310197671324694444573815560492271870164256250933214554340060227188527635871257562595650246089204335513468655122703885446987387599143401637792435167294800037072052528801156049756981842271480140455764452265663590271259285354130237904629505800883682788512893114278751559699413811802738429187588121079064556185708716964433723408427936101105813487003010101742624737210445333352886526636542621834749721158168074228266116682934806375494852863449953337222508156268734698350776726166276762515722762155104593323262600258621243021220545474065547108730813982037393537431232281883848140353544285344398610844747893815860401751021674884139618275882869473704514135199725838341195158135032128562265220871584450078690988312528481265503634182441035366062204394793601886655216604186751187220076387905172037669506968542459828248928832477888766507755576879273410151642498473704527015485262048849101021630186789148597405024830538418309109645402154236628605514169885253141840319096651747854501113360629708941132049125438527187188016171213152157337183349470821382070018602728842076200599028994512318677462953641935282102092655810897534341266221879445639398932582444656312266037286900357591220862532747709581465636898686399522599728971423863626045059066710064817303137139687729506549731382033015021840607687435120464184801568350864988196407618567765170100232586010568421350634579784104313534584418393784155430844005338220159456062431745404557672753937609286950161830443741110510399803679164855353790313538473158498417689110790285676154838157419223291557570945816905219069574209905236298885112282719605753237600221283642925015747745271774801172914754155962540418085738637087229065566234018428400098682327341453957682903033784434110427894725508154450588712763987044244944648828014583201987425558370803746936832818627258171631686406666720025432627086176617861533998606467406447687712293036602518082568420356522905866769723255574955751545342655040871574998262275615877983374439884041196638819631405321894184118546352380557578811423864267995738461846391932212697906985210196311675677817429806668667733076190669005785953815760771048917305050123580040758997437375351639176373135874440208655347940128639190187541667789924956215651798988423930640127795157160517142814265811309076558954761960757442084604855302037335979545388040216630857006379879935464375366661040682090547205856002264948630002779316878326117783835259559941613829986229287692812226339780718946055951026729282474584615171316723376243690578011815935856098113315058359494387278500355383078131502211833684828235149446813823700698553508335147073739899371284151164526414811337061673036194769097943228722004284105107915818751678549206595444072939179815413752612040010876691484773963964543654077052556305018853137141593969777162520446504434837616484755487857435822324882778983541232089450579091194625085403340734571013714184654583935814151326331295266074518434381879223517632430468934763614146959403576870933002103566707680246445466990817370436193611208526921285912418581873957945739208892842882943133404385341645345847501464600012298367730044468029792340253647796270722957494090140248564547991594781749952260702779971816670170904129143813563556517707755716710754790515843576756052156282960447059325195731823652723239338079076244858790612842136744470560063443996608930708024968062606414544646541518923315860616073100025765997008724497702896678791949345314756454207272845062426714007592873989553704220929074339399954740222018392749900398050631242662336016722925633513420393634944212527303376075248490309952117328306338843249355584216728780750915400464008299456698560459357201547445177367579124285807196455129708402863562975947393801200011630594210757030452248143577256729117761132760601047362042019197124030480214085586861890384263419858481596680187229149518890105765713668236297990176700533344348556940510533939410743888087520157356486862211604429836303343126047650072255407345474587271452960702634035619852727041908930451088589394136005585569346121833675512164726898162299851027154108351752044303430247631377319359175434409359696503395851263044353025367910112782867003307213646548415972296063502937876972823070772636960099841141429405304714784016861362561441000605149606771034039968307323220092561178724875039685810184177373124121143505816533921008827510023611863907434480431381241127998123722426160299668608385852904913717708136686876948174743332005791531174719578878616766592474001740374794580291326289332273962274335519767565330910182346608769891929491535870899571746102131885399682683166566769686050003169076039328473574811782849131623639950183658279492518657749853699024952631006810912521252186687895954816600142322045491377475673589500976240192274308818198347124476141431592142110099157670039936936462318472999412669781637775427787155754950754516046777045994789248494986929370571310791812478034498897292151600391289884991081635192498037857286565516675325503995412330027820757741057827469487051210829154046574295506991936010536847402551114717025419854492882388291287416880006858496054984941372424561510132847424932339528197073370775114973628692971470509588317708415704841639081389042347338321517043647394803284416928676556905262309392860946352855103797200317448944616450061842807744396209065099297148205495366647963544401214787288522828790414372998378817774342222793972090764188963289495885229628334995863346163912499478898370129442805071765203915498596577031732552463692388718564765278830713224405940796588540407193224287008496440907436499632340316349376353162197495001033548832799337910256203380134608837606437455209408245983212948080789067278219166827106550501753980542834086660779078005747612311343063384192569316873366971870827194015445373235144194893597770312949060063694266133365393102913536256986910861106855818270327695133941402451457286290188683604064325753580609475075706430410186185019907586606784554112205205906008939929615675803822664345840505475056966920166210569525408624430634764647781408733698536553292308621988261716482800008968871163301712996584044484084525144702839004887534496938640539618416038429758819313286337044782006144353316081711144573206476320128499152508988422213715366235144803527157614492223513513086107483730183078107843429507516260014528088335105634381448632974790988335330064474798000478140101253241009086534377493374349528734365150401942088424898235207090572531941806229261660727152472997703097145811911976326792735884576139582727660704737101252113935103349198786836863333187667060898125147230762380515811139749389677442810163005671883625060749346177080911745813132324100455124052418156564593543562377330203504050545468273390513824784675846121826571525615836879955673442804015359203188531720335176840819420589469247604437429131186933768452753912160358885324649356123111247546027284607084967919415953358556694273137243621783399415469175411627273549396267768655977762431938515705783440009461367814719840233344491567963939924724604853644455841046455485381423437858226254143607922346882087637053808991991397250120186089474540539722789976457460321006876555245944980747475231856679216278599167297051527076787995685846990976433347969308417023615258078560812579927468891092066894706969592871708838686831395653219091396172663918733905172863456263065426925680684372799689322368692322555062978156932427143205294703799522808552789104853378716642396905142651886772034218915311345266845692502834160251184758622332641908455433351294529062775964461126812093252758737812624884057735687053350527563869513434087136862598782101610820647655721166336909714752694048081491317538109650162072147421947953507338747089827101325995693150859641116032940829192245396159788701156840497925456174135137591462256523224147675064067708603073803841067309747926104345427210590229800647500827485194363238282137825820400111416111546089103290536096198537181262038081172590388537790050628454687440125801556765141096252275169333251746533350182254505382167460473974710515789884191911052338004537267520263867885256221294414094131341486162236817617792518161578829095777404588892265057523762634566584805345427752373747205122018063753269295137985734208676381825045250512013487211667711451913486803994477479767158466425397812000981078348855775512133170089673404327549526733226212622486462596652307933395422023439339769189713034410467538273742820517359538186001531868741223223004842532594349342854036580735899026972112845340653636161156881914138721711114310030448355175713162741468099537926212793983352260187667137733337882485913642352350431574634532803481859151846298388614897961035993673602402430574823548000875194200498613339311593891010738598400780806331317497970859561142233642505051905715007595407370655716739991079338661330391408857194877130299234243326173106315456391065145532470580456548155905586818789042350567710616036192620014716631462895054789586262726993750367392195730523127352123736248502701210172648548266894075834751557989140227949752266120156498593320947466865947562675216972026958161192486720034320127266525849015760288507482854912974629440948230270650803166046441748976927906886931397705759651834547204599212291457570023602235737267268079366291383250280820857838540041634126672650004300127280050594963364306375121557638121133493332228638760966804699049848242261510095203199506337920071520362861625938556270195360966578522053441387481963020330771335865042100512426811271068243079820807275807971517974596716091899113466272337886264883577202102522681289394362797750973988436677677242520023053026017882374366641296640862153756383978724433331307417688267891456030845338476259805817756354411789520783868884545155890795349652012359994827851458161438070217304963692805706120911878787610525419614302574431522865075135498025774787214939997209874083747197041293372772163003397700315360709088648670939440469082175159990423032241751268639395100285714284967174306202039795751213490896025073379363568248284756499844980276189707933466496655117401831017962261494931017267078453494388097130156715382908753193452642472247093235390192930447724198262275711653597556937793545966231619745035342084729527794087557280809526669745655872347085328293004791425624325102855883687540007337702724323318986795954803274560062390700746931779012389015153437300714247200335458445510816510591681969601309061593004743638017757729089026788987950528359030407606490340960944511809408384994507208403176056645265374212734963931302173295297092960701611734211828566597575552990494106268626704638781349544414198901687601187659398210882489519965012515924663371036895423281562570911596549461508007859153357259758589582905072944461665625852308380838065772153157287036568708283682791717989259295490225619811618374740888934042061839586685144566280506892184030686527702946203118009547836723146649754206430343915169827465352994961195867408082421305837238634617903106031916292145386777208081028294509343609073026255320201576405917275861690653980466408926564544717350910983612819974332878301718485083636414208873778929564482189282770903644338675429632447298129612781950058288149580959032168251845900976239264904994684435432872848798465687332837378340167166898600794297632622884769639580928256169655695933560691991329626275984877953451375522448462855498580740892888499629379866776271343703308981805208913507869179071234008036631074007635770709761214806536393999783976015834571917613518564798166240506627635484453799160710786878201897812278515158357347327344936868508273485881102618943743027786799117990683664454329681902373379377008997648277009096640170652447529046097302290715158527512554782318355889952794457930202559039436048242938292243221895461824138784262712943501569472321847592807172898138399037143201026044833529853047634083300986760290226629483233497934012096622279010771828166052236036724704309574385058496256413314423446496738972163043092084413116201005307953034132392496839383151960085719671322462813935938738040839525748149579237051846337624598115204351761735819822946912872218964353233325122087075864818359316042683740775068694400895630841799566493543073170024073831134206874581212027072330946673755824961472121734041990054910404878880086689767752898901385519559373752724176780240571817968232274366969504924722027439479364048200523499289054376553562440934794858870567222008108205740772186848717674929897181715521786125031489834763945796943881055403048546968727087010347752365061329308196120238601318536021933734114650843496879215108459699528444430961345766196660395306035312285624862285319412951239216465515001484005065134877311965690116286452661672520467313136270987687353335813565740832700182364442022055482996043923631119661103169367995819278865085516776111780731557645873122291625283997857475009667043085819292783036034941999179643873840070373832330801078356864771440205172081519679643588821349334587048997528371729294117374927555588261585706420585800062301646019019242019364896642480276071963926410784999027550668382048302928186039518142643715707012437726108755106616681735815596397996039729413057020805418241845608081202663352666228645842287057299412386012660485805845011479498778203059588954076754019320732751900754939277872752445920720207565203479780548665861737351777699550690619133937898845671158637404537301815415351236152070842322004206509809548312265295339795029323780046007881388978053748613562215250826007574176147420166814290481871730688971752730867933467896691072851701017405357771523900324031618589354571040163939389469954641890090395318515978573763571759408257023767703056063153237896285114201750652873746479147990379946412014414000752242467711298708520279578555255191104671969885730022552697413256173565335461033839971438872026590197627158296095572278998923358977880131488062827844396186698080989975237984814871302647270779719177756229785731514795899115492954291391868210925692317283187253820368289693800692073002461909928622509400219520083544319892567622455569241239203829013951476246911905171647278584780468364973639626812890362793853263450523508957187784939187200078004991627080296443024038261758453536297234444431505779305024849530946547473687195817360850688548286583266035968366618731657132785978548843193157623574627387274096612405839813442004800687741651367582362302351604186174274879549068489081533876688121750696013236305686132307236963737449698592450698957449305454771822437563221701048316414758675268890721573490910202570989187096921750081494699325303663891899021209257768570321012056027528729635432981978061752387984645670212601391193273135162642839809959225893633190819598884408229903306839199845191969490086499595375182133679793427759416664847187905143455837690330109294252411100096106279441175925633018099514291027250625631720272550481492619126738558497171308799240451977258603660968099094660698401104136971824993129349678469470379412128937421957253567386978160574756338732999404329376397643262029327966679945828884242950640454755785489832130104523894471305058111964569375349164194140841410717960624569697284941783113191531916155069941793933059428433310347184851703773907901278169362500308868197148463202275265030328244678548577640972694585683570020231895424134545176482926893371012555388891908421226082294567549576699048060245976517916996297804546274882555093885227676044646075968749331676418901711042540154798530564906300668347331777512616085241940828925298840570808406558527176030137738382572939575605668432602863663569320730330325244354448417009541195552672056667873461244597899123184480342104282787831858771363441502379645923273937322222637355482328608717648091691811185712692526864623372726170488988754214457849795733896780620648850952297983587739982644848398855118749132323243371858208720202814298602705913702891702798720782868094174506794481781342264194517179283202537406609585303901644890496840028959136618396503581121396066971441520799154789743143015734638385987819156358712533197782902552524810796603091257744688237689504251578295247950621509462789946494746996605189962834773930958423516067741495433172128571303203332331000435434823374997362188495071390173320733333713170321867605328319148751215019071642778354034803194507132793538982674450597726721455190944755018307912079213235768074172012021904412940011393388121756985132277687282433562941488815218579252721532894460486978708838689258033167629587462533305340224819647776472595917609514280216475573455213507770434893987235648395886837490800715504708274416501327721080502032008754498383822450850458932982830934645396513129454315026823723564933525060718630733251593293735715910874079684062163137551972418659624301295411081374332682162254041487861477256164075568741485981497287368327186990492140316449901616993225954249062054834902095254486226070810569459174669915155626085583963047859696057802150976407787931107575521648776830947099755609282178114284837778485023662600464158109394977774235350525028747284414842514870430508560798429276426551851849847167993795941212632542677774190819222486450703609444305256794453764437971611488166907173391481630295236423522059975959230967319674544291042400722752386565154228225590515227728281054146374860523205829882455541342591312062046113479799793155113937142112439275668912896584458340288088180788382735282380593301024736713234800225490007851655270628533445409043443124697319295559359692787284511254241193628848741548207250321535611285518041618980397287926987510540711047917388971486325120273064627766568692150717474734309063670288296925555488297303822398394593312840227427077492209085888310884996295827217250111976670462727878098195576227999721595586558918709189109170510928102056836564297264837815253830339799294125831234111880287892151821446297069943132735848631021614840855635249865326322995072901912652593262273977149047752093026308524528596078979024238012998761248344608050010436447509598460507416765361081328148480367235506176044654340578736064983704166237681012923199473569366912970431031290134493364781721366708286397585601316147280485095323777789954662655374684851245797710390074288897198857482937180241584512292631959869467173367671063716177958548076669598255735802361441591617315060047452092986170149791778202921818784883445534766465876923947381326781081019881268605295627324614214224230360427527452743825640595936716346703441711589328149924533560060825374580316645134102356524898158600837661874027932896397302889065754807402435053675284296710586928652790710128209481594721867494971772097893044762068283630158930058160709616615933372916494145707274773752394467638743981379169491655304350154306467382593899190987107697859073017419532960208061147662805115747650922202129772431387523797270926527626349221802391408954270674931079289909671348856438887487364937060170549517500828526185680920743550365236025626113245683208202889881155055094881278890791177728390270697002867318785351429050252463999776523716593510336400462842968929315556007219439146878007092655958242504173310495854851293138450946083802513007216031053952688811592980344585841095431451139181912031725818993530790274050336223354834183294717006104859273078508813151755150653230455266553215525446995343887045443537432449097505868605874797671240058043568591269572672238845993881318205509285479324357430518420774389022617200918606990545390985613879826388194595622860402026896611615318767119800535751926167721975645779818405183448934331449408744863820947640574055603052002149223195702954546981138328183367586977196854087468574486454841730293825529709793832043441135249285533152931360092774918971616205176090536584534598459814279729893567016917137303948430859113291224268911344409233728595868653255438805001457207406121741215451123651623009486591923566573712243450653584348595545705311133929898156410498253068631220596107069634515638109706357968104533213986000165760820330861340076179371037006883063455489718848233182573475933803287154807109751992932125377428771979178202846330072768405958043747878522982753424378937352919423369106925136000626240987192720563830002213649284151564683099704244261860103045515452682748961307153374367466455191176551892905924748087979996965622323391066659269428195329343025953152408637170713442612091344749335738561123967131061974118806979752148340595992250938235647983182818434178603953724264798615462667912952518840116112564781670076986810133898166060254824471483395859845812022007738139021629406479094021230118906666324567586238392037181058684560071116327722842866153454318434647393412841252777941269006280251318889523465159697563829894798088920078122501047127796783535590819385000664281290274796783873284310201106461893976391416053947542010479725944384674708942667483160164994992936681997751542252577118609383985102976505462240419146643411040257679339579071900084019926953840149792344727065014436124189850413887598464895436678906952887096429750994272087914702810610550073313933396286694985010837223493614705622219483584192317007784420851251137092702051084917899431295798982146523550976902418478686039541443824121062359382010257173871525346595320762570913976174477235292225160337675442757982874090367879918396023471084515448346506596931839509618907991397122292142195269597383582948863026310626159309105469514428983317698234557887064323507346423149158090037713917963730680714049462098014136077643334599380077025811619471096769636748061399608208227109876880288165569835792795753862794286695446946640326862574526951770357296173230132261025259762913985279585026826802859331311474215635599993450989055754128648203034736031659689454631369976058638182485881004115660635042883708506545404832442418352962378345594897334383337036418109954522079333232224591656213331558200704795728845721207874445033426851302716190703603504971562579009415151042890653421883063323188077604942294967326355410962593330877896195719931518936145615887684563112753246819832648163644250507849078468457817176245874829908419465289536612665150517241567629765479619383280701483266030685092345254323382110814262341178097839569773358722490206124736090866135212187416762387886793443315387818504962247293234773043605712878525913970492074564336330091043507776604619856633905047721311511436562088247908311913464473652619167860605845610884299248642666937315495687119739685345196036727405125433163198663486543691149612816892527300825068675434173783502708900883309030027069626481114270589044687903258277920063107467308340203400143286903699060407313138121168568292693157183043946650630326845222512468312562818168866246938217647640866530548699454687187131541369987509371036625309937892637839092016965254713043885687187928882067033477819166866272585018437709405310678793804358237067368254632182035924956088066504005082734954409787031283372560114132029288650821201411590531547030528839184256562583636003250382906698603738308257443015945245970191156625053616545465442615530719449048489575467320728569278790512200738201639520278176406583949302487350523516119125395514014305614566996052448246987781283518034884597429617017623829154261945994863161352050225635965870505575247792688766785989088545890318480076862230217785086402875144305025374252370556043074024033152647047610631414697915082958899259081202135757363607543429666362218446718262557048393870528920942338658875928468769332425406056544341946789118722442305879989498540559271478511800732895667638662782961004604731277047492612180730025899961940929429886597531826446352630564035281467325162773247348346945634980586377872298821360611522321041251413307134200369337198032685300619752548235457776571360763162461407585199505857597063982680533272154722548183159001128114731809949287875148343447658796871937073469321154782331941329807636079741838842996230541770115115854923612003519900731871730462038879006310927683131352237705759497049743182183128092473484146875378736669383880265791610509970213625954640101732959911352593582148562324981656954688799450467799742314246061868862855159158898185182933457248508299710126757984109134157581675321641942901982324809114137447805827798644057835079534466370341277806475749083692978672389443147503631603915716953173369126870522088485426101430932385768415232516872682681572181994996472390242680241504997250429421044144143508680334700511258416224567574184971701911378857682000938506627128785517494641234750214963512213881999860297615315585511457278206527466907921866602073829589382843057316698182371910825747810946989846913717273719586756303987438633992527274602000384666009888682732332325456990791861342582339924340083125889664569059326724414499278091320218137624369540274721531071706171375381205947607921309954698264192719985568240311795251183078458415455038770634777197245091959014670281800897926399195179456194976434502401657947438725571109333835336843165198982923339844725791360341718742039162200870179929235077307063979130894201524882364672375411143136299026747582621277604931566722861194156313291629429887665093518293871141696663380716686915792319837678916624845743160783167198076322305306150991453689888564319512238018408869405381408930988889844580553516296510073296971040871176782231040544245226550693787939701037978738641206857546077014285928746374154039675647508913339380313176318101077607079983219059161583470552624602738320063205700836084232293962671504150880591707575833383454427539386535144343587939783731891205466803753725751784839193456266348739052465905281683111277137801998130795787304077207682502703156470952823005174169760920188735847355741894789149114721096331849815265403177460060621790845019994550034838820874450338733422870338271732183034882880481141395191340441374034329025544475842403521614328689002101069790723272694226223406415265418062302788936011235940971803472726601656735701364395144502921706515568482017150422909593244405877675147905035307165650864602740214422840571257870150934572405784889676087740688474988834058574633724772947424548993145181506045927087891714676586975465532735304610398997825004366636273819009041695147376057777426466479041281577320159338184496508059696518784627605586757781140933849014816184054332376427742559644459805198893926974698539129178849973786435446468298428139478759240335939263261166519449993113740670547818269147931127392603133677700422373275199431575110026672494375261926621853373747800385118662125688050012143567065528432248575772666052088719767169459225849229175086485371317207714100575250267192719975017497707029331529327081376401489584775429559892582470663166940386717628619677062788350652452147483219286515383061583027559995151448491921389315505698937058207519106028734030140533192481157923636458692793046778877224522777470444540589844095071170855068643406758336890848199498221415170168929712735522530114585497717262762105685063236811717477113909740343390991566412616861759663794936663831139589733116906160091431835740396928860401870175308674473821422496172664759749054055433074053909084343401265116564216209512493531422502967162497163921428403584682050437851696271007933737792300976732145635778295108329418635341942950260557367677140742641209988911733389276655330157326231781934970008773387884986922822021439449826640664107911893848718957591001784242942712216674006185332552068903154525487736850407004483893978053608394247079504159791682420754491915386192340355034398163297199941205269057822322242152912870562320978247975805124487002036726877966569470196650000294905729049501269446170454517644654442679651472801477896016781135843063494772350773789820801244608838840595221302971850460881382940520889771400882308925272407895195452032150952807779418120722920040714380820386500519061312461758732717940752926123638676102594303876077661070209461631237735422400802240625104406230036757922673092347137451843274432392518883127856472554176193658948543620892844992209088859391899812543762995277179363902058230385938812231453552726661749279662377537349251825971240508718002267315532958516549538040587296095938190294219570941716334977026057346483305325371019077124287310950881466644032048875704950623799102858812396195574491611396494801694510360336453051113776811976973878263859414065258614135832041792909785288114543551194066440466940617900945454690764760378828201394675000642606014522669056850404762452011798064118431658695329578113397248826753028312892562540820354287214189531502980972775924459369579023397736555834910952482669918983687287006023912633264991837710895197283511477249939860368078191600570238868475237793032161690851045069365160674091131430565581907130637445795946257543902261961456117969764322526305945499887859784361825768702841160229868253384074952457070561611294803305747048676719036760140506720583803651577250237996512219522637491067481519621771343410708920258578374770942672417002429422756871643874929017950222601062118254632476976183926967180929427645677287768524964126454903003445837261669467609271399228826228327552709231085397271965533417823926777022383814605409738264645322307534967332322993806551353656569852640350179266050506598157035979021392757997778821297054621642986158553362353004252096025219352237759937245868830434287819807808815687046103092126593516608850279580905850725362486289014010987877459236303143705115787005117724953486424242070235171042530286026061457056070349804802813076747364820575016617848403659394741542003274397982775203877819114304433769736426628163223045093346279684935028485652111273331132599797743584971704959138119103032236258147172264079706943273461524551399860844475485496945929435423042888891842961334322536823277947016107779524024487967768043329111015948133404369021425078129452300523246409492873839704936839733152122502682071638299947810456295244658254236138433509356346747618632604352075784749166309605571995077143721492521672176920595946409884803387930244207778022591790484819464225498628581269655376812071968313455525231699411771349688913929767603597435081055430045209696656359584814212251962347413902783649262306470731542879182193035477762468930255963598115429811016596457964539960084516021535044120176465015438973170731703257290962965094579406786505974657776622099890570436952160896860338667321993813354140020701814623287219731177026933197968340289252411913316963007983393874269045689312209401435119365623498881284257477292383801763029152565927748145172554017680281151532819106841366825496178992356538200166741441054486571486933861552978164266235518741135362271589059921930094200706790444764807369505800367904636620488376598531774539284198235994600353396013774617009034261023779714882281464471061811717723590195456763409165970937782634841425704935905251545008423397696877811613719886539882755185717336202437462724826997674266577988009196333594141437603223057958230726208070704426317535559948371289940508020221253454971364747144380511536499957336697827660081055218667767538864611312233055584056338865243041037461946147741814058444142996892577522141108504782776003118746082245015238793721810675354107815027069282227955863441287571151093369832961189159810731378189134829766343351161141255832482494119464912071179462155628078930460680908216376157620020106843388380269073543796727547000621142873563649322683031441538980036628915198815882660253591227651136631628804533629041717649243553255252051556803944453362071260644922562726848406044106283967447050905056708109892849670143108843112981372102587674942943111431388546807529556075212314327035004564625672808471767290032816040788586954318642984462176664466517203181910422331909400977837457825589170454728664226383073936069281725662259282275822286716023610151855350574111140638284041942356079007261592321123032322452532027702283440047727379961689614567895998515366436842766011769405392142467502928033572123784632044654322325376736723037139005240573396561224219325254368002004942387961939173002865800385696114465125564747844218256616163630385360561671217819677224505554275464812748835845060659995584429959240530957221438081603825701401422921198433580635066921812727286671118636037018091052562919629995788229416334672883839456299416882842265970033179029654945384705082605650305034190866288467634355118940149287765913726357049881897207639677890972874505911705098951758189272399885286604832451578073713178282831611239271084376020791527091727910295654530606218940032156265195826584720176957242609252797465058020356871063308972857454160343218658123322229557836883521475684909104993215110674920497493786018707730111085323773845609464646138113353619143073961162862668760301782510584499024189225274376068818689211368457831802304713513441213036296435289470359665343890870332115487202585164764111330420437409945536269454672057480881029913872800845355278810870895424600816909814287313917283270099424388774949847995743813194741968023782362958208449014233332385959262883186864880965258958888964797431564522075644717456793265342815738616963418109236747364600767434382957234144825847757528828629201027391699628538679181018235638308207533242074615665409494379488749700273901007363670433450783262501704229795946388516815423457427925097584714672718948669041457214709555787337374122262506744465321362130654741512339566752647128044109857660655976239318303592513815619336204216331589242407100712452180676285779871227690411854453482568791720298990629883020881613057802253468545022768543863326769415193854669633241286477916030929095010108364557012599248852804327667187549163012102356939566792359453085145987077232024690562374409405817444729997616779863317391887663014836895914291034354671685160380374756384330135747650110172399027646358254688803772100568705472988765888797618814938384663754510066392153101304999122673925018973981463112385219082236931685880688509524199899592767101180361051775399099829837431793976510889515857216371490101233617358486579448410305492216016621719303641973996231910045877551200291027824326992264779191014872739734066869495314323510612392694526754950684964061796799344607853132487603138250524396765187389306419529030355122502561887870414483903274548100296399169455276832544920619058787299126693581112342771793717003015444913857309505882350259127677076122599693715358984613244852892524695645322754863799840976075320282061785402176154446807692013661375629049386421763563644918491752388120447344731581762345020434391171125893550745997160648047753332620097531181312886334638864538811923406525572344997541491180574089748853945246696179020929680796197695358600096223730716106776461180976650673575128377450999194372331703617068837478828082833947019046688645832346056289799297781169768896785962195555185810246135529510390884905757579339862149450938245309524481813191324749557688638661010623025380166018125204569107492736392668979931385260121484137719753090504116677582552101505122614498892838984839618880699348668773648386172184278252735625377787731898838631554831439805857841976436452646892713187616386114445857331876831743640313376498530915720701819502933872489783672165159935162657184134950231333147701809182698381852929260305190069788279935686614244333423167992203837562275654426003020289655361152574352696146191933715341022891981860019399659832392203832721801021187521716023856665680076151426345039596150117653716978092475302199723405981022892454161830596806762528261761249312012243800061817714292686857383680787748915189534502714768475590328413166293876665847375372413495198120458282637550598490402219479709762904495999263195837476977255817088113551353913783756555782287365582264371802772307368263379691976533015118370318790892530470312551511980774698761973465813371569917989867723937458776079191196468744313276268300989445296167129941038719248930461365539392635834282688910704129416132855532098367281396017586041546891712355235504499498985847263978093781745262505373303938497862298625453338372886264720013210675642513148867651519903864544321776362752704132269347371160957801388221307840494676144813333932397054153655614946263081923964959935023323102292232120279193698961191622981780970670042106094630134038001011402481955370655874706910816822090830902328863375382151913946572499269465758047667421816637367607514668184814266144763782763862125897859758047180296372181794945056884119904442507173727380861112627701793247839219812781579098892641863650911931744556854127319748785999891242286057027681374846932361133139426326165198037373414585612184364674149521614998082905267879560303701000241554561647810816778132896039782202905886656880905911610636588826018476508736365035493374502471643443324504098288098760244657288093104499787978109606961982980750659368916412020144839751651815339784469817434630652292158882711914533153722666749009613690437937648389951000224876696363508168949207548565982342913615240399663755099567761866020646064063120283895558129701130685369877129527808912123635416830437703738639661004466778495759119276319017407784509070617331057844907255941882610500249556416263146493171658200532377048344613895058896578154040260985639554877961141023462746828867908827522938601472926488980075633323303301540561631235631462130873213206526462108031412245458465197510651880856356867097761942354369710707389628849437741308847284472047315726740222871760801350237716522968352874494511648181771494121490383085455138383716579916391892901116393302969190040467514942360386965249815125606516346201707750171382014975212963392169390418493913910917414845005388295973068994025724850990131347379111115792731740756911620009963413972091300725853315330063626250201728049599950003442269628105706030631223110720829972210440332803119691137035196438751708893089988375254648331105026371965532757923736240662273740348078462153791567195226285550524986025552223653321515469400248349814553878533403694512536844411020136663692524125242009381422458927230446631880547184738920455805096036692415618155651980694752865656927345712408508037559150085612150116085974830922815874086988276572777191221139672878817066335024701441733114505334081832077255690600426492199265245504282420493255441735524190228155770805672627113463759386492074438262213888410140306991952221135104419940139788006831473154650964211172975543548884473995159490409599315053238329533580836147592096931187047576793369159983154833369821506412518394064765330785013992716907946186063845688273005742886733298841865597356005730697273345499373079426481995661845324841069552501627409580211102355470218893494769545614125243956647765891905499222429475842610893935232454225338472765389698642657900966017438819118458402379672476318732371165089414371903121904345437194281165206757142233222348728372649453704397295663502995084634052130546839011519171403558929081643337055952642580020596246618448936812914202828415956250318771683074873489843714871996154245525280615951187158209406346100621540981865295865502581071357582294906605798513620504380882639431768270403461123579104888005769813343372301947127030836836858271421683413133335668867772331086719093208636422522976491995303321739866130255959293368136695538307966729726521414260665560882768205607388510996548344446870772728786299155075276050258584603203336776536301650131737816054603524178861535427876714952865849437877148280852955303865405893234785369376484811894183727476993429869900958677468345747617249203123194766825047457353793930571791656045718935041478438483941820380431004544109971796712983161680615390687150935059899215974575081667288274796635243980132386527949164939120820511115579975315837349143600820754345661678097735493803712216529250471169661927283467707868729396636089053472069045996592972834080003577718849977395101483005266306584370748282394121398305193438601331709444505909219108725377666635061438710690106365775928575325014426605974472310646526168719016063819555918307209115528168350126770741768154677612064299408712532635926128887727443933407308991635910202827729934704762585008307428541373863871176186871950667267433257470325806585420201503233232504537651295353698968083417903587298198661884653280362693934133297384918542161415015568621130950394473350103590971059816019178005402381318636448589935186123809828157065616215274191585624773364791614696520689949007307707723174132017334732789228441836848014402116949247637980290746940307620434711263986777796194145921523626538252418478986680084924381918775429365760545148161872706121816287123692659704482548894351885201490824832060119774409083483291696468293458035957213045661272695285797768073758848547249472905980671705237494781352978696343583724010168429523790207700809302255569999002384639786367701327367914222898560150478256240366764924956759146018541421496359563924214918011506266581204451358210174881683607781051524457204325408371863756775605977829557113954943181541779931347552255601956820563696714861310228003367207315966464753226052123314329369018060364620712535458144846708351181989214972112208086145056375290857880522458960902574725272625932473516483946442315528996127321839385677082916793938437150192943435650917595902580953188994916221990894728036842430388884267416418786276918105911253865285753932622739542535545066951108942637318287304212637381852216728948894763837014730844532411401846762921611838793048557380142905037641083663705578791378227393537614535260021691920262212445049966782978419510306978302101301361871593443542914974611289407225895508615556748589957408171003423313993042052748226457901893927923537866101448045867072838047813329901936437023271208420270920273038285000359432857327239223542675189679060120834349946070124459587555963789604439363422621218633358569231361114127405491281424317299603404970806073022835218322128284013833572081104169586414151408365308320333871258114347335274392111891804106682587222132823882121140683780016797578227494130975271483444575209926832111468556258164129873706060900159250946337207542775781717878907819217828017923016482443030217562609830772951499015396479817963827089605053650016067422807306424233487306549087385633397156961697350331825007751742887019127908628885037176245963653398162989711300177556417766664402503873197675881631537591761854458609947135542529985119470573041713275616851348110179273517412908249607461009177355303150146674098845724431024518588607017174584609319444489014708686657881003541967310167807591245242731264585087915578624853506038082951288846689247663402024932665186250293129255929472926206693857097298584374975984559647046498877459025003171524227333030634756638454644623412741651118201857711838343069104745077703763527579535261876646431363893715791047296358965030354353945830771079007635815589885842012903089224380600564376403306837136075715791847168804218825034703252761094556071045907356505452562290632610493564466595273555116536038045552308284992669976040823566671517974331785889736673398922573482208967712328183935048615194721513407421361313420707492951357531349661284697790553749419017122369985598178027519005954597272510238837248226008163311824990687254592409878016746986332143633308231543061912527374025477918041236137217488862036333976317238153984015368063167616979733684641614098640529074864092590414780503535358058118147778290348860948434764005844611503949503336994839438701123953238010098510292224274565102116059590608469692076388651675209732414556228149851611584393771265418539392641140907862457498953190036712642798423318254543552213339190001039897054256508171527913877542919519715345601544775110934380439048457851385573344175792337894109629573959387727339368614452132766890954627215656805210354112528398027127485675868735337752233266011478633807561574866282349277231047402759551876212671005766796293291105337324517701303233579447065689185242036529514621514949367923013977616880763555233196963935876142659378692536185360216106655598236693683943110869970351787454593113103608743761839806995141316190210642994935701057995222637293721746232218873234103570339414769002580164488679225989578780643261230966442662421226362831432878349821389398325199823304588517470067833404400080603616691135890386129294077649439670759196767574949565354934718098882578413805239626253330691309699246297505463975308366715072383002594114524491482263855322062216491163001615912777062359436175672769777044324743245444535038378468710990859335307462093476579850145706105871700604868985133634238485506792159038947524621639237480778153119285338454897606572920610819686174197614787978953864037323044994102159295863198918342867878107644419791999095273333877969949112932315098087786710517146582831427710052198800972241978118331067559748041968425349456736345320756911695128031011699320929535619611818568977877478820048385274671083955962081427014721981419706511081242481790979517018870757448357898619326372494780507717510603657882633229613192559895534857340061179968597230467485833529785436876062643798085794364877131742444059705122232422842821646951849250763178101362069295918846439388294401331894031400282430300882778842687133407188257962067003964236867682940754827234324742821715950222436240155318950362561361600629628579129378982072092884825215521193917209991907076509476233907206459831737009831071190908924195086068171560949038824231130304598640813519738065625235876919335707851975988396477371338489007758293859974981549028884255663755088254773230644415647401231539696710912364877426628031632199635244725822145071018924367197523567863412875315632082182747207757666439957706606981285820505937132915064514768261554609755824097311795571454150100412357960391296639288915811223511293741028356932923388838420499992615604568357276914134589819037207000467023883843847418784675341835047304433605460429577078452008651116241010271022952877985881644957760474966532453110979915899850760933664921687985427292443235914950759330098018107078082240874854965608377425931294198975183402929925417932064214380658942649253266763988859298443457551600426010628630887979694012035603927864232806238462723722636190465447120134773690273969106346249525858443909564119620686283537377907943587367911387004728114728967386124596658820069413230865586005947794938564348978148961886142366966903314344059081188720925554166821090290581191205094172886083515357561964194941986474280219173386711895324372979341356131034180618623865517407430609357226665020043673213885322609247433867687840980213926069770907318137524493626366636749595056114358737321342008087361076302149116024260987388576324076029453457859367208063364745924147134134808253377981432341946735187936337086476281780636122386053359738787143252151755576588799844288069489424697935983261782498392382512541819319251926759696556446205163453832161537814819802790519445343451093406506061059397095500818847267987765289246301317857772098737036203867018474799381009340164241865505977983236344768724047506855190505324905717824049559725428317580574504226059094902385250640609443550778458076257434005702864030083048219446942001191838722341378935606854010787163839082614711991907394044279809642139815130642066278999137822651117740145762783057226084704179646286698962382226141293709599704837741597642791438681274104802820141186910978083909580037117135704306243225560275826971460306182058438465070334596712751883178653320343606976453177516629588310097391289020502157284772444383154643818277928409008879819367144782204201856494703763116553117229585526669851018740309460631674623608501950844871010730516923915713266288841038045003810934553208745192048636293467652026661345862881148572666952794280962728145683559566387323790828621765257038500111512110822146383957308663425804698476593818128288090720003003902943682780779981804002342282526798816667230599604549045328396828922750996839543959734016259647064079019565719208029632386570034122672358407508988675509354723364018114907056097135326369672911032469144325154804309667694767109131058843373711978293544807901758903341206118682158715589335215691056277026561943580203442439442340975510498361888454039523187851315657797245302164150932647065819540657354259632248351684288024599747527043249422457159173221959235688793493768907167160261161276513637104214208488808787125129582238962721650731707714709285262988953405948805959640522072191420083965615628434533195610450120111152948028764126563948636890768699071574958541637311757513097768380712855781810256923883556346398691220655312237597504120276007555454968900335891683213810551103572008316541089857258333363121141494284268712348471234627862883601804601303612857454234247004106810009728736014236175923887412083679819059271742753776662963182972253617503596629690158722430711142744019974268627392996552938219696558098087896593584511703732794018459736801329000510896061471566145148263819867606209197729502933088942460770399859679033458346048795784286723712449754169917359696891324282383101957872469449691545262667877293566601118275816018507954247992503462914365020349528574390641438718859273389081217292860232655504036544278509136077734317653838405596751750346052602143743013540077525504306899955840276441724743559485596393212402197448840855218328589641677657797239910020673342411743592023470088152534737912063342664739084997458456810155179993184962302417046436915740635163528764656969525978620189142065729760932379216513622759092810524269608517480405352956878494510876690353609247487768801091905175658860622460449042028977945760567023817827703636724683827400190878694916380411674981775876598292641637098586136215251068360091793497127955592196223858290239342644842208908647705300064537403174761087999620861261713678154941950548174135836212778701846794714803804644614915954121174877951861228390790079935339397982593449593664813757109530934519000716907173738307413384182002359551419543947074275028374670873779273508593739379820919795393789391489937355119381103545783019216146928225146145740471653713545917954990362671324222135250955527573557424162172727447323646771916454559046073489334218801233913724434634734916440718868047680901339329991767084733768190617708422634063607621796738542594338355842806541557157458707770814853832250672547916576866481655652905972678299387576489176637553692175128740444905343816734065974635765016363034567532569454926747079211330008827764058941335907034535199329006186811537042610214237869206987237280498026095707701796490306526003506363268622724513918150084404771638275682016888145064791823024431284017784509226689332261478410362197044536101997265286812922294026080097454695227232442030465973255480016600556766208604605939761180531602723385907663411654971614907395755049298750831614951073316793489843415123254029405711698180267494736041206824665616665555699289637557704467432733994725220116939342972491408169975360524929114046088896772393343829217619560184505935505176167398820982063039817293917127833596642363158305788678786745559771946166889237897778965824909002054022875881174689998972905618276156684908674982434003638167975964595581171469717712091490422716660443996361862715315059171953538968035020553538334758179941356534996820746583879601296276894764029739073161705690250230280826366670026049457808748701401008557135375447845466831066308043765877155744076216558079219263009122450986341257726926913619480379553027211754590890485553749974480573161142356945634349883040977793250385042000140714428181777766922513602489108093445689000608613955341334453800109345703408811387702510606951602771648428170092127781928151151072402746229523711929889724720084899577127908729308308845170250900332356601217954077898628273222276569990897905271801256603303869809723474637847850562139519793626989428603309252529445088244736140319371659737967366042135568545459554961571714349792422093257288567863704887947117554771521980332730092792467693958029145718967930417739424526124424644193926697457768477342177068712364999170735096168265452464016438894394588059439548712876019507433993917246728468810984576507024945270559888077832689253483218389908415783883873993369515335230580298303725339713643839960505960337872951964594771667933613027510893657590450265305731920808149332789858171072881969424985169645176760067850656530801448714117729234590694914285917894777132562443315444582542761257529043259624073844732142397594166475494225897243312454426920350320625982729517047107775857555782810455209825913810198121049440371255005158626150282513040309519117711459733132560422605207553639553877351241563878559637543652689444045688942499105007603489486098726509755783354498070021087339887949260985733255601990501717959566401880515310953420964975984953467851171058636036029582235631097730320435126062820011289689483750686647258450717597020361858810542460411529144025109246077742248892995031291420026158224287201232159410846278635668679593028402057840407837033594152183195030455812039856690872142005728897480514366818421924904572573117649416774919461430337741721743808771994460218447186878483091637444391296359718459326731261612038940480909976521177481254362709267373030975837100375860307006503621562759296434205912741030728179741363083348865348927643733857770764574054683764267745575980589913482995649193976395930480105474455710931607242577075291178702375224348456757183572432933208075378304006478086704346705787873622236344067308956601109662177641871069807098105810142826214937132694495474519712434967500089146772753999136178830878283708255592592081051490631003128069470891938453288759702195179284851287233787720873863312370244704975710906703984501970847632895728160399185571783510817730851089560157321091928865867292039093356442405721612638708986244554374836467059938791062600438399337035569377347339663070029016396490589353856260809124924556284417931266003957771450028028438544414371455833937602701580662570701594271209528888549476525058447433360454430476078240361508827554208992562247706459572708515582264759127398097518982727250841317873450898694244737828294720191849882446417783873841106063331235383113616293394868270067605947861879558622872782675153986725616195199575406275219669183816457209294337884201615444963093111913172439473059118966428457870003663385539593113703256750248380835926145981533837465116047609962235503862018494374314287701477773798003348991295778521620316556800315185961884859064264277033519625629825158192885615681186228765228694600363753389024066835774881529365002633329717013800387980086153696775857983749038619394955581683656515175036072004336001049907050073396363366081221719699888292236185275198267964640859170894030773684880132324972227152569051165754118016193695088330777996608985632447564456462610031804394026478472505228083118756372806525004799703037214899565893399445357959329215374837937705720921878797827672559452825713015855083702324625333581460046135018574517792283865608681079663332854250647329814159854402824343542368631735365816834960200309926065151916555411834728229368450320194721193716723054696811064645019024609113586528371968584725495733714683542681027981650497299539660478514374170466247314168925737012509538221327954499969262091940938135742815653320293052143228165748505651166246368277768021662563325293942565443729197701571890068671569042193667039959675936229290669699626773782448522944028183984953511694735025306215921451688194121333286115866532366315487116650849154831121470836363527929812770392319756041790643145377652603912130837443419587037135551167478689826386288218630211781170978971392373723469277964355863640867386909751210784591997121859179692009724246026729271619151168647744301604128132458946267009862072811479048289029333552579695756897041906317072016107559282188451983770640609794121278833549704185301447627089939714919253574562796036758695071277541879130100414007924117675086684327388253243706282991321384275836766384681363161026004125587817184691145923383911369452217042368248168324704641425882495951232029529800751123477066518166300203422853262104639162451869032072487326330456363978666091036121138001532838693693239196061512445756432252518408384683060524703908565909552227847565432709156743354795051012262528224269062832695277908460193255544282969352295178767720110242678384534262850678238526988439823205979755728600497027533153850295008893137139057630242532287345082300242249257047059771987131026209085727994322794646054479484272733838920379705826529418847723573262212252656193717125197621536745177959967250438026133856041450319413720540989519221936654342063519711940326914546855076838407796348059749289391035579443194537506728443819643986906979177802997337999533628301107780034330269568733726113459947937325736319212579324456422237155939011641332313156371295373601726822844998696658485826472159379288050914188266011309781296747647373138426076156005593939652169360003254962008762252786311400737890904445977733304132199062497177507980534023514912269408659417093442783764941354846228699794484361838123160718652682497572401164213541219790364007026994184135414887753670108941823811187089127944278142560882623722299535050125799665612256430294966869752298406987178813686081245200758678863303245735612301688755866024194013924509412658065510522617110712222600644128549771358222446825728576670121075245985483993174206149598962153708505232928001973616689232421254890532956181144843900788108807221748342315506002382092189815925461188745845337328445931300568922432784727368274334554017638851168189128428245145859498032387082410752713914946714781720941670550851167170256362265549559727237915560715919161388531104567780786464843491726835080565081602170587345813205146471802378039819087851470853408495610272047365535671061436668745988481975242256035608354967120530163738099644867213006829830181708924987169584383812656308160366246342049569608286691857317729526207007839718690016845753007158252455854438667659974775767408653088571147706978934311136876931443645294535999141646525053020829818350918672957429423550389833601287640078751208553939064787600703664760526117509177557544420413282699843796476372001480897066096037406644468098014921794509802842138163878888307796772872959151657807519095297022238144567616385801050521073907296250638599772612384997069278700031820101293587602872517582057296790424307801684998004767775231207514180410708786439372091250315509194549322708353976901399484400245182605032550910304555729872158512040797866733454858832592411690302654124319695126542081404164769597560550783252890343394630837668926281324458674373973825188691212820564705777609248735080232689115711107894461598318494260863981360231472164407304455281960107094337717911265496237049949239863831737805747307697594385886586247768393310913452671741119132932409162656010687723401540275225038677260112361630421921970737168708108032378569271801825061321355330467638683421217058723765142646709225193201776562951963268128956433591655340008725763130611516934877778676979674388847673235805304433948965004681646680318951329971066335977686719350353217373154695649031621026958285012331303907920262947750618681391277083941835262037594218903917574670376077752362550324699016020403415466969092619521264773989238826672498943832929964706133599498320445602131558634685442393442226455465008166693202233183048511848680204939460055922571060883311313225626282920824157086083530087444947390316675138763991521032903920810901469406775698634713728398018569700706949624960086468284300438571152378301809249495117733356987876563791803736194380582967960633764918273864899429634248165027602839075835686867699748261763389192200592112701854183125885154548903732461137935063158446971196789779911174688349070229298139682315697969892252179204906909590574478882298728197916713292947853874536649714646070328324618689033978112289314230793066884936871897624974935020588906503710680402467782662357936897504993221953754892178477601775272184300776735766179955868475614554505452535770455458125297298945070939018715060099549822535832333343323843347259326292401903838411655922477797573800492388154205575632700325457651426385325477245167765367369935637370534134664877718884965755203761531572639366566028179047183225371733212668573406181256778330857087492330635047342806392712600112509474572149382086082434213112098309202436193833979880841692745678766346129085793655052975106091078031791264270189974436407077614027630238972402575777943221101417528281591642547812359792060760879632232466632831151936794036906608067623412814150821920018032091292396457470975915269172775626068730974583928652819009693383202261156021827870655522517311762665998035458613417689156267940680357526343906505988609846587293976388585411183258753133255864090267618656871254869873907974843170168584082247210396225888498649681293367275981038223122227294847137212235327076721356023075338124361589109260112911494783034168341904316621612415774304846933733972971550759896918593192444497958918129547432197687290387835928123283030905580075077921555311787521121690187803253068199314337773450581638639984531362329298985496548717612159982733426272419124842635992305946994257243316032693515990232696207235181365210101238169223800934605433232832086083712686626514466620933551815705701736345491828090535757306443523759422708811058970027176717132659554627708960378998242296405285557675680297160419137049519836318084087825464770162648431895108837075663778162346733339573239374535139001082380520442904948178804221578309573081663458328600759397128202253520153628470697920355201651788272770524923104169137604760838072392560029612861593193713387970090568369180006445934021076934372905140668799571965547403232492932144879344158158543201329985548938717308037982782997230752404784046429310259199043983311349059796621631483361495625891864308604275936707479299539123904015459141420568192973645561015616786743687906587316194157719639206490332929172269630698948527838242070630341356934403995491761473631519706451663157526596745289547948117879782097719667395706432390699934088992604217241227375813132140235495354069274143781885533329294703393275070788698194367901343166520615094928724101408298422939056105576868726202370229235739430691698923502483345421157881780633032088586020051675406703792565660660098289961797772707028297156247609923353035459534118989136224565558260556461626283909598742326306772641403713157169279966322062371116165136358284779196493400635507701526293751379701934545276740837799161439846720826861839631846968250002678419012156993329297912743626499753951130397306329483316341535374978388556174445345916772749562245159837527785453940116093336861815153384153780095378758047336164012463433127344278163667084522645975092191874089228827004069748188922750271634528737314250963249287603170617913259648212375249095251328754739184896629938689881992327989530277745167650035875400544479903920561898365210043284816722788460297904837060608184146653557995545079924057475981779699154678963996445690482980847077177649677734017045445130435192942354520523289695472329100579086813820295031033171294636803810811528087867574966726549690410792591999287258066569410491327081598547382801609061952411270098464286180589865834099420867314229112520570916123300173102589156552760747356181694725138315773804351079314233539251506945823214117548459751944991329489085872599302736946138631728355455872557417239158955131131915186192740374304618754783198083130043458483157690257948714895132664965629078392675104958305920801302449697139556524022793001830059849692481039960571956460703316590176233077157120326484044461200525561572568941406929442694628176214604117451328942470734143009059882876565458961048583905689175726428326344361722953803589400561149382273825973242495616076437418542132109248968269122939283489550342793933572824371625045421594385897977703706607850323574065718319757014628708019750897587939040380196407352550481682883963907743502810581229322265403017691838266532936938192680310592997039231961595463371712027491436890568054903015057553171985314411444912990503872354618888890566647784462186555286332101285105842780745358233405803646033099025875367529375087271949231365822424373528520855759579503190695774929801518881813309930116896152198522068904727563461029703370728318770602934992032648428670136530409353952915014561418754925085171006670802096426436853311158009432317301433162053942953356912018798092113665509293933221995696893687781631650233739133057211816305809348288827402761331591582727951040766073231990068092829908839368242631240959281774732838412157114179838733153230089528530620232529626434107176292835268936318266254009514377053407621202451922314625284459233168383106790344908670376923479521182274400487701384980173038489346652557425284742864338923844061531613403161386089452499935435424682387188215929076200119831749308227327505832041568591802355473959553612268248495985791932372868166367351009139289549612853019625664148011314751190800375709231567349555229362726070447860682399496327490086661511066154747303889835294625916870955306173950267073290134839279525438359495605501931047433949791070121414387697246461400133780924946148681739519975772425195720374689595729867359753343895410362450952780317606852770591690790215106128136509042504024491854557547336837956734613647551615998148374789803530633790261876816212197328665664663140392609437450011300352623073287939175429083788850473221939337271835653692599976518812640562352522653469012914416412003036793435458639114423757118479463317668440676268738341812106628888181713615114674389460064682701179518944733922223407946527569353886567112447628638280989001544527490984277920902577541583808271788518910169271212810897139017432788136401499061853817158867156382642941318370543589491586926367958855367293653488126316194601138201264069482497760708740132915332503238448436084621149342991538042450568304474159585988377182971722073887537246420348223613289646574535315244202087484637948165086245042090064212824868368650899612235024957544319312523900820327476443425977754984272235932031512408578351439921791487169703903867198786785658355053785023070426842326419092509938333903880032838895825054394324078811122037836153292971896908271447067494274769247215219905266411163898084808795362309480985711083047950200718822893649498969278388002146044020253544166290519421195140043732109437861991501228896649658154527622084362015037412721721618630921698328254581490555132217082662430967060607122638779743209695683636132138021166322272843086493365627346499730407126478285744554412192198229491838403946820876364157357858947405014343831291878607339199927133255678581403997096834189297835512092216026104989009881939846943342778983790686176122367297221033346023051014183021348715610381135165486863440714136143398651067017592851391173821166391032098632298039048030524045019047702300814398807742244940491359728034524780256678528776217057334395076259624190059483538428726968594639421363147101774449626271428406651968878386738272117583512711472993121974508425910368313794461551273476178691513230693936258240134451568286374040657957823524002665720061551573132569168889741498821622786539928824169375791907334280905751141721158130833290321552799137893748075680706497929178007306057127905508409598911276849097010208774566746852351558822413038145975110403132201049638213349618002042164948062002995976937281261467682210159243645022712445933962008823375694383614944283406301542675464053123090576003469237354767440915609789223339881854224745313189396128169246306771252746888991750194314175022905044328736216103802474881866855033995188202598007321461337838161934248665000134510062814787848912969513972763582915997476987438061534222617192550807638566015920180925120038477915812405226239184673038886068439079951801570600185925123493607031200855917200758571449460133973742482936733235717784257405805926617786814402320489797005056013776937611755379103984628390619130129993769504155441023814369524388363143600740515690315407050843494174116753075789445569120848008073974373690161367982338248723924773900998545903779850312634812657258626190317806723748918318452900072266146438665187721135215204461382097746271638160129290153398374011047264649042042514961987984106769464741720051734610999415809217072955335704571207327894708300199176325539020337500546465503433444441061200193066467124757173797295344619488431646380232640182229865266864772386712699112354952149091375131920608238760061430972135369409810165192062531998092494101526075667881411179891818080212153242892350456867904616704632843883014037972875089854897398642906023519660372173326449033408258899170431010291475530931615150283134959942739300739823708412691019860968115365035440354242354475043457664447179955146250808213516108774729688191199057942134052828189385737756592355866033109499713268697800570626043317478938992626501357743409358655743324545977066621266668244065228890301630456552734198638777672841504400902254899475155340771703423572114454409770546559131942403711585050147565259337904412452651880285970652840698250622599175475474331925426797929909319244299408036936288444606458134162504887497017871573139111806466961777197782083485749288117149207889308035052823848016678564402157910605875708042854383000568267687942755749860543407667006713640169823378364725604773796705178728775131170379235184141318812490551956089780457033239214578922071192232640285186892802822827679420684296180992414388305183789531231521460958478261171481082587737449384705462273287086693177130750068457179788076686800553663180894682562729192346299923116730839889884501296204854490182664024037342195998894918114371111772786241289647208745314312876660221108067125532888266379448527332222743910705469612794429265604742540709004471676657594808613686457532461014376444732896503294884302242213962862038868831809845346006106887300531613507137886369065507253500775096322620572246094237227078107536478977276316032215908849914275613582830220014502333687767570771969698898101132523433039998050581160508188979413995671900916040294575528124957124062409722753713661572036613466089321414774152926313256432843307710775030332477724379724518893701378244596361064908056238635761851543215500530795131437479883372921872511646877169046480287860968997646654276388888599250045783781819759473569516803842165998691642080357439307272264993907592946038448071618073349640560888897021175667954642132310963323373018670858364924398801716726720324012374769712982174960373650404260076512083096148857019509116808102884910942554423624451477023499910658868798984472593645694119233214878861925445483817244901161657808959778658513300215141171254345780419921490933961613373533759471870435634906915475770331835967774069496815229766671432865830651266733879537311770307478374752423018093476719089240591008854910887677800452239418639743384884393514380917352542984516586822988516364453066795276430763955346822661203571093219812600132513521535953123907393426699439256232239045294715760623747684014060668072433678941353663134407459244869036150755197084677209318135731165866961321671675364000291202996216420260612016877984320601707289777549410558285364208107087278822642260475729682803297222200212787852647852963334452028125034133545256268489757683145664361548770495931189656864949927116416874918768326176631412679264981069122476949166395770950914034928453847371633785656050202552814924071974779660939510075674898088683469671587216549062417105028732392752992800880713772420707170417505479105210934403623227227150861884906571735687812148527419668988951300725788209079188448316989564231870300191624403468455814629714988796682883934205036022224879882194318994054270902584249733421867543022999148137778488117987559288215961287351981739698506652223667525219075519556783664585203668892146229209608303699037987425875782673993702008848873718206029682567445395423279397802338404986548541084019336605755749575343379107565331760135639183944764233882119899647884545093288548434702303369483609932078538335758214269901747442599605506000353608119386863437783538520137820688551848671798124394602201858208921527818736892314270550776466644809687880479623002376657006348846163111632275689859693698532842632287714180165772358084765521174355481519091483256228660118643614311439974525580339207341262950524820298381591287904359251717611172163496347865022335407627710673424445944739048229747284267566934015168547184640077908066815952087210678002099461826293019559506455038014340708447163791562565599511421665674615689909357284880260372642337168939677171428341533728908628850962659770935402358155676441034881580204060942448363022665311979361991314593125396863687833978966651233627715471068743281050054671989954177544695533274897584891484124720760840809338434802231809283631661214511367381537780592582593841639257585677847392079509671990930718118629022720176570078066624147605812126924750314570586159601584196140444035769917023468945455802975571765533941186700514048539078827932611945398690915454734724494443489018114163744447117000862555415798903424954773452949305728024598041405734215751807102500875654551758558663939232348120549150874386410951816774568851801429844326855973480382148550833121712405820089267207736467464105282130056045678418297331612269445878144120533688831610260499348217634116326790967965581295164870287053045157232407116627089848136911831173365945234214949165547599774436914673661460438735450226430855908733601165921475821080933244873301056362869835477219347947158631268497059384696556320460901446118312003605809076773371255661043616277612194985519542208063301636668929593098792686806997385103390356222303316456873939533954340388194164054647932262735894453960880748725568308231857272069258886118358053323425372887207228162896984365391480280112015874586689897124013062589973118271046427228275476986710511632903852363959088717058295700057678217438178823382241857561734155553537246617086871937511631882480842160216442021975673771033411132083605370603258898150214703741441843876599001079596548767915270602406804017340011138640332890215802292836911488524035137711959318444513727443717592491418574947399679390112952422846948900892559782669076853804370482150586203820239904906355850922334838403965447877979640056113293388287609316707486473127370307861231956542568768681784625918778502319233805713966016555454999629766154085187966246053176832999845997534192873789106057137402243740545742324996095448640532215436901059186365009060580032078107585154232193280196121751542547794428040316429223217944109409239031043673631738005490597657898213973430593977894040021197067161417765743149009010433211665143482419265229821527036522032511171969001276492554209638916624005492075561372210217382149501624635640131155472211181993190293331224154999677505303451649863512368109216644574104473964993524207373690500065974334135049987282821012408374395691033776758347069349487222478646789202941423107630100995600269211868060734111668929395567108301788881687057754407058539033982375582715558266425302312406581188293050233057394917664296943082545367017416404621779956133834558956954622877262423948682020091771740542307386795173125491764737258798510613743364137701601625255626027220902562342299439227451104096803280507073352116169616099568826090155181870882939283945019620820289432388308681256513656487408166530660822445954068346816967385597360896091049689331037883717688267831134291152047583363889609005891791357563668215352445784133135766418193476633431982283042313960699863949650574438763856902103099618857706049738775462490110676463196094439777807727165668128026878887130940262937754349503162229312956667706953196455021574571302590560963849225131783580555357456080342153728886531977479934983197930560359762619413447406128836791634390172640412904279834969386490581131069352261649364411523730323857527706235202343546398922309778749876681032515117380784269505230999888824085467669344729813044468657538831029865359766023637114125679350914975049215508241958101577813180991063069603401265917797796331979907013780854288043173648339289887276798830523991500146987493640509487231506346839486397237481450602718986469388660816441606787623054497497409598734107021018473354580943110501381754500362510920116384790805882706250563285926685851883101354493966417498832411516955994060873037508470899304999202737070845895530209562870452375002305445723877229923011274649792818664152002764847785046894304459039264943031427207619080773151259756126813780752591983997889393083811270244445228581267715048606570849223995463341710560009758016867295119998046684599092150718996142745018229116315885696331172569925674663029773459484722740755780731503766265234834598633040593979689291615534267858414220261679858726143704699281765214846997306190446284907752294038794311164474425432122209262018490679221456998350818562497639312442208312237606170127169044635404635695781935736339843054656556215459962993953106273403570274201935752479555788717470480308390238958462948614653217849973145788193659682215220844415719933823725891800620112047233854950996078626682532203852531358192082464482538873560772173634510536391363431035939854627304233009940047787104895928459072008037565039848581645269141850519743380218320798967352481421914354738502398035031919776915763161850578633932501723601124916920657623052200493463274915507824209290388185024117340339129596744060287620450659439274714924907589113107419573007391789292539416982108164964796837532937506651218828555823867880623783673177662219883802039474772823171015467770747374875550354308763158141659511813203933862915895494983349686768844050999696166595525289524542213281369964728636416894318309738547356096410544940920052290561924434539121825662353501438971955165918570236729947315825351532055342036604323573433614319877046742519811618094995254397289468478322392857087586631513299558966208630957546988494121779496023246930413249693932466460199936275157403284890084143132576986093465698293025544310167927656755636500752337608352413895370058289668775699070644811075988866405703766515466319762513179193202720004757723590466610071959818741369967108125296558029616742426698485293737129373960184710922985722179148559771551440595928504497174920472094774371395604445417167878007738292109012790275147778959205171020587879916181698896744202864002328784612994094647056728339659931752045812935072681052978467278264794892860050935529288740049628978317423132684415363413482947821891594006675460630835545158949093217279580517325840063222500537717671316419202475278022766138374647742035585360844009066753958808223331896083631744937594629999929489931211539402825335465643292360792353137957091461105666282636892365767925534007035149717063122731317974835144558082760951886452489075162455403598272885067710844326515418268014347244299125831459311971411238917931632654949250366608527758574088107390089386150002803487690236512918494810439219798366992996429437203679475552543103809994549739814996641160353456985636517098071225109124284219968361124606518783140803616594338256599782783759964528029170271664313730539772700613493615269305162442291649613744228800746022564159022879191532766374742261955614300845339211113521149408634734276791248644541480590765280016545402768841436792341469349877129317609699924979371181792082998804561934472006911655292538511030807526551623657853391081355980331726717778618707277225353362742428257813627047376910619132592271847275349148155150971556888191706385536786192729835356658561176628803937987442012496475187382712475467180783448231343284933354468958386907736015422102116922276061156455371946706733157585921511620221350051666517780250197944044172005481886362774137526488453731504013298745128056513040547732563444424688595366611258688846375061743627352889009699186314550560292131522347158464284180340181888025552338589381242136462723422848938077072187992778950730869511723350817747524279295279860569263328894213899535671370015185026666830956869106103278048562929079627807283640465054857072684744234631797019663583072888744240840164304772563949994791358882022479355147436960593382008730287498742358103157260901691866449888160572881208872137747191607976727673511166302839488346168310446440437075015628756677247069198223527664629067785129527886940063888668196645213831305266607001668323828855431399157323040682149441638629674923979369589733792136623099528169302563784464743794690796786243015636085913794435802234600696395858418319744267315848868520220751158918778443123668582392940187536620334659733810714933983272705162163299907837092508713130922839659822071540427766295436966828313963289239540039486730171060310039282038891428491708097213947028251168079202413987867754896849799114891067573347565291189939800579850221528035155774540936184679598403866752077286839117447054533355668347724970895588944886011814219327192249823228263031918272934365340303624878605909507458984209871298874505407173279036706076383843154548307562464152690531153119615571092177912530589966307123260138806340029586259362095292737583063469247624257091883336004833128735957570896726833027030744737519020870744816215762169600959417512523335351426774951508549386196916161834198653836398984990504383402234995022682862610463975704285526644302913064675924438981324136020133534242402212533190845586575794073464431075847478032883475901267020053924313565879768400109336101620288746005139951175035172606473057501596547126063684724680884108812714873308526082197819445070285827312921185817457710227736531919214156804131109888953873967526904346227371999358795826302510209067461925566638527494521541070986092248858112951938206985973778576221562297256777598953361958222418702203249511738277549655831013660084225647198302311523623845041639717458280843469679490812221128594045706068243083620270433404819402135471650181868148069299000042559219205292145826960203104863324270529056197983775779324966877910469824039868490214720164745950114393083454832103607376519905979724696851278701503153510003600225647803120431870272307609239779499647769219778781494238334582458504488616579704012829058422792537271168449494804487138762969573666034657718191388212955118121311872296041582467845379292816260062091621160931977923080423907131029654218923186450993762861295280488665979445634091304083844705090622314324343094037462102339289198001658760282443192374142974896880729797999807243074033721448785143278050762824932216902080276493051749419075278974641073003360595842965622103071646963115111967191151932320053531713398324144888024066014857984015175634094323435119345202722098564464697549550142475312530846789325102450272138589539791867691089507818934320762924589431567436196905437408671367729838975773019553083960371673698479067457117961883663324798157617168361372036512393124951106047218447090969197115306293894405680934754821366030879932523969048637688519952684361915554348483451322845790800610859667881507285400629996336718117131348184495452617066078749958452479196959234417090811109915230727085522344975151912534062006035475002883379392157910537164065173085378545182477855029605412882445212253576564579382591244024613138913774359100871993853817751223102620236615464855657529148478053528570902614166306091798418283363417209417462481183391043569848145106892233308762029552052726950547258714459955377327968755752583692876936596257716473072111492054496792386776380220676262256583116529837856426200829702051785930751871862492980310423138335694707225490576476511401640109945013798535946390431849418891000443022312859914953137764312778396116427135871918650708837584862284154437412104364300282037611425690198759505622737272807672958139833676002143138874290819110837244633466942933231059015219676937875183321182594709768284682110135877533882217531306123669960586904413911849368753401219452496928068657236870212398394494349456854334573402195060925231980742894753779219981280075739495540579378847544196201347001036874324059135018577395991498064054394261784454845220343422506207049323488718931918387127552198501651486820755626982540702408556609469081861212277180396344489881847557943736471800064481722713641025429826556148272564430269495446640823733519934299691768611354506546804101943543329298905580309637488958348266553194590963443051632952965376141471812589679357251374633464322303760116610512248300398926522130934214864086030273447076903648558784097611538161175251013865131057653135588303024018570854492651024153547192872731539488463133514118226316155173584852609725186379190985462290973152959797365212516212681545265720338338578405752964173000298068201849607745838540111091391509794511949372049432351467955314407392677571107130672513485778936083463857767173750290163994668831794554458883217125065167521487036160193519889478128576453010261102984549335788989749866599763962296280353401744904494910754071499663205422087064425748613093960550104336327323175758857531963554353940413366636694808171629890437276788221954162678725102514245396501855215695997293243659541802806633299983624829580274931293959938457352895249884681608239715703564640157982235407081813461403005730483570935214601029177350104070734081110310143905135785139084463454922427830812004522648336725230764787085557593150292815534065626636197432687575143993342680043518148229081995818296837242135704339735852419090574831557626529456167136334375852628048510301567704741998089452342962356308928249134391762556828562861340586089536051776152912985159316255481008192843465110445398602589807167197820078400785389481035497838602513385978424079967529969107405738659893075999732476840724763138733892150519617620307991802586559551912326731683390943832458132196894979934316419575552575157852840809120289933837174879976708737317586602757742235405151753521983371151723867391198437029219436979766719534761547716302211147160002055775259640734348274792076552291568019854211237115919087098022261577120880441612269510323019060398219948069514457630613870129658318105378956985253307312242425729741396999064606490014411483925991993460661214676978893807912774339350528682618860223442544501152524566374323525797455291693193402398519014959222378539709007657485003296309640147285860337517352520790501341537021227575718163911639694125590196089553417209374025371269742124318287943249680494289120212888205369621522249946237759851569931548500194047500185526960925353098029148927596647245089877048981609286975177274074422492077872711667468455431723011843818636133431642877602890216011075160924392474868609129057429738167770955440074157411544381571788782361639102923780580825627983663024237148878427628264179313534416621066996883245485008810400448689799233225074938444654378073175367992693183983892417407394118715520987037645325187586230357800231191605199327142739479898447907537932931070133504976791569817606016644196938035245356274684210462858113884172281590774175987171436668501165916236041879802564759176683847232862705287035114066096156535873321451866648791655709338854981146183720217217663836947533981577155482961137417202040817002923141474656197021774726042632687005968294477860841486031879714660068465558508915871255505006595470367809257450170288918845304759156163226440810359963507449139185978965912095484297380334499356855133914275925630672704572322848975381933410727384134229881081440624589788979320470409035534790140082918029785314302375620679909709549658629822073891241360333252451331567161429554049034521560290981909980350563536372945548844080099386931260858971120909898488485394038136749629755877475605459292149454255533115535091442948306365820656058317177720440725170958823934878500299076532950201681769524061909627191210001029484131190247158495110850360659325949269714706470749383634201272867373552719960085292237620765977978131049628106481254902551725888866560741678444229287130821888202857467840117135519515591134402460393211451180250599016365382378060305577512860292837780305930392972553494733869320494208649457194020293354918828335149068956157463229099896422850730854976750126818233520418636862651797723460773957477475315557193340523582673184867170591295639858591674708295115348618825140776213672311696779700342300880335080588173769150354221581866507318245167342282158874984902125313617989399115106851482731651092666687082433002841693158387690244566420879776135991538011645006263145348730014816872146402595121049088355504433772043902986525784752337622948116881753592853670534193376287651693211556017344260593897325690961219269101356164413147750843020420934993614512637714758510121827595190306461246256264373565299723566860614429672217674981675524127829796703286773944248675455793242051411360630837079797357485787057823833799044011614216595075422964684401918026745224823513465099075325884021303032526908967672551338845343302213925396955313271097495755375197792962863954614700131674882364621479739004925274143780617444205463282246686132125748114203259232381535495086849988824281678476977404558279846212633220570495156588362009435352789249896893941595039346161403474589650197619710544090606997098124872641773119493431146955527220395475161952423126752351155952092453070018204158919697061320719201212413818171956618276542181957623631705968017759794827124742854504324398838555905547248918581499375476677259563228796537073367672056252877434829128853188331409868698175666228838205050935846165504641061842049746052716741715023749726505229447175748350111100214771580477792293019332021901676742326744200881362593677768871483929007616490822336971071264012161064784250978703608903169106811205492882969485563722625425754695610080998670167651993854817272844525745467978927742594508994389735091557714091514272072324274685560659601164214848480877639147218251759653809505093662133214493089461931584399754422660662201229351022552432206361555950132310506730000418772155762891052525529479875068562223787099107778252879264611200340720485231245391728509467073928653499759901353201338630284255010411611219334851646851663722993804414110311908621674058597794467368654733665244589478703255143612585909558371715153039048259142951123657272052323268268035275548337350932442470962899481687148009214615916396163860124195835986646639244887736398850867128352650078050599666842352506462890230677611875270790287565074560543443376513697751455062140267756692457540026230885161475931292438866594218970712436241512791073183745385848209579559369982354986014459806450352351769951632018801038428343912055023787400445960190654012194982945205705671688221567784682786427248230132987632600762669297302196565173370102620896223312553265242274364456430054357695608795957712923164138831767609186322224475722561182898560995693464101031280836682504618314804326937937209100122232367598497478715415287804076308220644040590987241892109304661642894181905246988636426471571831392361190967012644602527228338357471447271659577313974977035829274428892445429357193108701337476552532728650780153633936328270923311988705911230323902498777492678772427330721399485585492805573807070328371241158291292055744174839524058839789730683331509777023265593011887851105470847228747533117602009717203428560576524665116011310156220313032639085455965529776458586650238174999116801804820033445452095144775258657052817434088530769187012397246528962121048709287991634012357820721118353533406140660609832187514323035217085760521552590171633048105037927729291268832118171455335662965336906120194124725266177449334167118616276633320473915744359542395855229824105701144401988107379731260112378589152942454160489873451063694738959988660352515045599889143052351139882698971875319703803733033453260587395419188876091529750534693821373086838268342118008043079436368417567427260182470201482199310570460184564019080709854040227096513269913805479717368534578494783983714040661673482369570806686769677319978482345282947364185028193865471857954886281944030991383710000142197562214749696057003717874662667600432897026217606656927827001261090930989430063738583616244884321763551675079951407427370886281808367946744597056232029542591577158924734201945039901327084888110026486622594404284617607866507658489873728435940496988900700738838369453489997342828472315286344020992180810641072076413386615849019500135412383360341713699484120357035611258199627611316756678131968091813850546610031387836124827355597347932213674940532995534735419585478266328740842489229932872183530542093813789502398122673729626346929916340657894002706886432002783772937722374651623733244998092495871322551152260242631490132542128334421691012154495685840649941146382185330101160804802489645146454399613428758008312679838811549919264697395061216601574863056845852418645305219090666703551454529871960021621867148705020385310115440597390525819696418255196269490625098552795102460851882855091689295952317922978518517699604824948540095528656638991117384698001109263857841427983372747271265852697414800130291996521824902796083543918058360680867869212828390419966567822977488179046738686567695041414189368721327390398167482147072119499716953590966769729798286823860970344134844079575998306334526171185753731666151382486649509248157442431478931242667419140798348576665267337781509061830202928158638495497272936005440887814658914280831316546577134932954745208110498997764088937172105502494518463969868594896183682582497901253441212220533347303346400162199824782862996090152813434518347632980499825172754470202449605528794139435634323046094986249360427884905583048831123894540376341785908993167945977696189242203466543146275091617375739012238390391459210276526254113003179808471611639511565608968179477189259495634013700481192578681881723991965174431961368082073297140412376296972389923148537450017694294988127433913138419621406263795564867382136529342656675284743226739102127272211872242373254665572125350946284406699869018213001791097428326578977267897826952555360595148881055292264193477767501597359942513777115046926932011820259173296707725037243447255816457257927873590151000570798073699697059551322382592124897622607457911148189947918563518885587701791939922723624029098655145838491668320925766813085443781921323560723330004823220909885161358237796264600441162701855018965154307723431469900728042482949077511596606672554888532644295807467993470737245935498421767634604910087534811846321132714161672419998662720534674384219734141158288155578961663321500704908832872581309465307791023862243585769993767328948354604843436014008356203545624430886195406362358971762690773744422303741514800577582631039727045425532306567161568345901350427691046704068800837989464047799852629633644340346096718546301923375219569394163914021529427218385675253325429701011943993212527911128808252607005129789981891108765428466133050984533333840779755019952200801356174443434589049147731239393201743019511606318399758181321656774704249551030447622532648094166792509414821593759762629978180329909234749115666811523957900809942937638625338707641694163218267607535630111447837939136854670684798070334700924370933693511177536443263544922698506873526453476634129546617102814035431103937340577168986130705615539004505091551380136081594136852452054989324257064831701470847318679104606620282975023999847512909254797821422637200930214770928004640626985369462070263584788772704893652138775781289974170756577615907158910283409167319703349729512114036659459530199480235838835341905266454283165126756741563490854293901530389303419178302483877790684293732100477717848134537711959840934515851416125272457277887344035892389613409279738544053786509217145364786305927572556995684952177481289823554693118402398181079487420082564681558189331554943073375395729552537407853348367910781030277822603994082765336216794823575929272175280266354388168410497775565869642868078744638813840776593269793699256144137030593540106457390118836985686941662249988418291405911968698388465403181052095156699958254090679352658315573691131643408709816321378173035617644113901751400948557585868356015028117452071003040187002312721889921293547558127050637102954904838444212251153459858805331621615108302747312661461917959259777269264249419388538688947214201150362244325393616296101968561180341584602830451833190887471341561256468372392210700836491482112738721673152311371254515654275368609745764618803579135629188413820933243121882356190451717474118814133244543173217894380396650328054598922526671543659654569916971638825978186553707359010749719099467312174282026732762897212469174327063756423200939502544339564452412921526625639255614851152719492208232230225569613881367518170366428753875072345698728968260369888323582825347988033126784891598343861398116162241453638245076584218096059351974172195219899828044972495278364955517541332967957971665024739438349898126439261793258285380893128390495373560839176338780290348435954639201374761488494288942921631411427998589925970254481785290384528866889170199696035659869686422328504726607833633165310728804205692238231867193931852179876792441877139268192443341868585269833318106142486303633730839991745071031217054102248590838242932896502355787223506054143987866585516808558486694912362430930338884026649953790058066695224889277243594835812099735812509590610772343015992996557344878699278142668234131187659211339389461328272966368113053916351635285670506728834030987851294569268570185635034835100394150240622520930154719304903467446545562930524426863346669817508230773269805364881638319043605624044481681317873620147559699600653471964477977780625674057940883068874984227422027142769142191773812455167595676843876158420347904447703341399451457447952965573355565792236161250445017101984060673046782081878588129923512447393667623206388205406710924552856952078244894236774403086475539817771339145555379439215819640013044636241820507973575172155496617036836593705312274724273096197777655354538644238541393698122781001687116206403633302642658477498919869315705402503204305040282461696804864942393090041992847551235551256038878664190145248179662197431685398983226245531336590653828730334394095829212550023542456301352570346729640729362181052121542947869790128512592334583590115270337368245107683480545668611958402011137774633890031972519073787230844079405814627921131723892640819062788919329673384982339781300482211883229576823372171370649612529436570547842588257508818857701213589371497214233222469306147501545534163952967500394257929612055963552745160373185423061596234778063654480320711376348995961635489156712140286246214477702387314440757093337610509857240548705438720320808634696892990819659682209302019938980840656601531821983903476698323896458890729675863052663649061785959290818009785163673966348734331198380302662370819144812444632470710509082047849506781637523095771919060696861063598070782801884088213832328730384561466926388888519435797107146890437632991588953833054269542060456569833356887444700098320431092134989853845486500270709938605225278895155919293251584607722986996159417719640126911481316366631217004134524292102051952495289692543185467734585243400799562120987781221303234396970269723872913090983116535425608243017902551368945377817301455843421497571698392109421341878961714011171280548525070729528388887825859296797177913159138138278441351893708600048968366479283998119797273597067654618260159974534839443447019246849427508677563168462455323608819525430399912252857240897451167027549286346398523775510711466279409786129974767957005928545201228844937858355557686338514669825807740607689665763125915769938611797883481924342924970842240300202609383663827227767609587880558938890289616865692554026755759077543703643986953295610994931773506270170364888767539982180209564441128044136923258368825516214271763882479361842222760517387513891599915127941934649104365360689204319063769696785702190876088012762375798983462493413000738285299558247244345565956598988370479155734010500757180982888489795838628060943497056104693812323342889034217666450314203665649535874487837438230798504739224191171195649345135038416466657823906936678507004659394685347732138216159988568688039587195943017041666577638744886635400927053741927938979664912177093557009570105243736696986865836143671966034318976820834696828698185502358478338649728663785529421672754441207861070667571181028462311575007578644903923410267812348321046763766986765874274470812845842542042534857540474756744205036620802739459857462238321253418655945309184289290547915706529602895138455120741023018164832284859544627003914678891242733947255832577160717118974005878518365291761294334479840269949313615787283725097085121797949577815859384515391264721848622903853629997685013138822686233531066969085456294667347539651579692658437678936291363606897903186197715633610631023627943095782227998714997232744448718507706250063785279235159675284672629929128909294636978823304424731076910692617166205209708428041752081533406787848835069854705991410544680178461716138222878845227546515967726619629225608407692019095314352632311045789507669534106086611352888998338472920849999592598144646650865557298989775992539386306969828809328886615823023787498382372173339023749970679677900072659303648153379187152220593758507976649437503740677279364652822197270364681981890890137116622367855797149471540300659879141690410685599992453199331204330340159783122164308543889212661232489195634104860921689258213311870442424843580160616632328646531966961089402007703441458386696972771239613816766121953982554837790562642192255996821291454265566714684687552299599223777707873852028958771303699457282886329608763763659069434312255040171459260211891992152222931541795922866502207739024808989588378609225552421791858441324462258149234293433434938367707768943954505681201542022296663398979672138118616871265074096337005488809805288576879311059068814548108074476737076943648961734359476104369784293979975393947512846902424345332396655105402573278786954184548373212768842817914601779799573343273317853647227539075969582677692169491667410983277642649474671565167191447945430778460625935108568060380430538286691415018316516533105677520176260028819235204390076605079588633364875467659164955411273157038940625146556330120918287906760406147279969762278274169847099379317640318977244658556188709288489666280117053426074514211850933329361339918942563703510154407907149396390925244671471906150125423666910980580426884588757757271879432482801602541137258194332023830602124692305049015947409114771439167759433440349618748242542293345519323344080811528127134853463926599074093659061434796548554105153933940675136656181604216072411015864561853061656425485948160808915642464086970945058722945208786589194507064700161180083341844258615060883155173892556010738720639322004869236550448040034221852143690683149679015685490040364390403971999897656647055760908889788907758637787160744467104083998351688255589570508691984258255013248449158092567251659730114784531484345676933664582476336264448328983801003683994592949454517788326312963867415114626457127580182746118959287095213863422854496144819363642364087940698994854554536137738501470316300976170470072502522372427430489957906558393176555136130718334679709314752986857666519873616491525228928154648358562868341888987232538013775154960604657588290793550832426694553148568549745581905839682969498728286875917370001045531067297284116008848917013545596478841486240099931338127197641799872670341013875632912381824407737787913604350286397239534733046712403906105586712939790515509277087361695592153185160009734161064977327337928282118722330428470072432119533899562284853731156031200407627671668245599746214561274518024564363715939773850111578435058826855536786772203035732355783911889300996158094687283324338582728139238904893130493807066555614821621014197598166112658635422977618369996015823334787272488453930254447456260130587776417008206497238992002350264690665873165173656571702515761916978536778742690410448152186721736219219389437582041937727301061357235902686652828021036387934006312918218070814955362528294801607035474671874627957481488671460486550084044633120682847028373577794398733551386764613235346962412978733104358395185081813837599835993125639159199238382631784449417506068674866225022551636160612343619998827000381512894602476944919665907188311493892624763938399319793616059098300515610492992208433847750290715043984070766072861786788445793307504538620375953634134659269144034566895258607394441635530599858988688701564031452938987052068793494514563809637963397754152671984437448107991475245140932938071916116774542786795925082074599482299455933027902144798828220183254289452482533941901828473527528974055403470280115443004648211791467693112969730058259039100654003276525612203875392370515506701446277070432530250432719982219089903379329429853183936361060384827628723199521860386843696260947415640192360038385279222078567134541184229984810128372863019405860498712869738787116928713357064549549452181579976800451178963407233253171637585286503892829788915249462749154774213431574334847630883966880489307409022302692911524520216520760067899189594314589080551215117404472528204711380896846630912361074163324392598942696229430591205449711990751091386280832914130769978507954551527434605707616180901031784898527903141716356804576415388486912086317592767314351450409090876712856345683518333452561793085968295176354840016715911344138405729643900422948868193911542790889021086778682882603622385406161580548280214398955548805573824113624465735871674234368067365969455509854817917820775120492181884989127266623313520451702935752099906559445863935101460318703449917722769367567297474751023287042192034933358604077186064955483410801970150613795069706782664159216323442360470706060050495657740406979226924327774612300574012363255522140458923162091492423263729059303464311866441113058823993664934109132995358012402546382820607392479359146693082904294927364931589105067999267038202025524247859128187657520436441619055514154998817599591443716060841002238628344797278266149377494680903823060738567675320913328119667990416592044619787051557160975153096849469685634276406934242586270712500391406830175502250995029059847328322325428095635095895964378637286495105993819141674034117771315739952346179735315785305710073421616590728702002689987732719332463322983003949271330211949724096100798072708731409481420799877972891949603945670611331020402805972123818484220233981652638784276014374402467322740921361577557591599247503431770402910109368591286680199863437620531267309998322763971243053441863215345857764432757379432479649270088391923993918720179318041053889317137228717903292022392772109933622431715451678635737492456866839861317488731206361304544955486448312884234970154539692031731291402415182700240658844730960668453740495167266332235699001118803172795715140165092900832219527452219960093611031268527368112977990276768653800022259425247678016019573432251110290503691333530215480515598037878571800980024325150958720292747884919859872046644104682393039566905017471196171965926210808449478684842792589871662489131335272271975989766465273439669624601679502800288630396997039486316154465177600701770678376836019538948612361025252669448148117891546811437149689006532178483727920103885644158160333828144428097422691744278363947604284922974927077138861513747524387102402477786022813047635838833890361265164380335609870357204368436672915091789326334979993386470579938073329738390713776944039780692971296192934138563229606056793541267156783953614487389778878103822569541535133181953232635456334196595715534178352654408782591627665888336698480654662771319703172537099956789281564194281969062698866786434443407924647647782841290994372978606760626475250329457622976796429549651904963611302337773872899016182558232489827931410231128021783239645878762087473357349810295733948514276644782263882810288276794945165458688533002369809545731928744508455152694071126810929885832104694161820144908520235142133788120230850450852485551689615665322533243642808339842865920022390786059504387419173521754616411096408370875795500379445585191841485150792440857612133261527012470824088675899902003810916599109216995619617769544355769077987532298705672186911094006208062672448565702674624576913703611938520887058316609205401834770941988137456168095889199215054271782719325764273157346661714972820245951883888866385146883851562482854250978488429138246215737855683174244254046980328765186826296862440375963970152697209284275256999150439953553668739711863848430364617535397037087207374643877497357320111734160601128242123187282352457672671235857808444003619301879801483959385677250844773881048034504200987409843202065204430728222172660042064810884138706584316559473568580422121496533399394259478730437368971577777681275210983755898610655485338716661150098238219123106135231777243939833235471081417503726815221992997162512624716228285872502200759028493296986528447314297705762171738401301297444631085540858508963367699615822313041622794167354256994892893099947902981719410796221515499338609647017337697034436145456180688750660159508988808884164546755034259031915488007380786391155098631086348232331978957788635171546773378740855078631517911017264344047385725660568222400496731305013200356062719809896251912745196493903603865797308408173300515090075277102918957059487413388629093366876256587087812660077557973146799599590471887502983285723842610607468105780424582698930661069628195938431363520647275097284584884974292996608611744006494264564683719858314448370323358426060760067955961158010974873472693851484703649077127188859071550738818774353015363351578606266376321039117850631658696630288538090077213192515701713508667697379626237545422045100783974721719724637140089584540937294042440236634789720701794779559280671842488290692029688496656348620194573215480971904086008507248554960253001272115341615433920495659400554066410076440761596962649639633057101742056241324610933899511600102163880812329057533724131778573035802540874020405988118099726945790224871236503126067766237169206484389066636536232900501718113547931473768431825436545931578111554710545090804186909722748106923200261956062766945454440394873301599860999959376148773950558939831868830063070128680616865985754077983627128280938082536477256350865409584784694016714644976159108357615210048724522771613841833823657689457684000772373581425934260350242539417402258803764434348663584431432950674417246590761259682974226931599145478716545327989486151566116686263862699569190201900636805648600120905126988945271694466823458978635676069191887890587120660185492032124553262497808626732052199138399116489880016280667044068585560817635961696133704276723267578956936437810000152235231081307448172376003853130260877787557101035999453304860169558454071735470281934238936192256510183108378523505668925810603646151439914939035739723026730306541578981037858750564566713632719182069588879599009882350745199854612264435787143609097526753316771809693841492229952772285985811738581295221127929948935741578266762319909333032139278959396745620219853372659234789734105822758873186879180543983941810385240377690339923541773241871921512693438161815651737447568707507453461959965833912904286442304009858724055592317456803604743204550129109061082634751341507898028258769951644230320654829291166285145040613125574616777400248580057656581743038958512341170529013948342137109808296024025590176266535169299304448598373432336533837617968437061688299198215788944016363471003091960542517459201889064576456510424688828383164383054631878497574472066195688573490735365841477926924089689759261210277635568444235321351269965246983896672876079252416114890489059937419900689643908813520050818629302359924203008756081375025021338628263065150011665124784724756174067832928766320982599546201612758056965190648432696213454376825828845244435111323662423865888849908815694092676458481250997696942940345502094842860216999846164764778177513341216640713881476090843998204113448006086191036294687252754382974373943627722118204491277709513315404854562023450536550645386147837347142380398708282715394117677357686766099094140072779374901683923307322736248785525419172106224025120827105124673882386135047378748633304814669719763366548898577119752539050923140497188793531750816389869041087770066405311038911244312370868474836800725021123612256056325000659342780790371875675010005039471427099846771788060614094696930884493516649436536596952679498638047459624588088921982366359690987078951008621332069817560988607050620221090456378904544145362754533083604448508785235555838556869092957998558044945941257366280476418031857420593937851755808814865364290237997435922529750278033557245738443486790956484242842739516228021286021905976200679787280837277227235651737466107017496631576641270539785212204080088617862893110514681059834662086085712371208027353067186002755559161906766739340575513059209415336113525821773164166764773744324563856390319505407517766761224024397091957574986198142312082536152444483893156761769237857251440744731394374600268142747306963082700687110470069583463894901513577608998852299153529574138933775819158749387217261120771699697963953079183711316608300690200086298596322195589239309678432541037620935144030828484704011467245451708318459929804225083085595365460733772116821079786077831076120842128332244939426885071634815045609959907901957092925296221391243077817123845435100965516803636078504834123476539126072200361895059338654783192946550173694026490507967944926185466461075126188873442396116717678025828727929859148690885343763160938773130078543813384471874782615613091714358413347824404310345667684259054137278434571619594906840117289316661103137629783434259802498538191374792745917593089405383471269324257665904319943468171375609708992221509061394153464758032719266034808995313875610229633822590241798375882481887973101563256098393555103484882306084890881703197244848701584834015242853713116227235619323641144190653085155486942774560626393375263745869042098004289780113793816723097798106469877505667401695163682132417634333712879939458088958953805087072852279522281338329920981462929644610627574222828423093523500496155290379948767454249342417993924636529120020687389168162073575969580489442432233796486805861098232904368022977141924204021168354626554711595300039602440343244973594847605905423336696632731508220291766842501266660759097457233938927980194739829160040738529887888925723589274067314103798252722596803805551211104960344965339436672197015457049473479989087789797991727979995665319130671256601293111500205547593137226384353241010359724670830796996311061856715132606863245277972480867081029459598507505410109809638975889476196377514950921706462419372569231054716055162407709290798926299891769358119362838629390026635515634204480975978975339172820463450264132813977021642728778075253552105566114587566886239558325017588987035849222056445773284937952096978109032297018937365928363189936155693726247053890848724776655060322261289349369558646723616070629090142889781885636027899890961601045638010222081859714388285051864201260548594171623524494105261311252417195906770430634949542221510297695745385891823823523827307815603417847086610753976245502021420139069857839486477086799388525417825081309199364350680550859874479808940650045629921654934383627021924100833835406943738243008751296927008036856571910442399900486890816074380697394266753641833866336076178055494370803259458739765431926268296878345484988009744294038859582528598539491436347199064350694642059500142113542816183072284144644576960576955072473897445379729347838937022939314050973434231449964528514936754464352987161568550702827410309549106059101762630349376372257082115834006135757604113000544541186597819683346268175427130166516239367880282082654176903852452727641970622872425013090941070968164852033110747166719614554004489530251764853003575747239224469450802287809176704578732970034985171496486066594466992258943305389692985628758522455483353189721364156278236232655934874948132052905064735162215684764860497078195523942554549472177155401469620911198554892640108272999104272770532964544347302936652073813877856140419454194118889697749778971031126866825143475235356747896935065255713082220022372697633743036665016269154934970206452753487143687888925174628934803557722746886010581104663275877406658474119856222404564661690154792889644827385974070457453650241059111898896711233821672142846127398406410356291189086672647394593184701514124096259937217191703882504552901034130797792803104265823532528075960360874541286105761775610873674438857283742020783535247981832024722293241423627120160863819705822212087346405691997700380936968266397626251183285759971849328816522855066053775202854695562676856523115223339435424877729212065090625036514384344527591637540094699624604608766411649338820836919082125956854793063936517605416194050986206032174975736680924627267312973943013429106297677862563671712367666560241047445392224848722653690632300740029019313513820253225769323456465231841165243179925348035468789779068763355056978502277807821791387845015709769061279105876482059955858215209585020275328958546553566191008866012289692183084664714923984236094762609844324061774460052708500477366950195311135950590609404531426080719651734233565303270327065312311301674278183184068461342670029291663558103052360504721697474442675841193240863131952253067375518522066800930505853132852013658961541490264658659410793574357837815166003331376670403675198082908573303002555742939014964823903896341693793064360331871146574603244064309454605838901305928698134017014518521667675958155689206179365421497928421249691538365939481769518233148125151521588724523030942770291656990073471370636627817636309640309596002830569453831612515836034959598316004514842981560804772963958377123812088835174343980826206341716425323357789492131884852494995875439204336673768819098544211305445083356926154633670702222049323063725603678615914747002568056435406294082356614084081078611315158926212795995341111225546663142613053674073784883693902220578759490945017007273943917518007204977752873387834546224534529796561760763314242876777345869895650718379215433185757563687695136364973921432395726187748235549530371304103848878043020984557687129059242870501252510679700411211905422597669863998989131413483111381451832097221044031415820227277860823137053752329877584931742700273577266136793818665613846172913099772539403974177869149188553741240619074804294009513336286526459090318503935403665102976931467985450452056276470943522831941865433062896515869325081646674267895666684394564192412845294405763267978381258623994212348746608816643393700040242176709639446884929757154148242983494822925853949564065231589701743431288692483711305596621462664902883608242070022442520025050836862878603876607473206157610576972518126036550927567438732842177519898572271948022885832829033081312533515086294671179036883741977131766385771265097230664702300259859097177010652801875497458039159649345844070371950916696626800012547004327596918342546331872369146449037219899299895793124607326179569467100402149228862353705019381609236458865447938417152912584361565080451139080702602736270017561490352761907056410099170258826305007169267934351819044273137891456887970280163788282008809640311797242814739217163961827852707884322482820444147591765763678997844749782318105336582235086968995494970448020532795639844337530722395080904229431531598648267910738354165781160175494792070994284404493665138435748490095173565960522537502563473525863654114116863637750674045712276229850368790441378061998455720514929999249499311474517075320287894400150429000515784191950431366150217646816164693413736546280309957217169158102755204055495341992241045696781459737834778766690460727049057975052731690824997217690049295400188808121924306683285471403673093632570656389421380662107700284141305447746973922968128250719240616958520273754924087503791480258617082971928667880305462405849133290294989799374586439619956892679131286092439806015872932126747728326121496913456445737495955597443263249676190488598884486765362135502657578211933518408549645206395094568590963623388596379263925790316344812502353041518502481688316747478499144787800035595942394312317288768944735351926926527303688890618145624388381630811396418661527746393612310778171889934554239485457528458703687771238188036367979076515924888683502829311960750809918847542498169495771225789012696386547205969013527334432061905823065675606094718398389434394926849710636418891304805680196841990275386289810011853856809198620171600918655858010901552646272377839188670773545530028993780357577742173913481051509722761173988733131419815084683244866903387496823202662507414117057416392848758945110665867039130740742041867023620295711626375495947967844392924309616765564082570740408705019073529548499364516061051386540854842640075640038919934850072477593632022103612930910751665375282519545826324233842906383621305331156823837508365914158607558996556612322708632988885111639017496897327630225371850352088605831494288181193129213015044521393468113470563518346998965809098458799667939111828314226517677481773900796733406205469039760748681527241348984046800003925416544254022375550126059739821890966797879003943038081317579039899755130320277599676300871928586021739976580116105401210924867010882180560093447182301072397430458239826676926288582483374823237282636505198161593366351325718455987946838277160767459438344021921015927214851250577389642143472376035203065824096586882957302170162547474578557578319583075162802202778313488826677562257645801604503735495750975771978970247307160283338295266119249162171412506363087389374197973287489991033934975568502976636156435085620824687093200051491730217125315390129294383942956658845947098609743299050369008442768194989473728188867726248559207460701992372970736287452874533147769577966849356164256443513616859970138829649501597767653364668395252118308926059187781133585657214816155290593027538369554771130800714558068578107345967120132242109822250269679719008143732125475514284571234766298441591042588444043881574555932167275581372471400588836801001503695390438321085614036509403409602588790538824091382866280423315652905016996873609246015861460940510913729486474928830807075305117985521561373711354807371261312420925512701380457679351446935159366961536245401923888261286707087497138324538857787332801573789551873660654435127801195156690515651178492175224491810598269406895035087314631216847527675553870638774034903131923940982268664616089003606828748685356871961474902623170181325778423526668134966675959660040621177769779476771960230424777334350385807625485593901121555320915493215163436915596372811857022875462260947041354823278215348784991916094479998973336386753839577503564862853663444527455204861400323747237660427690249706726647001325669307427284802908126003922621556172211849871674571802576867494967005651261505452998581160379755747719747220804147303738051062739279478733917652873936674025626688800239349565822517609270223630260126106470227663250419459838207858547167264799501816718984657362952877725021542285934390364669863121089685451965973119736637500901017427747306518745267678062445750383020216374780968290982845261477366556939031972101199193114400163367778386451684056289799242622106346780186467672842132532952302834381405130790624810972028739513850031744449615012774254141158283326217592924069583008672864151029609334807058732352251514280435196933460377486887701046551656261732974627375606481179502774945823268017885364284338250371347367138214626887692491800185393835106153405595003573714985021085597491100303664299702960790757150798852158333408501521451831298328087587274611057889696037739683770506269148485892585384696986553020813481746813119606139909667279290166829818633372093834650321016585181346044029181514416345235793062840788761475289339763500704203405223682993790395333843345252599876218241433695318134254215817962762123870839357108934531805219820545035650144297412445376100229538108130578224857723179440593139034529580425104088401132430704741713189879682590276332938633142881794740002291822145808625854965873336835738549220182465353897626221738674878779365287280023350039321060162680311494563922735501943261284091898572884981246931351799986020933788445800150077774850261591920197728823323483658994191979299379055201514492158851537922743501556193462163884726726089512135667398889412348643842462376772178834879083245557478129032814767325426420143454512985932042406783754849780453578421341845771602872997864926052982088160399150859849572717417444404371169782431400161662330488201698523439926135498107399994302296486717199893772398568097050041536571624410914323686401482449664697708077751079196035136250272635059916968001450035753185369866094837894676765501530751419284916268699921391488348528850916435595178328927514680742475001800135137548285884884533911814283500558875448103117649767574952848928482296522243995352309503547854631187755738364167564969676954267247963560789816955892950905721962800441690602328538407810540643101193154994104654051800544990603180050751775128908817849678982117261805171815317996327271755436076067209743970349598444330002396880726409727271860345832203255060144429110812431087429651477398365616063975010404806614673221914202840134175864900981872219007914366633053180753466621781607367746764452880584522182768017984497264785180757819072206190355617483054277298824352569610028448293701635273304193650717990564992533675265166096658991493032838717865611373535590025699802077919224544018853013524788338459830422803106163609776259009474697231037523518897495440868735066300417361666929251520369610118265038331286870754403079370083465572259692855774214003095652963894819744964852487894849037175134050461216732001453439848685316469915012999365826549030488670500999481480588331575953814097664663309724956770170488104667628955048748002878656067056990946585661611854958657816700298100783188138653555450558780673323684459278119791973381553761562735377882461154340246036996678504472915507420673987252374572358202762521191361474561873754858092754809198499806141884181985936765260322150668240296500209485686266576963437789734906925177567514679139924753638131709589589640497799638982273606361763787439053779921177062445529218399319772906422158594399342518144525743364427910649827427944013236156347889687984400369180068817661171450434432529547805896944124403221740014510843810611180005833730122436554686019981900125288935666314634672777335789554093638870512555313533280093619689260740804317550783326704269669997051211042639024032857102613635428777921153160336563508061578162399574369533273482222689347632703385976725196135148263702835338575452475434668762674530819905808351722302408487625912231654186118770455374904882212272624170195038900905497763864297238865765872253152279620720430832756619113879932677165298990499543172174994387155532039607126864209508504237575962093290813094935984110320200175346069179101997596464590524404615714915311688017587908740136560952107837553452822799043008611714063137587383217311462060493407394282233094594062530839832383996505598323018576151544837191407285892719003773309614299772541686289108729452341735638465954069935831404720776176882062977940962364413083048450673770615724136480678025274221347396642371806421461403768107629487684825961336458482184369641156797003612378359231562367043199192236180099717552537580519948173291869502693566892328572880140892578121212047891813605587812849208782956529830498374440898430582346726701512162304810995066684190470104862962333738687382914121981014521195209123178482616827288229175174806819650130948009153611493341841782132613922607336460543844066580609591121903385974923884883647375542066349778517909738628701542205145063232597938572846818775223097140116289211072718031916015816485117700755295324978149752997159468092568281206130694460965703243375713934252459406601129540998080009542134690836586046828677130190037928120254743180722033207965579564568377048785774676685383037221632521806854218047314974799153439417768896314210424435359492082833838285486232474234760377143917430419037196825392473616643152313291787157555888176621752017973919265332960286139447986528566972820115961375130616002709577467106059954235713112428526801238785743454312140879787739888771288981829622069215707264512665860670122274921779155770714200462049850709666633451668491139929160579043143230668889539859095023807612443021251152154993972399981768414965788466840612493761184966315786872168542946749108540088292036886120638790953472856571683831914537221106533266286651479858963291643791389333368839942166365341072232924995614224074541455042500413210293871910627102723046446083275097185968861629285715315268450561505739138360120111174541370841613892130151480794910239610174208086426728025153656778397585434223518200137567471059842557615090839213926871883147446589689858507945439807473333985893453151674825124408739373072373831010751330900180285912691998471778698740431281725332573459677821045228130964012306660597302137059088130302858277017458895369037610741522445869677857056958125163660822870603914559130561911339350696835274114204851030629996077998302570628964138218013912429908069501711653852903044209015350980994280409820304050744771719675464853472469066988118858400776328211106214505485552312772098790117018376496141355206669554972655044215126601445492951968186540662446824337587952778297916762555546505441726579705220440303754608919433721334132413724958141191316154999479022301237092241974483208311759275726866586247786580035576515616476823915605840198766192248109110569288320570498373731806500544672795858232427513851627864120675531516207036129588406518570715924723852802143758918508871798503041445035972582787676658367798091584411129355329004585192677590082123226993727259386535734597889746893922271108313531000975823245254858621377651678439424616840981205036064654074891054601581919673171512868652980395568009525848915735893260336956410878647982620676335565188795410494868617287874211315188641966488486324926640004131420029984625715618597656586660142561429644026521092685802486566287765376173482881811799138282443231189385604902110673334449932309207845987981868293462607454929894134746057845859990383007306820247715728951031292094662489355586499373291220890018722040152067846860962379300384482105180122996639425531299046529223729080844069386829195428965180249757469406480412259105308390123255054359274220544024474491227969970258726205702894549135340802199566567628179903309777471292867951452308785733740249475026870428420564817697246842628881172648680601652313047950094852034499663742780318086564543070064710898320804232087274079455126962774323412305269288356821941648368235437712576651010832981076317953328023297136206399179786970540564035917343449709498440539703105634497794782010573919000173756318236483357082192198231447758852870898502955344929179774833262094126779289712194165104550861928164673311129020209401171315891541920022531684179045746410736695088855519834721440401341692744874779693223993781032081111471517099751857481537533973271083552744708903741408655280308432035443163529912541227834612353608969786681452080404024476212864349706190180573382308790007542586469175773708001026930078006195559257567976270490924935165643054336091346460135020395361184282967800558962925650047561314763343792097552751294652489588850855600714473983575530978759364052084642714367087926584439358341544983309779429546975462403644098945293828446190812058789625053123220079007583014504383025736839454948055472146804104462632465499100201433075332567607013234274645032849348488818114802077993146421319262679199863245524055680368920430769391424091616045456499250513437725016689188507211859602994554428564087586327915805325220168306615486772467947078156080699795896862755837963333077731249172146537268486080904538746307222178718876798028682785181705814010295988003160532844169086213507509236749821465317566287052696807425338195434956925628698131392657089363878920370070987811418111949445383586427373994975251299521535258605149752067614169676886902893939674358519353897999221047275370408786314640660263386047221367579352366060439253681453488075181883847170844926769543437709910274332906403145403583906516968367172191110408933981319037275615232864138956106287887110670220500080268395398099026713012019024847353264807448203157756900932423380117481541614858998121156619355393977294232638693914137943098663524862571684090300491151388618141602669067631431141492123264197325397981687092857770351227394655981204278878868957794785413943295344226487886021159824837050581244876687868664211322940817508436308759226250439653454432504106133540998066819484401712270775264129555137755069570292342029613642925957265578199434156576594381242459990081222429142575271175697348053672330605126135187512733421865523640313491636233626554704958085885627307628261494255745528821306952171630161345553158125950168230666592117604775517028656024854015373157275121877175625822630447501823220255439934516403326993956324773283413914288560047449804340899306001454342852456207635828280595060530282668595249273246867104204853759627892959299490475024921575471337104283490875013202383287618425865523352483691407740729671514588231546289733877866053646551877816186593137635266199707757304335967852728412347065002423735642245993219018629798827360803672778461448185198066683353673994152967007431034035458565143378644563925457806659622296776617674775076157814735912163931182571634449913017030035967653037252295550927120639390075356708411550298669766779176757051546850977847781209429494100132508158002541410354755062447110132300120434574352705818043911552292795110101075502322104946025147949189390325902174820850955542886789041116087964939600221249957191611084716988171280792445502456300189854306968114973813394704467788131881751349125170949790437106230171576265431042491469746969769745600682982971610525477952261731440371524707223913580184379668382816302324510033544820183603628836972003679758989855911787218961002653656303142903490561907237191783548811213959594470239999781204906433790884007986474623338885671729913896192230154795600247000041887198675587490367524492111226256482768919732140329482850851134252977579973355644055705169070258432042461610964959897170826796525453912466180989644766721191612266811840704945586767703598938610080139811951833577324125759468667994834706088271817397762505216144000247391537367775408218306822983404204028606245043209571265717757997274377339330424053723277880176050793888860980544593107684699638434975228360350354452225943624988114432384128412220470730003520359046899066489251373260188244142826346537564676531775679867446575705364198548480986084903536517448861614076094520778311417697833727246899920812943784649827450024488500883011507273822935416759899490729714778978559097627698364981864283469869920602133276287800115674523151130220197895714525221288812364671724357865694702157945447881485642246779423801777614085284315796939695199878621244360776651397880217969598732810848659764224519315577065031024182953756373761068969297796652048813697003456719046452692372257622612320685823495470938331704698248714357048762851508610885405037259066593825188194722425829635798098861365647005997446862883747866882925933408425532996635739785586313928688797260114533967644901542222825161304639626144801239515499116450015043066646598479825444280720777133330924792447451447780933733339105734789092811313379410563710819634685797947683220849328327454359609363215965223306039890023539391170744079590840607672173636841896237669669801280986992220542420029850356982472806588439004093124835943027976451556694208827001146949065004206648237022429817033301080790387623010233437676233325596017484927871808328210555211831150815923600015005345313810435127299936443091915220724945315493606200929459004408250859751901796669731404935118666672485134119182311490292146180401809304684995292809445226408076582223163214161286396229492143981940131588029418878174379984763031577995723181960081653561898622925353141162568058719528339853116953185819297395432423587297823350161443461641974120505615185767716331880011203418370059954863078867869603350127556035427964032742429722684315347317121116352686041432444496815358843408938491896998006859404449252038388177752102172999249302900058679358853806580075977549119714522607923378032576098317158708833357781793079497565315933029001997232580770010598427543672417264413130925896048910713638275732162439429178949730889414128305738491944004084339534740484243780980265267334290260689692805523521286165717357550981027180970330782519539889613726350908733570352031993139354767077981922104359283107974040749448150979740798544116414358880142360010859623891152251212555195062200600437571586430464566857864735587826020193443211275667823013331816883208526047017614465910841470204159479541904384987029223745536934116311419715220340390745279005797459455948172546827081840446823471334539985152385079035535576921263749578468332977742145284635693198729622366764070358382664463376925133019175030336559452649303397753223171421371068925468966263744004265401064304756247256967179720105328960512326450245793337031799500077597953807328622999870169417211505155201824237202979520140297061568225797426485027289780643548105529462906821513426575597832725053900784414123225273556925303749473690759956351861678941279653206296647493048503483133802747794561978265480928190759130260830758782319689881157543610301655351044349416396844092453271627484335600434997253393583668389449916653464474382289792567875294474363950785677377353205712504756357142626333966161939020397735154866788652069140762673792260074143373577928294230627557079996348160572368736665024689522464396401073529704903035413277276669708227892533057608879399395913491860507362256875336932383526774709797456211771330172723901888056426196288973581891217085214623129548457783296402243029351998159870508902443513754895670853286977038347756902486666119634201250483486550606647785599174302315692157207031640171901499446017322546778220202388742664318247295595247129164274264104973561333405289269726944532570477643136835946497353279518216650352884936769130318650998736394131074936254299528173892136534808751388482507617214097132015700866714748649507247946658999701134442928057128436018091371673906687831538691265045173774502196518195824584674215943285785778795850778727274946963526061906580304075207385818145901156541260553609042489762337979254089459224107774812612856013375629977461086732554825341308453887284223481285980761792787010005413785492905230111395530523441832188339799422562489902875309276301485415697541661103736608800671042352306803357297599374091147735170940080965829155778901399379605812797651457815896821208356933649676818885366294175108457560244191688442791411464006826739113775357750870374447399386579823466548515473076903476605600034367593114797490485325317352029330700768242376659064823221402933498776145318427422758902035967359664325822787135259193923557598579879929193897398563132989131660384524484931927423502346057841805955582293368295245486333142252935428561661185794669644531599073352747574224595382191007582401856910795201166324860995865698678072542297188485939042384884051028235835269037140644446975987125923653041280395037026868115705498716057911968550152108869471660026287120617165888283099092371314006229048252401342712313859395348403742014079945285061544906795258656294554683912139862299352848600922951579487189283260606221204417957051793216925736980293437356355047737217763827098803032952773021759716343967093065013876392937688656977186428075196412132703103338205973736332135851888034754332402813075400963770124863320970705705321647274039417457915693878393552927104803909860290847603594738519383578020231614204740996626422764117031717550493455724202561851790639187986580489774485350870232888165226062051567905444081547572597203017374923975829599960681500302848631663409454726223898275721964390418610706342222898256436835569089087134819396642183247606785919755928150799779010199280212420791863534926444662385104957055492824966415591147746567654527812737750150921826392303534633212259684467491992836708774002323499811123571663591261404017016400055150759184460508538926783576388612982907101561309623727823184664598020534639689934505981326944128471902474143060610995684584146905872034653098739051558025667397646197966465520690648656587730801601808359785596716187917810795970533410889101468139720617019992108204499458810964616283410304616156999907343357001708658797576534330924956610180864802971635644378364405861748054235795066071822763622642425564573466851388873455211337537267635762065061885898644204936624452766852867999785373789442958945983449379502049618739904025076629689656696978018964996851553949812064403113980750925649915299512576915142625124684540380724815231236982339001706660227515322836092717871105411194027988740128028325882227782594406794255902860804943713366226519331065282131822716364224756972897399122296169711115819810322662300986896711428879373844872184444393429509117308451655035248072669386723996539722550954284956745470771007856239368016028441560482118665058967047618615165350009956312591870039131288405018524565918123061009646897791440043754959834150552582637205827058044477852147870789429579307771050580581820139557829300686128796600102522637894321423916686922531970490653739366701443859259481719352487867720090636733079452181869421973460925521385775193790481596800829621144345277402924540965169125207884183749928813895714835923070559976192914740527965215945896796602428337142801380647335052267017264515403714985830738656395337418929018539680770475228096065764370199800721060957916492287949028629325670960998378788277603599692767395345022473252472923940188260118646408307005150124904949244145317735799030346396033125304091361203419876644266606317850026699146662857956990189112703931600298166209286314713692300803789439825207445160805412101535079443811993550633527600249632821499613796376394248866393321463418689048983288024909207725927079500148211308357758835156486013471318435192089216507252136439315651729898947400247593600725169462804876904113587980696475177449661097058658099071506325932782950528853828493515956179751290687124968738144593577745462175682194404728011702640720606767134509173781958166766270600993492630410251838415711578980488115802204554966197161371853468786102187752990061804215438467496201533755557559494097733779842357922859686829508671657754892114281330084380126520328849087264617444823598743635070831194371016259538066451544981794606653532698054416976510282026264303983159597957650148566276988718684770108017358820405841706422568028739564347329977819129563586008763158108261221460461873033707151242539897414059483258879069230537914620235830116045517623987089795756866223188441443138922562692819632647541474565667262350617465120900250684766995955494965699187351130705922720957293442613863048006752813406771247590699336567847743913017422125184644179097919540273451357425955839223048914917929043622309714836096878554882501218766356105359733705343298136132037088690236811043431880446092290243621483796197544332267568596855094512633687461412362451157545233189362061596710073529603959797078181571916755548788182911983259117784988027476975201107840233202785249180119452015548318843773335246527639727029160469770067267741725107930907748321299105574913107009638783527417818824384034066708271456363756900075812637910925599023742366341441546219735301445272334862652357215827733627074912749132122950681004621178103296909866959606332927746750155577130916700108574176490538647342657399410730411270791650782913021323264350482000079807491298004736151568337812449823184019909067922259179351658971654062170827797395766236294850119622054355982399732927734213064724287783468526066319856036621979558212656859386433971376816967530259826619211879580267168683367905023669741328945730897246334910146154098619685480720513198506995653648465693771778926567032997309955822366356553285911907603584820749203574338429524258581828191266006201144137545937918970121617006065935306071147080419964849793099495414348655511353307034112068774168542278200645854220710838916500997662965997630340294535749152307088481878097856776787911556655958863991386592140310468905432947553559188966213613494282677196001052511061261716884130035544478630758586135199235315731121062212149346364272037673501579638206573388359241903619592429722878519381479991980705135620813863997722543005684137492798563623782218610102894577081957007996261565969214666715095025754721381420072059166194181069500561942020596024488965029766308252518514237622569337953336515327934351023355632189746673961626969127150658322122878561325600367168481236888970539134659489045256903697100189755721615651528597176690637396877629513673876730067674083957860397460452449079917288582299092715371323664516606495936659555017101947425640553545799488911056257029512384788176232080571294376360640453558520480176226039002803573657470076999040025440063430875175391341309617680961336322799289547529073289767784569861296672643552794948251753742430503496429377331535696776484984679561345372221542549634580387100783187484097315798421910465259674711846294397134964524499047129795877596825448078686641597139721437814917109021449419433093741407498454677252992822856099898284743439425735254743393956594776453861802134559804063454826200284047670862709393331390644268196538875690638361209265394544518588125182476445139327872360475925291689629721222354196769664806858954354428266384771569982667516235054012441006874658473586739459180337626880341236897529219964541550676762786286860096080945447806715006799991537049782892679152708964644292398358119082414739312270521472897200041237682526066556378175528493907538193761165929310771868363840457036789402154045867350425255708918516728651418192217371029965150023297319052395413562744742713677991284838605232498240669180262230274762225314887919218917839616569223586931297992056212018716729209600688154780403777339796653302756044592567936629688720679484771064642369272163322498301592176081579376195165662359197755346049512119670231032210442802909453841367874002569844217104870728768972362800420066583655433308985950022158066121903968408354433721330463159646656933575313804725990628085040880369364909811105368904467802615544226035786027351811967369073106659029359050569236368842299125782723530250085816183818516737605926347153113877972477366414361364779601805956998003803558554441699234946836241472683086969967924149969474897527855621467173359341805838504891322563739696727116164832148477120559925948331114075360571670056525830740440267048889492794310251408073913048859854029717977784502095658071015721039062761731789454029699336116809941112254417250455087360733552325724686926515270200969880381534878011309522335885777131387612914659380396035194512931088348925536150771073398448922576133806699640766699427630141929922187247844587248932718260551255443947647316584797946332831140236785992274768297208832570780346126019276444606892801556662770378609795020180278547159587987475780765196210971391950248954575944374804244183767559964829325890075295242641208030718157831636669909521827454186103921790618976171674077329793253867534154174687932509974958245747602799600242838217286864158907930836952129827976991630998999845384093918843349365821309179213635646433672704529029333961943324485433346312160335000842150282820997831438164366636623739239023817289666711518142080044278015783274527382975193658614143774476674440885661391925684120204685618702074827955848380186683202889759911941668920273040487361679587283688969602718735764351778778832320954770985553143514910518238655152301385541603772659239908947518701221179929234959738527481249665671554884426040783230318622264475508867983521081726854316223093609603799587435881803244144059512569362838682972256325481707682024897045782438275582283938659565485482368644815386635712039312047034513701987229361987615711332336175139504597814693048152986487712014413684748469575157475694843411133923016244431656919132083488097944342655087179532021254485859265824800391453295148454544441972517193054344029946532528416331921780467496652261682989064179280672202203197914517287681274026853339113175948455547113017669632141392184276208877679768250139013414638940582450649343970304804123578051892944164371826656430428410926723358666787890230739335200988741484774286564133188619886452355287311294848020150288558830191364642374465240023764499175324518104601831218669221120335747368952426550333961805531550256501873155897126542624245909326130762242374440357171750034302968144961081676762171752893086863165200367612624090880974445384318242210472895308881373777716121541825368277920121202196613595413786429979121065386558147967189486774875983634792033089882463769846315495217848622890699665965435019714715276429815218128274694560311472861922998196067665166528979152512545149595355069913480037226933368969261634027791295012212828608469754832772144162986550264943044319698726339168861873826746191016581800670000177350480043638528230489543621083253244984732173868917508968241454180352412808137992433350701027413723924396242322724365470703691814873444020272952349641019660456586816422522272279220391349513275840709225397713329063394160503845120717448420858863877591443863491590870687524735539691386375805106234450557831178833352946572985762223293514636476462204248803043942072071426751616815443965356135874845183164471049759783922017054362232913720793180546626444404043467984288458609296829174410029828499281303555522892756481719138617180231733179027326160347501583138618738552132504115765097776397840412626249275618214284085446481972228432097685921934034200492862146517132650875258280355309787642980001104334830947747820773158994616528465143855702955045248751839911150651887778718090019431742030596978021719446939964010993063456566530630468503300726220599587853336388119469932472926406278842859154751160810871734376257218419348517958770499901756276618981396293575583223469291283601802261440776100777977364294472101480739083422327433845877888576623530232893328133000632750435659130272656356866522086339871179756467834916402690928959614194850433124966267031751949227110522503439415332713281472828894887173324038601381424055448076732232921308895047982229240113512000212894446517949768827664508038120975840076449453314150215448431957145985868755984906851771807725131376666640495656136926536930238766250588259842941269148776773077892192078849564120491838585268675841332842383984430371106451834481630287013602513035044554771279718925671053636247867724309039750859152453792017692933356652052626818046116663089299774792206698566448866683382097267359615301224681253653238289451218116418027254300578867789377534750825974739312811389804348030210685091849848910157627961649153223098242529725128881992212388321926488092448670103548386575557276726530993456302549029802631503206811471165369034431686627535976154033055913007861199470376181629420824816807563435788571956570087236506274530364509953864389993053199398378038716067995616818022973178125292697832524932827377406373211184168282595336984102398322790287109073763835505556066267053161590171960691926962366961846587376745045306720087741427029214199161095890885499510390154930623570095998979321926122189208349897908806638981829736122842747241475099615019957142009544355971005784227071416503013170951857639944597405795214986903389631377280622287265535360157293910919085804639953549828326187964822868442333417060047671319213674552280827191602547889533481687523874467527116930952341519237466755506386059266401053898397979245508679930217220481493185354921573316141710598306887302614603686637019463784198142661678285100452139525298405335671575939244168035720882785966468011302429520265148684368175461113634723750301347827151035638696334884300025758325806893937854520335818490420749461079263853637820212387651391968769149127489793649610602725885792336853004089342235750747629296541118474664139920475880887098486838796401396878711487888913668810411093686291000399921042236951105296648777348913003729603090422739959344104855033738302565382128339159559710204165689885121289517745367862688551479274971369633594074289192883355748010994166933284562888621630891260215213968215575566361361247828565839642848275886482746931946394661278590932507801929828893179155215374322697923421573715080446771711774337093126380555021244979539134043535584832326208586055497166341117799371355583807037080024441456248999014234095807750514858209288611670226770579870891991109276922221399936728059159969404032517847876681801474647443316380963142063304566953415343763774424753237655229591121239794015920592660780620156719594529154492741198230766782882123039327089960823854870545361680297644756466080174517291133401980149389524057425183415669623951724619690592995374951471035587286805284799554210774642064170195930242412422642817645298845366628834008245893834189696404975456433543959394258809354189078731389134334073993792729237204635793248201406355335383423541195464723545306437756699506054082669303552294308627407046191422814104362458883792257420007634654932600658850996896963558109046216741504032229129158915522439627789932831129532418355197527160255596482816725622178903153424055485645795459041275278229652902845162538158712691750964646821557593400791069455576678690805969109708403556813302851453499424750112321489880558178177540527997838500639204466658692669011660385219029932243433009779760680346414794498806192091805175451830307881595120124176668146574169630185783813055682237843313662315915433265777363096662525931836508521153183513817465784019127670687085632571258646747232251063122686007716683465094662280256206291389053702063721675947073446433191004313752215349162527027910211591404492068416972516424552298682096776892402621025743079087051777770656836366796436401365269966970956887552737658811093199466082765255785090304001042839640916828877533476902098863334904390054946627927238671360320588337359658815507840695182484323035991402970945319368083045617973628907763419840045027361528471462913625373900518533309399924906844251284510713421506651516688231462025451695959459960723005052232225523565808553556526800320606160253790741619799619238520831749189660218616340931437074970116873434176428636486102841174400146358278215236965088485236033953260939664323431098973170243008660609233036902686407684891609187091190741136284980559442473870139826087564134840171156930007105616394536932259812939749590908545632349465038041204689931328056132085832275299889937126961300400873960986941950941679857242629684382287616250224213908184291398378338692339867540081213915276267496313451373481825419722834628071606696238909765548225445844513648502122563320634294348605575554637758569679383027433856900057725439823575375048685760411354877599271430697515441214321862026782476794160254380011714476965068269910939133184225872008922076963859715201198746915814970506467230150194825005662496366551833361119915789584765247259250600788419167424752533802556399174534144646261719130812618861354942128002709870583875533219271254731910692572073976615521633495957953108956012472610776413918266957877061592082678848185467159302968845000295725466432390228284533134213619619065157311317939430226996695347225051847976992254802775570822814506260693985738610752558381926308395954195388495313980446328250184027314273699177648638565691856784262105141807237279652209692029499316219014039491043465724913457183975929419020040508767877380362368580102598762160609398691950840021197217321094981355933755091090607617458349814531644506693165066275918407156218173840865965867755388949749662797877449696749769851774882178996233227073711872401815803456164820818422291895305474221220120603853324920977934732165223295592660737730850597465241256708427621819515769838135102436007228268209678000647719766453679675232793700286724620311832994109390615954081575627226174125499474302621293132403977219032150809655078955219957228946555552436984798209029547678428009489375759803189862298831634542780907888662412379563328108664355069973835801457354991847331083141753663169224898402622662020548297075725757705034821910571337938679853348227107061282925533409170204575986407796893991361171219231763506946035935617966755780880395300118209917471492656188699307777576171177808751327059307291819324789831086841595826665713489561623321537137301702865329337603756787365471581382661138122439627146018795628849448175692256780996604201145302000957577873277922176001149573971128478316697446047322315041660442993952323855851032839724897196764510617252178344690369249851008105250045250759172359143267624271371286933967549078274941348104534115206948728790139228892027613165721655147212297559872730279714793125228734304384438090555019199435749342821422247284016261927756350174170046497173848381954235694751960104619657020851779926607905544788674745511922261452013159436974090686104774603551256636056846522573829257415491207779268063353668357541736475727832216799689447605702420257971056388045418740515012009862784555759754287984102476445100374906721002836045116971063000345852532804910987898292459335464930304736410174806366763922838597094464895383893822144255740659414095334089421542685832132422498732886863251952031767444681253340790281034199281879508987412645932897958572737178693518844964900080384152157168771649326336020188558334664772385946291327457321530569043494492231408681798315224797336059436521572330623704302751973582827482828674888040515427330010917732781651239188675723601799881156097934153100442255078269080020273134280029351226711960843425167897898357018510885942605739743810185249586386060262824370014111105366068033355633302826721452040906446762020783382709155297885257850765462530245220797511869393840449294979130412801822085103156985499233501800086808680563426707425014216726935742994165416116462397340993276393737924146775025387841280168797721393299749556788175189426352358768749339786299436108556871829611549970675933738288116382368608623300838736050014887804811687212102248904950012061287049297602691564809755896282500802258515897142103369683564778824907492171729288439458526888237844876294305726969593568346616835141418391352942717669242053602868148685100276742431180356451047542539977689472722189148344083907058732468227386278069823185107605704921055625708054889170249442332334704703202942193938842440040797204717023723115162379052493368411442915130703617424828981506953840627076247867925741022869576680095466976892558906113866189884562949144607621747744687193489355889286903632590781061879992309170565349002833674325023688831851530353299517132679231880663189879784402339652464628863717985214978144877511435735541529036422625202609617325948932282498811914056313602060055804152714483958183457516035372840306523167125898550297373041842969665722664275064550190799156829228850130085255660306630290324431936648109787071243399612827751608949227534602795880137617144005709382735335770718374182567956738527834783818559585367043907729741446837842554990854671803383567057303780524365810439268124422568906369026076104040198779821142882948494241328137803226703758994105979965646612968362251424281761806002827011248416991442129451825746343945401179922283187185288187884510210826644943827152880633259675755647445669530007957836030588870886817780598885235724379678647948721259077700156235738309400628621357183423296752644572750844781080679422737802369356698724363001951203648068982644683070171560996789135614843232639355282041460093033813553566489574375442337581799783230097314564040745923456071069780312283105328912261623924787220954684202821452269783764214781284813603227102780372317970608565912227811511927158285492515036827589035474107508347103455837574226074747838246113770600082325295290235493543474416746867941756227555965308831493021571740619446174968899371685963815005955734989122895667274417883889313167097427940795529794025129510176005779728017129153388127844898136108649702309493592805747246782557731908948132020845576939327896067036129635839077011410950977842610846074595044318332673255455890643680909824341391546198115669779571017999877983625241777268878179370069154876278106710256633787660095239896106818703616945883811995269216152165254517095789079314333210961990394926671751164161940806237622321742129074309047053666950335826423197180914675396204897075817915980471149397430956393518400395577921734400478554638598181823406881931874628261033722643584273099043058980845052239783751745798603712320350487048373314826484962444526236530162604788701546576791410059389360657214611666791179716266801693404712078929453654163313939149749100794854382331209492167188442845827965125521922759088504159132498006765784756119781053964432885263562064910931942372858987441867398448608423476350341039659779466343269038247027462711822034273419183625677319491577181658212167146817766985676661508536589232802749780553319234014294856413630623907456436457131745417571872235142231615992031240813412949736408814507718570417323519067594178587415875216624235359611284789661839207006441639845532112888485583874962713321362767635857823794546971188434316857265669136694676249949257988414737214536726064523149472190833410806680930888408229372609149809027100616688203735534064266922215540016091734407063989107629424968648850340387056343759338236194637658846576430769164022440045757346847839048544914622064211903949572891956846906280869185904458414729296620494632304748626675066067828150036371496976639147292650436054224340106648834454711122628014062982789988272319775955263541879277487335293051676080528296498830114833703623347276460500775980138560482694849321037922422873193222435700258423904087806987284964471748882597719339904411964341034965953163229838879710196432288039221556945768333162964659833440522492228104025881023675372104975083968942641555276584296346726648356336802079867748692391541069755305770877155863231653390697964092388783174095734527464219888612536184455358850064183025980588459097289417639967235854116481737276069043594033078419484867281608072547609045970785980705114553485281621329010821901235004253680225194110893811385774507069343644294825777913758380750901564565574970818892088893562896000979424791181842275587326867952888698394072283482894649934150350755081749836525649227115086959871639574243349081860184099083845113985730082894206591062663135199736616765512677342771908706030969304158500776808266401094259415124656944202966047635327574486754850508265537733020840155091324014850742948739599164958786764680722320204186184313420383873818727408729841978253641023624690915630370603188675537618146004257471411163219440330837267967301521405441951332243082627042466995041954327455800740524146917724498946594314590653225714166342837598467964481101028676218062939714357230540334884020306267997669484777034175760958178876253420324868650090833534290978118428674666489014260137876039615676761927851031882141667506161337984286976982645704033643832217705143716920921796531060746159428457336028071421540550833585574046783246952797926861619286271483496113185784098779854253423620910150964222783439571674024503938213812277511465895097043375934754030201259017963683653405884849739905853889130472827274116505175341426475094440237824592344370353698385315587737689631145015617395667591561791478057120580520797941140311674429466540369532453498029543950044396316161251935006883231185420362922187612234926009771184012098210475458259208394190827453851129586427195406109510569688930301318851800543903660560833228486987497687219963532872655162038281858009200321980274896425286677697430868192069858160021939436625062094684753082974514222531354435412831266932776321909574827088568320133181153690128357943194551309933596039255548677646157262896221003926138930299838977147530708931885029284893265999372785252290898435361752671754184309195100845260949913266434437570845574846272215272823410287686743416585264304488979829150787366303941551938343585865003947264521947166600221911757816192183635235363784850024696983593357026236965838022938538603941681565257940926181925355166871955604110002973882405040243845853728648818599016718702331171824937901915764554094841816532364326219715812446782463119411618777447895953082230699791875316055082636196235233468714861516618431989868517644979203007560216455905689741610647920958948268711019666605520969462061412171368999302311137359391218293556190851546174428799812328863047678580321025612827952137720996645669458706255741011854424057761240281607266641059647724794006692739894810218442592069380928497584722194002129729416184363777336493107167972229674373323396279059583280330653961751240422881780184081577478393505019412558490041477736179997162050006840839914166827933073741500171727935321117558939763839004621239008062007014565505659860926366278094238229573688962349507838148781042416431262496572041853643216276078242287504556584789919921030171398164885131073613671563366188344668193075182112605817123088194246889882046781581099537237049284188040750882046830903584778656836258979699318573373783347015404712404215429194714013288678411944750618778254763341263931440860460433572871244499642715216649531662487030532087929642933141149800390339897377134868291471711809843134019816955619189023786178899451770628823305528674583654112379663239024798933284169507610444125312818874640656160635131548082982345966754536288994245051707709491935819574939055940527348058235878862858773964829780511098461796546605179375364876952598378883574773063633973944078598188691264453982343233388257317280568075700772700072500629974061202047548681671360807484174678897401041374710893604921696103266952931759246315488522122949443618052767448903000188911044266802142384262824324140276207439494497099136266714472344609031439984376572393714137254825759975300790401700140970196465136497995573955149238609261298795503756851143125595002684684227958001291208220300011461709293395963416581215287694907058704424019020300865116227133471220985218848502566041084303360227023479683929210337608615646012655767142871425432530112899861868709253385508771065185161494771871708711594022322940028039823039832242069488286003568326650235029231830582764248584967491140259047159591980440662364885614773033356784835293151159167429349177025916448980058247113421971383340003658308489646340915601423297205100804365981043469614266702696836784613701081250698691278553818987120435337264070038600301972398137122766256539601318137973155009823025289359654629410668279520284690250733646560626083382729368976175473921821316442597230129578105886370033072561570837482405048848159057258233610008952597438084164282648013340716557024719144210635472301254584409173546741434719535792633062321709284566112848215299789320123211183688711383184224746907020284532473156880644986127243746741924147561979620685452866247971490983690133609866920967694940705573275603678391636621045903640175362641041645255719079722128293414871061525672182019872232848694452948396359899776225065859443835972375079214810902362650707037466500419612543271179762201452448739087611808382970184989760330151247633902591926676146805584548114439008604139079199680324556888964870105932659583394661439368829307897913386021684293430214595302489915360868961777503920718820218384529370840529782864647848652644907298411225911037304511683983636307057172309444329485613120645621313728371781593380618833043836263264984984418081323672020487940973502979779927286795553052146429436152933139800806480206593810220230189589320898184908546443800477352891492627144012808528586576970974537028270609408514909204178178025442282763512642454686650842720223182739558391077551397926319400376568133698285203091062688731480520749108814838014679723133150655054346599880595042192443380833099907581471358048673576145471638799063639858891392971358607956365472254477382417209299646385336164450289949178227288784874785736612769153720252944840851155223024467668016828598969915510941305555213640995170990158918307663448546758044845848988629684283057935739243503935397193341674374924536992588789793834232834588364676835938667428541182028294603172183972640980874185949617809303836292735186905054099591088870587092778525868426760523369964712627611937868792836234789228731601108972592722246645103701549793371319133465451262184986592165194939416495859022500408648616533368352732383357358477795293876757727328336079109698035550563668712188359466167899636617909727457512089431659894561903125144608894216936926634282754561531126384709088500230936363694017847045218608326620868267246525778490402245751652948099012665361774787279830956471649323596875998888324401316632215481225406200825743446191086263856185472893587100106317055178419294599648841611858333715538197887004556445300600152992531468811138240165282609292403075432930326029805482646487187881277245843450355672179599157416324043842280430721753894400011326257780199399118723456950102528082417084270280651572919243125477279365573533715672735077083765705399201201131878567507658570383401916637737596661626288505906133723074653570357072137819676502943692365114935792857908393486578605536665890651592616144900391729952740752387886552232564522851517207857060207037594079026088757699257227089505924122679613211179246864715459776734108633895059837250471264175737136851038787133702371852882521930924876303016590969916222839882053819194419873971582079618017353427933970468244468834999107419626469484426168162089366938463913110609232666991873480612239747584931231457947501894896333370260313253696480679978105021408540233026656260344362037584414042908064051275681171353945387669155586308989177205462390416516030288496582598798657631940865101440910206760409758866341826422511619023747926487734307093293781194809545424720631573019124470654061316185453597259186613614507570697067684952630135436338006597508558544514178636808710763209710893263940447124969599189473653488297271781890138931081932939044647249730798112589648225276152912780345993982839451161415352672671700809425668026439066946252232790875597029027245402410464574518020135506752158080747564255494845413825550031956043755724944172429150769403330676901316187093388528392197959730738027070202095533716042762699975478923773790278550214310866841400068343607327924845911813279422371734397106757273278067073808352549836338840661605328746616032535849974595995499384313552477642231131477704279254776828356608811118455179997702307420277141510268413839216750983800669739472232400731073475688667734538159059921084186063547140889412510631955892175767506322448161350000566112559448833343260788969366010609570260048412501779786309640382368526375826660353864186849622379552254116101205882534526267611264113943457534049386033229174264445266845711559181980769538892403169311871054075279467750556785998280528648048473437021208695978880210752391758291070858297160005071632611568680957519106608154085108763829636706483183381933367137642003086951023846302296803078349185433902601987242316767673100608569991729645385345504877130028993525786920752519348486740387284091943184008747521860880039463831519172246724608755245920659857276803182174311093028988688334847836732458067146776283128156449693098010413521401894261119714685839551777570878775714118311576011996173854862621334293052515555565164384170884426721152509289890999949868949351911725286928898981783709782781442038624837260871977960038132339865401875603638633102137267110842556452233894558550533845432339941545079775243405233130930049214138918685596949974143017041004325121440493739256231830814110161214518869307581261774781100363567631271886437410627282056562831128123625000025692486118194609850931417967696815840572249893703240485263529198546617082125451219404774042180344116434961310698941684561656635973796998886611505057316172411652100326908341694602911236118472450445561952497220034069899831883987799834606548657002613889632230168849364221340823082448530137014201568226858948843115459083002870299055855893569029644126888705391455631857932323076450284932111603939200321554875623093473898362781638558334221711131745149021197040551646961385857835702422222163434157569106386720852139588885280079044546561533234988340020953057155766367802636462939127420742997233887389267204891632808145277206255001235559228219280385496539723566725500701756908563095995931623753067737201129762025398756283816156135169659886320344949699162004418080076089955638543326936458289364656002834287232542188068602547907808755052523892141306392241340329958959060778890233611995367770934591007153458312718435903043648498780436566845110409512017919610717697669310991483849837618659297280013209667616508320735400589334530416536623087950337198402251104780019452903142085613297078192866390633934158896279090589335642942799312997872923151839972909411987314841510763048935410801556614789201716017158611404472171610471526360818315532627153535564552761858709340046722297764625211261769512298899182690960942526155389295504302857163519709322606217807048199896882723006493062062810189807685435947229152893758191303435541452251213310288711643073897895164714928311583286892682206431799901623878929071375832372776432962067687383845876054108204772658602613524959232849586201915109776781376576457566247980891727570615021823057475197757553268733851860140991608094815894553104950083780253991209307871907218051000294693852330519267232150060306826072834897676194177808309441132601515346999506113168024354242349311777052465233558283754042143876890187003963995342922254702473626298610776707403202872717796565617067071186764034889569753131067835841481846016362703824612894258177521516323647325261070953082800619142104860687325950867001718846112011785954505261021807374060973068722469507593716412466856567657882777644701247063706793800783510701168269815706611094723766951811221969056580634747097661618196493711036147267030538035344984668512031437379299784537734134445390115345970489146955211564259208406002422517448433736231775436115405644463411177177143461360633096754456996763183250920673248593346511545992151511166158858396250926232626367459619217693090012678503907596904405693585767614436620238391023180497863121749760397481754323074151734803459611959986713761934070151518213415681191650656228602753169634465796984458857519857929761844170045405749535644118136001243732325757228625136489626848469369179987363815862858480487693112033371358358296658436068857308084920473035126732616923013265007799919700190675094001908739937812409893947919310421511164157794059268358108120002898549881386249163534719849498302932979182594369667006441106729650019717098121653656856767824835370547478073733357112667672178977864884726031432076719751443253068101419880453420401781997734320876999450099848633158240249582838355959677065678953302713824085961827281024416434018157276942363836952061383418583845080704275698750892000202453606160164994140517121416888915323580175144265795507806983145728095574991050163109769373559226170729360344888350151042895319808557806809696271824552506454058619568032325154395986134563874358969534329490773770709009951430540043832260331609993290232353715480573978760546690539520486767386648581016000381559142282535790356615667337823206574000942080380453735998602706270944806985618797894583803838769939333327483870473441099456200791170653588217270553666477554456105796694503227365371295879237115913206471603625636002678312574253639416957746162362134297689747673855241578747647495486968775255806338227450807325553149437517428619525903817846133623423716526321423671572373033294472412039670703532502394468238332507612346344446235215616769285410816978820915552531144407315504859602685738694221634522351883277087973705408009086064964414131885027070717713112456197830769818833771214441257630516410121969886823772527590874346598654683586164850695856190405925220113240095450342238012918893014878447118571781694270417759781208172266701279843932286720271144537427509125026212918276856996049244974387353314456668501967800316499296195168208567023516855022888289710532284630142593967117162852514433769341013615979037782131748832075089544872836560482261437512399112124688221755283772889237669964837052973936286889056070263056057816295846930252104842714562628103211208468667380044908141770242454024245024140577669261895738765417544377711611527240633340225873894159313625211118948987237363492840392066311384928557049985054541417421832562492462655205539340296670664959074572379516959038429524932114675627948429147989172624532327544724371832060443560292830800584578003661373320096281968923747433943785287561728369427713348685721854382190619159612618477312948103390778974206471443592290439443914339819554448452689036951496759703701804049979422182009390808853524573032889645180599989680123449386129441633840272413666617155274821681026675864775455059853590709218840474910286033213314181126161741349703156401810985865168130845100481421153795944533013681378703470456424332628994979776358862471100961842191439412316788494315570207425801002119304088432043056533895842593248198571314935545245196569904668535730965101912017450155237033858049928265798992593359054381002826094661288645039710454090315398104906227123750126997126306362341543031785225754718818493013224033132458094043476435805987527137988827900596164573100461326324824647936974723306490771623968517797317849132029581561275265382913361572379040033356750984119509305396863433968028202166558109694612758836794522359793462411549371918719654824901600678726839766524904809299160848798844065441244168407645186292543666953634340093641972218636657261606123768090768050787927352234376156402953877878653528392144839558321160579684886319366346846222593323306325674066866869363007820235376253643513987336796360127546213574638644823834722311600087347374025032777092216210814291295246339093586898475066964490084961141153325951245089854685323968794553344554818143354412308386023338628230353178147671173904278720923643197021138353176635748163549869242907479414244511209790512255399889631978636511656417191289860332568678620312849651076782110591837590661536104716723390113020087664328912117081842578447996417723962058004328079727935747109575327938652807003515975573999153697701781662847203655280234019593623151358321092536503683359064224816430691275481209869015181482151257688325763696238611281867362292308652540794086227958543786534053889752780775571231295029041368649455056334925131194099386943821482646898517231041944017192725411957634006105320722249545600897733523481035839863819794689046688121176383712302911424757365910302710518168181634652165754294247331682099657326583663565860568617118049560632123507209139225250242732198156733381696272725551222526213247195313661208481357928925427542397000256601380530657759842486013806313537844008594202304732267507653708850693739847191184784018299995170492114236458585803339159978098953702630102865605590976348532222367074051653469531646010294400798771453691045005181506752791674693762088931072254805836851910763367631862799974710125307523416997913147627204072267444551540513077275807721684089379473630004755859357282907129484216607573148870680717079540653115647164030016987470802425764148724584153367869928225878290015388154190778401654253622767217261759758798658827396801948301364910238724682770819849420276517006734669477761631187725880921185811829834555765804739064570411493987239266782286341520582331057168276989929077471952962198613191657316284088712462956920201101870015577517734907032344362092758516835781650199838761111299166099754563434595947646876657622551736145257531420589548320984463062982035362953331841438869137368359320169604273926450451777771731221024948387286320173377926384651417970932612704236518840844790047848545602269103233017534651253888767193511684074758640205339893362068421433330908098178763791478302370635157449968163530277193476617581722625862026024639632297691104183149111618859305806292278194581404688140074590481984080798340017570216989072769021797382689116578940286587643134807739336515003003200272670789405012878090409480353052705996721872837295675843711984789934977060196846500676748418376247552439650201327907794593037477413063860635621789203312799224324520810970877687186476576618138199822211083956160959849476826876260231963340065805407545829541465012032367140866728348059838361200750280210371438564453244070341572692360902980988738655277777492357232472997451317197129336324916614465617987791336392502532982101772912604589781134680675966971774050653934996977083679341138381610761029706772433920195523314708963639105141525643038688796337195745703267788361472651992281613006276235657322965338831202652544589957440161356620950883864419943723536337554923900288664602241213695732668979755254126987694177093075659755636131318436004543883917454152597255764569571173385649006356642008581132071091189892011791992517163929312092160621222324134103385419557947526879544636150179125300222979984588845321279693506173537886879874097373329077330325570378065438047180533210752853354920074398385751251079815792836614825294488954515330639489038366735963419326293680093720941571969671869408565903201353640725269436639582910542046397795344099213613679665979008712592928697652345404168696179810676566640253755635340210117339475611608657450657975539431991251056185875392296948393895253284677100703643521005606436768736959153906478467947829755251836889140825718498829828473992036693269986444766881417051272414366018230235713738546391798186726654321341611254332185007126611793870286187401858645003705861110192732128432723425910115479297982302196494792373640236158191918670839046410207605166567558449157781207930828421147615560793252163957572963390837139044729658318947559329024977668101353165814682617233507039436549176528152988538015935375653420738414620339398614153163094529700835453890044487766239359184081625836295415754110825040732754998831506404195406051890275612786940631307693179982377446838846177477604391734213812589205316879375936786930125699940894676950100712817912616213523093209714058533061232219290261093734224360177395926694124387002854914600682004743937812490399797102614554750517658539577244630638301307450118630784522866658553719294726129659665813381005914204454329300364174939333601436844482560982815816543161561972889320907006085107408669787340347659920010008287132281441207286067282778550580660820608611837019768283289174374803527824807445540552446137740504810688591609276462229279046663529775899285446637192634462248765297118442302491219059703847108648591495798823358636646710551883688409157079229967187854668735649080179369588479013037462476862119737281397299990207785338518065658267115732469989782980439413817920063148959830357954907617700051539106104723376525135306471356905447901753694220943915341096202455539963726336835523450285889230702577735117906734096949829384736351119907082653585905569408805188919989872268576729237895509575836378279013104440964323962731868395968958322854443726973290983974312600776097004240371747137241695881131590151724848020749904145478238765194057969403303472628892210884574941360893777110517381462152597161157918230139364248908821425665904860672634052351320735436270280368743121437414024172793814370208532162160410996336360642843633188707213593347306991993011083602332278456890362422525701333028444125139901924670988727446747712217714892391604780488626389407679679463159913463210356043216689921685018473612836967682051946618156200548058823771803250584994846577751432208679566107162864892173081620867020695406641586693266744473678494910993584049187601200728548452813169375815409089589853440530452573051362441959269467813854433051423837136911971725879209093895699327405476145469657300404639287084791687208262383784120888329533471855543077071763636637597805888450754792054511952444100783723767240866778747184760913452983995479235695106938778119749147822023892971075280553146949025758003538883705537249302978713058097039354092301677207173054490438954341422446110480244325155281924774812659113191308977677504765614636771839121445067547486870041296255303829087111684993412190969242729961584184144685744585874115612801776779426119599774804874743324630294631757773990830678478651060488420895349976665647393085869645819907153999392261045174242876351216576854511417576648244086208254744181316561032829030352986479356615101046647412992805510096663198150598864762395637914164461510354047725239272086330393690938450569233792118490751892071090578906406899087022110383223195035429801845064489814104945730635896136673025758345937316099932785579266924430624328732849600340773401000894358788556002425627614223729335285760283934624978111204193468585299340725636977152852502525630548219756988949902063960098755375870357930346091583159781801286744503286743983166904883117226958585488962840037331402985149081314504554669719463509783435958584362088152304460452751300105740926463775336236423503842158945764595382525787408073839493748721850838994246855075190054143407275723839448896925754071817093478803872840251894945696829864977057900649492697481919198797815941971797712762861509822653567128396400926998518306377374457103982840106931936299399330921374162552143555437461184694781992224425988526505847961801793769777361171053696022327076591861048377812401258497649545489275082482472404014767745096598201862918972865908234347158713262359781960764788384059406151511644468407093152885745505122693345276112168816330468372234006941797792980649946678205384870364547283670039971710336048961085727226733384673814376662198833304326146101176748641696885838443629346397550593608334451235644582559548286080072442263878826490021903552188682109355419269390136233006835142756651249576191826641732348062848635605086728514998668180184017122198284761451847902042430378760970477494498917196293613721240211174268800882337052748322993419989991027337743166121180344626622804016849129202005961923668027454389614789108374554881971901196970475209577546834958841559586584308948732593007393094307780361215612317712990023978367605967006929563371408609983900657188205025154646617068796790947572368770919976797363407492091663748160487261343853822116706319260998983307774889532018641140103647250988833137328075541654449342473496565290035377298658304893944234906270626586185038594364467598832828347075217647111607423438761607407080240309138123126932774751245299846391394703479487731670552615733484585142914323788392275095771251906109445285094949772787941271705651921390152992006187167870589241003999390203786429284943907499873329733056211919972988271651028640551219896006125780012401503704594157834544827797038354734577028662520627462125523367427558393532170694349497876793541106615035066085394919375038908934772167040260129667194660927025529371724745984531885313819310363291093500904666866463135851131224741118931369129886267639725947301248726512044157199023699030899726086311592792480361998107038513319690117103977699065909591598846465139759984308181178385644277219203778394157463655885141153893211667869132766450109911594580674020244021404469066952830368252932204113574973757144920567466765051637287689164201945593123721461330533758018604405497406329095024026251628937828763084025598874337532943429562605767708792383617254370911386848125565451670514378344425303865247985741404040414457734056152265542993601404412872810150133861202718369302516402242178948927751436544415069474517098458471456025175473152713540228410067668600520453687936170643227474544678258403958055295717441725785568333907983325518655808338307662224024344560151525143863906171229075469548877589962241271524611457234033156380055265551184557522066237613748414382251093870156881168665996520434204189061912773251880593579860983731281188728595864415476374735290233188540195154001340818413518965663413269344536876927750475552501798519098998508263518252447989458954419726541615323882907513660417679944315008427520123144261438005131928765196678423283006783790513930743774883189489527422168229903847634945591886254663838829961252812334246608146347408183816973627714193729274093064363617440721566311764740307897140104809355244801376766117780072664701313598668204724161873403370881786987270482833752789609462463065486640441675461444175736879320675984207879161435110023234350408573251605571728231600569485743249452214152334355857578711639188561839700033891900822345926063091333352951672442362947294735223056630793608386417194796891601657287633985036810032517675465412562937675151299721049780345334807553679398779186173756848788633332079296018786614847173974750252314734475316130346530180659564304837257617288013190998790689996401087209471340870909982110758180887013483351567958505884686275244974132965536860101761164641805602797861254228001483783008016532622838260417256932809305540058316666488633460648882604542603801994542203768374370723623451035087812764471653074323233295282857443402583792251314622811836140253911290294370918573198664086702306840365889952682557567502023816590580280769491940092441335843274854660616833063761865490671476781075351577864002654803786102607781726511103512130639279987790274974644716041836300241269530011020551936136280070857337642196124369448233558337274489887447207069712947656412244087843998364432201026404296376175758420181703879597458901018195690250465372317093744916986628497217294018252807820679466804976129851818468451147991084150780045783644708793427758110820982913843827956441777306955114178723850408712236368201055915831858812883731607295983694006338747238172278107412238044569248333257195819734103705847495030005639760700321414791150391285891657787590436344079357055331805173214476648430218429815019021826278467160894503035497950404067510722929603532719920320531338335161386262298130831691312522181874561796482783543100398835591274405336930905443006916561380038344880587609046000261648460177914090121927038987183393224345428981152110223638545261638992170468930199519177109561853552053745456328167243206046781059575125322884627823101704926107972026533410175047370463981426946729849225303132670506334291161795366058908830184819728659564594070186164329095895614298141454373563415749784911753696582409767170768332509350347417692912481388611164726400365344302178547323241160032062291334210672184553454321628230837372405163417494262446082362434038218338102217353432098863786969801835866730945246614651478043119038233218789331591220075386029913373899082180375389195205245713127401035146995991420327462515569236670586863779441290490934294874720058815265347176384703878904461995598407297756143875746883394377407713428416076933581915254069598817676547920416857637231827909176747096334660160471769663711223909720871479120513067273881751293060349577915034039918131237239752210305177038690155579126081096621768292775171602668120181781167165061115470660554173494252101595077104263823631661577087135578022117448807746192928950788916280542140543192279569315317917700469559248282200737888070033783579126041743084835548529118392779084619458176388040640456133921176657723878445373255515589053418323236572317557630780971085416756850592244545270881282862419670406927456754050619174531244854392801527564817617150596312659019798236439631087488257847677127257759071084875455631568866415234619370378544290888425195775238134754645776265383864565196673857424096186322863123537417258171696355165400844484160150577426307153927653713004570724921773850464225562455924360419307432900093022079215210133879206653515767230944320975678325940294482780024662934581217721901180752442212044786343041564820348987488479981702983142893476593701343073440770243284183860090562279573610644935246341006575113431942014808803461781647077039449965256168216815036868005894809207828867713646388651736694590726696057473235101428659126540285793789951891150538117971372496473596852443587469341742620106151315196088672988547601531479293868626666191982304447283382959156446933902974355004762381335009575362507399258587576089998690646765101466703626890868905317910348403294771171997192663110294161807503507328245731328036158023792159026110477793959844816765041736715540077019872793181605805598022166546762756395131108124057947182481918520960677930878639488718268166849899991997847220620574705247316873570551685489429541164107847063898499687663797295913577680537856127789572885619198144071132225697397790509885650257497714164302464972883898225515135319154637044560315325568866004006125736786982873869277494380525378102707667708427969600315911085894532789871568119667499775008364049674580673922134723650393144340290209169446715926174739347898106950274395779630409022808340044177765868288239881700756280395241984649953656781040651608620686336309112519241259029380317953057013047996879729627440836380511573144069813031370591118661068691474506160107149932333679868812699965275602084402863963553702371792932676527010375090353164245141466593383651350935276271533087126193392491822253580992277197801316217917536835759457029798884024934324940396909505876580257816745487741833035714499982947101543165780153349094219979520683070265655947749816568647744196187855125223386831735757115482239079371737146944362410262282948283667666892972604744041690221252347955071014130761484871877540456281095518080411662709396211949695520473084710129879938919517771757552927548700061524434537827201762431270578719652424469122498728739023805630389937548806568662610689797056190151647737198041189799507373434235622972234799958010874434875322837509700401636288930068254387160941374781329790014806271908038072968827877204460793516537945564143605601358945626903575838675076211824265508117599040692313245794439160593129145566300832941045154409292099090028348792962194943194753976007565830156519755622803726623745587050454972066395980766936511312466833235283310788397849688311787386098525664241049659273736575999474057370325051488840017084033872883331088008806214449992675094157459518920138849760837805322436067787726224796819684074234363035314655024957063702730098746528939027239624822944510236168006151741885503925942008066695620461788299859587677464664189742748868608156905707379645667795797169941573600870226482935425149341204197685496446050348379896387536560861466119540256989042608391023804166328855087660091780875535760318284821932589237521249739451500322712313870207923246987277246050160506411484072320156461127215164357226574004230046924870972916065475383443609955779118089923257149389677346882892003685912228519674437797939216697095308458177340693489176498706749090639437428290256766097493646938578456837930915693119252483754498138227091268315805658303980262467740731966035358056900214421896766025880992009792257770105832305974166385574714802133708863269705590153254167435613204527563150039765678316470651501658687361201654592158893360863815152234439223262211144206345399154621630107897219489573759494285407836727791278400282410636452660404630078579607216660659291006747231233191580283778263493785344123611127331947674895672692477852803354213073997270103216736978173202250769944004815097065687488703453881805920658328296320021062311972433077178010143015727399508857395639344700185723691584253616845395352727567942630651365199978060295301207042854516130634697439418823145293048276674144680809382343982310139587834899800252175854346469416693893366774603528123451197160800124242880019274696860610383444484072395376589819367481495794492472441362788888367814648370651466911154556218582671762640987737764555156724347969007321458433707063214716933946051906591560791409426337882531836322498503440301172079972593755377826279162193646539053069443584669498525133199168482497690362740880658593335408140056001027747805294680767333807548288644123377568252611336020788579981391990709097062365470733288643941511571809476713200915929485538045480832731879030921930250072589334871447213038974935817708150694806453875593101031786226893341785985508448503382753234220639352634641198826215120512444673828719091214472857551143384843202292477840074869809046303919648909350551901946094118503513600971566068593667229741551761802769791274021718373336057859054802870163457855243790137964969690567642191868670270257837523038533489493555888195425188763755147397896027967746916705976356979121217148827006526868387510430598857515662053077766438405807970190536010045365803566153472614441644658746056185667749601699277768959054365846566795906523102408314857125299959523569135434148017157549618119747004420151755508905934000853320486127637169515389955624026741064240701417824427334966388461855868035738626159606177685982104912189273084558849288111811820898273069696767837731938087136977662513840389999755125383570122904727209301764930769529811625090593669312970191510099801330481708194800618413667538884891652217022899945464265842401360472704484983145194411532067797436128302100837234885079102523835148121947267984606778236306336510727154977750823747269247433938025070116625197777190375415028418845471815735908327434601765433400067381413781313813246324726007986363289221201005445435289840762861163787288853868427981814900064948941185117039887197441576270970761551250133959178349345356359053910843012434111384518042358281177219290420826869264248221575929030859170238646761893909612251460145311122394076376272466238934777225111801221053463722792801046899441472558708883266230096282377139857295418785346553065032484105600222444668233902104332430779113720178687350731635098908178899015330348628162771098638638427956638522812900108333783449964102060024970740699850351178708547110751545183920616252140395694639863262085639789302483083585471618693988258858629557057378385925502772665006420904120906542001688667310536317753606973783191134567576074410291285992187242653698817995970901552982488970357815616083745986281066505007428814001712330393238566304708872716449835671914509412241814551526025494192894659350992516893741736081220859825333713070911590458289575988289614417127974661432053962901648333775403774705757135640402900317627124138300557028171568211977840776096961670046511441952350621954030213965886114504404398655506825141415408261656767766670863338171346827533690277126156324650205931444100050851627459181460296104539270327371042475527236531453711220728678685930128277159176443099576605512889189012193474717066354448799795009544617632608248338837364631408438755797582674449603088462909497735326844377369308717104315955155201954081069707920124555716238359936716114689295919775390979529280595624098022859852695832908971762725331610531711688653185915749085488341918562958235937192581127644934290681798878457002770301545627886892456800282805160764992031456084785110072419907695889898659313489372608920600494145477169669477173029983388685155743454131855710915430630828568011809588904018769332896427810690111466119209322434495222362407940592483352644976134105491336777619391043223690977074157103507440634461720059597423578146705311539010570131561838549289798959666783121364151418340044659132880934332647765382119793192663147537589986611708268928723566760857420531346403695278519259783455366249002037009128146901475301197837326754023904786232575729663916254059433445336122774585906491675262700899728176009468682526007342539534062161162779840754376523216286211175727680835242282601293475627968973810551476762965387486838566413913784828310304631752592274108499683235258212353016306607385580504830831959850093688957729404729879564291823026392420554066329650632654586870944469038143199613798011204431280581085602443133780812690500168559150162724406627320807686793499433412524227910915288658753523193914733966094932243477061293404706438433113202504472339085925449979718542703148170902229511020346150752055812079064220882650881633200306895994190861152617317995051209816608130900558492089600998475905959941081548061295869491957095135315435209120194080635270705765776830232599640960564338158065428179653854028667573162004951251660971876423136506936461047483316786393895689762260315479360571770131065702374474407254951873078274783072091984995087750773790036212543082607905374569084169827969297715618361434368377633611627059270567463269686475793081262969643953275786385253268848699224158165679682180406098211047168755317768167515251845923159845433824819294716358841533781806801142198484827025523952174213861189458829350268104097285524179793025035752678962947066513537439343082717588271850398094865929336284042692700128902715986576838891663540998596304494923988052756534099900880336280131255590280998160159023724646216521774283775663176232646577539883394558453123368832042035453731981414269597035456127575030567247002053981237648862344671811612883856538802088953278139928856002452759963602958740365682484617418869809884904499123555452290238006416001796800820908146425249988792274376192327465135690543799145905420014663924628628725165727782233448148667762621111956488757859173904488440151744587032131542676983248867862755546936607853795280238331929970799967618549242943030089054935740229135521294411001390625732471261702288994318266748486201649598539881380597082814171091419382033236487188206728541549252451950132033554659658231704273286683874476539293850786041839280614283716866454682645024593645903555735475390669687103117474464310105225958769590077363589763918710331800571947240800870126301238332083834371394310888111426234044886112328829739648588770189815336557485694875756990912714599246911879637305348420662328104323273333715764330445631568380526540649438501384946879121486494909863246571624424013668443352382064028428374498091207815701408884830897463644612322518411718692959070629575430947151909432599158446179531979756306499436630077404743659048624190541260174279745996727092814618394117500855034261063610108527251581329730327995779226358506235364987119164481811897865941250463626190758750979965877332147501398615150738782505603112294614646488255174065775033484550161767509896896764339484444267105744639529557494578774959477758625553703974344802529241641719846387470437673370895132986953323847811559526191133097911609261713271579282018224222235983065912176455893076567724236432000287548675934780275135784626826009315303422712175683619673633532564639306439962882987588358991660780263231319504294263918818235068906525495729103378174402934969187157325848961159179642749313718624369942055617124748136713780130335443293993307233466521731587158489110658486763542125210996817284122924244169050844414650964941100651484536020976692415604210647404678383361457177449929047439822937614582539727267879856834268219754985107170125600385632421117208468871291942594005370499361695659055431490417531488647358105123489242378549651563189552323199874785042409834841228185287094805664242596640382126442201667136829054276028492954526563368322701106587246426592764440946564841492762592559393896652771015069354024466970043545431934043506119933714138948734441898893487618188251011612219059214813766312996696820183526679550272996667865626586818718509856446539842377949687717514072764844279388210916833704296491343678818439363904373506476860411303216567640372656601785500606816511844795710024945505923730879169156690326352181558260480283330293945152827020442098811590845343527262621604984794195942710479092162657173252754822555549298305447361303545251359180972282267001658036568083944295941414965645477524460682312294173183124913311778872542923367619762115463784578662773083180422720056657934387142213918681186580817931478720897733069139808201635461699206192651352818432532332827414066416910673527414639544428171340522433780803854934154056968689991475260446148879029347880285137415127020830100740047977386312840798137186873616254001726045075040621001712787805317922260736727617579427847753482047052932793913030904246447715145935867925630143395903241960182437579370544673963964200576557095446746089600546534384325834275985125346746168376166602795855018303102338715947641241914718015317212129307099627267254789197439701324690184596973273769464029737874266908767970160161225087338101072626390221154722356731963186167199398358630117669558693097009776185349971815236763287708916453989966747180289563472069618170481395829761365071478909541987044350989280501196872848562417397363775890541792768381118238303046468053543005163853132676523015480719342629000277457310124913188874403417741449282873077250068363925677755486815431468669934158995237472165116701386458642215003973740303872505158227415616782118774743977900367371605375687229761565947670217711851539499272284634544729710267524438695370557247152482351077885600369953620619584049891003564483738582081241994831522195354813441315814844108962243003178636551292269828880767172353853396592138206266854629518868785209746324125224425912139477849745876361906695094572897959056328754513065010569866287067239221875415836460276849694624057164156256307214048280991238645425352298072354596263578120949068327721806546034650749884785679884294149943150075715248645810480104801478986246410829864640874047381407580251000101235738655177749371162843933430774883040122964927626012934388781794586122620539392255559365609386968388410486626331730158985046848834162011382176900859203393772933653201888283645800247562251832691506093343872658206728822951766549838187371384195911870601877437090817718829718517900712542499448127148537159682986683864206693294521339396405265191416890089682603746399918542227041977408110407383794200126931089867556253672034646604127132576648042652248969319375850449899709664762120725975723409746937781182106586072139020786086551636054367287276414619965242656863548288929227468174422902633604700406501348126837193728638412311383686034686887562908144764922620859402799313805971627475235612765324754189354965463100919305936097210912059244450033385901164409573428948622162926564998599699309095062034798990267027569191060321738156261138019266020843885836920115458934423944702251970448705442646640566677162709241110952405485883246696057974051647703994574716475285093863079734919504731531861484786762055740325366629272463733738893463718298586044334265024751937338735126898556304438016869296543376524133521229649660714854917330814461509588827022223224054145116303778535198863990253099545544831300241700293836744497687136917713922473714758606831783761773524814457826265519324293189496403018888605894381095113791413004786220311358983442670099337255887632280174776945753765469340048848665435247079794012534885087315548987471391349782098308619253310395466623916432371259435656468537196984730311360790238595296434157518834169816832331837207080639557413722952290951559127196574986081891438389117087294753809377072924523101053454656888494006481824049430587418254758366273284439542409237820653244644838687580682936692925476361430004866214101380236651525177738883183704627548255106785520858173512942956997566795244294896215969493963818929051864361281011070429037968484871619938112459762767136620805028609276876907476794683682450385912382945898322714767092947837272797811771923633051485790111176256810546430082421948511053603159250281694555861247162462301669985794913078140235265077684371485593749812179973026376445058523132632762858532565967339184622025914937169285213812292028834047384764469209627122203303387569206627189357522588916702935350112622238237205080580100088537842810854566138789369462090975947266859256558499408417006050507342675751544787135124438668524920620711435031967429957720112509696714372044073193333725994299104455650748774347208998076885354840065682801456111293346749362612558078145097877373434091739578699711393384956369118186591427905989097769162959585732446276931653958354150357921524754347026698989549954342331988598452458451920181187367716468362260921135673419142636542770992592498879160533985325210204316535392216377770302571434546448757607415704882725940985338207725820719938444827400193232216441638502579422950129885977128090443297838126357864020989720439200547419969280364874164703981943770396300408269636225450620757968917057745304601068127679053341612393514371902085316876669787755662848559330463897429465577329224846692694891876648378628431601643373044081439664982911062726684412956567462177950591247638706194957343628045572730950755179794264710203287220202793357929780245834517661061872463173517330720201818273410413095707771403882893343000320122167332359740043911359555328666148097753842396656440315031151906571766534750405557678278948689401188448648281386807409080053575306880031943169023442100007830971848169834066099515669307461011189112346730060811529259376021725203529130106078711006964384696571285879910047464037117520584408752087872032992284380286324952364287042756690736927489650524560930182098004222639740845143396281984242569564355800774202663659292523414467475181585236367194143319301469598342825331156622345063743581324629175610741858011739253650924208122304843960653619723636361843273910396555512358214999396571387549428707787663940523493519924888317313028116017861911992884670845803948265950511541887412995587201044510491270781574206716177647043081272106220905101202597971907963867122830901107752502681852748235117739676089864125595818668448588759115886845332266617322587430102144168474634218313254001546166220815726302992707883578925286612195073741132174187148971568391903857434803314741994496375900699835677017540100647776324326196892456130400960456916561817378379246647064658502733465224127632230733013889626465972001677901144157273701292712419197962199180688495300748738609026244228743638235741648022426496052657371077335048088280251452689851605713289212471157717269289082160251479189840118152840651687701119981756859193519170554159777212283034261380230544720111647686232918693483272992338948512601936723703796787364282013234698422294389497746929921377312996132038811794850254291555024483529240089987547639127130843554688105176022139261871955237528355257878227101671531139581860964257955967158326890429081429032769809348077303131422216953501942816331926128153098138143484336083699368955022652733392813102706169831435156603637503222291455427072420631124173247683690177266283310037076772014398155019281532286581190072161138929270311463865263705847149778965019741644068679837620164187310983555923390824381521113798652805430669631150528331501265325070367769440211192332141108454243142449582724976630187957880830511177081301938644721416279755637778756882498144472360577224851614320026062993013737380720448574255097055468746030307525014743723495942106786437023971653098076703302423764420756026377574347818884856112595601530326823813939308942319566972965192790417087576651471524623734545932635402468041029361884893270948929473534701882637005488641757662219893007718136745463949248709140611664985399674100304814194484437208617549768970676713735424875560286547429132427998911681236934351361316682274537389540438240573767886871821108251573870471352131949269118757278972822406739901586171521998611886767692500876374078217239865720922940067117197281934707991525107671926563686949977907931164100139252445845097777942163280836549630392810659804673565208431056607406433630829101335255849020108987793118840550897555181830431641046003797992729361705216079191534286903001931042262942906919433994955029625043324776673933768171236994442563658273432989538734026802349302009374723506588732614128283001754996881031818150267203614817732960406375629741166654989777455320308293978749540176932920122821124909281149203717940589736055598084251272809717826619225689219193251495716165300552214129186575732215507898617084155988865009432518190054291536653381025343683985393333424668029686616171217802358040955589620664525887971593778537307436393650486686161970093714895788508583900074059894706605514145290190070738149731004713530747161423283028999100084769914656721661695389217379503557609470653492595576723376443019271137078070620384429136772437897202302022935226644763982730621774332677011163680286792705372696781278509448261479803409934320751829666576871242380522237837031184293338894685513962840571704249885881084559004979853289128223528209213767690094473539475015224451968718307334308790857189506127715534582019182014135201041838708969395193955733723252170257529302836551280057683610103928545923197998400677609892217494461478383824012077448608335929122041471212949994269851052880205659489471956818520217520096773441518195617937725196528930660371868412475615470951749322103512983494065957866390454486948897838999906628418587501780547143484717933536996092640891550808890869854802263273106746887081073549197773835896281998003871275602824230939305260327840606043854589057795885506711075373316026918304869538216845377973287604623564233684102622199330832708795922854469825043544630574084371697740835464533154079105046032780278995953739879529606508305471919688049040926592882768162260956197431710502910072945044312577191950103713148269700569688629743708415259427866280542419346746220627026673320090816125320923279460021676109991814242625816632601092476429867206478106500711042015550350491540278849296389904592556553858857026866127876799730818748029971612696018204208350799265631696152798875873500827625613400768045708756326583814889639084732450424320780206117573874599992439556765981629804348495388715021142516199909387879924920887712941063531539058304937249020233901063810178636972751394010321520959330119218747443318783540522802476320047130609791014678716549722620703772433149224548299473868373664091278633741998676217031992480920589228071401847544882070666032738247677739077084762040507843951374931080312939383853186361995360366944045481406160188418750373654471952876975649357704669914849900422521250922473528191907204367950697245696511363191857382142541403242507448930211329013044133964755757195667821759361666454643903096390503571884547873031690541265963573609024907358083782796895150766262146307755195521530708877751956667813839918341640328837539559566927510174364927475363850574822279082529659378620104491513083681318733367462823279086053889759836678088572885337186761506898573802696901647017838260486698487307175861619813782629526296022307129206177813045947149945731970725153060408218527181655380562528230814245391138587174336669797315592321169962529411994106534591801774052869829383288281725619593191606412666573093829221406648397547996465895546430917028091627887391708897136307987893505582052738654691471123497713077055626631907050003807905338327971550552171297761727063155471036214529025388583166062868459711479243945268425567899648977804420883899309774004903659292241880850398167313387425909431786964214802907446884995185428600515528214817287598612745582654835078640243438685918459613405560475840380911808870051139448831941675058506501499734764486559352096641731174812559056860767121880595976020000496210206252573739825029518990458246961513192610696859453507262226405123070867235299492448125960280079715304489812994886323211949147239203875851760364985656381710677451724103486381830793494910774674112341144372334348566023142917384749657031361698948296088085847891738141909112435772024992112724943436323170122208475021369692304072749949368957644455463379169330849545129881384205280453283060341907627690800694415807751086249786141713652301304932672860162677832753384532113630144996048064703255201648916115921692027850406751451983499362836353909258090431966025831956180285829702199116416107862831478658001753764204586938977771410744247959510528544465860153212897458563941308048970803043568696353646632439051116249263429678176337482518600559913999466519853674984357116074282348861620248160217075686810217366735402044298192267180814409648967715188427733064236373188053341826146902964319169413358124104732949929428974933135017072791980081691432149904372186658101972791307456903263887557379876615772266274817832303606096860996888191628116771004217652886219602276834286553481190543824182554695128049700217079107638840466561465392162798564937621527700569783251035011700889146469131558573564000175780460896504079959524105270411263848190317207112159026699908810353497630789006533778121985728113684875096078538907687993326956355878283042929883023192837979328228845829785751565383190296114248109546830330529894351919679048005903879522263019081432332066252905721408235036064294734345536529275073717654621699232470717190459891967330746234875800071413033073021896194827619637099479025115238819800934739943861442838788060640084223463797493742702778168090721095979235597992004098180976150117068605624344210639630428414837450171275653598475262803644847142722200724844537877795615818730743831221853731822050063492332403035501327407664841910763135940764653315562891379192319575451386070139388485262014227735779597193491422521695126508792689025789157684768534941768515904313950802405236551851614516544321882502583596666184241415438575016421136087635489809320379282477214026754314714960069234331286898693951891281532039674045987342131207246670136108849914798161752281231390457243203025495783496124794719245084250292133402961904737824171091647650717471694330209562018583579991347156299987042893609265204846545546924925859663473114295169574836549182706995494282575130365145250500203536865720186240233351179354142482180323677256580882342310112159555104473004246455601622603911427899603891548926349570605321485870096031144912687238703586153958053706155323231902816271474422977622567196966651658744753288381950742916246396498145120856484771415194539791687272993068604866935711705656725702696929639098461273633878580819685404647061380984354910079674265191567687469932289823459802487939893971967303849772732004264487349390323268718180727764708482588667474155769365182368150693359371244877048521128502959432485411837045265931786948135943741565771253800563278301375768813054033678307429066458036849558993839179209984222780174519460264406113131311086014771507485442140553724373773990756942924935671183233132780803164313141901901140130102185568155655357558258961087847207003869615816695938169033956301390330580569853199843283031031097768871972928443277985285588371811249333980038106892430358937529036430188063016270999609691470069630861476824106953149800160747028419697171174662022508002312888405463641375403657747321428980072425141315529286030936623304778127723607225721788264814695955763161241524292842884558379768685843484301376761253933749213830030905047591287445229046723618369404625540993094526375498085219593581245077367956670757082615149327177711829717165871580002264082512430762013148941162494554180531298391883327126432132513602940183396430432552046700169934619645017730940975902643730647158935549542013465733239917504477780521115294618911299756136711893221873566181028652681378220362181045002471218483010792857943217451958982932955676204523083658933759545323611501100274782573684448423907214425543008655240822662202204145247942154539854899614113811082415494206207496801042502939642458313846733138021506859199253606997569231116981130994647298986076686591907055840375563636755218983471151571076131569336191676543756109737517080265161209078982215333442700290248070090057382397082588801091671735764254409524014629990813874085249645712564746696030029423579355032918467760040917129285714478151787667451577935821008636942341560199447841852140071289143402512254279049736793671524511904693357193595520079801646829742825767947744030338168527382432879934403081120839157235243947823313892695608612642242288081523641402916719572547872820130616448386159540535275478727975644151193579901075268602646423236153111208548221288254265052451593734121370095987726840983252696513472744404509080958229963309176843937551437902450447673473222432840112018547692531866548104947874558950906724301739887796967452628563458436209926821022776746073814482898014814448960033189374249186233401040469933827912362554788580996166802507869801004650088172144461790029311285965769085025317845831911260425831481464437357288003249547084886060543585352250130710836355521918562821653784961403847636988325923872533416334273591363809071517411976623841572168454629763834818536969031559808147235188352401247717021429621799114334265482715991023474122294750696863508037358510045870802350203554194408746877530957965206426118887359873704231696274611937759887202215397406896122538225406267639482629321192380361935448041070295673668473262606608817700712728052140215451990122199242930567325996377974325290881967757139933738136029139942710555493205004460208319444476994985209781643974540458123024552656479468084363183110989989911514716100054571154235139539585614825659599706693194084035898886804721724357769703413095079653470786886600017299863400705571912549324849454897268252896532169529135348187808493706256875789718775766001358345278178080731130658283352677487812331729437074091947411973650212959276417621840896304504852019872253874853663353185497120258673739759914419638720962418064844777617876882797121935641839419256538275647640089830906383209698906382207743598641917885187675345419390000750168328788038242791946390184569251188900651026913717877833106028567643107178128384134847725541639316634252647864847009546964553297837849393254086551616274763593850309807602139662175124477798885539498052364094448118015961639760264501503282401958659267980254991201867720530654230020042216457932636375274360309228794248131826211010515851389937735075476282158485231168845705676640871980720524585492249577085886159433449904896402660179438636324158159810910184601791992945116751635988906669260227986250356592536559283791253667897559872621929732314859988392742399145645148225868823195598340534057700952869407542603695200065861924626972376857820819059323473259922994644694543693945229666193221391109559291513385165706136178024394264804288153853789106179270535284392424173544504489686058730726793876380308768629279068760509984509112365980329893363167558650678597243388140048419596977161586388667962290524484664089262813286277917490156146564201741033826569425130861448386001097386980820545933289499775753874367890495225143347452140748762255275042980960572983513749557223718784864652973374786735542122988452806855436110542927590222395502833680516270109950722525268634368627572204779754612266121905843576940112647021774247335626136912029005737705925175539456434681491701012977307049417970988509746937766187376066853382394716383913925123351392444813263827882407539443123133013129130975716158052982387919368639427066167602768965195660772683763391539923693986675857389066818112501514696539954283093873325147758817412023707332461966935212610378531051372849545741938960211395887672213840384513223575704020246307308042256117007219500793531225505501932232738884376650298550487506685996818847402155442705429873980066009223673663696325392836835817340471014107391727269836299080960243195745300439489439597509146397144637062017685579718118796926002342667094222866319523661372952368443461078924821388902074200382888270383048945558103731209437938334321972762726740942929387340412059526847035742588359722990011373997595842384178151473329090630316640768116769696984631378513188306725536852811811698483803419636281055256475472630680894625162608892068744796361034180732709903462104266043305748271792087565302851775214565722402416670367553269999495700582630215031597016706536260014941100928379510450496397363579885327758409647262456689625397515681406320345736762290950482756635165032439346524152531477090947783168966206619583769033500468557601733458288822412973167554823343836268199770805619879773241401731111568613110745950060415749882727325041016867265279845739357728142845596407113203529790238454997109668827063630713669106161508013803431619891879142046101055818000361080133534609165748257669220755316613558691031192912069900705190216206597132108585382134228854049504237797127368287459665268862008798957401195509645699503867200754573846303204869396593142272986315877052833080571589165056638849048430002634390829741681817367401230760333800809405556839530632623925019700658167749292299750033759482713804863050864916454546340321376727427671579162603228392062343574955043295779818026157472685948955811077831245485167554119739356174141224609776951668883004657545433771977266579100293107481180717221471230407160967601820004637709113069663221399969944057900630395546061062865722750862404475427437547840556782218804577292925140217231194551113749589958943336495416152310307015409982939723215311922987467352851411367723258139399878963499046482800342239577001297544244927723121578799310319162003523058700397118016742795141515389052960781426383115002207687685184695996646520037338147282255891592688586896773893931068182857190580090884982717969394715054314279456333938774153473221004464227319298931797771399160091906478852554161361843498109779374866003266917791065800696261187811166608560872291103290825035741206246331799111059413027722301298199662768285656124784206871142771638469535438338808345415803825154136838672889638702903042293034229068734163089334083275123376534092913227047049916647897537652249352895496888750920127630768364324896315033894633435572490347405111944397322385355079823707052032251144447726883407453769215755006544606305104124423801210798904426834935445301247907487938480729890744643664390737471659348570393013603434565992591513431005454718815825326995425454968714751651173436589472330522965839537274578565752684153476656007255096036067804584274939131673954337654715682791786387448936327004338760411139724793984666470141975150436765321676419386112160126464501572481996355125813417943165447497175623020557693044152327850921338074258442618086364818160151080400918701642508691738131491329071280077985205703296868619650933313202760361128576908244441866982750580999741128022181665347408786207265096280297763934667226619470562089166850782216056418617563932366339940972948103053917346111526014149362644247173914531680417621572598995878862041723553398948820248761766904460773885383039415853721701352138103065371671071725649468779866753464254967195197279878830007658383166271516878128519458642286440397493155473846840086381731447824657442778425028683923965942333657978130213432828930575108964673696149051080349308087891355574524188392178920539250929236814214265310698745450882556073213024931122640574738752523931246592405358472774691971187000852417722565096401239886590112822747283476489756555038401561098922231523492107363336356371867112716489808939759161537496570287693448770839497368846605482479834016547773261001227975451089625550801594821738607295077585202816154877856822701584058561186976227442142466457116449180658527870043329394047851711120295911317206316626159567063880686503798062016529587661593264564428442950575672804676666756216425897916534945399534601236516081553154305964050995288338041503243542685890682507322668039392738710737148635029686946297447979748432098052027686910608133023649307600337633531830849181389427314025328115828490692175264912096985935692026283165623801199261645931897643734731835678911863479652264803341584803106267748467304193670827663902866890003586341947241943059784154616514386210177596133281763882832434492435899944096868701655245640104116192364832226699982485503245314844071409133244618181044041170945493037696187914679933763371246828616687359927994568179459449539006763634542751542100637453133336433368974843844380493776376009849272849373732851269846894640591626475688917388713129127671020190892997360178006985006330819056792595020897587986125667744145608897515621435973689654251126540613339773141941665965598314846958130746741709242332841272164069318895981254928059423592358647216768464822262423141328970832616469867962657170880904983636113994341255420770721965563843065285391818459990177462312885263909988176783285155596275763719467307420096769810606936387022504141070799505782132936798487345653982255276221074234664744934937904879467670258511889823137146877008713096866819026638264622925202675303759162298668139451071603432279250915326181632359714147307571272507498882470858001975257364122146402013128492606810221223656442282459047765236502136365245788422502534154422057764342412567049224652881804907421682153890490293241831672121678615830476782171623176894452560330002032297516143072816313559270808847964484787324565942825338411235239270382553990505841363887104511843512904683347814238960234392377797735349380434380566413179829464347547543175157308367709412294472646807096760671928195046469969292103718133454757971461228776115617001547226148267942285104765640983270875729387977786421538579841368934945750896941949445851643184112316507314077729334976083570596179797578908480514065176042181849217352404627146637542212864195998018427182253606360449416543849669942659592063860948718582928982353636724825244105367451017198574898965638802114026032666627858612906852087385592099211232751778789910394859749410668825631502786054232793680975961546597041878748456399477803445048978509794112664779388030177107124338106282134946706331582631367864401015155993609136253290681592694298810406151533419566898907026965482314209855858801067683953668194797810898630596344812667932435458097340637205800961652894471941033069816252038812354515301667912414627138601411522624261175616050497496051445371528450126297197514913320766858225919928568172751639957057142489812032631160989690154736668275155949750025717789711358619841757219983078365492783932989571129428223813451451666449601140114117045452248364439499993565968705190228512776512330061072841093793675257022740924825868951754457518070616430988600054246478603283149861593667756778491410032135323304313358323011306975021746562369517122132223240236775988933897711628646978551262854053150300631398301206755792133460632262794677370264767402156172809368379398603972385370514246285013839238166099317260318918232685973143719954709105254738720804568873662732247215512022938092754437438351770330356228667818813829668025772730279569615888270509096233221477106341836723752757392761642338710471096777026847437027577263088003909854150198407639095927439258807554794043696077547715627454556944196258700200439282504402107419440334194298133978153771082842510125701875575893401675084521932364023684823135045339327515885098134272617418440747508650306742910372336445837051513392104111162792660995792551467567201712932073242062810042313601022319985208963792578854653414203714515795563579502147183336997670511722578984777775154451206632489913590108014757041785651230359524772667364455569498623639502050336994283342444184118212874416644299771558910593109306555145921158555961659650412953693516687450223522190941182730321299933868100840647875941236956196205848272533053728988629450475225820858110492441921776515271472679707138393868299361367201740633300744702358243085609243171862793431579422002209911805077410085064711410582593873335758838857646771913008307544572314795209264235556338766728104622149275664086106613857230981184047657487510012020534756167587340573854303856941565548079653780172377547705719474467583429639018456304253676748770033200402638552677639218291957449680848969503578042908073903914291611068392035182261656073105972658138467074933713351755530618733671163373491241800947963612147352799039296888305699447766137277766660863377205261668444105300812185769270630567988703779621128898266683592397945257254475490967175027107236053384624930620802483832728825576642196347316571322684953496173401753648315473733224150465138837721866973143989274867260879385689344362921208179354702151049689975831276600009872903714407839197407683779457596453305345738530466502685454111931025088851199744878963592515566329186866531739086099136931066163768154465335666584136034897543928157217945451233118623704091018574296685136757069607326840986709495560596854793889254903184080781481604273135012427019309755628298602614232445291893518309934315170246443752599823205846998955625541238036455413889075178244842715118845175240682323096828114534216640024951194152476559635780222866501345444306592101555566224265007235605618897766870257652497665212139998884005760915133843438450979524077916415972139251163965557805255538429631117354986338455427156562628404535542999409984769633178311678999908729291062150103893888435271048876528788898641926660333141794971044659942961468349439268829390135001502187137899205927932852820035300054200356716553753025658411723674642652130992668307037204624399886782618967062638306083653356805097170084921458362348807178545864733283476820182312926471697415717849548067476669930540638247916616712406647110410288283377237661534944373663180352358424224311749771656889081506923147635279955461506750471685774700399817548590645217300824720522838439459542473486539108400683269674177849379379764565800496702052850230586404651591501427114366807271966391383860305161669881533418967559034063691873534928458453063184343943708561888541502621359571048800858378720093607432405016814935288479067269970845239734590477291443889443217190513763599069025251939827566886445492784496988136743060992967845737167297322119375283689086010903364338213598296303676012052006857448436873234420081088452976020011947441892619553996721370882595518199022951834527956982045129321755970295309378719970739352740183122745506123296563776535429569628854061928304394522973086490817210067833926266569310720073708367856967625185670309082254009026771898344620832034834600111999098532082389923131189871994148145975097946141554228539418329273927862449754066732782916115273881918857475763339863051573272166586576779278998451110312890323904206953830452363368795868781888008053720193352572731671848945481592166724734108405674427698180960028644108837860512055569460381787381020308996645508187862096417413655651113101485767875367077647287468635556715115439498723173240322925464511461382465689351120692073733627646983033857821282138990453320414910018006590204007233123438932724016374622569816023001668088838563762640305856971045283077766536278226908611842964534492724270924712051358223166234506199264479230470470300427112900239159622179827671012199883414624736724914392334048775965943951663738841552585246639801029029466277114602001896692849870634475356557986066506752153725923331941833698148642311900836595308506832495946687359707676540312425385632686649402729884498013246657033474768102139563878878307145101312057730522178185881489580978119081566512646635095072580042853970686136394443278119834919629219558521332828278633051516007401841935150568140178084363208036966249914689668214913317904849554427116673232268766737183996466120429299882614433675427288240852232205440900170323503111072498438421156707333760093187908171077849768821433617541193670684088286710829603875767157600821363324625093404586298441763178559761637012188901804380760901803623041217125354129769702753544021276216208299937944869922386552338766319307162204318329654889271121010936059985379633054311868185060202788292584191996896460320883281196272289699392351019980315109619208341161108786727405918857961285989225062204961968978236941843915466186262738936674798867158192359707975951825318134200519656796908921880477369002727155263109798252922319731868065474675681416783125451953322402557609739001315322819095812114327940655516323178364771490376282101252137993812937999929353612407432395109245284980464131725782236872587774230521743098971397278996822158545904065537443890836298482666731715155957071044251128855815518788922419214855865679135258472151242569709527564190393712089464735588301787626710240410357632289022547765899480834838834973960543322704249657229590430316311392991188584084311207154680515131764050907576231165354872616747287592741230715874994015744303871512930553783196250707354914616723543915175739328524388591839523348088015598035874559299601622340730667003310807899454265296912008615621169412674845685961775827106529836063985316674627481373000542891989509749602777511424744982958524152617565265971860610312637983969515657304490798722743383327369593539548676996501630632495620563107334004438154146176883692679055037916956960063199782900046406549478135775200361169316150421949940571045535396304102969485586613978365554923977385085986002732995178248824637136159223043833803354008515865497195672582032276308951537296310707796939205559905718637345621276567308517983971360953929617085078462879554101605893747467249477221598516155335157218388062113814078763084666421366282570785834731296316628755627099235552924250439395575657745399280633086402142383201209650146521702828439624796086215409443553943351984226287563742204445569566591770171929437631528841585841761375640427311133076579852165400728011474951070970562474316442862526265236205588994514692083289340747577750179956156735741059999153427448658906857576421891780879420698991818144587573890433416567915513315250333640180799173731722486519483128207789894564873561769973645156636078512689705205458758262043093896794005197666152890064187473708462175382525057754197491406736753880143117525552599844480734450813758975891520746701497525880980197879123712396258282973739068904667474690266038269627367915304325384745832227971222180291704470340068972680969564991991583209416279576155004270381894141751621588566009270775143564490475716196091823343338272071855260956713144844129392680315345754794226961292318309097683346697639435460438960639950816928478482337322482867232291751813936165349536632831523278817764756655716477198307326557903084627622972557297905162264223797368032310883197642215793419441790695322610738727172234535481922886551307311020124063095362855971113725262529370446173383737277727259010260304929244859965744773602488134085918037720208184425988252604611891357910207181691455049598101177573112323693096444153754829417425508078632078112121909013107786767289108549394509990657964688388723892732161949297969072759355691141393236344064977404157570060289512190638451421418515816357287821318606846942455131866576298626743874821898084512196204895839879619188589728407396209385479613082664951239447620264683595530755880719433343966612458511481479289671277079900359736738859963443662942218796865583270277414049159207976576887185235211736040325218161303287214024531809909849904304384712186307133021401310829786912181126698302136204006704728740792612212152780969875322359687604509064894897742505650162965677518686193972591649465330065676648035337830658415614158973887180400844243519782233531491575191319786190452077155268459685403678109607596098494293235298787897958406079458525835042754024781710614932001761493655899482242356930495630788590025195815716208534140951728915842375645138243967428693837014875669128858788977806321770108088754276153209730097734551755778068985892152394506798255245074174943118634273806674320550518396352371335206153782905372181116850174973165597430735732470507434031357407103975275192863916957604313774334378316875086326821411282698352479152121827043818339976227668622775575329571059747823482583679292163713750648892401941754950921744371568166470858246220879839333278718303711045852066907108592340319796508405455296643881106723404245204568031326432917904436222770067552021370621740277784478116571977964590580969076133618711612910564466392719026815043647151871046988790834383516800235687706030257043102795374876116652391194007294041538352064223828358431855031979007972332826081149361127903938410517871423375232390311325149404908095881702737368045313245898824015766667657040686419398907320142002660041070645319940936707954199527850772446699872135894696536843882484377237484958761106237260697768603649903062334330280752504515336195584025724300332713919654430419624468536023939610329232850113895393798118604680364731399741277493046723767305556174572381105490136782108725199153301442055455752593293005948279383991210677214408667995694316121296564825240016166344341218891274297711641276847734965914184349328080497601341049684675014431237400785750539443610265824291106423951190260225797568884438839364508254041943085515149225401023464054370890266112069507273778802795282618373844362322395762917397526921996765244855513988039179380033542525262184061890018976621283543410227680454220961281474854361949990615548603010677587243238220899141134353573979649131925395485190873253894783632888286941746840879553185294481097206559044743492430449927976612926541154030606028480774095192867269676828275394383475566615059847318738632011623262712111786512691012870032096871871609672900727927879144739018440700567186856439509157154415006024273551948788241786027697150071214205282307482787719518511515624369879647076390176990496504618970999981535515337579943801242579047845282985279965565584308142276635651970714986809125872640546854233150557066677073894452989737177821049497874676584550781073694683243076592394334887538260816876127942239623476850594944626124443202549462026337950931293275995723240935025808745740577261905998929178778441941370048189398439137001600116705137897410638948261023105398087225965267289112257026155521605627920718669746060257386727010801164912574892802507966760404119946855723601242835139335941509009762042461835290636065807884577677520993968745109803351827676580513134366161545986639188741994118701358692581511887940184625496037524911599058328918701500030596879939441540372307488166385492543401888255414840338890413102585848406235089203151211321969677124728290155042547661220443962417695947834967989147532301550560073571048676597536026792601453326420800717355791274361791726309243252752300121060618622672244668921710621356438791659134889510368604194300147691593633002780510022771900501610627296404381390444634115286351360549972903187940069639835255257549149954541705280091884951136433715024145721057519910395230351249963642261258549334594860296097283238135352379394865634780221276585541625761433171617435486490041519892404467259480109426727651989217482718159107191166693982013090975618741952277045712148810538208335011276855726021822779983854542772616841195177667352300513866306662372565381562313387604574947263409795785492229111514777714206534168315744849610799280154691045404213645383656162079349507186477821865233417308841468983555423997591627926182677255000486300604035453006727625077141834128111869804435982073592903662080755100409944179134368797105475008618115710701388042732309454881058925259056554527017152446835375072521436152725544255948315343134527339626262601971820364954756918181086361288069676378932985780050637972780379402995328586473900731387689817384329369408142857654830385446256696465823134897136655467837772173427331070282150426105241171478175323624597546742388662516955234156172089864792679415278527934764541735309293456518915005284943547861500172844383999072610338035338928458694601084494204638072741471377117421573229781100876179140058435911675175066791625918909717887031968616696666449884450594693173134419159944813336731867016839594145728497405808929582289582135583382490013870801374887439112798768060195855927950848648718941944491565709825171238366365313658605774764716234801176342611222728687668045822775521213685073793574335767211757415945163846309714895534608735658225673350796573216859380638535902449687662620987274325900507445738848663222100894276500194650702614617549954348574680820780014916448471038487375382808297349198002393099840710541922938023268873187199778670928489240078372335245916330868271314604533621924103905031893015856330028025591244373459684984045926946531276985066370162754175667926205795738315093141572509716165365745833963846431783667969007560158217294234662359428854649406839842946516979600333296805126358817408506369015219279415939992370168195015313686406223276648461418038585910473470026338557958367460142991051837454345169086187332202643351313366046758239477521319240306800303570704172755193210548657562907483618708357195884988817663813103835921691803280657581304628376963668657409023361379502199940862842476039646646474743584653908119701373751248668509385074914089657177519862458900826276700145024542771567675072674052666182110775365791462352059323354214607711984455438249856517295080626885685808514146464242646774148409133765421831564448764249332662858135847188127620251254954845135990414156476146218405366295640812648313755348394893369199010808594760895520839251367419267882268975013019973343109624087412036815589240797235401333518392155290957242272767880363351819968334910349477525657433464098538885681519648002982529009791646999403198744998960168506633068414237295612588388232520234855349443324931686051878200456520111464514477870524961449194787117291153980189695174505164850110063742830185363015701887159056350153435818539080109259952132304670076271459252552404733280975055025154280383946626823047383997624477272150560214622629257771794457796309913831083066485685722617765223071722927196409030829299874376451596571004839391907618635920097485945500623406205713304553737385624606562713765833565827031234435771798038600994696039735037338114682478879084683666669945252559589025655200878218983595089480166888441863935213373798061843361640336604574417706075474938705776708838614697586136075282219258162046136322444452979267193341257888502783248996767086448000213998170665051150103193207509421004679322606043907912268235039692262130184578012759487862387226284835464188077332225522079686080704793202295268519983449999841221304015238804977427708778889101557954046717937702727127277209743075849481385282973721929488696283094754811024470062383900043361793587726381085804278969251657681521740285560861574648583578174173643802595203938150845244130868622514144685660767161044357240071472978866689131368471636439234744162622280921964815332753462766252385224880261818950238258167092600912579532696946630674147729123929674927700747948462668261016990411454526473027276735856066832268375749826555637819319528590970584017643353044724761629833804748604618103469804067823007640666758733649136427782970583473541928094450504327285282135048672770690885728527773906431009221310422283835886793658221651809334402522375533434526670328141952073767638556939854129304767139727926342836819547462617745001572979432390904233481416410297486056466950094643631437259060842027730607351422697926170960368789833122937271097550928130989554023767119833600038102144119740461576290659864646660700902395073352756048241646123883903612796618859184427013283776334370365088862045480028359370760265424902142239811389929989813505451227516290209572715384770750145902953132383585511936526678602862308211827849379925903526818002930808286681408504174799852146072159427416644973939575149455454313513170873590938910794170351823839057723083709744812856537243275584680436848370352594127122850951481670829510453914490076963468207966645824032071424711948086313554678286612976309434437408956504968581232381977802921297280071656174726723709316971011941510823610895491959758415228265103309385629720731068380898969697428262178667247846130399770870216476299574192315625752096238283970009300886205113003969246988460516870360473480160591874406927868685426745996951960875886728900491895743067072206082243168732418022322069293559992628757155862228189493546933205674008551048025474482387708919975053802773093296176818919642580075586002816302242041501306656376235340124400612327083157202255263510768111534959715821808264216352020214108591187963205881955798793730922962044663439343449137258366076414907219311461626790836308787831917342275710578798349860021871197893091330955002333939340172390540138323429036815049015436449330029601260560993498119729015203628549102732373982472456258476997164663424322289706670133326591954040104938222630874941594612264096509901713071246514146211213476275879142456568467842347533815921136217848501585465030578489999181312545710845565585719552776971717977892984744730630609975487332393302696002597983596827862252813259752646171164755782223801620670923864390060114577521861615213582494800677120682739003592559874259043528618757226286879109912343559192159844275518539795232791284895803689744890741695865470462283136797754509796214448879451483664377444389607992316882373111272991675526855713070114935990296036592809565843092481033699010111811228414097057821299549695661723565184789341547035589815490270681518156786535904455216700028418801865782012845851420254913728177816705240540216732552630349758446427000831783248002824402494009075506861318948587865918463535357579634746990940515514067323465205631528456321826458514155215694165003471326888800719090944268591442203759265990028727574650882992088393830456479929956369207634658988772474997562686858449967198361335739096322113857545040082688861173715263156682943864429872445041135982894381308063627839165276379623787525612416016372000580836487299787150641928140977707548006971567913410149372658408741436117699115541484897168712533569974434627955109452336403482319421486954020692024947637460728071725270766179366289722664925655621428239530411874856122089141464135447095096757769782867251892099037724004208846146995995225432008326509027412983730663413834010222175339996057830213537688473262178610789269401403623558788279678037664772169546691397824891825679636027816204822340558397538771128522145139930982735812875710569906927664900120141922603405822489726173247043765654039668815801483535715932724704638701003234801953795346279685221548715653221090175896341402891779267988554055990203969184004049849072042689819618694314238468765183363841284784763918130869483817539046384152254757677723310706779340274302154375611654080857492793112140289024220015999203468820984753277737493560160562621013836991184277102337993214153023987897058278422892673152078530737856687183105112072289539145072398321981558677520429467467069468988533132426723049370485469306804102821074563195480843170391885199419174159383000921656011651558054185404393055955249517003120544112599603906771653407688701595400070840507931678166162851280860563923559329474388825682414861091853139969237015935462526513877849396294076207896518742500602657262779869424825035228416897380606584813053409763290070675961211518406795415377904654827761933434651444867239801628580696154649210385664064602690350972212325418442851209331852280150381358267725820434007000189675917459818083958588487092836350382856557217826314442194331662833208320335279141760330427291313822225596291070187577084661265398043378354225618442047105700747633510023808127399415584443090637637399559957837312372482977549783585340401502496375889394304394964266643244232228777460657206196619893270284950469489168769334407289284791772707322404463534157493103511898569439702232253118385219080691409492673178873472558861359097333558277513072700078436670920129152636814643086767176306603411599468486445892214460323702034189909807558759324220050682477748882082884343067215492319473331913069859385744328594870268762257204494398206007044750826341555923690426846555530849524500036400692746414768871032914307154549505593844765288376201377542753674239974050646560641670385715747835446665158062922108505096832072187108385658303552099879679646174285029742150463340988829277516842102586528570891849977061835212029996103839539490820597476191276857352245166932541817751074415724409275451872145405277329317536417302258810445501285518713074477875274373690730854822005109856501822353374203647732973044048366335757294157272986397948129108434751065465944147839094500236510321175093179595162348521615939740619556516932637217975843323981532375982473426375129435258381476787210504499027855022166802672071885798137813796743463493223009085803360157934748967402421076463997907038323665258389388583710291852936667258763943491547469772580748088208857590988413934167325460182883781952681247323680325664550160032135639196611462682379532362362793758761907036337466257998614136910766898511255982513445075776289900653786992206531856457045164004455126827338786650196264136237677988600555787435011146867173024118813428658969957691568834899647995742936450222279139625910554643053749852688860299975250028857945745224327521919115072646840193491146098942699242936238949742670390867589248087704069209201753998538488528188216437960982279102346271432249175963180050769942897191065138565770006696491637159545665902217630029450202536418154948396190804023786226423360784535072419432846865757267847706988553991198025017571925271252733811510994136492890774004630213963154332590067103212890075620761364877626010773346805625171852034000255582978121871980700831392562183700816348614343860452333113574052743536786556949288034903051673637019236010725688911891908994542613214861834762299075210946536445142684751767028997899848205513959483325081949955711270054918559575978371444287478346005220183407712728650832785075974028559789899827160241747087708864087041531385488044243037510189436646750699681182380665358037073333736508098698282446723044485959959066997023096181889952432285012088140273626065664437684388150006670663080290717017454836824477981259704125895370596082867981115947674452978688067577915053914442787655836166403551450947024687368304484568110988219919495413637808137464706418872017019626905747998830642074415276634243442954668796255522455532445948448654559611757657763250276144606186419283794018464307276959998438701542574484707281643713600482086862087599086213812339761612153007654369219593120631067017186711002631065909317910918078309221249047611193172766307142329205229187235437643268489903121828721806570353736830059945307213993428726018133576697873970497526832946575736559680879649851163147953698369865867659156514830424098152834912113878918932051780394484503660383074242650326705179815576412319170640305614731867620612490661632713007554933117058773695476382301794147548717812493568330078355350920357086968597265840799865028608291565331661348239564978700159203369294750467394277186985162949203269508653731848898391628481113980837206152898954280671856185760566523887534600569528254369894055240420939820096099861563220225354029797958685429851650289419226823874162514692800128965899731406622083140817884814959326453757877468001281205558195729222736380460895729997185418461996467997847304378392035914796127291950919397074125451896330426422509099422474843224387878922884234547154189185315893292279766263213107404485972439525130855841778671138370912875734478772519827121878242575123418643521360705808940949143844704935426880697102451594188739354060628599903001308221259996914496679873026399977477668336950577231011557106561155036599189459956173745269641571234181624184535342911615836246790132027874607564777943344231639289075665246558412448195583224993577956137448847901729826012553076176266671101765107972490399989508767974727653019692618183864038918575358625474795816763263346355533343336819296709134385521581805229219931210526433089619818464107858741883820863363381622104872725249762119379071061004272183585103425456910456085174953573532197955392671052801389477897442350742515286705831139373568777143003664347662484467499428868218324511513923167190417052899903603752288580460541917155235658718529259957871183040079753028681964514259540025521739263449961247500769812281127845976407762159861561795385115087660128226235477977627336174390735559672828930551732208798184394169678440932913807798667207536407206816859053875358800701023475036824166471131470384591582915107429612652263820039353000744856788699587574995481213433260987046145401465663265054559268130375627919197068847829811205569469082562068598411898040284067507058250527877234035364236774919088043661496398820186926520544695031439809376197382884892570310398164513469098065335574434009827816672275020336951405976134063316223299260644690548293531232267689931687509903836596069564212196399057337980634989667136828907691731575661196911801069158646173513498817211240621511959425287017618542910405774338830953459571072784290079750988419911930844186842942896737393316388620140136799238059729087692290512996484963278523983938723704907798224800512805486468650025560896701911556365160764624282836165894084633789997664125850136560623606532562767319454451743212211368265159146576571172111181569395979975705798902535108775843987120937132690814047450135621381982837824709597142820525617102342285620920292273240706234098491456767549694687219898912944848184309765673218611563536547403473513218273914666710765582840882458262073598806446064389968872610010397624771509705881249865430823717431201204881183922599487831111726518002809257203450776090589290380494121183901558201335126362980429504067760035554956784343883241080436900897245291484545426889342521118720945615930359668360071860292570134091264068847286287109554299243176981422488541488774721512319818315270580685567984879346945807038744434515785534338613802168940040914909553308600338672160413098182990902587524014026812350171424849380523203548547443825361216837626962860095189528189127142561202753811865052244201262134269110543927262811703826151390631892952513698289038498758715460160748433761169621492741199270392965505274534020267390216218856141141783958167970410744957799775260806021881909502140828693910362800723168258296875429749241457178078920224881723900371385672672731810515311494066957246993702975471982934850698120340547253545777688885556999703912030858382146613898593998397462052588294116858023103531371407332827237120670983910604172007984953504992313387909153624315608262093041712919441353405000789338363297728020187022417773643008007552023114619955874281531100308270946611715285324835599980159964340147094012641436112165026989233231288995277946976404826735374947618161486710469657247135889354588646138674945256746622626194015368154514425031795842504057896221889176393643099103575088743008377538911742391283167276253779318247764866936385775287364414702748325846191819021884059507535511739514639153891549434841568575189566449966251894193794181644160746446889841930586881736185797779027033371061012609178747912140495364166362571649606703135761417829638487699826261484695703607139481486918110614302439780070460753211767263147012212005163058142713981893459001794221315060772908692711807763275491722497268151810516879902220747743180584714821357969822033268807087817304467695366723494013247614152549894476548092804771471272357239606234990718555534559576824351456805003652223589725056670910003813917562610155867961835122055282305444107852350866954518862510929958501278802794863151774819875080345225446398859810753608073998129500514657630234275725545461670344569551883985809323713475430126192549218897642201982821447255499376971204161228364878118793753212216925487688302030841369663964181745659898740447014771177228199579447782527884940268313711873154574122835991741249300261887265544452370399576805009161090338115703669459978883185583729517871420412773607960794821717927341781848748626723483474556661904373932718237977049387174598580946177797476068092839758722016200908476136676575957637708955190645092377716778766048466923008072189420626096577972757686100814650148695131930689502051794977385638828324560570418917981508546911732774404653605481554402472023762573518460906999013818505828232788290879730606298349261228346515962794612578336802210225163154383645580863835875854135262897830959845762025025483880561287354171305904180189091620304105701711922009516082200255680768292584198590384369316038145966462000693861905512979087816029572336778355961017405969707124723696668090678684048958427157703897935607593396017220876410794654333267770749534519752623922482269080244766219311730166477334283447541775504561614451726100470546646436588846928914349093358548404260591690880560098526054505009998510825355437809407949420884800949080165761100515879075297002119571198245987300063156514477653330804815610625541723475563166934828092527072122803112939940903221040927308045983890104296819058550927971190784117702821628082182712552825251525223277301801603604923564212134650063806553726839455327033202025228802912237635700470041877815296736914710200669541391119094849676871853541774669434827340763195867175701903078189021902709863326000313190194617319048254234099290026411270134682796994146904036633993030847060467679432734387757880896759029878535725470912049823069222175633946206199053887889153807283868080196354816920418102484794466416023002313051650402087741233164196046514838429132737191103036812190275303984958173913439534655529915026424918944988223246993709193204025016738212249527201598076785344082592635293052626264306613835018458513074862026242397671374608419396049322204984937737295507183762952380533880478498942590554353765706964140891494486949952173081184632075525707338357785156422536388075045310819416872165388453686227715430322151813685394424341514314675727804670083857021902834646925485603904433301355612750300840194417165932364568209122991583463962833572740513225653762681461124330305175570411677695441449933760334438522138297826169365960607948053448758580415432457980164567853922084425887161705336489066575148214960802760892144634528238591431725282414243474824173735697981118288280586363519225704081274748394545781374408484621626913535722621036412277483575515857367841679786345473726766362796657910112463731609627082770986686731015119985856929129971417100679567307969233153361924870521069255602172395446058893398596308050970242164206089679508669591640507100308156494892561567059443100973816902541342037024947114255406325849149792979636346144171376017736586645903442617208243660146061976122330564685828387708788910019506957586653251170960434991186833046673352245184255016465744265949654408149964228930496061109056177659695338918427034539093030485467879300019300373514318745340937757175447126992206257083033351194540189500723548947431736745688987935310335972984492058948522394922378987276919182150824236867686574703365484765146951653794396871776700044679895912130707176821760072976162011867662513050560291623572302798744091415287720935186094921642187879984496672773046013687709966792647982595733222326993136701820708448769425683968233788236443512428398381075797469742193770356880453816664403062384536481616041518144340049113490621095699761740016131958041711480397066864209867535514737852471422104004863703717624021620223075478157319189880694029525351899209991303927262241319024985020680579840162228557449795900369334038670549926920348349105397814018679611710154864160476613998185469553229027953260063622923069454259201211022195047685121585615764192639813432588919926199859826628327336959177730623903102995254879401025295935648596327525073337080401869231478286380127309879575880725149672895177291708822702194617112372075338879891241036179502863395621184820133213122505545381953788311344088873410239267419188789754860322222377077758664092459933866700108054605539822378512100035180912758830051157322068313479210550745157858311745988230304226665992128818811668070289823512070637091575550192575419271422484834054702103670087814520863093774192999960156204306013496690708279984283913913485140950623620118836745491943305798834564113726282388263152242429379838330469054350473769240328488793538007274343199861928001879122992795124824135676818698600617685358749212558866860815329642328959599673809236217089751384880607450534157747462245628312247409857492446044516801311821363275638848976600078022570438941050064018387971119317774484276176343719796824781412823751458827590942327940059195533394301198002290228052297242455938228190160436444112078974629301604463290570110541763027560141007737424899242303691321600960018268434797810494039348783004641050241013953836609903688326902742419699804826649720962342074014846596219439712210609541439014548048790564456440689424384911089084633321014194186765865719945646166900501165821626353295472568520693775186232408131359107971921673678361313602121373686018949588111982843430017246642025911262390238483977656302557990724012523350618054244401704191123088409190990888857555475090666251495258143131143380362253163942387244327433429334306246286349268408779645171186605291385675011037118118027843829117855532523703028502641383490998706474512757541885901894243352445644106102580367592241571220236067365170612585300592742189998056523832637059012339748608195459290031444036593961342725764874857202577567987831050601033163169139513540778453845796853406470414546264794155152098471603061994470534582163588449823503603666464668970495416922876457020224467847022846745819678820787660111815774640931393498398963800688207104620447958673939524495506309347200513718281604148707782186480774790258709918831423332086161280212977835660887153792876578561931124858021658407231373498965402456966827130635000622902861074492689532444030266397769456410187776568500149085011656985517182805195470642069750369307697215436491485771802710823531933627813066047883280939875916065190765702923074482088706126434662990804937347151629391182973523295416892105472174838946336270646398814886075392915248171531970306545534132766029297824291173194283562848594743098258873153408599494200090450651885334987673899897105195434890178828773257762091707444611683553367316356531049832842706479071175948830864649160506545730895066949384734745883289542748712322980479883475455455397589192891499868716491708305039562400465890242691390709074065769691292893068314474500156711961946012168036144421274127755349432547028404029492470268879415509709992461154455224192169367315064561562031771720633320799649385678193139627150281923344276621825550137028191333674674431658603878866942378838605517434115773111657963530818217776203915134472452142876356965339904224354500035124022924951727227014841407258375147193866073223798745963938032331243052470668449662035847954267047445269273112462776129270659102755456504678349993189772521794800505689451973773248086104765050053761425206897835318577142618201224891770929833202607595457662488216825660180354363928994782632349252691098452178014362258629168912359428593284018819770512918475493303016837386063682078528570689369805574659068517886942675423217008450019323164386200520681883525273590434522240444691766179504613869626475775248491624938621391296689746987955066530132597880926373726387638620964965850945690182359409678337852391300643233022804712694218543225033663467780471960592846007879763738244655004278037011388033090100178938349875926197363375343733191823255652531484047468581802103652326327036100292655895419564641960778436228838746020322163275234079696348883398735076250137838272152467843715737360794831845464486925813453678837779751635569299008807751773359135975958000764952298825442197938190254159518989832738840230933365392186898571164760179455567480877062227873067509259344176010155778582772467549332542755996973255781640876624212492495824467973062600226289948516724869565651064764137549120834189199130846204636014006012913997107700040344245083566559918738261996574998376217856478701989686960057263635189728283060832691506784247012922509200179378352977166063720375739016079595612758938160765854745679727073215072217461601273010348196832595866090696273038446674091825642715118181831226791092000648941170713755694133526930877887308313284264572086656774265711284209344946207801519639020089835882712662954107743535227803404880550149342951259664317649187225627201649530911095023133972161593346241616956768300889723990384016710595502250645525051544715323529992153459860530919617418259604880618711240209751508292472428703070204814403396344448068035201055360226749219378364089050289181909231861348247733969194737084348134925149408627183468205854503354674449689039504218635678059518041293471847798085486990379126709142707623112427560725995023913862453937079352960760636393691785795540764660964495150005112386822549706676460667548545172754313919517919448502899370009178989043258269983383713654456689997458090401350315110352675520183395880861494214392456621834113572941169169256347452455576086808298372429146738155437384456914376569665706418991154600458096748379702978317470967146073373753440532436895506835681267664929977827200482424770083743739012451501081870993425426407878754793054949907251218732819793782184158587565400864219552055209972378371350483378358221499369834716877715934032197060933186351329085120727447632768966422598180501366758103633731532237713872128580833967691467687654677435447049352076391121953262481741906671785601401216443333062742474452677098864895615743321148931957794757721784815439883358135910182141627390476931910765139591226606003089034551237574980117724137586390363573611919997407687232214793817654190180956767520423644560655259697540869510445030250021039239367058511522063305546718076038195858825196634128704606424399246716339639685548357737370630321835315789183740489675372860033369068222731086019647293199224317472081859331784261553739463440705179956346070591096040966079900293993591773612243853594142460805358243222520850042835169087922143715816880607604832608243571653159388837050421913112207049448468347703381496415396850704378164021862060348180964399411281373492926933035152009202604282366970571916538388543641790275925782936958074462816486592211791922527386280912031977709423890063600520641303009745481560204425866597073514735133862681159656071501411826143759176842474921066955048533642211460380786869767498290208890924148309365149508554663174907504490808638031248231377115949764432818774380639058106971548637145518745412691823109338676783055933287670249935707416982224725947953719127836905384932609170876964677880960872391211809234817208099236700512646949124762998146995056681671526522241785398451224052781696142615740283242425899003574267547557773711905648826384565006573606777860766629542884328135745868088003685803236662223974446506918027837800625990604584348786541767606740601525725342433715361892245445349670865411503748711559328237057333387820711583624741088297737081951275009802238913787160216502869945049584043328770374949165291125227167243084848862810890978896715409245240384488733333645627476459995681312399859096798207567165918468784111244277820022547305978638149511273197554405611912370142703794206419977086105206480004335831577060138977391568173772886439609401891980415906983440112552025035277420235029448216538974330264261130507657353155442728520024284902976098633507793447701984932660834944274429003189629024133515829851514969891315471356035189787263783008525947766921701378027115000664853571588773568053038611988457740694318220824561759725869820358770035095470221855224051866641577654423422860316828221831962775140457135233884850158795192962776969421881118519399284301327225297762444231789836910950884972481972627665088519538128477470020027676341590653503645467591326979186018457833271786028252322125205784636321306254514137334460500106497776543093952789569898812372410495044453726673689942819884057262668903606663170915899007459501726873093237942432543801245146285494217864416561156503268176961290858278639159732302385499029965638149774499724532669580317094046844164406199872630875090276365127286591214321247067259075074450397131699936090792486776258665753123291691211695723751277732327076873126012029150817427870475518339503519367119745109080184097618455901952203044156200918524312064295761320380175070725302121707279193652753508206169334382522502258876068991411419919542108410775533942346195899469075135241166127892714473279817827261952627519875036035224769279998711797739390186300491073925797147047858682735061682488065561045081703677927545897121764358726503633071939110020889021268773115791394865463897275499364839509755032843297437515213973388234272222651522626671521713748668593684522753290702742955153243339380101037986711458313479294384701860969576748497132655654714728043185471701460974143513132104696159316089424064026016434834111853600024026644578007779175437488595575485190624570649760549130559899840481868194518717658443046825373784945161078401805650615091720975867203223180691298835797271708765814467399005543036744462501795457045621545975343017522294400954274848622677688436722312570817475486268032621161253583556238275866438826320273632836174625455675006401633676517981798485564560264114172322050863824035089551559589422930363955194703363018606610878890811042131297291251819820937703046615257048921601946691356966541916214171240873020299933783355010458347232812574432275567702732515953673249310137030501524544283868996879548333655477368673041116220784585698508529337086976170533090813383663824688488220931044499133280524882255365433641731188736736444766314712230519631698376534102496006272288034947366073736170798877097978515917091709049938311128500468631811999013806564908952163691921826770094105949538615228152812051791497744701873041061806652887772358900956785734002664423732576769377355127864775929044297967162607444174997932376860519262863876032274516340071446064243154992795518513768157291112398196958561161138879652967026223913809489540476714846487108978847747076103335639213560341074883788086563860735780213600516378536547078854364570487113987734880282880983465954659030563040076724437280933006776548346515350845699535228712556034761714284861762902281153435598676557577442652668000030902038107456852784431052916044132747735978444819132670153590771939878708898254819941807792801377002944614222958151702032269075488992079921182657902768074789579580757679928139518206207534612474967734111907554989760148210734498667831886721516259533141741487608142221109548308828441562737312131886498684606683319714282548182642020380601032255331194805485330637477393663102019858022972933998765567887725135218574506338648465372168615545101831545445550253104937183314276255754520353935163870552382596976437646149743819671502680602634247822020041179343623645122142417634101526916808353698409645072103663838024724759737009868815682139799779386240298063645784501793892913863777556759856125443326944650021860844819626138217851212929573889139002457559762633800844070502786806540328765323266881180011987224957916669012266641917579551382082916360739992353096103351924015723303588854728101876259693919919488223939616174226847311292901184431575255570637074075281624523709754204348514417291906674393028115379697743163336733786280289313765754494773994110690110076536038033746420520055484125004396843468733200878097442126742415885613071371812984077846186771303633465256455977349511518449507994474840855213532841036972833553782954844823780977224454234810392087634315781927898014397791747156464588482658567052463928136128348857387365651753764940808353207847297375407405914520399483531709595440692141914779763307088206406223613702996227507034581925584324467079690415898518056720841411451428355510334366909541084758213062503537564395514686283995596175321655962326584712162893208034922181348501015971024533165484127598061145544868839733086832576463466069642429576962032937947604055607190278226647506547003517476975661518129459453990270648726345637942873361779662736007700304243634337057197880836357333806055891908189246633826446631821492391192066032517187622357164355228883341737076770778921867490956539012248257212492895751861874094939113645036237664749749464472319984095985045145837762235605710049034144834926435934150637755165164269521093715301143444528005358657643413367551300020552733854706639606726993085680553185322204986271057705554296029340908166975356035402210253870547562003750224406196554089661643813123080662944486007724491572526800113282881044194355049868337185988099374347652148322452340945566922584872275279831887571061887564487443826422069313401260509999938584192303221734112059833851227505485641105055791685588267620022463628000616844838684525984346011194801352190800716234105433835942921381267504765513601335915179827404826429765531531079764172239462600546550362668024295221651251740098423257457991952356913169004359881068132043534178646601527811996018343227755327304001832132368662208086841294545961256696160611254524219784013402977581670399220819093400064390749110671934387769435850480469683354396059233901066653660437918422066241277150566408663541245272321246688180590705483956474914497405714566111205544882482713292201487266251729464868502014017651718629998201698492927596869574409211949819835546207603998383158717897469134327241149009856974629132542564694220358754097695916135718143404877197277954623643870158647222520267607737073675947480031588779511310531232734627084690296453136455081548428429251884949305175456858013180812134711268978506073171743168712719484560936962692081345769865032962403036119503129014963091888799265843792834764549977279637323830691528396994960129524819794685217183517206097383786629498477820616869455140666663931134917833298949131145767576974194670090312565363791061226618388942185386053374257581705708111978945670101218204971770890631373313736620410800523330116560982581732251973794432180974252966892069354606339205716524275601929018481266927492688711647623136937913944488433769119470704107393454336137704144468246109165356538952927735480963404903064949347655400940249596772633749982210326912366105898299594598768051429530793462219067910293234210871312659381174800948025464218459296041487430973585853502142059122599941975805847881351339381349132823252600309471034209638826502432321433161003878247432555088183516979681823973984819608679901929268552525593568591556225248412767004013814433104843343851814301356855714243027560561199982836021596016908688783228561762224801977711239821705749516415539327780276468015330705018752611772457282722394259564858648199086227605560849735011153357610658550114691044841649882750507487285878555362972851171473933116855681038213629089800780226757033537651194528512407424835127171387823121231029571005856392372192565133783910500873413115597815368822499268995739986524708654432631874240264381301512302383150698535390045894672346871817234803599018969984961958209235437863886117521559847938673436547228139589137456160721266901238455745129964039555928284863696702878357051388524476162021603192376070415374061872847203708374381137020436071697669834652556859765919968112140987865166131767687333221737083472624413994503733368853315546343450822783089811548128705799298305196104251490662602067063527064342517719463330733274641267296216072074307941660899236565487566702507919450346940950602063988794284511390048154966758681219434491773603925651933238340803615998294801693836953828821884427554041386655596187270786069006637018841595101390112877478183399865964954340988271876108898806375417893919482914721685678977410667101327393128234228396433585917420589122690383770385702843916103380489228109742294623090747531737000940064977445055846333682908668513683826205715095189716263712462857373957737674852076366658055002810963304268956674588138525473358326065626241777090628376292299253018976360855308465154607220433973382089899435838027054431020262896296519228143813272086974032668616042063476461270422871560576347331721858647267877952996777115213293749502961467424079889755427803432985877073225008877045467897178824198977005554899951605200912867238291363078255907656427196727369446244516008736498669920943271538340230837065709731929030392331954630514158147240390358377521517500732122412940917837913597058957959937706022375873423445033492175261665457454633431045402653645300383773347447172581803137856521871748414919831483363684857901630579195988208544707179178964299902882476846726561194129598042376307585872424184959939961484654939299239624820496653827100449569790706365559175462840142430417654534483099549455401033331683612160600105702026076934842775408959955249122499621517234697431187773257757654411689938455028036393522045500908979980642403153324129143451845878865557565030268011132310369750378670695299096812636814632887185913152433674433171841955232438863187795508531872000371037188310893638222707993760587968637600871015598676992744231357013937659013048440971598489392052652930078426442182144759944697955468444111124993858903206590110207296130014830770021894060729553154553428455973490820518472471081934782788043791268340340244727754526893714852868808260395769971246516978477940043692313313863283700322388510766087104180944719851254137002253844870770025820436677051300717776695445964298473645270185826674180362597647234927602837501507923120090916403728695141520375549482669963893262765549928853731898881904591164981334485007459412539713077517207763210555820947609687076926576081584617945736169863837852560553004273594689751348191118217213070345812746305972435525289931894104511673919113882817521525969924252710558225349715428887189743172005587780077529302155722285460842020284090460492462949353498251634824357583773264309404536646389533629184236610748984111864854465542023893159083572627752880191191920218216615411164881463513735180324153850767192239208301749416733115069523232989757861870962443708792980607767573740000002027143341741143843984258014667537722751180742058534176777602942643009479855943687764615782191594377419068031125169824923628565327067639610863074960153040306583608199580238707266107145531352963390213663483088163974003323818860755856755361422680361234391901631859514537101378012268427466885434488999181297685753269810075091658234388448977314853586633903884190954368317827099127152648436420642217570565492299483108760202267341877235882267583986059531971972369691134544896130017136384364361190787651841227123890996683195512256682261477931777861658852150121708005601101966244786969565526921348630141516480896869237742522801502941357100827238941914633460890707939268580874627331404119530581558000359957785498225897744631551710283586425824981313270510600323205671650640806022998849688534262758843902125355851578717236066377267139052649900290652420487860436414534751428464156767487425695399319544206811352806785296734176972414447766646511630418560453838207361970790761315970556787260104015426373576781061853285138883465757743312885578351397313574912453374258744522660499197572880203945463525184006803369129979678643856062479370310326623273109957214013235069586053505364818011488244191461776822740879448398544998411469953107431681322407672543380398612792852865507785805425454348165523974939395719234618362733697940540190979311688132582708966046225674197508878980516615941094481223582199030374045120558462553318084263798033867619115674696884718812787441058736795039487595023207627421099066416716945772476703098368938105772253109944060377287268993274816334564975434479428422653041966204448364912784931857773188767400729479326948709817812296588006183814648662907419645209686933015550332002692856516710331804594681242266740778561721702746754843340081178084707335046593460191952467592476471969837067309433001191707014822834351176321800921992063834697154120473094448401824803611801776882176985114200072272416138992239993156352800914112218684279998075992342026974745747436497909527958633845661777388702124401578510236584080014125406199066449137229647185932232013595985560300231567621103069171798069941969336726478198456887872373169384041385272949420871489441160521816962420403759172943753408385021652859728728118276377203784354971640378718068548586423970589006737412453186025255995108482499936517479852117769030286360603829160956423580277656811346831511746522161829250138898303588210986103923034272533009752176153866837070748588941564384675287969032350796117381994883036084854255967860573178692846020109855468958161273276549774790781532733794595505158638492291089674812083381969405091795374144520802855151662922460541881718901256157599210961698192857263711534207090789588414634734521047931910606314236282569632723187495477410282651212220609193927163057937792181072989894379541759955274636023406086421484095468148511698673913464292138584376550512003255500267779358475397039608025118405230247532101913172185423683410184484402220935697958565610725168456123869882977457591975213740356383253084984047492183518861750310214394109523315707030030405442652738814295578120922304811105193358761552844002436373346158004815230716316292083530404384994551799403690943312219980000625753926057641135270982151150443170824219601811040385690801515517500098477737226752736213383327175426943097065443540985356751724925633552884751827245731840504486529019990214792238852708292578859753303341875610422812556200736746306424238190857061698390607682076067763303392779447666821123029711757606925455770898785655823137357212617361521271992126549701257482205360844814823213760981651962814165745503374461552321909877126359845693111148579210505368448254836655021448318740475741174057976982549111735579794703996772896382128648269566603054450264577859044841361111825922644371648633846571755851149582162167726866905897468172171053406607798982539384357476240628823983204828008899894074845032784809223766074257634263257593503165151898255320249638015857677182697667348506173120654359883309275772304762270568321487461930868258941244232455908290397717673880746048345888941654995410378544914413005079553466696340841449358182599721572095381322387899226036389788202383247292255198360094468910025530645393408545588924345720434550616936997322225728034069647395612795544993332066353660461223018247827216224258614467460227696744341652630624736601796902576541854038129504667321600054202422938515226060275979596949603340758897648438448413637243145144491621227692097232285394999243042096408343789399434582495534793054535237409464684161366076584757088005080219923635707491524134253961616876589326941796054833271155145898121676157486925338960444295526865529962138025250628987418406382088826790784033030062674476663770341366760865403105202485017812581727304055688978607218289633698621102483550573040110429555311489856074174092706277437594976631277004627484928454281312629352524120014530173258979372441492505574188852625323674490676773537081064585456622503572559449648207596575094423179681443934832352643751793364432753996990651111289998628253616228947181815865577959411991782413090902175584658402544822962315588801348614730853078841645279902759160518357673814343134436827232411411926486385810981506909746221157406752065631512009133282993486257534989821369471001680140415799189707408302025960942284283837571221559042240913695886824707646815261165781049798898670839734211719807495555799071463741112603927991394623676192084690964015726167987346120113111390902714605064746832459570703113630168382046810452993023717087421821059354913090487545989950063754007646105917684912079506427116656671368697032735035511744784899477799604319393920223676677463671813323831017060646288736245459234745832155710412571060908587067626836235580026220092372900213012395681711513846248058194490434743851597706265399493263658156658209132316211984222992175465658051924043182092721617102202834420294675645096888511305748192772056543255116683615518814929160621302432886568501101349631165662558364521659439790034344345709980611766018543409712369811626127813109937816186571457286593503052699474978023677621464733272466258553815335616947163836472047799432546835159744575074283342531030656236200866617955107913558182796996495809142067429048290430084524846245200518286199058662922212091311755228983934597293067355622175412951114448109349151091775767172959591209229454648338119077898430898831844171627016443945274487154711808488975006168876064085382916840546537625102057271726250589772560301193621181924941168913737249433542022210922246149937996960746040564241302191640117130139335228091465670846054936132735744858003575696836501819625923029699821202003574488616819910460711154689159790047456860513502351681725286028090570703559650076488770400106185736116712816920328196085046019694044536393303537417518052628539873522807074555919326613836514608594243390294411948610163480943539294608979962861401898096350586437324702925849996767855044648736890123461975331386710136801474632746405713165029012031040866232777241442665069046228347630243103135349810447501799898302864503791567683917993419142443151905275564618913338426779978446116062898154443150463011413180233184845081704183544703890887084932236932883975440507059868424929196231816509759973968754121616190388810622307748534852659396630683862649750366999578035034581274209923288205536608666098717674536162922054613921037915306539470258156376780419561620227263718980068151924207091099576874011956811535266051710975059331847140503529925344775286052950289860169264850030802880820159084174655616761121745150219546469550767264987042296720462325651732399134929809568868338654042558855614740715790516648249854554135076882415152490070065821787674988156307855169593287122622654376235453313118347548285322175173964947814198881592163794966249188953286670815084366682749931743517600439620842891091197652472581770815551486964312638822160717910561549924768203859357913698006539238339948354194384299271361654054793494550094267862793783530339438116398821012882467914466941765347230970427087706668491443819283200369442940684074752077090730256568691875363473681436486971521009611099953886783249307581913545506693453449598701163665692403147366450411193577797610931309995756343400676570601842945496428174107730876367665828020721909692450543480043733121965986970254749860172362948594967880502537832166549501806288365196785556944065831583336391640003069646574271395263301323436728648905079100581035772775847088158740051037117671370038219690036128572538430285392327143829751583721686501637274360978925466328383562057778068436003298905361642171104608411770894877027092548671656160648844398118225747516184463644195463254559616253281445806491677312752571239673558893844851532608984869443103260533543738395992440244380639781391944490100082993278139852620860639392572118583141096653016605518381269932238975556469717126975646250994879971978899305173464253197178721328624268336911299583231899293647325228478265317833883684282268725824831903747671421956522440461589749427450385368171441298547122653724790569710613291739491955332857047693826699649994471939836348444767551607445550007326817745498325699448550955525542113923516825862084204559611753139253558646378981572349248657756026642227856735478199812461223547675453194678041787695625304435327097129658594027184864745346451178380225561248392731773645468185374191921494513467134723731259539535945881652515338947095917809682894777056082076487828422344326018325642787469230871681077014199314717665147023822768660242843966094487992839634456259886503547062619569741666492596431230247056530668527764349583702638001941551105955002156108892574161725506089887469909201676166546209192605184756813638975472086933848370591099184975873732970707056689484713951927805283832992937635597572096755653422402300710565445196755044262300712531801681609612335611116081721232890553415154723508001002404185729901520210363646648199572009503604245654869331841426232259044769765071549020379818865266738224923542044549196874579200032044223040315273414302996503149829277913994103927945339750055221155325229475899821968363156529646248951014895749579194893639442551023330775675918408533722847809239596560217650256764894769384068855382081726581547291810610232972295615761831712128060985698668639929505274244238296531222573971191959200160022438434851238691965388944159467233143637803428842274868459920264359383802475884643604214702131484374852877517686535827475618981347886523013205351292166389007158379340925644738842766771376746069240427410072090557247329039360529106769641326474776066622532913188476975157245510040865611557707789743570718345623890527648028117160436627136135251450681516374128757917468496643568890489919888052470124554561317515110073079391868713287687496579846344412090509800796711199114480452633902135364751949894778234654596656352547617463117252411382456687545621242948459525514728046982987537078905513271461098806736568891686929923108502615958108190347421980411360663351226250154031082529219169563878146600194939472896281252246428073610558634936920703922632647194975594429592112414443041504595185814571589708770309208694798312358909861615972092839864463512052779472956629551264620089655448974572174264286338078846907829036866727934560572641312157738615853697928322639406918308767729103956632041190021110112546579210363212133795933518122040579244609397976959633205464946881922131395453183914378543187051701518939233111957196195731923283574107035086256982418868630260652378372515418163796944912958220785426763776510251755574106524554896833871354013268588561361002871676568317965164960678254396911376957551042031196747432272290662062908588828839611034370357407418620005938108834946377698142383422420514489241987849399539402468621247497836450241480924058358589088028618293263218054735341036943853833773578677805747140126294286276145918137643104987281007666226693893980709849853722364616022039360081981023790603071102329753716980516604699682807517987783677784637168257849928973495660343500608363547903491699331682710489285561839664083997013729246214889809555159901766532915303808921213491231359874405424532967466493883653482778876929204575197050899072340838169652675696518390475794289598799213273538182386880392067711122635180398404432048143326023803656307886542298537380962701912425662975379441952127742299102341804173500394384421707149158745509675400356078052763712230603937434719899056094930012810518980566537210802098274674156832499434737675164173553192647970707158789410862508961927529965108306071014125304502999580070098810256175590806962321027049900554724649720897909314441068015684157164773479385597214008961535310614297879561031499941577017289583477267924546607544840334142440327733525290543868517546396300815551344953672979445504774497561196857855327770899559583682184987998423733775889678474136175832756902212333755842195438161633733320112950193886154536364930103562667068151432385152158805711505818492682363094146425883326118460385481704373791818589167316046983491515709426233009334662395906999373269049947672175572468915851110707296204634636515822861487043599576163532668877237757528108447185377018131025506976671697201515721031733688932894038463058917513309192818699025631047080705924132832006186374465174589882105348311331685231626113293772727976592057756850145215541141305083157742778122473600926761486273380180165822636179216827333736988872133907620543253174731102437436353520715844016123660511896475193029783380371083356743034156299623139324954783206282907846183423441044994837538051580821620639120058275608176475405729782809545166997691784238543148042393740032120213356893504859267403266888085316185558445832351566559092694147113295959188527150142556992330180661377900980803469924676907803817544297008707208378800403867163668057470524183307018218493046299087637617800193934148166931265383031214096142897403428175717297005988399642754481606437562840609179835960176132585157664154814666568889016239960659001108305745135469086077101864115482210296729175108384376367583013632924622571783684086937891981624444601241241724745565214982599147769531695984425735788266370785038805086903301312120055166526719755921105929186030766762432008036444948166205043775061485323021920040333274046085640980701288488143816113440035063512682548157716838038099435932979696158191838689348607909494146398840144573283649403208185407836911589726592964961989211841272052801790385997647207615657220972919622879996790279153948584978784614202835624004656964958204921140477929899118702408776906443806811640645573514147166662848214800577260153803668557792649300322918706668302539014175172226514658583504429403119928585235926403765175434624562121463085127421336808830321734560997688571319239301674811163993059570040615414298145186145127544941970820353949242011061716251011909430060381407307615730271732538175174484494071137472066528765227148926707107847225199284091669546326753991045661722922083566854968712310669489113249954669054571227265881053375580369870028007000562266389230419000974312650373793663468688161519261764321156786721142136031878663995983442573434062823955571842336323068821369665493065968024875956129995743487262923146225367294385710021635597223267750878496907700464769256870327719386412705682140954386573660841335322529765373922406882745682746198119678528298307703277745964528878738075754816271234841240288642971890130379371318564572069323917216125237771747752856472963751400437036705411594722667105342052171271122853204352955524977820463584448849095757251774658541231066376023680915418007990609075850755460367281683175140965445404503749018066485202064154593094061983618149305449802932178379068400265560390019892553403747643230281469211837590716508450314070741411259976860817356544753181948140643782198796937333009683540148790875936782529821823655797414850968531084235150430286231405475006761707043228398248597844291738079157047780622293183151208546302663411386680772075606274386535300268661646029295070288630778212544136348582023911498873183318628752092480078331661610317796018479095264505874775069745315788845046223552887368336685729875969568538446585234928706649313911097522741925284866173452732689531070819037496283140478721274692186622869792697357240781959002086924655567702885515245644703959030929012328209001013680304034039967137488603091847435729875529155830234947708731084196038257998550685209340258633554583348449397241298872347605988397140522495331562333361684389299763816222146522467282724750355057213017693403655484973917237279048856740460954224183520874831292748509278754640709101283872400579634160965098915803800722134948852226855486603151306300918556117744222181025070522731048448309155221194917776994307985120088863157606931679296668494672180076742294179721276041663478550271571216369202496697578499101147985252037717378189949216861536347674696308925130402121317505992661018729827021758422271899754418057419720482032265055707092747417996122157602193012125719498301786765526313564887676735272535404327302398159888901431915764811818314643113720763155662781499279761200232993892136795256206328068312201124566349028157739173445400004943894037115115663606820262444701126121038479570521217442854685769921322777331526748161950328356964161615578040810432676487877235784152355116633290561758694103350895331944293088682719642793359945045748353724053499878399235485812162112768089457356423346536051730578218953072544045521948041986958480265272738820680053644969083648043076206054117367545830765034046524549730344030168259318823974337389520386575380662706736719077640420987577685471150062628147871260020300269933052965389927477631092996683737287805807965938147943886699835654698194035596830773513641009374718749022102114545418845708722522232290345167355821134197292510486309355209936698268901921738560728976441121233429054123793330195263406210673893801962931803838551366478886541098339500163382480606328905895792798297144450947275436425476581608858533562890881686856389624711149469611195690098791317741954291276111771505048170963830460447626767954334167408420058006974137286914220541507146080869492210455205701452810548898555070104391334977593768792105709940866416603798835735537646404816010744911701789291720085048279882864709055418994256318687711642941642527625365522772629774031890553790853181522909871336070900506839495500176461186272685303081647072440662693676481179555560369642627533966056000708050958224133622632355649020021051215003694075967359573937143480547047654750601038479645146667000989992554013542625943566186703104640715926707238094476769813544931128189193164526228381237654307891086003606785318414860471617835105414924935937365996766661710635830906253212049410672663564994777270269509251358014951823858354193995042972588793479111755743980061345825373595702530325939657165601743073416830525882421004396097385632450037185736806213054340450851402956158907320602562709509471211537649445359148423979568094593204479274412428988154072120362659531008985689524827125753865956518245210484440626329506459252495766588511195081074286879977078493447388784376990169108370247336865705398783654712945568413440788137930667948140179462585546460655878625440840431359216342580042005672473092952952229161601931283827300296804788904975484448069842123413175491646639694262223349481150804718617976478206170886503119705731776430113562061862807533139365445061723636982290250114928061787546866904486836312133249124448949402912583927147740356659945459948422747647748070757015586714195622062711997047060038995983102109459607807217291648527933463100664036002376112144105596032004980814022985699288868365894796304219312487030585049648357880998435479717690812586774643789326495146007663476123499539180143712421614639559334184913110578182114806437117120228635414251917163934088892957976806970211711326131030339627603561580276793288006243382059501022128478617468053692649441735460027554423836202224990894819617848732935235263213680902384710892663909629592993100304467733914274962575983140455450778953624460858487484354200315662334539765371270331388975279826004751962646445976357823825784293106350154385900739872526606795456257617620101688762828824463658509029485275682015947838105506256879407071959285115650363207415295024778367912339818400608901682126610086498609648530118939631223626009374380894148972017008380680879378595946287937507928987496154772284072058389952668365558663233089997127183784484499418527697774766443864420228123670243863666634784759295972500516129518288327134706977490305115246595914739623718552285237933106591174799151935972976134416655070159854976851126942530481987761958449486783265464417934980136281272139449766791185960792051685167337459813190821363659893803587011159125201863518580959911339239398612850125594110009228970110191295352252748021532160095386180496947197082910544166142288310258873537747146303731650073422922909681686926528725255747620589812103649317267591073092636497012579548965162499753080655402092971944852939902673976671964585059552720905480623111706095658950492884686083317419371216768297991975549819082949672898250707679217768977315395467108030990637800722070327576842718091969131628903473261444232440920434387399177877995055305242181182050368530009477079564426161119973054947881618386076917512629630890516230875327438152551846438382406626635960005282625553880351083696967438332456563740827933294835232636971572155780498361436216275781667425600362846157955691399733901940174526844867590111754668400685635704014705281596811888787921178024693840725567232671476792617389207834593678183916121833476454181136192774466131729469107974808059839312232102412522484450228986691820219739394446641036584179847506836730577574768566928795046016245398745076285877634329454787829325924912798241427168403080616265499923421853755312905532175884020923130894831243365539450081176264067005979324109245644448976153664975840488221986256547081117392986296237202601522924359381702188186334019609611864540410545782704505625694572957983688995230669810781191520675826344484755481106222550965647411184944484865571425070772623333140208982412029781261158254328409979132790442648270904862988231030518769384812546352750958220118317449110910159919550191015338303711171077700196654844967017437958371928889284282048841914064554700052145165332818747673361490925833090693911554448653977668084887250358425249004572854467242701106701119873585893389189242917721314443503215032177944695119457701039044340674378606545214992921640206212631849104603343024536407976704367352307736607240955707420650245378865073535021141306676021300086027707113550429714329462630970681927148501850192208557107405992536857327155194768052006420698015551190457396059833594369929008517962119907094696082225636977098955478749501604806874733963288872582396887988092225908321498461119454707499306148819348838577361675131061433794519020705476513308853943564804269371192669641998064080675530271093654607603313288937267979698790622537192939600235976520911904436787224425393472574624299010765505850759158310904122076230678925968597639818838758727743784308879853653876800080247858353513514925463741361173010339552517885119708022305641361509649165245689833202245495923817147179192076597675214049208714358003739190168716732002727240128293292155461872516357221243995611970001049867098081499101300808839588260644978230439649289288395745788530807489123533982324093365289965687900339588998315187076285332430489451560398494838419473220561490683971057396953740061131498807929971830706870112441534149992910784460906952197972152406921806987281679639107035269773334865818269320931571258551276765949093059549492230625166646230020547595442182808442083937489914223078853456020961087701710172482687995802045753051378422624688169420939121852702671921618615001170073704428298320766484025780669233436596820193081442845126756113796860076736824005627425256599392642348182961029367167835738235837697809537978509005409953893850619132478758232395162461045620016171434503774877982646948025476184458700005326757246070620148541443290733171232244512365106694500288583579787950733572016213871227366713104303980160249681515378767823672762189342908792834211572385252869639066688024948044456920952388684484964949253475417967764501068110561154627629229447039538842657750401831932385704840518415953246342715159641512050419354790691590143413173085788983005372661689450945165883731630191576615487720900178286508069986376711170863860479996818322572121695794139978007292901101967215629463934518382415289216910512667158104735004987103955478394829355247348512716609620712700197328390183583698383278125950482748742608034330713781804703764500033247145774696759359583276033027186485591538758867280664781755389762793658312868959429319906693847439483131771575845886925316013421919388411314059866066391995718193992327929337511249257768885928604150342928017562951954104611285683231842623774405460556755056130309955465153920678294609611374167957700391540195684068438018214268559468237664271427745277665409803235547713380897621065414454641131627683182764162891920059215265869156729835389811826309244130778366032208303742879003549689009663620633129357899440365689216977687537080443096348619192178306405982318713167427747486927478957654155595968056344410043584751948732747948943875733490131733703293388885342128003401976728844210221603900850498469125622686840504186537747690270188955436393659123873578238006756055017798222128140417915474016204241036121166040517735193857827521096674784334941500620221825074125542098461811990218913319940277797974912361560368698671236971868349164592313968406497121990495466981509418009865195802582318417488422480956134612419170267281752937820737324717947983526952032143595196214339984992015927895015140549813948225585404500670919329855844396725711612733386553326923274118883588356157530136866328212493853513996740008939041228558139275364962927620598558705820914621290936107297414044729770831829546356698633819788454069077224091025854142652324612983582423660619608490927642483444105779716611353847223923582844429611464358443576917217750023436098589532951479742041147154932870813811773914622770158968682459496572815785732611825567925855974070549785691187460106648430401738892070547802135827167993764233423031957038521578242496861116579338310590953482890127593494368253918908647826697103086402010185629588611107516572417020293782279417940693585925495606551800642899518399889574990441319224324926058184554755464289896232724788130403271084221286883178865439585372568910652943544521055322636710726143322915806820133391597228576961132118558733031735497321858798862141391028025946166257460900830397612224977355047610242867238805594116386804527430185885403506711643538130580099019378121645676676627971199432982949838385982713846802783678278400860387852062592137056435335676269886634051296881448924908806453284145952870600303257973107307468390295572943194666745351721134347610063225385893324344559562423591581255229798575788692249442845201945222332937279912294182154918532986609909309023890093660943771982997428194931838805522735472895590357792322269409018501179528278278781212727441072243271001261507484487495969816667116234866399310885041323015029680070637141112512743290734295490586750061085504093080286925564074067553520245285744258816831379539142640773355989212679915497957862634877450335573532846882753210856765249064247354004186116480870085083523754968777328782689978148193028798161955605736596962395686586870649414521742256975113332554520829909745338227175254918402494215470879966224421693067563496759675286980435783272294942842633847934303353093146112387145165027315509814068936583002715251974391229974156034965847469166426385586255248118054723638948622283793204169025165919056475310281525176286896116172320164131229726052903445764334217131521578001030735081042655623649696676744552027840901031153815094206247762780770876823907000632288324137334449933644246287179838886861735444122358085188200497181120240090168665849017064961449018248022952219128803422889123261740686094897744388489883921260140442889915065795120954509790483941413353542357509973014836671508894126463655977684568729567357646487619036949148997622755926276162254242623634448160537876094779091917083289281850887435155993664186180162719544354499587281586852221102648448385633888340896458406281278893887976497652926817397551700885658230532201300673596250974982433998650614751784663696598308822437444886203518263056002585251537024425158002882919539800743747665547298602638170248302206260389542045522074454024303604964066941462998945974841934544963006145659170807879173738578213898962624124138345477251326657980317238282426993776097379476318469481964797776053596385094336832883300438112809417689187670132987330786121497726295301785791361121105603114781781607462327691804078729486534282614940880436382564449260687721652134702949973775630816648611101651491582545251504957387284944608636113006158733054396743301182135263901263960306218671484799224371963589644566854665664153499304601974435539835065460731519690358747685141016739849449757295113618569794470326643922329866104422785223117800772787673087742262655502581241559648408735932656690209369163523578089626868334998566237476143891037970239354233986734325562345448547644056737816356631413371624143653595682038870484738449314061816917789363815647362142625913296203655779637371815757914338313898039592310859348584430574755240322535838613899035239840199805975717150825633283381736705938480102047460053539699524397835367092669589667558845884604661585991364063525376815012034456009829476508905857379491857982680520449497428228367386860565564199459193296099432802543421268471769184005905407897538984674855628459698979461971236126333504448593945146875994428509709345915546174551029218159927308196889414061024662162861933822002107535713940905042346990315904154282572759240022798053620052467090022148793974899644396906989866163844960723720242162219065507331991025673562339265613578759071255141689496632852602891231196326524658333705990500303437928067760917913063757207261602029926188287012151671011792124384568646535001926870487159385747666574198690180434378734074426882803391574909359234743524706051905978499918476896117207736876176304869110444065629135393773407122698766902411331827864566526001411761392599742326154234770668780361408226420014989155443051435997802250846873545289891199997755914059848109327376538140635693047013108563434493181198338507714497902086220438407315908475368856241425721482471245007588574930520087087159125019505965645904290706795577344580678655510774989760985538916410580048308724632703654040185009267944682145611657503341424688897830213257725035926201114725292756820299437650971776708729295244647211138036182955115327498115604423877376379621388834149164059978139253746076847322840818908940415847069929664526056663179037959752362813587038156644966662494205745803522892190329468040865117786248942502545467868482927629320099686367461497070467906966795623622082730108896481087717465406486660784717153563381947320822822670103869333807021561284811773069979647529723532794863101654367131302114019993584850685791441453143535757753595714239897938514263080867969288587692707424483728037270795241660037747160293696423884676986896270134963998186383571001024280631076708253335081935424886924769538644888445860831464431305960902070301038025154057440259751568238326893869110160839335920639419762667823035425896442346938706295060289399025650813233895945339920498556872610078313576296971062900873339554851304038180644672618240080068648791811833796348702790382963154900002870040095442056602733912849026402566712730673726665992925789196002863758540854237052309093384686473985520190005471420068606147971227290277662551513375972960944580521968593310087253840208705602791486353755956598862238990301647726809012340149405360635207131226432922948854600505233083466703661016447247506749099250751018718680430797572570194027149374995352060309211690525374205231030943617119490634014608941872149080056788194680056928493391653574003444833740464889878147821830253078324572903968887326424535746622679456363904189401277424925944597949696768961630804643810578376559499505228999325824949959973331311925011111914489494672210631681259777447109196698439883932963793610599178974005948805786565816266146118699936271696710297121974033936879850722186610716534975427628105561752034658814605216360087402750858387512937591004290187990263378523108464442709951540586678627282336524150575540688576804188455470557008587424808931994696944847446727243981395864565285110741124449850602499834042973122012431844118374894888267179071763883387000981121777460782878537121135419171391693098545280219831190852666371866931418049973181687302221873005299402342816904285052951435868521586524216743770069513784045754771924391461217178376890418024236386650739529093005995903783544115508274472551047492586428632378754437578180160105014661572962845592830664935578269212337787496047283201090733354306869931760457183841759986609935749987748356492054038418201791352885037549803696160250313227170817870261389955851841573878619013912536804318441084556592243130447704335231073439436801414344064995026950861178679083025855027293441837389549921387765589074109937776743271397248446674080850135340333834567784661407021049179529250387622719882705777820683331850775830557505401426360631044552795724515443654740357960695047770424908323830433304656038131766302657830541970994545039807271302727832382350416312288068186259623173493186057080236758816494623724594633728834497938583042795119440537760426275218781120968099051076460628943168401700208430414697023507931234553651941424442581480128170840310838824829966283036463444702728564415893585773346028822698399197949326432905179289283321764048142168360504290884924156324839392964300023425766721078435909226732235266752279175620774609846208415311798354500799240206487118708417044841681642002731637251117646887817500390028197553531764212953513492073493672546792863501095218122645584614469472598057086904974133334844753228893234135700191171493057566717969660225679415466533389693174539058263509624314787640776120126493414787087093264101102103040633609587278683880596356842464649543295644469793070618951333870237324626587064894477237098725985159234895433597984925729375393544614560595442385709009693756486537660507558825634419206060541164265258480887576890043079773873278935565078121704738432557341509093804931320819876845532920270478674684347263638741034594349183728674661533303946287560367501999846669825467925165196166181935706803335538388752181120813039296462303588979182274810383046652409272706842248380661727534791572244149235327451462889262532407004369013743269023902132190949283325293525237478809430319645596197595071597866365566940548965937336483883238668511963056143384869083452811294413871493144671633234344547326873438021056200553255174170160066499755770539667726067739410772767525437528422793952754533272529080379866551704575673421976616783760583028727431361991793444774254047004346756706685298262468593284039955493208057931328659657101003029406017237048380404491708259068368135200624264987038242836891250744809506280317691526786302777834432260096392513982246930006548155421959149278314368470222019349523080213588575133079397557309774084406402739140964653105236271093950486551992223686798087322705358667686567672582335626377788411104726966395599381516872499177407938967204334692918746560239213084811733366609681700363728082967174241037540157318337126480241073765784416451587747318637461947924789635642805465288614027445623604640854615796939053894575472938092722902672232890354847647942820787771827122367600363662123990924685784190324815873832183263000246720655372389763829076034299002806556630951737801994729434152359750548587283449592887732271357139859221912885534795992435006479022153437252407270351586162278094469866466669888840579942368312512831118637129560068016058188619010052041002299738407013523825473787525972250118615378184037648481789473856223247884238720675137964911100156804407142788260329391951185325190750113268587926693898034048779652848234045010326560377758259455200322270879581828504939717431931516392837784715151836519487391189403384087308942822731577438577078722015716135567963944324902530146078698542648731968793934014846507457356560656447302268422730886990466564701500662991212347930028264113607828512534179139909724980931904482602072994089911548207666681342318550186364279381783861968374534529179478299113029094739636214822759915246106960860311147438582063387033425048692760590786494358860877673898337962292230165236388240546259183723693110075653088272633640706154565294497789600161627715793342282745036244614094379823102171794938238890475430669510930158052694416848783998519675339380562205458121541918935387648560298917601787566174932319225957210526300089666210593122444419235969027879322566807103880794510775161950636196079868444561582629580902287157517317011167786068624399579656624411166869938875307788894624186952459934666937274307215103887480111974877599751333208367262005248128890135675700010012676470337601555827627226700719715002247566687531243092794575706586267255838119207103168485246152824927046135662752788130959183447783713484916017488957885961629212538071766945160080669850790764095222298339159784498546127770182757298463591986968271808280087578197269630472200090684809496233839817486208515040950272717696466171920386808964589130828410305901985718681057461417522956041471880869367686001802307304534431185145224590236707790985091784601343802770061946518160956446927156341928249465660524436543011386428551819392107627847512151301354256719164693624939874569678541059835901386608557403377908953566822652130377638312977299377159569082368101921621413872139763900467103896390611259377917146357145702567730979999572953202337346888234905544255276314803691547823640660677867657832202436110862317399034934269440534856195703787173345149319786681862723291811865696758968466137682176624202723075766091701849789203386112861191739343051528848137662413909812519094076304350139801656142112174668675433692260274352943308665012508118932854215574692537536943273050621221919239857042577808415719607907376128514537592177156318267236734613629418275038440066847958534947085428254813658187306302446340978006206576002272296648902809191448939236719199710136612988939131591266396042130009630585896644603648477514892243502042831030287072219041593235673901544683051585493563782317833445349430486530986454271938073162965166309813556435487774310180121373926333843139850473812333825595040969447275097585064787289208397895446766555562263080261762442019543801601687986544976039989573196929174592387828223062075805243282929806903891280569242270856043255920617302314818347346151257373313495801124855318381325853858281223654968997419863643520541303405263585320938791441692322333258572468930299155611121402836736831567861629051583739372610612027919287634839479153628556414577370642565065771426355998866622219057250707571768047937266851496413679059095219294166015288477430935047787550166388778297138498576397662820237034829759259645903931111779441060051143558391784930869317224933500849338710951948173286983447665577800308617722158415896564052451720049608002918560533263589962000557601880876242799882817635153815246767818152583106852343027324368797230723763653435721901768642619152185820277248010887438637585912092694219768955382587189715697175829370064198373255880953998905300885173206813339177447020519750425912864758401911632730006310713025356121080135260724974747093933423619582377098209876493151394596764125274403109171783332286627439451824457937448660974049136503105279465677274464165966468391733609301850512355497544447426913110218272931104563123104476645656101539608882506152593010331931799873876113694807070815628668213620904886625255208750453922500932342539332116399801691497448163425667295238877557781575221422854344435776259593575943309772333444421726195491163247271484599438042553037338729088890877392348244273616313854292668575598610092635278813896908304816001214690469094519017699348027377645679376962497264092256412905072906850096590587575187431481584440687650105844743003683027243762306782739244367145494288897893662935666449468922352967978114234874806522428671485174189175056991449959765134446919833355620533992487451335771543412385131319801687058182102550691785303832987481344958797383396355104463026243485166461368978715717818916781977939011962544777776028544433041213924221601738905601931108961798595973142248078651100493968423919957286669280005816526265002418391934854740845589056459221040206018945907074110853750267858336633069947483165007021236344710466168068538190442957872975171694957092639279565519008099219510676519942401375199129022685784355821339341688633245875248625308570964035250359263764223131284703749090627851156324012624117039168631517478006420822512505784281696611971667814763648978706657409370004772215353167278179677607254326064128607182654336309027568291031826197132841811852299235734669466395539998441922254423253698437364847500793851925331306005810967131951848591856611509504937948036957843445200350828597512005438063883785221502486313133137933534179192780534904876318230964008594632629017208768975618936241427111239482100249980019512024499690315855424863445069094681375790281966970476464174095926152488894168254229007329608994313620585888048494698106255700431187335815180347002897558997783714244062560638214803303006017793391887568528290230619011182313525399953829055920563832804911688947823362903956201923692704692376548082521958199839337002061262892850474467936619487002812371070101027201698358053458203758636333098496500569776080900416752208800562560929481059056625192416336624305769405936548923381408185226642643563669652163595979250786427165553930249471230911784922675464720347582159223755685066862732176815738583070732056528988885835892345266657100527740132294165941061611471505315449753449008077021253029569794257026177611223180905373137540061122832960227968948970362064207357067251563339798023631375772054421594285316514839854334913646163020281517821727629497476565854256805924640253544660610284766853280705814032868698218123349564754616278735112129484004596157435177448216692080523765518390114998170336960776995978028956009982877686603017078546837593721775708954901917045097523500665658362107149204968658438334354211442912272466172201452709409539258687150585908746085372181171663246277429730452547186631399441565015287438764438550738792731797290216965961736017464262196757315557727101549659823063861194081047901632002832594188389776872617493352291047901382624918488447818352377653437043960481204704255875223289226516285760805709731385639779788189568059985272024792000606338184466558636975626717265905759456893925413589191059518968152661157423075035583179835924057853091063138119535091636290814647405381747649826092458021054410198103279869266073813876051941785640603702326072896101715093801659071136856319129887810593574520660053246843729805237425293562359430252661778079184759504847884841262551354992098637467624752392246992920443804820207966111448848101412484281427568700739928783191997782437604770328548868671849010907852504569024277765154223183006523208637582282863077413266684436851175439899717575876708511663051680024491884419015825641449814619122243339084915434799131979970047883623753283521124692975955047340927337425498838532989238493488647993404800121870015954685192770180373289103426475043785243608706501779596449504675462278772551236341971254936737299455167267102604682005807907260800311227066727642125976872829191581383203276751095062745794003779878153109416603778619358639097917850100694304627448343564494433664046377778950783734520888043955732634379888674357675654005989474895238563547278459248824227790013180538043154787060111330439060428267458092181886400519573235542970557780810941697913956136990344383705310900077934279543061015621161793891752813263972725138362772744319125046928574283928628977498308103412457140261110510018667688465977352645493826216523819516006787136067561301205757845159543842634543457433463654416862313959082655817123036074360138912587591373260415180563739989080113607988131469207214731407451517177251324866460345999825237021115669578527790490166538972083759055065339732738643851130026394338970213139247286713972445926918687637856088091543753630608244149046347284198694582235635867726739900027387314075907621799646911119885343907835362492040058442528960556665662757368680271532691212812465360707074194865336088138297872546307555078296530198787228264964676240690477089008425945932372503540727494762989484450567019142328825027608873726890613230510393190330202717990881586173775733651347908097455729833891266860680707294222546377958907497575874202863798973923586895030747906072156656724288237487072206450278146979690817163357594488516132312878402446788142975638109748555694371371985916747896515604524458990805650243964696801529036312327492869625602906483932588908885732746520344151031498584094749582425831076172789294087028004962399799363915534297332862879992398819599979930038854340624249729271387384491942147988585924264738310014121698790237926757367474025667848105846606441182782964368747757568559337666340966375672747513056011075318828418328974038108712012370374225427500364675762600209835915758028415289214668629999822783181415789575934126451573698527436369489370138786140435273858927487772131059711823854527707002153812783471156718511754434794160197879611619474876510159749007892343591754552565839487779342750444887111783127566369367435518426915926908666252544601564356640668997697792975251566828576925123693046401000573031258191167950945454780697659094166249236852996960586306165068587636425572953560186487940515302694954959137368367380914632151858383388579975993537918265083633081259458768720161860580364760988136129079434873170378379488452594433354495712637493309247611921210567365806018240033816832930340775365327569662641918600773514200174706138312506360820567053402281254755862969065417375769102370380766968735112878021663188445124270321278405035837826108944061841756160575107034300114190113304598496736130743878267740836925009997502960207602145819637218635952236240232720209229466159666607372658765658440216975172562107848015518339330874194007461012594230734374012329155068183022273002387490967919920396674336328319211475739951767993445728234456040312386530570769083361007126635917035164189589323170100708466553060484847960483317031410058469246395439877505487288045541735063808353875784569915100839944278417516907862228663227999719616366251054642278334541029918961896252663645814757300175398714703324627647094084810001419557931541744898396388259538355534101089040731073784572464213426663449307685191711747200138330345481826876729559066904704514871038221596988210978017752498398993060346843016187301873935240595221319485174879139727097296530033300895546133882611037699885203754524072062534628020382588860058837227992381745686664715908500613228921823036027312431884091434425030524230682961370279285212078730573360660391957320420532785319035775820116969875767070092886027694988421100081982823458347996599259178845643217351603628033608170898256531293732238787860678728096206384610936509150204691204559521815690820511928530753730820537521999766766523608814700161485593469210853923570321549099067757479666932089209840545019383343654944746643718145098011004697530260985502357786560216172903519538074585013440470353205877200749830395514235619309402522843292861662038349177186841236462727103374847505178394443362602067679563507583812259570754431404279585711199042480414625486132522302519003974782252306857721559100006955781456225297528302793614180522894004415208038062572956183777748739929145498597709897866056891919793763215288150229377354825619007716411209027374611432284835310879589385934205883610998675354244591848955994327079367626416625097618442430097401823309792987333048617298697757182890758856939676842721499135304315920399775798924379452334041354051052530413160726089802862998154741470130665605223143685012649952179778199024302369975564367692268770451529257964048145439490919060156271256762067295341884437913601795830569606359127005241728545526734839658097714070451376514321268685029599300266507370955636617875646281513433284598184450664364089602660484454050637754006327111519988630984925891457900468038096172437297991782401463613043330069401945992594241995313210017912978864258152426688587565770904474416155806792736460148212508833786432317464509264824795273555127930478234005228805422097318220555135901911289839761018487000897823698110661827717470861893503479216818877178739899518350847146760617812774646831369018417041752818716897911769534061192896401318552672362384139362773414834620202429301391170019507056251322422203810309766065763259594813978390724116474372925242904255392202076112557789873381734277445887192861617696982672176943095304204043239842674212115799326629786206687693134112780789804751237958594109361487898390944639823453055602140194097604129003426118150164123832526721063820755208245900877851464316890998787349541701886955510918622663965129356884700150978672574923061519404524591226467399965203378512575895818166569347537402694092406036572789700785932531122707217650772611072021323101510209390187976486486389387842451716263396850442431463698545391126351043066418166726272419799102028710477980874552866682912692763367302433671078617392709055461030245251000370306585073277786529658395599719874493752404807623420999779008979148199667635259327387514609163809571394916285817799851368897499348788762944939685085090082774438423565757102688261287600313421455396811702900806690302504290649204167549542501277301740952596535710351092650973465534041503398587731493184830317214562845057602718513841093345866115964106496004476213058344128987571118508466917783700528918693926775526302521376586514882835065496738807781304871070020124817331886407884356031049841186310365803893363293986867900706958328078035021704109422690658204460000100670610848146363283088675011787648618862163185733543946761791588452452687857644536029486986141673366526753405986607382505877833797469628345765968221502543225937777147953327331006286701347792800772899093411500717881414207977094623530672862777155887489041881060497100761052950921458635547233771928919668025887422712728898567435014982592327181977202946363386799356949274461947334372860417387979285126373949273700290741704080379841520861868220514373927829057952280459222764319084056240337586110665731620020047556196579319578148565203489457936923778013925694020379583561807860916093674270280805992031080493982162605669136974870840993899164005066467190830797570891737856738958907957745091570267728961131873169866479934789808879850367565294352180036152979431863984355206031958609765283759211184072883832171471009388719210709569330574799678777640023587774699794425264857759193363444690065420540414120445253362249467757671658978124494143394923636696066138659425798263809947085248486707250498339190477693343534610927525897504030909351432660459423709326310116925504830674510540366773466837836831147858560657632757671800128618143006144839936995443559939241354259477909503272314098254292972346814358856293325402848732923987185213881753169893046476399457990628368051863897203534812712511593173205977636422160945899966405162094518560760670551723970061661775406014435762183279608629314709792920873218197089546223043749363583843265733222327143533927443799510616379352482878681570437524205774555292410151408681640688983546173299479455807025984902471933407413768957555510027146907702622500479227455655932323677217326039728441347105281997946281729989519896597599703039934814035508428131098968829500448868542227788814792784239431084944988819601300111144051774885679322866298033223223395737373850639451883713681390488332751206236798826189828006929817351925194333772557329016120522239761750245075141524635229813494467658499252255938917266970154145809801841047611092091740342012653022449946115440253425735670583933023110672197136738014407817165431314022097723885411148401778911979380865194584720490800512435193680275930959940290282081973416958700365510962386293584867092290268372326544273880063952941156603788300114975917976058167749074898776262221616894584052389722347903129272982900823782211730894004331315483279278030115611532131887214516991290380691986205967748140119468621197147591280971199636261110112116315077770373630982251875679763793219811908546987160715485427844099177773418473820299570194143578778360008326393169172806773504490570720659745251257723743826456424259667052796188335931176658349519112684501199260796157810757317263393642381843068848991800108063975152740648013448632914302006735168912658334841262531636380481282369168665999555475709104241014816215520923366984961533428789937111696805055920830376164854447327220839881825340634238276456533828396090904660520481236436577439005163877569248879205764289594488374005311595518574020198377335916629639743426321697869907825873397272263824857758762062313316681918260865442388931654716230876242238107196076757510458574206673447589039107301246914718570805268575629282164228997638031038109858424134937787694825778054773530247236110038101467142036526662667911877896915487868470679589335862072854728749475608609191993028297081764085751807246001634441183751440599652145202145099664318818634897199311524144282030661726979770052084814427907295823810675623583169131300954912512612421311115921721463782941886836931424430207579384659900885805591876520237917057405233682714282763872683517917557528846115192287246978664428926668148223057905453362929106343777544035458099750920142996953058994811911903843986967819376769142089666770166550260662653094841662233932590052928569056229300348918884784763919630478563271181774192266951455135873134133280757817118997757738067270430016126389935626589437495218221923121650935961631528443532141516872681548224998264783021595762689577132053983077988547530129407388923002633699112479387846005539693854116138995014684826605089279926229840937242290592503544812602378539883219494174304949422586661946277035230907922478620197944052226774772308891430912561886372584131942990030039266059528272467182878871710016077991748692393380261535137774334890424493447978411616391257524232139309696079745030940597765789878759821151386513474477975080731816547724755497396000489968826287848110834095905338170827015658123576564812717068986137518842984202026747793159093364642827420344005392579918220216539715280774746288820843926296090695897853284714907421796615230706098665008164874894292544674127870509936257578179787279528609394068101614467541238554217489457215270320138740548279961966127437054030447830315390295046586041664031756743613448875818528693407385816861656290076021871174008547223465000116999517281319844649985564683605374351308760824723825653776557676515188201947046750228388410094850687040956761031505034633139780937399852162473416483068246672866727919012016739254857348414938975603638819108930077933471548093597178905248393055595663965891019447182862798489654093062491361634505106249696561643288128963881804681232163424703380289124436225628942848041190651786894167120625913251647133194492300807040107651306808915152203706060748084773758861506298240775657111400111189867627405189210272724617664733863063381146767034881501209449437285906306087206373714232424145552439448870732325090056878814994008008658011818866274337220065396247572948569088300512942021867925113737973782930175160950872421363381448781378890422761215403246951446668852429299099071835534960504634644669106936628957242266105820277152282323711336346199222500633426899831109188269168252387692520337236651971660520131234905514965191057076651618846049592820288005015941231401963579146320643899577543976789422037154058509674829826716690649217468833823321920070460704892591312431127522012435328222716514190691562339189047913312708334537178107728525335286826522150322707326206542405644135542404555780030680797487900900335361745607920412518256143938905158826080496763216221183936487253959735278260851358333302759006531096826565438590262553545061981419320741233132918521768975459237182241476688141973971393962880481060564860770728890948884654833373379146888915945043837297989263699362780746315168508729488982646844920049749453170587843846948134234534235839169933681464703269600775011593377738746990741021831049551646024573120730561152002261021164496390275078073577884853087485434254238057525941672327941634054352469291472350141715525838196291256304956329743119570812401745285413197174046053475614471383104366986829115384428119821050291343770616853139677880564197771095960729369778927538414948492444288344736274729459323510024784575669132005858363656574236819126082179179327302601142866515168191481250343848021311259696846507702918729002164232234119546918933718398450085138851637323579818073319548778886452492035972839346941060765390147256977709732368635628086094389434688050687570424842690975451852073035934918814771782958863228448620992032791984728923746675321519477645521707592666243363705356924467141983498168021006974807574642950151573302026861988484698046340756603083495314463677548210165961655244680731980298661522606976527170998420672661392957195748229148396522819475926864235586138647683009166590026789498459204699668882132019598004157319437303443175369218676797625306427051738664607593797624056716461885928068556101071926495704747728605981087612011221903718917058194504534548675437279685603741114317652069624601222040711604528257220490526021541301985183060294829676084400126830235343176465039667244005480404759065583701208369058021443426547469672749899339526761019746667695542883961463004734842569502663303014761633673346221256525542106495466317596798443028001197961753382703148552912273539728175729881928645044124628714804140622563656148883000268252040018121204497768317887666996933825195186393612739809362683630980661101817476116543187170752491123615042271493862011086484693931363798581580421125798409468673734430318909976213088285169979690735097027424187813404874676062128071787620092460979624540240299018411303753619725351115266220942413627847330489485758426726367843871679330217376810133804696282797179867800837666012816929812253599187865263435186485740223240706456145226834240770255821898251215512131139224908678923666786613118434331884257404381178390298010594606790148460339469121699111109253326392664117728502119649001311586331167369879501309365977616696399767938318914550764815435655769316590386913755507639674053782279481029116349264128820217700681829077132611503608616176329289869168252257331106734411779141914337745261480080224486314525558803454822300049101381775895784182088783137151049233712400363443632265840630530139583592429564366890793716463366066514753832796273699531444973746596072650152558063754694613584295607730706383662033120377350635192080771621139687928763562334989454373454134784834718342529221015199962720506164487542463114629057917589462971383181502580005164863208668694834881639407680192962297641698563670397530343959604769827008299427137179768118826649134522891080912025945923445120377235155175187949361939953119225464323933113552571520600731456422928850914455786645590954598126592950928434137132081186794980946076318119226486782226079978237463675430127795809524752395755224468927210542773297141169674317191945004991486300422355880074747647089380653200480445841023945548299454357942844046582051772854338805263804930517594239404857316033964782290550182144648908784809132686790012823798267011653116305863619769084346823482464280611091629552340920418541909340629908287235600547878695754687615159162399024666926199789269731825109732871448115800758706728698349010547640655692217111380691335367665501816755222029092561247353191935352741313038857066742338223670045387975399687216668111766678425264488559417656222451353420730043848545425402623805165152559001520724207452288904555744578125587854361951324410115213624158493857027277045572591524185721345827718911391417430027287898391330154776394642073360719031168895542608067424509108052919226041056439064489102064311078105637190347076234343166243033378343888533767670487687113417825338445643149448961510898713238982250699126004162052368584891215570424548721237391295312886966200757605756255342349900375112673490565239201179740411826555125606427177947916484573808651112647943484996022099343003370952395647364166695158339494393650921321306794085219275237888031305210740706190018027416238948594023824004676605215604433401100090096617017485144966561351098596957752159698066330168470253289943618342916635547192701598179232320233100378897998827328453845579693044374359017338102673680938081516843198007657228209740127846607701204472249520383789006350566077317354486898399285026851394796142589037428878285716445649508272666648964053284186377808064659723113549381651421466286672302661127015663729551598673046007200127810923646698627386645194163000416554751409070967869487457400020997854252520368921693456971787943281658885496366941669937461980044641753203118682973121619789534358968830001599197694382289485412730729328786373316861743158836136459220876579165592021519062324784603138759888031355518304210183279913528406742389542976721806263682599186168597454089945209702237441495735025598404395310171796660347776043975495700518410241141326647630283877738020279289110110120939213024714961864758370404499227520066153814584480839817011703652922480886328833069981313638764788967982753150407787755235477834570744010536395204347959993613230730727921497763557218525323417744448233190868050612343830492510542568336183020274263535053618788758497943619562334744411775147714963604108854523363764164370825557247417656628410601266972344435741245867952681956917894786815176904924759841251712960404226250747844311855171940483499055258682994757442512128613348386565217246189772029949807486519158836984804135322506401367619944203822821249704046098470702513501383918416421992565940316482628561089649601032084909938851784120698788773404161191344306264420188640482996937126496589787853008505539334692997906950741442346760058490909810209631412774357725210022923824412422372343407732379255176387196786891328231278177059557526735242011442466280078776789739729666789876173130321846971149823506735986080911704809404329741456148687911177143680828679597966295524298629352584470800402345315263937054354806974209225280561055847142005442934339696529963932941449002682721864862005674638672134545651815996602446173460812228197939751879831181448118976889526185680963580185612166853941117477088169540656803435356145433325115150352517143905589938864355749113377204736564094437202948272045166829917712521493913580127344760907973212431939215632344147147580513623802251032457595364959893422124409581190986668800466775505390426359014960962781985720783536238891468718928405743839776805882746863329211551976385303915127114242111158365973629368549923741389385558168757365951052308143196140176878795962827153660409311644385955010126499170031162025142906685239850264288547406440664043183136964956931656544933413107715284962339049988300896513452605120985583115557079672089472839773480203763881710685134372943295065413211608302336462096530627364741898440484320355109822850286539641598609049818227324103105236761358810695583105991770881389261563849964726262105612051498593340843708396856590715871473594844602507633875896042421818166602719241781948783985024705273998550159472469098013810333891249187306719203596924552051534648335351456252926996628155325565811834336510743720293202903968661535251456451651506858838815046028839446560681016467846332121644900804215212594487053582856489395820051765264411203314131023530632471050498326597915964035647325592870858581544000244846768463635083063172285403024584912442096954608847245444164046620394647861034163039036915170488271594186910400055190927029330222303947358390964731442447437428396960674563085235376820635669134129092713703456963020460487400170511120835205722880453983667587846881249985873502924761072852649758712406455397626701991449135575181221473680189865748506550300459329517956570379295720778986167019267539048774848963009452402358178102425916507091070391075304841659932825739024782149176462449524010656275442659523681961697298487144565545333669241576045061758174721380699022500410105598707720093193469624517377521477384344234861070199094101584923281752340816439381830264588072628047652446852709711109199445064773440054022777635063105149239082222053856271163557950001780936986743977311563719371995677115272739267846736447770602572706931386108673077146491031094883074651813351845217990326000210761104281168669316306334027349997897268567521539353159343079823637734873318167848967227481916003662206787894611710174643774810167675531991626106127014109916690978848108688868349036667602841632425701295374219694422703719230792065917407094819327048158962622797623259881648368516229168435172830775631902980985440453719894476407019016381104387952824946531675380469623805951065663834762557405637731714974574903582679869993965995993572822033628731618062908899778788993638025418919510566464012613220375524905007883396838275387498009223478781047215732748132469792212922773797643807622034589829720861828984015520931822423460379244844219228939322715140493777477876090690165647094398850034401424271313116995022950273786869324107648813205260372062340819923374022018799831225119382829185022638323779052294597555035450009987801883376855989990644375143696457811047688132643231463373530497255300077866405752256498781019471695224781486273528236409223595399918548099119769491477044918928180906937588609743731206015556343857898305897654522590890674769777057200183135019803687630334650731227988104352804170472850622250545001601506522860173318709963617960943449425238758758761794164871961646069390511141350189025482414160609767649046918031277468914978357465017566091637561739224194104482605850981313093919874382204935045746560480876958104602204999341254911921182183448057071292243334015015804440866916813423142555960749319314718154997445828306837642274440089000123988337929036830320713016770846345254783436145549113751733610903203861386069384543136789386004138742920424622748241441598213215972940016835259665868019564529016477570194807714572196094390214975422282968959242210652950114063413617597491966241703590640921364022457526214301563941824865587320681695707318341055722284825387907183121920486197613691244283863008167302639905979620366372196690554212445190661500730764251558859999722091630216119602863905317642241732109606790740967398302178716259145212151606686585673450297626641656621685500273185345199806797322516267447048138294135970132395127106248454555640094171286144107849708866238777883578223350775285764964455722715859825950477946876087484483437874695649116761633583227038353269596193651759809072646071286520913654635873967225410078486270795850538933904231883040825349393456945731051451315523348632532740955591451642793072549120786327110062075632621929630600755704314713740539484708224864917692054244489685748100877790065893356474088810888369413973934485541622966890751935724520597994639869111343874876121439430139680115735656117738316790649702884928121430643536178713903076240674054671938645373287248182948615455714906399236982040334267224059882681865969766138474168191418246315771425942989048163172203304286089049779660893136064846343122302315702584437371694296700912168706195804249164590247257066298182915769835206814047340592348119271155270461695400396150026584129749675327225478841127331062598190211566582380835382787334328631579046742047515864060672229447598123738431017504576273680133088789638556333902967322033240802031135203244495716088331803294273155017723651737569330148625257495282329201816842618950411493017792350652366891688409703735034236335370265271426017690006858615165401929241296552091549276562036704456436544160515920095751360042117324576092446036104243343634729697333592111763342769688304224555789809118479328563948810512941280130251242439920069263737814094733573996539451858622181923849912349896883276142579764819270985538951758017064624245209988913122830294566212626637929582231375389696167900431026571563419644119635993598173066074079865622021201306450236512200818015749248182327733219901909431141268709404033780761299308701491187934102151590582798280181096952378026199840666906246070016182803611166690834992607823709978458328082099947807994732303747262256800319444086333588985507550398492622370651011070749101692543985192614414959696130489935877379518835085890364892219771862262023800237757146991312159367639145734193148877841436178304535946294181534153074999771820682013156629576120667342908737071731366705011730378865327034177301457615451223508702087591545565303499978807168280454781927006678085933498491638667068134980499278834310185118922089878671711450345227875812121409404435592498336339424483396126566158296044641414794651650853215075986775196171934966919984656498089346920882300772053730070101207136829588397843675025179253411378651331264653606754903644024220516687948547039852497420357271965401942472893555902787396378199697722148566938722676583243314954441965553339823539806766047116534763806358871993693083526413705553957770633247161815324907520048857940359705737691713000909353430269579835783399724564283699224500801115350732021515480192711739690855743886006230085565861897046327747529741282528919696738475235136613898110959260187161407980858336658284181968830882133211420604411919588931996305006180518312234972635615908794430839544784963995938801808865115839237929593219516379201310395560911284833144288890972759953981305596620525147864352406911464781179292131688394468939058771407169750424983679365401166914290676188929064750421451657445696786261379335245822605972210221239368689526588919790190033115979923801626234385309446539867922801350671329383456313622989760579978691832286110330706048809816766066174542835368611478992652178767205763036014444286741088648712894453880113367157981121761416202961118859002156362075345101733222258262184555511059836536471178754263580410109192796246756104083857992915228600775171496901357204260691652695147433085600218147423400197734602473635993167414976181874206845859127633989156634764441491037544562877412862138075638957861297654077643302753337792265719868704670888024751188031760435530531516131255762711635064575557553737613299761746051084154892407416804782505540828248705667061281404035948460653139380130118712630454776002978818416189713291029938319374190657574411823047352319174439092133259346446949011181705163176501344901162601036322630504492876124190311918015513731248709026899145495954437865715770696031399083346173284384050348720931412456399069482791903200167224495156972375493350266602790966726780372957074019897789483528239786918452121365523026381100918199052124662638148141642740181583679900886747316384433673978886746526123525081057471385355670695461191441267158334776561409809803800799245240809167612114644441119789152894978037492384816486232916902657702064563117867483780735600087113388312852475386824488041229744629390422512891238563648991406267384353820775942910062352063071318675935380793523801826636410011835318537185646658833432640823182609375505997225041393751686614959597273485825454278628927844969189169523778487867718818676681707216922634053098766325507351729216008076853795713594679264968761994469346408627056800479626241502766067677821075638151984761058637624910729712064029039821401324762176547074404023279394661138002934173770326135471635290341644737018040278069165558012965430206443208113903843410433643593853462375847953159358464056917545061812661867481468338797284649584769440042674600091806843543975060997905250501839433170450836708058849883939477240259743676259517225765265707311618604871369970432566800512000105889003032632634002942260081984020564095282582152890460538473264736306440483415219218931849321669448767478491363185677702622504526008401239761037797731021510137185748619455426065861695635621369533741789545242682172007599925652348461980355260115876032304133481366280007236918333504835309985310294148034077605668611394931892751970032288614222842790653555078265509832600636907884767254373645332241879817229439455041870651235533665872477861148728234224611037642402713292036297868487050475546552359157950809504090564898031009024394862644981272985348375096179492298998519776713859303150900044982983880042756517703549015663638004612513795675229000050093509374509775699384297235154552836871538487787691640691565400174912624180099907578194853445244009149841267614077807848871764564512267595990910089292855809544863134653387405823220891445471270297850997757834014104038316060917670297997744451373106816867700953304208501436387870705925873080929481669785237914035528496086878997202135724327895656465686348046703535907340375952141494560918748451566370498499143855708358058704874127335893039494580598246933454691163128142760352550624628293510213792732659018465411022598901826076207536685541351222077514513320925774173003880944643621625783358538583187842968069181137035049523266687673232163255183155093005406303928854741361158603603872201533116752151517662733757518387930206899900278256046177480362373591539061728696210090938401348567859995845490165345398780182618587817437814101840997013076609433187154816007846872867421902217662200169379157234169954882017455055127916154856918593124403086076975944064157191050536840333675278245045510437849966847906017744613671688101767320216753426951032657657061568732083999772205123983691614668300542370500061050805897788820763342583070363763355110949368057610407361712791332764177802504757993577507690893726625691884492038017587753881400407578226299199468995154532824839244337990085547772721248046359451467905668104844237007069075300755703415329449402617679710886319614330894060871131399497620803735633686850429686851822538768641659301212676993901655297974677441701018025402132727296076783645631171696782174509268418785142226956585701356879949328377489453794300154256368224598494115194531382385803921225886112343684184226346235981387707189041857209813993345458000606716518464776780149300285390157894016923068632592955254687634964539995633914729761625087579152497561890199799560280452572260554535713577508548397664821581900748308030205544398025341150395774184310848707962206249713224765793052491603911982105411005544725088583939371945726373661985803832713739869507568485459373458722896065593625808773688687100627211573800331835388680668790958922340557018271289918612312817724041991094760551674501949328391310278969400929220610290755695950461879743649248388766277249582662170312419167776456984526963137548219113754310255696998144621454992594991411922159336431798374449977241017917076610655571837742530748316041156882391596883203265386825657972696776527765017494478005641596245666016456302270641572725098170541521964075964577622745542362963094883430805433574988133561288478536983619745084726532593335578298298898264818580845177310051338995198077643416567724450934981596066406687999160253501522864977506334985801805382741090167871052797539251745300868012552634362328465942440642114566474161535612593858649414226270709027670142181306762612285516981079767567317204665361142747232412213418960737947682063447348827067837265762388232598332468905562090651867102068518120221108475030089531253859030172985886539207714128842340372356058509329189560525616555703329116754270472250906672302208882304583662124819054587220260604221742023106275999540862646906332582992207671369622919815660192210337650642826083052597851748362027028536074789214289320169470534540837138522082037556967892162240610027788903474914566941094542486845291770860470567399276310902428361555211466655102841716574476037612596343171603984466859181699833193035637134975364883428275102854483688965489945747841751234866855892938899531254399531896943006262911364397350962625763852383150698172055657344203549430163970399147019826686904199236004809698365669044145972663320617944920780405753532074237834873206252817136177890029336895425422530345067535805234851383799030463363364995615176836350791830289397134085754653111303935463424324764669909233166033821862866605138013170863342000292838522712596555357185445424711238756337774568796762358238129031650978862535260211832276420224370880420376528298831784024113257250446856552982201173525828373119135462436737599449699760242931969256351892009133955864581998906602048550480727584014650892534731971609254594481925399982437704433196298911313169969883614437951527478046886760209308983744167811443259795407052839622352526201064243940572429652253473503711657539713907205694828292688067660201022648677458719709703267031678615922877353767517470843394620577849489925857754032477298254981875085779808880824772921643375181491442481725248497872371550963211705954853313215150377751183632095700306289417428041620845265206980338705492390242217555386535638051141371582990669906642400236651389254860102740717861841275209727734381883584841562957883984024385107518709656513272236377105918996624139648308281839017168832798071545865490488385979132123935433063261572801726168583168256748577002210987960477100493149312627657864475552022081884163758567979059435981505701797881510912381976890594451187359322474427944046445141302286458174861845433046405336140665038293539697872645993900648607920321143273495595534097242570422303107428372215369182161217958203690920073003171060137707450277000492655871951183107368553097510974132770242448497456832781345511894046623576148235873567824068265148871295522709757933955654960644324422235214311392957927754972640040750386880190316318721924188407479310455959856016238654367961948756711366523446870088207655370163215302378759262204821675221488792738895429741317618898095463997021618788371333806248957440716628110858318613502360748355085549099481914543463897797144435264160060430707375708629469232982169318445177149672737457692333603246255888632820255549971701404637021031808270568485846841645517317574620678978722743347518118078632709229636814422369480597827396608892128999032560941269835556105783171622065162581769044514169231695378945163865987107953760151732632915460491808748947972428061131085711754257001835010648352931497267018396640534002566093679146430578165460763993008798968817727707245074685919779032960597478555374913137207139263675593571812850590986488437056453481640094875857621482239441920903896489607218072161633819998823907369268572948444580365022615140209601628592577022492304709229216163198127839659046557418723941673682923099260096095895853777390654652308241913187326700646462828375302161966183015915248020814760850004249356268490055720908687246811079440842184368142271139320508032417733440449134893392444300581141366042928603869798035351043037216701009190783341967636636150877320737697173734578249556170526716384920919206225253024365177469873650309936988291421924428936328291694610036185339507487561236754820758987930859831280809337483273189074682290401348895241559807844131456142726319054932894663437870380441221570817557346676860756299274394519863670462884709824293150719581568446692308954149114996766934470605300265027738516489154576630152397654287779916760140070300955740636507086123916531758692230670193612706658344260030824671652029087117343266038573394195849859182522528061896892500344942950264552721240834693921982253417396506678743190489746836518517014714364661686538470600069296911260351722174110961130470011483399883455326128830738383511507187109321339617129292514500549820126345612240138054233850594071688032644068350083032776593681400780149686343210297626513979146471193001984557957344084613198555057019593852959649999660452364993879230826914453881602214981092703984935447393310956348457167777565448116632324291246765624995137105582128442298461538880615658518407624184349810330625482613171813583788821498182315443564018695327810768891121717275488987577169697503146639492864872746860101691406591553900520010672844049430286028527595798817273820993333760631092448431119278935236753681776635636391908317854026119333938220544462186360702699942620591234501467082926572807801001686585946068774272920617482520808123520663919498489438791008141648339260179301026570356306086400515182975589912867190126898288154861774855424521433873086840705580159492628587756997535163585548749945290430242906464554002241141199646944425842790253089601309037692892568991638198346474437636413501396700741691638635641521066087794208465374391433371507662781211211239423868575549088744702426389916518039165272185161689151879283312939576469189856449248485727564879598839846006972498457525508326599569304777876273642538337001455272226053379901450070372570275070504154227409588134161947922346063502261220835612739288854946365074441488189882946489731957562120885006505064181041005141031247038835249935158263424175024024146178988695887395314572082851095242792786323355331465730619341887246957705676288785096328337721816081773098063398442746019933710033123648019050366009304768483231332597881346589025830451254280653644311297889201319157807518925619894701862034145446942996210112729518677896975781302465335023061165724721738435599924573135906136950201360166428866228064045409843509224705146126411357979225419654043344704880614523308486141820478449892585311060308982589768809739867144632558852740237281172785714128575408450402258473198585299949970520978092203445813608161570867620284691339587872971931703892565542186971621296946389994549588978638664180700300159988862037705695049818917071525992931003880782547332064985424465174326320983591194801055330955513545924383836618768555264793954049572977908829274619774892337848020445369501864164709132174287711214966985049208123641152325861151069368109539528022257558230969170573112768170166235327094409074477192002969163437766730817978355628702169486848050278476497032897794284312143234243184360842196870947048273844660891346500973500954009725923808570437788905994859609919485558177594993000279060831383236290097302387342998686491060932718300328158831058487825601918497111055921130138186635662123574728208883069513201654931500626402350107871145019579929151356840130054015974871173512547490236584674769463066290627063091943590935563365648112662972820364068804350944042434357773986668242594876713087004949249126180611617705017840358035000997164819876365831533654226747831764783722118531539157861942873582015193842770807252447538417181508635569174505731277034218655045822249009566115386610661439262830221927244012935875556201353952522843998962791845382507374108332353823773071513097584673216882788531600835699094819708889432408131406684172694403280353485154719800665992212876361361625848925068659970896060575673856145847825783135348894953734419731813253225710050155718979039451200506456839153191109296350757148238874922357143331848734020415632029715958861427931372688067491950636016241338501099866460709530433366021457484121531830955406369712328675164161040929445253350378149205436884984937687653761919407298437191451814453128440033664125078110333727364621642716545822538426322246149819639122980800045331336652995797464850261614870860763247600952071241698420304246832589719193982772021681654179117933102021598355037078536030889747559541515857392205745914049197027300190724911027564340464739013954033156906495566223489881454858058291761751164523167292446737740619268982519623575610550776939377789955444054194041948904215633456351576018125170564871324580805305279767769871076815382263641128586504935015121920834380822612874312830835034391644894804996530059165699207272591762409888749504130684964403924418085460133080201889771572457834665625454296303291082017590215729517918444957797823691970099285875834158492249047348290486163031582471806381466636582656139475079049528303087874919882786174419514296601826308322367156361043508221268469889867966884967944736894150026752484350463869326046177294810095339933966668224445120790002291869342457890620849795908822664087764649709197436479474347676555037685890268413915729722601765224395853006510209226781659786478455232261321648314138958131191142449042498453796583521487899517101006191581352506603583058473763463050256756454544707089641335245697239267644780588371229847162406750425800190347471280525438930403725639116522434472457232838878926303510734200432226707676850874916244415279692141716293724719541284473831521894367374768173677255407924888380217716543184032398252352561651871177368000194256039984073095209803733162513851707287234479532463980264414129191555611980412220259747485032685983361205021576912926304727220477931565183408682132150438952267773954467708674395911925171439236091154132116056350753147461622485040241972960246365144371993093075540111816038477639113812636544484630397687923300790416013196648693461245885022611832167999340105007568667109301670292107722495336079347821078979104176278352968494403242751625764630629724709630510225509599657594989810905595942883210915973189261570217150271225196513263738493643947132553275032777643555939879784775102582431688314321011828451888154780620400198968296207115341224683297700861021751783294904871425073220000328882161971904024024972002053395682137563125093794791789811582460275782339716654131631887081607160033767397644911043456949790964329801005636083869442917575201680953555408179066809427471223462734766680481081636367532407195156489820464511487171185110365390183544744052539791732817793374110799895618147018578205868164264782261955082719502111714686951827224315855327237164697968132878958928370106321621998197096465681936218731522688881414809833236130638921840144504357643818350133880894273347709737667839945144084218657786198624244217781149998905095630974258610787803772711582311157355391765918750752764748959089415614738398977405515228490346853632385898367410715696869587186467790569632722793475196401559927082228178629700572074699384635880896938688457257023091842168254102373550771429243474549352459410333296282009827255752016485866409809718003721768061129825305822791562961649560256109040863013186429454949710447497145172910366490307414324596272955997354930353949581709501752636574441010477852231222389301966468687305387895352652734774055307716061783022048712939875425006440707557109851691656132270652620014622462475429499702518845681175917923422823435236464489067671203701275029827036365454751072264057435975700094509854640414539747605287200681710360883797457035174430180623191328535873748524359843623075714169268928508255652342334724895595737206373265093557513890258436872537573981492268949757596840286835219066822167035445940332394549438023899411208917084747489744635636952600419019256918603772534798179965723447522558569515745725168034222842145356273137756252746140890462642912313414042656906268375046201208370060686977874345071837105126821822456340178291402702106452424031485796099017422634556578125492777583705787696971898463964071143591013393318745213894364644558943549327801360414889559677562379538084342377289707154280310185511655755120315921539031582439815993890173376573607408518414795874373045504860786628532122655619805631997320103536410614672394873623102846073572733793406202600009164795870864564254829834794086461257951723334626902502485222349841498073963685488960145135481014609221095132653795177005981115973223862671820269813687577396019564636697078746482329342280759114457512706909869726966851674558349463450471809657515068980175116360404250338448316613571718683568264381217797806627774769468977648455044984032739919888045985707646053690764829652991043827453880552214140559969481687551855432107330317270565561642628634008860940591410535019562113313432701938932635318818038396217948576721257249201674336066966916091481523823194707844715672897601269911162051471094822531583139242709946367832489741362324836265441392421026965367216371648471245966899915316377212623982352676892757291030295573148493479652070888094723832354948668565168307752783267919109873923534118320153434331021220630913055471730452234761751246230465451937451969524200800611094324097176377628691261954815570012859572172280277544697647266588827462962253793570962187049728780985423548939574119814595939999090862431459419991502361272605292844933549685800825463901576579577049988958224787256622251744352484290961897955357303669028021686988332990213720685922158715803371381626512737626069030527192451946135779141634691021846218555925975785020004411872306697771895570410520758702966455166537192929747126778454348414246547718518125713875835443040479345242278870671660876935567392063584714451006411354182524030604055424002805194073134855265225331640447228189798833814213225855746232414291780026512242637917100328141006275164877434672372465277693065344614334576439221133230219077316013810006785937417390183964772299441305953381179851678046324033526368146231204235579520273869939175493190538267877486511512742836748439406919515829929138940441430336132921134036724572661177763080748181010368662443164323547099009995448599894367467898842053191273288292898071266116831999813863975805412349211945866072274563601649470665997944701390710299208906315062988476187945668067791564739580124448626752237828062073455924463570433524540991664050700315662048789616640280509010058404056341206874906538028747322179423602636759655939156605989113108461342897958184701679117679566744484989875029625818248310368265996585197891841642046437811324589905087210012012417831617304771440485382227642064330334181832361225361357698061424506868772283179885672840613433509291946109278743618735150900255130565002437621147669880841389524990390173115142572018760882911022575543629816276775122121746708842840565211103835633458618240669359210695493514916997144662646904925337310500309992477803528593676763310480561552267696043705205533479566944105988547828467617617145400090680752999933908731303746044172780331666368248908162594571158477778308015771488726477574043138237194785139902375117368461770887763648451777244670465910294674305082834918501572890401579017399543642439916089383024420801043544790069447603582014301291283575134487548740644689837117049558870493417594677023218557920580591273830144705277680368988228267225346226820164174685487945818722299529601133462120173290908311136332121075177260762065244101628615028785791562226950233797148568791473208746738012424457586130972079923872360036006020703830532095004612442530556989005228778583266032232487345256496909675378692969045506082415792672239163869784044951875051237409129339312284234412271903146452786130907105941314507272296521239001934406499575574815557261427571588134577463804848798539658267599944426573607550793438986563081773707710475548965956547160206599755631953155625854095938716996127115420765932060521237054505716359377158787250759883746089648504722222886247809192028548880007872546729404856960941840594098558270652429968630810214559550344393597071402557169255186474552226759892339376592976853273628897927867336538085516700224707117575085621502004179670088928188106525540413988451774672858949900556771447174537343820845875056440264965699943858240380172135028591677077044184182200679479226319458466556200445111471684465479828004430462651484712926595097323941123118519189021046193229964083383671259538466043224966288579204565448659049628771486026767095928176123217903404674837544772017191321412532556432445273038019866196989618223058477704546277756752331454351127402157443922777291800294540843522577525193661031624758046247295154995423508582139492979127192843985817979298976555933741819200008312041229324678836400372242570420862776744956724761108178377425103176178896969435180104642311791329392339212784643561809324505544170793865829865502886051468239140038101172350554778424920523104943916265338851224862574435589610507583012556789591143984016597742586599203010662202184698523386694655005266861832214224830153473071209165293636772896024850074111245066112737272884839679636265645482971546255174369541156360059520582149655419899994407472322902238310903953321379917922877641880456655834063357358363162515708096862446514005206806225096752963166631824173516074600178577980965653644958102432084626850028456885114054752912963248915080691955964113885105662232109603870899191904146176156367736364829590864621310556884515138512219447495205941417053188493017004795717723807573186807458306944440785865212506619172854306889594970385721980358094555298958503841236306992425355242763180291923629733976207827987724634509285640160586048207292127290511503716578383020775107153211582203666374726294349428958899789768514857816916064180002696898208821165662740997758270474379784049457381579780465145247669669901459566288109912827387337399705837111388941068382560359961457409982386713988550273403975233606824393834351278257096396692559052163731713514214339469354954489176627709365884481445438501842283396686014455931888393370933267443524065457291551218419721499225911755454744081921241956531986768596835743823454990677397908898842856984740786486849703142901067119539544569796765571888575759255860111125742083632455734658077798210047693927705497655388384976981002387710530943700837175514426323963561386476384583422447847264243904739153829039416048604370567054962812278438123484273321183621447901861313810871091517437589727350262788693080086716819254488895530174443266100999920904488519591212061985521054679335087323425114946229698494988003776810740946042967954112183049816310601754197945145660178117227701440230559268527525819898478528232198576217791773443533088868573471282789932750825186160068646742887398303169888469108032968846271177129999569183113728422927483529147182655935234222388156234010789008375761833537075080955688872283835756392085965804930120077233641018575271105167799994076765241951992659609426996482018255595864361408681363048009749093275433501134283761306492286684540657110017550929011461016208501063974935495934562832663137469533001341582812808989244892823737593240804506697804916051680236042522450897426924053413923905363934172852563668345746786190464531612562643420329772830873468753645740943379344651452969972976839899437891006705289809590466978518823044773119126627228434158146240374258875371569829579018092761780861782771302082450729539223382566235370943792894479502036396746049563331231047647339662103585035961323267435347100133530664294281392028803448136666327605074377218315012265669547980096391085023066500363801768425842554441395987567197872813507191450047723037016911303426936800925134800383572550755952000016362323731336180882318370168511687054309682754552355360517797560364197858263382390415000244815937267942914254377670172702715357219084345035748801577229056208622459424456680148266298795339895052765494865256625962991699155140899145919935729910664770028482811372489636447579763255792170906449403156099992523520704349308512693855039660669571460153378802786134944039364201717136923881741806222665026132272312392745624713765581231210592033818810196620751162801121443472804726515227050725068682883979081675586566899596903774212560860660112735572183747293226250087314471878755830719842285420194483594555615036347663156213465238813242863030223437518250160123445573017243266537175425391846630039313242489752004560902794199059300293141073308370651452291836844760382014338423039110024735941539782905899195117032949308998489995015070112419066189413257541945718004469690964760860200211239831182144517428426623306840720972359270769816909792793870221390416007775912783757125673586591538186756096057602528695454067372637285368524375987526898262245085738932965669198030183810518308422834281455247344813657803242137003632951519939495895928698392605799909580372181919277305929392420704182252315788046971477918956958224792919680035334219096904138513857951146027584271462301089582565138487497732430183413922396035240798127617349615989600552444211867960885549721747465364789653878407404242920983634244064212764347930065514697033807905416030035016647748866857564106695101046711897177549855191438068668889397374393480868159780807465089605816857322651416293237576456798547142767054231969737934652577740067832857678344983597012211676790105610654852514964777125645456407688131802117272983653273765907235941423752552060730264770000474952178644465084988997561954669073570533401537134748213436958630564312592804182012756015957491479021302002310145045147479072962814952699247765849115337696683799288736947821627351410028098420446898536167861907502731318186989768938262460969068993379386664865730704113770296196870722971300776885072332773632206875405091223411575855283952204668693576796660908015461631061509030555128713075503601804410818356763502433817591706583322798851477397850075587646183988759077915979838227825682602694873815051222113020801134446640924845709162450668986232590781396056797399933005498620443318618563662255716758752957161547995040722256243941384576305063323829555095309700013114442436337230528478420754636001972590980837532078303153970519739707328163199178966748275478160952805870380502930010565883230002998023710054259391920376693343349441314601146602515268612078897423562199715588542073082997478537993090636224346921496667831471383147064569282470079853584739788301921221515979147697762482834776546150429708151091481179887375182242925913642876211099434762092518149643348212712635025211036068363757236771307519769129422593704075233255044627167555027367748733159284219605004958794064843926598936411624106174952041187276365930583142703480607352930229511582171721759632099543011182770418945454972453952886866263434937837748776391663056523059967802348445884628205684765318882469312115946227648255986030077264740279564465751737823740711101324830569125897105620445377871002996353638532033442549128544838728417867177952948104605928463282719846417974247514157732559914025423788448903773901724518428596083386562230786869718013057388373533675557736363388616326849134814360028218375099590449185486261255737203571959758073801118750343632851568086712453179477339955027717871960496972885300183696829336620757692731013089588922639185860401755589511676527064416133256790584061694374501605826985392467413955328766750597771514872823821383426294829199038293413991704194668136727288717855970528180831583846206824719763198830104544424897436102323751265851821280021799722748174010928088969000833359876117144792412811442690706931840505826287554354697679243924824442985932449864223849581057077876755380968031456787137872289328283973675867400560706345768089604101527870414941187851785102761082591517369189037979791472618491361545743105589882896050645191948739764823478267255344056564606099559667829525476367031496405942813295258764804190838407839116215302771004064426442843651879340172209035068315006111344902738395880422022251088096023355431490837404445206771493306060135445188825527099464814026581193600505363747091852463531691701775186097901806129847841239525192915158384967647158127436722765853869867840047719824350456373415761933453810884624254286285375396931651550935929098766279286163295409344310018906220839274005017792327462895058418868092424214072511350124399813194087297971445461847646283402576841049972416121717125154729928383006637783890905464685487407880263385506270907875975217775848939747245054875790193757028650374014260721859531937063576685765291589533791495624884844113950943334922960130810124070304409736708057475639932812680477732249478157124252005702569434810725279967110385183351654483480746006061578712746298819700452111005999089991790540820687338011395367106825636172083023894533175416863194023076162839534107938953306093748474811361411883629927274361068661969904596606432668776230603931914185292912153750583659174245369239757065041794514337212763191001628052361841379336675455305016202878004433545900487740914283426723756997379728360357512772227398400794767800807594148587419084563976698703714715248726903182094522287440251046206719045871295939894873127832900516734205380652238745510113235531384070731886064083012309872257807162128479436255548499615712939234245904619296354166977566956154931912188593226825639405814523449432667646546078994749971578648815079860751145118722012491098204911997525373263500893800926428916632039474798914104107335528545215620462022290544468707506218130732655332477265579440312027050685174728308300123763239047460757639218452380544346729487803329200956479645706101091224315781870447616107692602172618964234629728247563349491259919247043090651201625666299633685233384751371407557327763016670457130896366960414670679555514157545713870617555793978670258090682112075190132741997706264266517132315107971429831681149534336516697580672287272632419621965647037335261806335665305832705546806437612193361774725733914699549317043777770564981511773707722139567746871305979918501071631685405877886138172671991443796747002099010432123143660243322692435101049107813544129876510183202894882643602260333049484379801566831074668781484455233371201223719882596526751746108105318233951381958389821261607766738840152313194075090861088292871904974817517148485041372522246367159094044349662756632026058100055981137742140893630243746424674599198179405092883071837027219207502181903268073196811884334415308801895811254626469605140491516689440513036805715264266941100400927629704939580924680572718340864911159325129010135391898145303063641691741636176877237993106365876193872615200231241849989159154825078193341877938661486663308155203630595376844959189449676085746884111664942074836185988450135091747124837466419289313439734433631301575955081505724686216086581402422810525098426871326449307890423593609377561553202553971436570596418833110079035394006659951718028368373203970086135996539808670431275706384691993077409697411068674216640416580416367356019605321847179013462026497647326799135748744931518217853876454502479395178645477421594475006642712846424272824552085121703525042827156804358256920243743387488765547225202338035489907445675647211591500228069242620489117569345403400140116266199758013985543663686723706273747315051031356066248507105844781759666321409521211656504134331933127019951518394258416604791792533244064778384160362558927239813216681116805737895784248535625376146318122554010014613721819653679188261635916396551389143279324421186939716889591158094236329124542497791130156114707810661152722688748072608298481530364673966692797456011068492345265745682633889958342303266916141709447440150602029687315690468430416646700292426755586905654633760233130872268854044572364801509565565516958788844115961894949868039673872733706230067228929433802974749725913765406883709944055068017729611701094200865236674737752862218472699794752652145585725455542414392088401847040132859706739224569773955379131676475551853210359660134371844349000629081359869855175862229502117086446596134455707786600815612802822032906515359488535688258446828220276010860418251576282814545372452924301310273597029199527136745536961372531082218833620454609479040030214198480763789453820718686374635527324819184081514436924071466213846871338250724910103373346997534062941263128254094890043396803963732535286149077111671381113316987746077919579732015121810876690509962031362370035109694904741504355972104598379309972396374548956684385370016378587113287065997468703749875083952205692484589824864299582338249589437890717374294676924015816442987327711577801702363756434597496446608781998773296831235336635421911563191817760764714473197871130354887112362637036025195522944248622218769471114338985252445992897509630463892176834649235014357150023396647437303794685614299078766325742108332651690119202706766471902831707009924543103276620038497245987013566022098394296909124265194099449912192497146223130982843853033678618733739419865532693628903200996337929051550460049604847051392774424179420899517814838519844994396224321158732605084860064949561498415421418254990095585902790196992857325014262579043897777831196517738358724462863175098328326554391766967814363295991191132473000733557529488918034570117262098808319035274986849021365939122769354023764954933103325733281070190211999509528777224057046041294299876541014440017377234342324323006818933488167273809695235369994001305007432367675056153096800265343049110449427017895357776549384032284530270952805157568391089054080906404528946091820906259505331874061580060354251210896922391224434377170291903056184139664007254426918911252825338721831834891464558648507405826286333419028138278664806847680761841035831147568403025206121800914914139920165924706314154118734298157322712694360202067530363994119914097769289280716635835553682192950103916304072660044110104474178220113375279560084347772308070225400977310944715627721994970001244906445647073382493551208443652021838875302794128513919794980045302884419840409479396994121401261376810889683987283589347643294640557237467376381377694727998967492776836706584327542637158700277028390730972383913441543856048128764973119700194086052846436888537430668165559633045543359161075132994308645615435354079534005765055801918252822250189997216535132700396640467864866153361494459709005165025723251571089274390319715717030453614778144750238405145470136395941093396331146266566125781363409580985520306216750550856541902480822403529539934894666125482252050581634681140732241378347308867461101301823784205172053914798845797909791380005541489397076677109709660153481862948962829283046303272807543789159591447636337544258381856249481185179709845854891699210942794632084382729180591529410844099290671162205420793706390567069430816727499737099288382575623640634702238466910819075630921937269189811407999287369693204370037354402098370007390264762419092555777363927110226701326124691390972084682164670084477725365342906670968572778061896424226924369550164517482244022871170047961979126862541589271001894702341701253528743890109203938921991751928781828966227384133486398740525830093013181941983332639627788099754393397363755384445650273424854809383602335918543313931711156066792042815811873003471104500476331851613076260438652958952395089924395167417291126474380574972175207372248691284766676126578457452566956187550613682192102778992340730566189298852838514949848828705490644431718585982859561460860259723456051766726385315922695401956946915995343995791937072131867543154699133908974125573746402057507566434553467097734683989890603948322432819455857363948035646084267276889715256952918362909416301596078108598341378251044577041142378032496714555874395338008265168728102411257632274876222330861217592131395590674559603329320553780436549826138648887411090231547641413479997499268246396148905643475254486772462747080524425374068994811498390239858518009474082561798883594742032847750321892950757175957474564147576682271487857138477059597270857803971676233100154386331202923710646475286762138595239157900858266162441589177836493029401467127375285302511263025952246793762014185874079036549721223949249689664782147466488768511443885058639026321688188913317281739163289954231287011365625971926776695834713100922258440524375112016873000872503954760058863989266741642187179893637664348112353353191788482774426693166559380548581145211826502744571621060241114483117879891451116202535549441197486835530654182256009685454756403349430102227923844278570644854854066094066076787097235015916166158377661331133066527449319567868702466205631907501058893688276890959563837920956018586754203928884660060456492480358386655705223289235561194924577377555966341153940347908577428169642868630220901056430420877577424368887537551039117731106373425025757747473703547765659717789566816846884723119534384927959763096712487892538176906675399378343898966608830148474662734742287474431935067232670603711865428477036548591393582230845871930343354310220836026743513948793556457585665493164244640916377092561759222917492962385510842846897873906359564947370242549294028648262314148687532344709443670989700043072632499826521487920080619232617428840916242056009906785574756050519556562503843231152756553722617545220219892789179811639875270927195116159709330021863339102867800596637558141767262799854566542202659978915634653808721048734112383913208031419435143796010562268022356164611193334155801773180315296203940177983681394655831288764082011780151106465718270140830167587526782410929992822245996056849805286451685410780019996396367465427211261145403691311582271035444693018265635848689342932464533387234665300886525890065470741196801110112720277433661046460913914513197953707415442390824307068361633535949185219248266715596960768695139843475074483643970630988238536962831373604239439555526651398635378705068570024808760027569209131930519549339466353658246891743174837003106104742612402472490604265729953724383199707880298466828243901936501936382999506968738937260897416885341048444093306460400595678085980484671850066229670867990164713239301382979812542448475799630006125293546325967378923053949016391402340022542286213283413274329246688672502798533322355173937158219457288877708724025601547087372974267952925350970331968118376499699760852418296175646443220155148791713455540065435547588066821857323544746907453913675271257052386589048270904232997600374365029653827094570617628470461634254842699083667022306713664041751759679208514563483893760145090662600857016106892255060739169984715670082005501392756095475412561620288073564691283330199683889936043828856851018576453556044491426274201628807443679996235130397715621317440023372307623458884254101005579912355595350155472755640124190331505747478413834418690924064812313756535619471191780925687281027119627586752913064873641164385242955620517453863577226088483427581729664083123200748033313590913178628278827529440161302057242960551412499074018811241634872851764865737668658494025116467134110979755964829149946537434497349615497582432018299153218062075419111659234296035546128740309292423395961891201149901708084021961168185658585617745343597784976435026861189446094786114427626435901226001093913243194168678167232984557461997025578351659222602753417860025256100522532270036620774904777634117796897939040373207409730844114036500487641138599717348887542924186356650603958353949939818143411874531821268432375109432985028783091766850582765599355316297854093759726973438682541546791438398199357925500967358531272874840750441772319190083746402571477189086989808142076650346090556459378038070099177921962262718774938860531175395820846439929456216557229425940188828731099151147435913130797319520264108687239693097336051348702010827556583103503535813902389500283037527253299805362869350254193062057523222445232155860568232227804546383301533243458933860797745959419422240632810459707742545074717332943341307254884436544274714699743167645481110653276358779047450102432274523053265240559584383172328147528078011251756126933296834546663530063889783396173346352311576935745549618594289115681392033356906009107096876716761617626817846594612729411055570942678481793380414523824094354951084325363664352080339473595212534260898144799683723272152619088663175220692278896786962212829271123353017592353130183535354313075705025092811247986192309727526817129297766526172352999722738702157223199665558469918480157255762838320320393056268499710887591542587854669274959369683989530330021043037364909642024167663366494049471008878023253412706924545120657516378405805945513162171756888308674851072095024806110681603169079290965185092836021830612711987533418561201673619326842723128555055744619811075674958877159389383487680995943215096962013035068272629980249299588127079352475665148429026049520902376175296620502050921669029485658043053953938231591348920955074878660540823453502852762431936784215655868145112970395360218024926612323027561932894533594592475263077095081440774960903040309024063465546937721343725130315872308310623667711273326549779511764772144098461119640924906308398432421430452936592431503584953747496791473218523812556177108831863170876229441272028573504426944011893511326830092110491443739081843919436026851914231303036724650452629629503547037637352334600583930612319334250984660452032132646616500465677303389636989001661997500677402245445099351031597835660862330259319546454285619176680793921386873005280399476518938234088144340193047137095111748782552609053000046961337151906675143099118064535859313422246990925697769630065506647774540009122726863657103484445092878182829460935323237294977457884555446030107873323090898034570621456310747460839532020320370835308707783787404076449745018139752074035218003957622976088352124696130541901794298069817827681380386745395077381190980775788352373496247420452271152845447364546922618099737629828751804145653657789893018255868021432288237743141319604930967396199860834455034834716847278342988015176456288519353626400922174546685192754890964173411950090179964571294114781455778397190459434782312146241578760802512920235685744106481643818548355351732491956066474354365448520256210506605759483267390174989615380320986182523379826093182584041319842007071637918143975907178497049935836395716100880619965787237074333492127873802611410644404145610797653799595579738583838096828894829369590701088882457919396372006504926235903907782381279934343353307312561527917590210820438557864107272059948548802724824878336549778328124322131959242353816524874851278975878958434944608537570017003393345584012960555370443467988526880498286645149200749870598074814139808422180818360592457149326980768846615554555031581156550839260971028791617362157611288037036772551323101922703421648928996985504735021896095561263780427845677368279670888446909420765210946733116424012813861012977983040992953290084129849921194275718759085067293495492207248568930998988083429152270419059008552608700872134244284679839083203871478675232867311485622252504661410178726204787803311351760549932589463472193663646396754497003918007719809798254875509984568078733133389408924891928677387170588799306135486393044890173294181021262735390911241103290139575004626149511111992965999573101978559840713802275853664353845943232715714192018503919302485169354231519204619216860601031053719690348580199040020697214160510463297166833011381587565459624666639233390147968030626685716453569564709294817154710012801918893499649929349206473316263608368780427941804679015672440702452058948829624996123153969247060280630002154822668100267500675475379152794028637629855251677631393804835844915706473614645429430716918773220875047623971289423421303906069023321305837775124565547817917668533319167101512274936225816040973732138584422477652982832210935225671540841843301354969031723749262931604833747699569134125907374354073371768869942035955352784548658328846030436632413342729128698323749412004734741580260663418482079712149561961003087568093929002529474197587071901122582167225576220322204096247546905951618951247411514209860718457425670768855574053732362594283884816458324983069623430134794699932589499442937173866887501172481290941499373081642892611337043855445930864462164608826671313143183296465126290408337812574451851665257196824949409514631843502304727653888797895831648884060269360257451250555590758783406709923633831698613059507954776748748822722966053041034748131967067793431305606082723991431910760044260612705169668043119460128880171445878416309771866142327670555262895687135281927599285203016791187881591610338500483406964245667374852591971949814158485389954440336574710380774955294407523483543705996516056773811318307541886022928866145480182805971625514001851379069889440778356993083895250368500083315108126085534674505432750374540725464290083708378102800629945717693917173139348128667132877995484723875495717186946543281399512338855585215366063756388964582566321976360873504285355187824193350593780044677683403683346034610765771713023209186509309133145763258431028180194325610953882579017961632694921538337748393204546043953707323305029454889580160832753256973068976201047173181262083781406500432320690279273807815656194020816556276160074720754184899815111273716031686482687983782176661242432037978939441298873705589765400797939638972316020870790314178129758438338509926421723334794123101358827188750592090452632100055335697172941217864461637006520063987550373127429305025949397378380311624563005016998940319251572072393970367238946776156692717143749787889196850926787051756835132913644399718134031413066192285592200766812001352557859250983585554991484931091206320597585032192627739294284889846759505065732217378567889676360917575240391494705490034831968189737410410161688472516745417015023518764753664789424597791425125247302722461061145311952861336889679114904135312462093597798273142306947539333873850548629625889071369649867548200183940250930376149136534254008529449240599252313087320980365865710153575218163691139229120281349413577555752882735345879266718835437360912283275674893088342518370272846553849242223397510583901039993485885136618169979969605669724706856575386321757405251927174239362372405761502759584967667058835184815649455729247813803108460388497705137029774012579348672369797343385540926064655152219166272824705608609414135124276612089549952440073778814932264300343971379412657843689063747723329349958820145938201865487540171995485106881068289759766513964414287022008133090244383113171028670810422615219307059356591523293269898998285655534787102735736831865032707115526926845666998672803433690528236267153477788876167337209584383958515638010176317173546877147860490326727937830367871493924580631124128422406758435171289868906794169782276590468368690013611287237060837621985272702879351171939149363632690730389000280194609799957399530320264017566855881010806249188135303115842216774097296550765279895119488533244953756517161252361563913327296414716753477637274421076234474192288985483584577414118787439788571473022303411074563240192287987803746417083359486438381938448074871214597693717825517851764456111368209695080566248141588535412906029311603827005795311687833961553438109435184976709613017300919224421836248307480942253228755513905682015997305703799615231721574316650305172257721017679304779635128598247461842125802154176205718454090036741203017317979284801805924312834164883592146026330674725498752871681446360429269430746292569763839822712338083435377384059520589596359941209583779698528172650975075073635638819352566316804892664531054994698646250752860244941036217399713951375761316061676804476010592072638565793257326762630216029768450541776726730056472299432277339525639262709053509644271554722166574516811712385114542916419493215413472160230813477653939040937796682613549649673233673174143929884540541921224378586892489229139574608398426803789881061323613747986662208072378542240668556751609088422001980091868667028916474783863711816180823753207720808117765857664638012428062693924416947759561866774006552082032581560539657450157565773044899694124663534968026368194175040273660610637394575690068685825335998628731186643032497190136157922044161033639169972862236221515986102920807079742147284000436387825525116223587359323778875182439860858539760945391378623003920098556467968994633981359376570874375987951992734953517567183103186427949374605634949856322036888285952744391264252403857013386007920324817672863419437578490616966083284542685954064296736791876091666208010904915319714736252813458638546598041562673361699659466285267299396451313670679855529472305368363731598593153378382613178669266130942764732177181602102348112108530566195540608780606624637222245994034107053502220721826259635897631627225864922181013087494196004097399760843358576188642358097102948124182128465771265535954296418010250327078679187741650023397725496369756865541802007307546413254228366060270994582720598257548142517532508985140763955068561190632796555852957281944030011114961539602743325220658307454541638621473128054262950874665006337613071595186301616277431379790122119908542582741441971043101758755547711809926730700585420884143074992252231622902800210162436750444995228620253754384823784568614997897488035619302046412622231718658726828251321539212201741922718235726106691532875279485053532920758414536001614994223089323355158563252307198896731530160298751247934650044499578975346248104737748476342496544318319221741681214252963258828975093693117289903470164681480048655004232263599696594319929719727391713251149665189713216621966589880578612037027751568177535041618095778167897904383262501862679807277746559834202366101919569407495206377562153058071696947917916269818540219483321281143440924559328477246419156762504570772160148979506653033605055271121367834132142042577040914579054705231116779670482852401015923627515533002508026508567597498699731090822746264632230796769495969353325793002194383613863706211323243166151003598005341579974026752856496640758604894838157566457160801799487707598529690014914191623529445270093637081590659692690236821971244820655479764017312256676064165901124180132491536746881597888543275489363685907722322928952708489565242975889348275497667463531864514584844140915319179213970067978305384775129449077174110166360385195099848989601615330076458838033318130273526761462694450864226151038054750158225893607997659442918925713421665846536748769321763324840777117663772595545038259205181678292685195589418664100546413973849554536010243601279452164056609867797925286689951093973533016796488100125323382004437444542481605697025946713772210373681675188814780947399235062156235598590103460611279006478153081848696471921107979954541753846003838309812287795246061476599042734669970955947918959947778966419447116287139566250346252577232978038076447060550736265859434761163376385585822839166488511127831578744339517699610430397873527423437583606740882829004486782535590540780750466430234892447971746032433526358837970664328164696939881133286955918895282757110596670212476110798596687415353369119163871039244066426684444195940334240560108229493261126351709542515485023883185616494828417952329977045617897738039271230968074341642091091710175329713891141489224234765818131258928399280816593841907850308581178593221510835287279703064385204199150674794541954445849325978224281193080717637356690937139457145665251509517839957824210346710792854839447627187865003315613489329426495338194400618399829175076873236047439088936889877656953318604552271590093692621465339359121686845335997781674336975069609672955139682222076586793415422664597336820845764622489083941082106962117430558576441790720062031830111211084750837207247993082113630743665236326664411286291376455625807505575120320231802279203299114437378363499737625500939676055761390769022992947785229172217557795226579777973366870706256194360127965126776858700228920487901258965520543394515621859830996998871327230923401823652154652411177487014101130801160933677365286718730738357744238481982679272478109035387291476584214194312323179219470983593708368067073449925202245249766555386264508923369448764224147069515436960305956962773421336813355004157582705757099634541050802859590643888167427806479951732949734322664381318783476281050912854689217503421958246450226237501812100311725493736862174895781449387264901621815845243592133187954124701558517242422163804078923932368365659353500099914175892301725771640276796554860794165036348149108503729133585860812731174104463183415297376023701811658066034169344546335551490107938960869931477179719098779434142692235545745133930215120235332293447740426930956790816343863470308556719225202855253458596382377529512754001380341707843154269258274006565638137315998149712591204568448311472812603839339394839791556609550998071112200596294606984085776291747136335192780015395764219550110843756351333905112302209278272352639599549891484163514573524501845480276862160201581839465571385624943029743013241972596868408772461433822301286308565659360537037673451033257249013956352364150534457823556584919064642771598961767557290511070006421559046227681885295546267736294168816649490413052561197614912766916220221284880799986993608771172827639009144368778574329705610875078294806890993480181197901101539275668113453157868826410319073915316765816672027163301954102222720740097194672330262237948246638246749308597853591608606364535365468737710244170714458311440667434136530339626867721464272702868843902265444095159364934825264419649688287415808100032607672794029423289627954622482969715536401862109982065194024258663779522334057074024682535599902519604583859896793586107709397347426473381052016958812906061481067230382178658116236356024299584916058126187848947156276142880359230820097955716446205535737942377002375320492294619149023646610088897814600711686579363652778274688434301958902681796019198045692441330413179387092887937046123814710451240137587685427971059848455162850844517264868705200679014590917913356171107244240120611364687937671028784026691828998636694589352029715196861626711989155477735229432753977628662527811490247956553021949429784062946462933224539907431588886659325978307494682929044607848804853492578178826927908999517792305021347071678538100133004540034894593957781497121065964413281641279812371324078647640440034038512942936834139926989072077099367951386553006174586622215840337337919930452169993759755231711229226455999258808521661237198864454788568086575639881141163962757198161945047096381042072156975012977707455253571363961516673527935185670620984516469805608780424347808615251528339396123022519363938214453228989885298898824913541477847803783678737259805667589247112814379070405797512905623378893225803597534283154437122979828410497447854638354990259475053822901358619731321117714559456959390894148822150990188011800394229916302491072748268763201815051467012040451005354295546118813296351153315051659554544401371550002327065153331648160106528042954414604568966687322596554996247910161111559519435147313648533484944532295371952097929014205071907086443125745626794616734592896869158454993912760252614315071267654860621131185978322014553920350094317088296427589610014770710324996427082774078695327460665865398531285380099747643154929716557109717201086914982137104016600398680188783929995714796675032691870587023873962374851523695691274839302637427198949908484453615848386606808609239339984219060197833574546176776894811202984573187553691762255022274605506516461734347200124709941796408657534567798259347234889700918860929659548297827239297703099630086468165134348054354643352447029032330599461615513774081161864544324764836084313362488528817326650642561276615188002991271375636675604487491922512051997277142685061117212152653544772086757369234453490935639680680220550690794577088289111095990346279037105440850400953987470734060960364712892318524683959524968140802145310854186000902515310019073125433348347044527318443379448691852576442287199738082070386045414408679368403511054745500936703917467747787684689468576996959508969308127205905168265659187458691844571450697226552825913854445691403906394484446451162972113546354565466597077474877649281025093742343421894784045639771885986625683499065303108038619506011313907253319179106269694514485414237824430747819908903483034655297362132560543858336574997723604464572751230268363173821061187573243886610052914135980614066227560390635716338719914632470802891334176967274464937294891536582213855956865289114252758660961834763654587747674601458274069513869259807406066616141925695476827402533201577658843861358084624212344015548401582431169168303086224674263893287906988508532139895156572024295716894865463566756219149831855703446168814254770264434617063570969384643098099160454166028645808012785246689465424831136168260222729095367486497665786674544178062150365205941150539776294349800598879640261863400608359448680939870842332464997450124963437089219108485316406733784800012277484568531943253819951668060196486144493540501063280643470414678534887027064308483026228040957334311947290449808826277931082352180256013370397617332884803546983005085340087711589436606655171634115365285882399345352683015624941209797395849524108496051133286591011154309266363578080783355690374444943178189248489941625428732176407320736527869848257213029532868395533140494833313680527014550071078799063021357576349642715003760634614763269666125504949942709215386254590881206927435708093938510014363353551237336626971604482708480108558699605091677950540209999413251176910584211328813027346898009291071726421617767195726545303053573555534541941743045512733499037978604282960731199103167302093609778447751562738709009197139854821868274782349053118300542721321624950129876464977171407260246097123559319844539513163955294778926212925416854036280470775696805897218273825532178380937133377305036868831145151815800266207505866037624081625778210353711261128962986483985903041960023149572198992274610893220468406921173103313549216133289884937796332018265641929886339498441440103237057274620993541136883127128687014353016840749076074034336566520239903576826050513908380542467904613947379644198182056737604212218544636435470290737641708904741699846035631536098783539902816009208355650598346699671685081513735936128837938343471361028231730872472612359644608605628454364101543710725580875522897206369356249183060957525219469625844289334446643489545953862711337920389390251983110333156482682453495192348000354939957394176363372905194328251897272993031981789720191318244423086296079142297348531611199253147725598237768969492468824629904756943240086290918686689675184070689098256130876561579859513319201931297428342647989630617838226675998363956887117143402837099789815467362301867248725372014626596417769913921367005239981941187425882779218133957940800372868142631289994451085578055783788364571977177571899051361787298119576970986938278330122555065984903503255052468014842192162911057329302915965024505512400323856191372751172079565386781900442899798107761163097188269092773746050824900589682895194750325719484203927281693755331766784576467211745147812688743857224763576605967056021779190477702502923629264504224062230068008674823009514127607963963831604687898885498626552572670573077269167430400695562284940417040461717562623193760234459141270430991332677765064048233815170116166238193904301243812595263192450458411923170026882128293923096045134108914096351629300626325160901151855849354682182081334135093947419089357971667494757432995446124948478387581924573842382676076957472594711055317869097870590495199407236880058765210334659782639824933947045571447000156895188858431680078208884307540804823149877449900615366946948156926317703178205179133808700065806833855779577248430900227529504118014890543149639590887686044208350347881049500364331530393945092301782292465308028150824840877447302740508506890456939077465392907026140033344530637887607884378662734918818953722792999002049231679298740567297043958453470469366324717310649664455432021157514616991360992224884336531560716379429016790362635124433143054772859429249381209949311108549406850072335775778598050937342269203696521774787427249384393647026006985700553057852299429913393903860662586003327996554038758023415067768307556798929671377996417972185798912733590107514263612563653710654353580268567943270540492035762789196845915976241733369745082130046301144770222620988754283972632452652829744969147042239221678077737642178891698534117401708437481879472782402729385301162420413990796909487833120339679474435981138124689488111069270565301777514699426328639121051112209746715688952776749358782950770674843000687499944615966366666688927514709633676664335158064615868819582848869951989184562058764530084648785509296187353389027103080849376715931010131925888370865127450794764750196542609033410329569495003610370868477875155500908449278038007315889551249830894133821361970186498760065204020597016629689287901994382023955898497609691836342019887756560513723306499041099248955114487476146436539534303490845392410880308761446759489157771699776637233078664365200408578090357854965343905827810997832191097796643355127113418408883944927166954826084397140970970247667591063557609826412698983673560671364822304335701026447194711311341587844416641396134762509307106032535162742005204858484745845905525551357830032373254677669540680544105933310367035471825604003907494960960759827078289834780784368942776137017893912350152873843687368321777093367040895244740802293464042896295201177730996552930813479133170260587254719451236298034567126531543121261795296959150968370159399998622018935359939052678416164243580375930114855892405926970746420584252481600919951777733437103138772176413081140352033267682680127769396414345215870766751128518733797658425076402466517491777583095813602106025975559293983704933117049385194272343621402823774323071660996733511328654982971907092425708746344697574282353288991689099390358116534416368947881597678308845844106563540664881863702200668567009057900606814806779603210953608080254582603353238060127712549712749006454740723697983626316715372450081789925882931087986819364639361649988110325664471698200645223574325952596178025375601646312332697505132774683911262020015368723024791636899121713035724037992627507851841375892778629074173960112968825224686737651047208417950549385038063351645829683866208476788753977212487122662858429344714196256590385373773140105573322083443836069721456107780011898192488916948877004351294884828375415417338523158876259448050202424068719117743676762310018081223272401989262210520012012986868289165765199874232473212711923971862924748711648805648692903513788788288646501705005223583601292339219715780802249589117546697732604087961076608273494629676091424862824391917378455675797432401044299250441907969421368619803704432486248579622245580655665622034411130004058940219634271142371803670200056439258860083356303395070593609641585895949979483055321251738753822692251307845036148588882585567074001708929109530194999887427530100225908140701880715584866090508008831603771292919652357859191479100383607064869725872347665516958065982314081942727493128326118046512630427270820576145454963331807058252725082385593774508330273897349780642269950145447719929511696091920517354901188076505546979506083414376380859819406032601505145284915157350538607560677355918306790864319584785891437052626158605186835595951143390583327671302967533050509948625278940591874313179511901570612804194887438432999255316157435333953746335950255742672468310459469063812985616911959420268394387287852187313396558620843330978751584299530735722137346057054944397240413659611461868695589146968738205845002364155535367233284643569905075005551689822696316867193733137104429619013792211879641441855067915482414426726301713178391699609876077523582416121856399426419451371168541018094511502605851677273649424289770433092546668055930081410038695997464392203365873675129469318688144734468058029158376617853714905345676499255937152745829888802714175020127845376152891278112420693577323144455176143231722577643002063867221100632617721128769242440522664057040989917062438786111616319846303128970729280158606458638876959185097237277972501561850069775095817034002089658690579334434345019994627288627580930081350104702294586155513338622917522308517316235769179177041218065233591318173036417569856257402603275299176873191420662901634653844522458607939747483457633277604556256961745224302089535547762163237761072275297178073493198611084473105710347680088865526255488321067819464658203974027526251844343804135466672652598938806980433396642370260241964924332132218889192048891051019001962727289621076302049059015970039127902624898360180502158077030286166648245575207900781156991231054866455589790334058262235643060208580384565178975396754328269800839516180962724487265886631061437165634306852882160742980783367111983049829325519257126984510535614325581602435358159236969158390196625927215821433944916830036354852445098608238750171667774239002755973961689939783669433678897104404641909523405249827278187508889147578813237147217999802232929441988120737295052731155939509928445934015774107367982815099658004681400375914279341462831090124542991708903489627567982530381104766375717208443268964090190864985737867640609819055354924453628322371791512316580583839999571842455501545985838060304723050799199991164385754580252795417586867858533396579182708433720224605467508425079272899927226533377196867786188176073888331141023036326767798539354857322837472555930471202703125552837412036287324999592051362149314668087624862470441705772992929635758690749100525474436093196659933059257182036954262879361073878202219316774990665967464124689460557544815503603661154340147612070754102849801359929914273055187166090294329821617411665887771115317692028620407308491334869073273075719202324461843852621642621743526174804118648781608088297847442806306675698461956649674804695798031046591087299628508070837669794388592870947850882427076456301125195462142478544547300774318079462560935426750348821460516234054540334672751339678247922990565508642325350041775275960670190025047847196099429546516039294351035566274643235321233431428869809856279384251679925747927617368922472161100132088258147485892455607837732174297506582779003230556793431561074930351362497274412334879454734978165536445108807957605384451450010881333261017526569201326492747015180113086557893145734112677453325653824520817592731533942255241656863295798507828580185080390325768200379260945153645444982289258925366443322732119498745656701351931803514952580398733469766784699158157777972432005136029938640163529407799400722105521842673190256573758095917401457633691023850938840513302071823287981911683482853400083146240738688706774032322057388994525208227134752438926494742297394784174106220006207440336392677069957567483022671320128875252316025431096762360200209782072830540066176873865119962964077214948936990416018171045100395735587997322604718969225053891053885715228909623787737373442701477504209319211375727895056287247443795753901050618989514337650971461807654783451343704156600680181599362362619218835138156083737302582549135932778629926654218557635153744311310383920655913238970849288007731389463423278802731305983559109472596411197604412062383075282433038651233427869355617317727016958049680630065230075304324083846958298600327618498027858449937961359036510525113318841975340649476200187685524409287550735126100308199332909197772174108877566142242157228422250873747879006298827574836446091895427897562731120321519128625860243548733752761128349680502997037034334101643238357131443747119115116255057209446160889489466907060117037334491148765462314727597971580365056823274851528920417282493225056168428157155574531294775751356358210347029169405137699851349722894225631434203093255921487694814912880565222792285013189235397149485385917949227195507555312748512403335814364761125076871162799766984147054359241261484790160757369795525571648627060991557057598456906166389351613316883945229534241184057083733529538104967664247793398173457137299311773965825720072087479010780320346474023391344067092013692286442798845741278734898444320653925329004566477022451716754631868949053739500669043812708981802409523794264249260656885123159070222794107379373024041405063047877015817827881269137312857098733321068417312507669565632726785710881897239327200422823680313692184970577656090470840949228368100110962842836398625721092483421741299734100295522099482185669456937271773741865860974498464832039472203812913234632763017305666424487580793794366464802666380773321808713007482605941674649653988669521983328970891241342077634689943445038847262170489467200918523095815760029998333067155173559674788239234934578000079340014703144397477989254445690903405545096884711363510683388172282765367983923929534392841247814484347404749581814177322073365468937812033532976559458534928863522466887241229842695594637644074813857285685683092546219838363276262989951097031884534919865238158572964588757962991126472601834607872202636929631309812848382637395874847827478684935523034135068764272676392002573912140326877765083761410452674448531994665272046321615365003219600074916913176793789973174713741821196375387976088219230393847709055811729182326170747747826006715800233149642410334056711976645189930330239866716182152219617712261056455768076196927618491508997477035577267050650937761836499010635205361618143861688910645583286216802131167469760639876767882464584421080654543644029040873222914447687757500770009756882014205382952901765287757035024223861033195608436477322566033062078445708596569379418455071488206051544639410021840309131876854371420419838760339135225721018213864097890929344447750283847771674059072037216521878821842766394997777016516283876001673531591892968078355024781419006328183499610000761083648850972829715407631263604174435649435553937890943905195534105200608318840884499179463208408726456230539602560002669376365203464698497160287589503526290947741259431612964490990749453863984362101903273198700879945458177139386639582324588608556943390866819230102131701064118331186487415688995398687870605417767951333942187919253825236062507152182035844013457405877468553808219393456795981753070190486868094155706976364213603425022784509595256433862601127550739806837556615990823659526686927040569342117458035545722216925222395107807592982786373729719964672569435150352811336465707727428078813927983719861963343521194149075743030079608261361967362651301539650516662128644761160105077582693612848628613006423260240637429745948458698029112902353864411569215710490850624367124841936902235665570470803814386601464737752814162277484997845058247469023166927697140590148701078953055381366698080384488177778640549332974963340109371063072050486782159926682207964146670480085804874108995614951493445204233875720852430069658749874800734445888211094876017469858483336622066764262475345898989879026402791571981105763283222010022974691392350760948467267568836005195761378601187384202187946694500990686695954122970038375537457107580110557472372953020717985712516487472118988839501395609929872781062104461937711600266475679981963726073962859490548373690941205015448064655879748315120730061394291032133758011231709918485235148667274499844111715935715617483377532561458745987640050710238706056075692888965425313456904807054295873344590035665911672015542618708133884094222742309099589276495368484878033528774292348072871529645934213679438324985842019481093450485655290042839011582630394264330548488691195221271294032187239727722690620653317561116080252977056718520262687173392159314223521063720602103599768394490608292519074145808618956910871779364179802879898669012027308828226284059066045195810891343726277659888374988032405345354774307315401825180693741660705706395900089411258049196656326298990274780296129402415616546865583705403679650580976455014719684505281064372438725080780545375445595290883795227753649720700858324480739345563260059287750689983192479438829459513262776634303140924779774115386325171158038571511862841773827832081448109158373793555468858802010614435131497817640034142263493786072750641117315351360308823981945607293274566942132719952642979468808346932141241680713050014243858739351768534407060967817699431639190442047079936957676738387169109787192158279578265009916320400707865444427843441326260461858175064339696873844586972279140406898252705561587761124596356363852601676946321680364900165739070735711258538975371981812979677054286853893887425633623442585924772020367173627259972512440111520983564427556842142899425531038433843593893113393893335163595523632053578241866455392679690332537090820882368933313863441611671409839415891293007728417814744785730460579013795299809841494691747302803361258552727625596734863683067551374184521770548197774138278772705539027833294287039677073234073153117072551270932573388330967978874907546904372558885462499946634616257068118698107088620679511973468023236355792673097374178246152919629487922129823906255531096813105145453352720214071123602191218911341685913797168010667284201073428802769187569895681805821991398285184924318744837043278842810850915982414316405100982821698730551273137316475556513814710454662563624144229925694129162469427763223875392807783779179083676519596923836450511808825324265328377853054257661183281191745584794727453275584925696912763546344279974844091671373315704741555355338503383136534956528550897162403553254462288864139186829121918703371358039460943285886163910028640570484149485717109314658879484121301427190268936182719828127065682478074368590402434954059023621338507795460705307068951986457135861725987469662653337419748672419674706303139880195737875322544452428011785470223120217661889949372656423759483646928804431503991686038264507763548953044642603086784570214429594205692139221481220822808928815056033636538045630952102385553126479072452153683349132594770503716773528649233147223073131632716865219472085805577092713835715753874334236452509946415871892967159732189329012384099202476277702164917071772915585800294862998008769154968876376669210164637881119080283369719979201118351762770721738400946546795509889932336760632254210639688101102410948817428448436661946911526008982545922886595265108837231223145442012083153356780172984346937948441476411689216642174426215781386380623323662841766079971123053384130070163247643073906554657622703023835601846993536209989000568203886838795502321869423217125640145102751172135871238247463042783343662615404220060900556643412212025399439233171500249645819578415054699026711766434717580446779812186529780231756098337112671896965483231957171505452479219929766152119729997228264580610397208065026734771693265673187818342562700497246429878114872885912731293590405406917594061866081434146285428689766818915825983540668492372117976054778568384679027683908720753453302648996885152155827134707223319272821551216359579779266925298886266295439786930436509782931092707312909475568484823629492494580184612772711351411688162713043045125650630177120210512710641781338139798591305336929000839347370830366071802273831130965322835539464455957825713431105176339040440146766376284757263952562109482339446591824959731935497553616446414366990240255660661220687742261661146548565338194959269037871962296800404880735784326897251029825655753124409790783609909708440534946681751070256989501157464143388340169302637106903971140936492174992702053780021308236156939474505088180142866192895574285985464856084134265632577529334264242591005754152490323011329352605833193027804874669959359574076684667405996299075403081142076238409327138250537161608313225458191514687791180506119293657110878815209293113311410979468138245918559766209679501271165114132355517224617088335306131263401528113466546016519692846003318033425770199982442444163673956641257281472933359465221862418802283015954142687169969164290779132326351675587702499644092462575461039769583064224837055157850042116293248659974369619157619604518693741770592881072478354078876345313115604308551353341983922776882353392885682455918775672465940251830163128694086475177227881940107885818135392757722627389102493398508752223423631029986604827485543898283453506200775854401577604013830638074718874912154625710030086702689446245679011176836887531368328712933851999628890068890524472163907593693630138781785123688046214230733109996656479297726489221201184440307912539940464027384574340359759922541355682846213779149015648619287873656803868852951477295198460464528216854430343386206984666428978153903104497758701992296967604760906387536375381994971129480250092232326836004334690074879487819105795818843185173199293884646107820008039544745909324881372328317196481100633030527263142479989912254707691667142645497771578677913728736691405904629147134326209780078673337536121320656054067610736202938795993819282375085218458618300616311786163401430951479853098613409693399330926133745615392373452617232212293551809648048161975329853456271215136697966075422919783313351083366682831254022732047295155131358180920260201701977175713141506115680113517249990210250031890740942103595379619540133095317057795801038217197575124846996923630220087141330285118984359827832128527107252346671480823720302765111661697679427336779681859885234199174109061543865290089217975627114176144661066157976293022385423297975106104430930566524887802743806249334463416135924128525733514518141916905737380525731930508405949505455415445615777043428418863199863328853183575895397629195036668602998687248348215015688792978469211200812422648731118938283904313632408127310637264897430039966176105331126270382628812187552780260505405701842065293413115190661444408629371119856022347732308307964362007531111936067456040728150296880800255477913388939447695772071063627229482594237871618423868233378626093174358767678259898230597929356354454342455145935301905186222207523853506320322690751695116692937855297748229256537052073977742052106262650852357668266226107344578286397155839604869876116864954887456285509478033504856879534952418989652584825207401697467862115988004201370307870687613837771388473360050053836237576744682840085223479348137186495114685857037177082286450039998254201789650542264328049349832775866459228282014386761268752256130112684231313067019103820849419424729328492206015985817768737567068525671110060911443250979525696309435659138648777657411534814781236984380119788849351997503385839256780318706731744243297152666047667842142089637303888704278896871121866095995632227654939396336980850079469579614449257102784047196698894061752366309526911768397529465207123239004916779359286551143411447023642335345161158257548601465787973923802844313839601235745371208186978430992243405862144798100513573622154366808214436265293540385880958695651225580710807936186018082109503092735146516244415637986290750883690416442495904066030453461260359927749122390254842859673988001417050324873546274370525963210544073826427797844825887570146042236113957918179492328115413703676815884848614361651138904781459034001869956709118282725357092034860907712739308559569784906775866116404702962444235794938307509791689194167851107794037652069509634730849615735181409034216868312733378271508182902933317215842325436394131758015013980657403927798278572305139802128549219864242835827457529194797489100108746335010475088962146591009989208098352130507605442576993705403081263671615531073526239909965883213374398449721919671824826363292438213520297655249519447118254490157802161181302677826846547823507467047219298303962364999294010754532341454662539655364354677114099201565399634306719289768490007882341046370046678164553252982729128813780416941895441412580749673536719735428011168245556994500797756157778962583559377762969323996501316478378920948441062496256608735260794431765166532368713441512254308190854497922673380243390361080843272532588720175768630996728795805723302836627740313292961944101277504940669166084808427813302998535193228538475664023421766623246549681293531713029643693936492891164902895964069721899832929147189426335801248844941134897984913558852465897892777870406956373293543698453498358240636076872284978342787988270322304780960225877002923639431124057695508578200868990779899686947969842944420662444728843778768083393607714064297325529395701442370227941486415218490718524623306429333215768620243233762045870752727676411643109493543615782433652070020469070656017826406688605139380400774135238169036636118429337753287405088764305811108003031549385122996757313306020167260563717047660087324473046992602481785550346684985055196222185072447598791578896997433833853753166678833501723662489566740729976061647047847547237582054028358117077710528591009816763825857418500261253716717340120188780844680507695261601152763180248542192700606825004865366063040488359792306115885562031162677866519498241148751903899524524636539448645233650159950144099024091577952706919396435906134892810243444398447678052149094200959899712347099805062269739287348330302134243710050479484403966634549647438523891784691033228889464524305943329530587717623470573951046738064550291233790907110455256254392951616990019083844540213518953740951534606578840449604601168472869329303022503794192229292989313753979001301899670251597795588851683903649103186888087672755550164112199334005946593454341833448803208138080322249633107930792080852509994422179801471706068131965201773479052986534026273879467584784732288823145293326033275332377092928826116396419076033280771098024749382082212657411389860323550416512460951288579855842611740351375050217667278872200674859246209092684648291461582975357506362930394796415605928083669764289593357900326138484480258325490072506473288847298607309370231306415692135332763682636488151087396094029334175204989223079629733879304121751002860870405723968842669349474510646315094562929495952742509056216906226919964232522538389098922927944576076823507527791774079161077331041717917016315218433355384531159954055452719571544543676957778916784170166662511809120400828738941488921772676294730800920406292531787859813791771364744869316038041568034229866273828723363963789780168114481748482699205652874400090505507727131311876637961354838220002968932276423027582601925824867795764161635772113007780832645444108363832711613753661524091323364226227275099522703747024750096793032659360691451716426378756319048342277119250335581253183561380809353884654184653322577565007626944758880351506585577382145458755440800069973501326687393008356379742797452205740314182752721840397982702056042495987544635112051678309983433442862902911100925406517491800445617366585220651324982635491586755368865165288474977538298597149289598924533302815178984499807238380000871592512368789007249070596971233062359390535141049251733743545690438341254846467348269526190506020894595595141697485312973138254095831107859124065973747231671782572704645181335997475926997468051681346681535518787588479471187811717962936879066352081952318278062069671945593716804280247667666259758985165866848901738396126922717570512249837117186845689056555419759169589593766325854669954827209554224032165345801453649376776475964279320920950486287368792573239173519221136984196420545301986923315548331129030854235149373036373481244442706196432506344303539983799721261676014899116147067136309194638598970034104025052139807542347386844192794919212141664586055727646072903231120751376725665827669425205755632462242693159175751634344926028280797381566796904601405094459036054139648168953234697529713218459798716925185772647208018286445027231299102643890679684859895977722283196085419292208943861122061860943590594177474114597809448930296135093171260746312558701024309407115752203878135191286792048930511214108730310794893367626667674812550247060049970410392563204185877599831203047468931545878487880686632882915181387625917993356197166270569842308053623592706836401799557544338377882709046190358841874961664376097523664721422841658509908123856308930032628769513337962649732435795444204129253695155700960372681028829586817887696522963218054261349793327565783156146009559951396784146344996826885096161817648027798706153893965636631543483832266801957881348343897905695146436433659543208177987658054670050317391790534609611033231281304599421694060293983371556012349135764515942311819966858349811177221025841645820147246638244737682458446841301276897270157747074159453793431718946325013100784034109209744334862099076409326809042981722962084449636332971286875528283160965203151025411046623858488303321449759067807441262773092021827184515975845208362613371735653691438573220742275141416007193375176506323279476089547885394425991617578104737976780828711156673881325524884500421977087050014483245086404990429464205644947095347808723230484118951708597660302531071051428768622676424742298136012035644188712651749482597485210473441211732370653892909172032462140291898323926143481963080679772754009727409177459336668658683511296088307872645287005516392974766087987734193526237932643794485499651328995421100839176540558130190145077030631348333185239441459827085241234565438650257202144162297711536185417949496649254948534662494071558534895219095642242531242240880346563477846380295025937942987741419676836333155318404480006285465822943909782854945314859464511610645117039656430233474934807840736383073023558517676369953412137352394344432755690826985734007711494424197803631699641392084484755050857402180669418226537234401646803197769678090127078704007301167357747471607853568188880226868081635493156900553815210733509662634243857993855166802443691280549830869405526850691849742822468743649426087870704726150693090730852480471424816405825820630751867256717721175054417409661740357919143501962166015196589318718023850425126766989888942993380263766138746607160886831872784838739464430691216743595573394566411651368512494988663640842991415988480690953933945242471196870664032618847884427374486943310588010969735733082347142620638854964508098869646493516045355033800298149584652722634338984866992994090008909715850705191692227429481470920470336758528580089262676250916559559611419525307381969130438556145944959362497327198675582446964068613059699699881271503205611656696111508132019130080188597894362066208784408620047342709803759594353669755667594155353681453763761158611815611227521268787051582066482579586789713038188570348767430715373826661445467645228424191951986075967706301145244971734441580395123053138620054966259482510984378832811036812282474451219271888725557793756234961478810540885697902877070300890497283140214306737358300468769028731290914738152371793476348314474219337031485879231910367098788982964428232550285827526083913794140669328779278515073955498239960655809388973980746203566272666673099712593094516157185778664641102567866897730412271093904115825336018972870489589680298825747727803097809155319177638914963039524575569318082492695384372267238872980406882182492425345553208953760555738412009815225840708999012974330323818561934161253788825258159525313847195523760532103891468558808918661022434919099078795961506222903396611733600094248149984280611628797374013666152543455727063354006063499123874589805343354764328826151461720299738185169933435361967360905860607296726018698272974052932462772168121101399464492415885011274419575063071313138442664344909464641516137462813521434088832955083757370549491564825665994811288720620346059675520220115330984539044187619212416676253807842750923531822668643070498341236230014641820078309312071528153362393443422951444249923090702369055179667953417802416172876112325601897567213544213162822504612994621790597907972087092105416561399743958788983420507147232292971446733625708886015803934449299816727578445877474080804143748689145004102544142728158320515409315564575588127823997752793180476711306593328462788041328427368941501397653000974772646462266522831832355146451204923604641423678738649512885167746694323736860822336527776515959025064176174094420907476135468658501053522106147359979566966409448062715451801051315541176767705862109172443857474690710356244057376545625985098466571181163005405412082831748700291854668181420825915495427915974609860586861196373092392666310730035934277899890554631745634684405085090530493841452950350630042399375394899209316240127537838127910765226544333060465329124066689346363176062965341887656910572049532415280285355255876873091400636599818720298499571416570528294145287682750785294768101916536418339768367470736530910240185969947458346448480032455979931663984164423224331472174147094741970359291346923407781821968340761129558065291909359548101973257178122159414426351576403350054116192322969657248554704693618306725218073717799197299943304855241868027318087325911876092949462053428301935232774601165975153001671718752601669330543115651888612060412247486731921525833192022341853166438297510837159062449061045076570851896220533711591161751252536853707587960957921187969682531613072177790908672266765613064280524976858311461578141875508634926599230013045857124482912365777762611520309853949171562816505905218502475260495502598282836880950586423192936799714689966349712962910573450195803366973974219083999029518613052017757013837199232639899096628342418280328292439921694186679367320495147251441558664054343177118363556813597448004224135844965511881492235362190061478919920958844772168806632313989599721859489212864204205329174479553830591958881750985442866702822557486059066164832819727247079248727395580409628727333779129802557599016153854556627409689672560469014549834485005915130425845731781385226353238736600398835921619255623837815405942078890573989853445586859961238663490641682022267570666532837526006946501605644067846568955208096058497738398697082321788435411771492103054777253045425954543692425551863403525151881419942218631293654084610895790623316425117034640453616174483326865423761679302654594692580526902018681542265111724885783903788998542711452068594375240422271649915777235085922118323005377708650366988491730237638363640913568547481716589949591322931011454876825816594495587867774608624270282149696033083327672623341924477951768437581548598374322069503070496556869357023361536804421913458011108688933863935456683818660705637496499874647692001242833022034102693150791699168135190531396837656591407934064991670144110852711770656022634491182396295129659800031849758883146805074888402465970024816134673968193184982507824783368224151277965412824853620021329472545362359475739167673479429910966532809711244116099228913155707505995930187346907078661424884942691704957917064673729859588942385723794542849040401589085519925167294822907251260344330409282509432496112761991915023024681764286770097961742927058883354935129677451757601958691621469331308559259870217500938168348158810921898099565332441493112796681269615054460381429766797101282956534717067987245941711448360058756056617083584809073432865026496679079783637302495415466672127000322067237498282280946085602693207723212601528951508295880583882852614323320180344198618753750114657959104262873438212698001173426094374415543447339440373658723668093820245932408409704959772752719451050008334353344250082042474175776162813442906769022743957240808238876446256124271253538900378548729022387868146660808480539330066704270239042729659478593270472483432627709832774318765041902151472247412512847994387956953708772489841941096658576025384150573233237497558604078743754285343229612774386354597124257094467694931450370039764109949937821619856274900235967894344756636270454084662642158513072035271175634402015722701433427346657210001556009702150985239857043741733565130025371050196932556256283315205249032421140542079704099480722394695354429044264792488133874662373786205323348732485608809833265795483913914800294908901848672635406532192457814636141435734043835882539364304384771730382205498482849200381662967587114134289944116071459865153589363024375345984302146723109484082785907692681471402242198775601117881404472312612347600883374936802671989062667568919374051777885498945515441760158778949994063132560117293428872471363534081492039113688790614171120264087987190891324331807517050663086128357998871643530904211208732691270579821358615960726557347863180839009010749269949398791640344955425823758268167658369692570356717452291173879502417244678653623038924049394477338032948251204543035813664709612296006605331659989784054087624920449612390034553405163932439624883831945024194675315036171517187044977194259210445492482154635953770438185134823379430472422273909836579350961939084998209384694752169255909048120261161902978620985070603765802030755937516628943011501750932565806998080323762857686577289803358547185021390042667443547400750914391267371702853669845620994869890404881829238801118025523210825224755927893912746900124317037186232567374057484339244198654278228391785737676805059731455570229603390871466197912953057328816062309566624537935551098693445850682899871819323348950140422000832222411304503390307988474652168071333723230718697725112705002050758717738762498932188679960044769315750275344183787341857867739835994352103943740069022258334815055405769688980478779923614835890708139681465378401941150816353765402366256272304388877476374292352679932134314512653541364849032239384336103042598388151222683998021014505248910283027984528091561975609180287032550644477879854074327503830613606182651557155395057860512533355180099415185123156257198777101768907645980776816669557243342508953853296439916244028272986064284544957197243516039374328775053351832158214248069711598475761926202708291450905799642656312743877437093253406248251722752763746291040921405653562073365390108009706144391687845508297368429223689275872821703105907157667835045696008567197055052306341482105265130887220535875985916575636795422287205530853188935207030912094484557107497823483910330673199848363968557822585824795852657209229965665753108239832464533914434529216886618833408274353626329758431666122805659820593611949198844757500237998747946870097130888175160703364047970578460196211260908531256292087436602704651599450826860917593433652372911586562037395538697577457126101687628260336415694612670519443972691199100053802951664228957879491099162817693992695422864961487361437469984059077974030989741973505776294406949694808534542101933828868677556361707916017635960105038132939263375559385817371982026839990254888311233117760259536031110846844645373360947611953426716898918488819502299907464290010506095936283623306895487843633494569760135826336608943288753571819004902824257657962695268274848662573130569140867556839136281065722575390579734473573291913462370281406695747806392552566633540715475081136580422605723764985216776116385440419622866791387117807246847220959440647132395169964318560798870222258445797672646176024770853339650449529219862071568728752325934544870059447665624233348600655846051017395981711896267299899808612075918612501738741366901322522154056927801690470612751324701541029259857798636552686142826392276950807252157361597806094353417036744725233184357348785450387298374391470853370581733719225532310248163089618333697175431823920635615372814844691646888724650048867903296295106802606485448568981544395752178317151698890436132016436680181162875555769072555321965899040106379695739045945606908797789775669752459177455074738135657630493054926727387257598111913920541335078716553441586292138475122372845333617226720852610810782262984357617453261717259782884891386640563282064127058164361485482952632869205176152799808108429955999493446565427024038284623124003401479016239855296276479017557481325278229687325802825874561775533583949788969506503148802084341367144792268692611665341446950474737952566089760407956514097503006569842902665343678072576619631005746931429695914494973505153047518018265629329336507160787143922917466158236640210746122386516961670671386707071466627290893477438944934693146965901565476139541919390959008957197215973125679290653255844929244310346040049524273952310225787102292448259481150869275644095053668774599492493695114572143586057082282367810637317327641348553209566411491409934339807528646283478562379276679752742340130301203315789649233709747611297009498563714058737561575614052316319838302856330168514029316070696379624289583697993722412418534672583645218766049995987625803421908069210725491253363687156256647231094706060005606897430380234343076157009472386510538976847497864809007835197293245598128957676231524430686067168381983908349498652433400861625415977331187270583615213508881221112151909360198915233772629959667019197582661388245900588605310701097078808814204934033604649528577463105083105880389487513035448774506034387401033613125502542489931653955153962613018986915206359856047479920761260331667665959904191820316798961635687802155475470719131528013645183118588704678182149869074360667336238302788414273288084515707305711324513108751280430205715927127044620112717140034272166773641653049085781928579513820340681598815298816641778006098300778493920496197180918367754892363127014814324336162226225109775155599789724832835812876710828366981918442907381053776810065199827789102897459744453009935825063124521892603946590786827029665767503772735361734228679547232400412879593182931345478585708178382902144774915225484573965615369114522582922977811233455582598744538100975428301779871567624203263336266494264983570334120577727447691500245459652126229120458897741286616170320611461206742935960749117951372621468146272916871725672846773705697240935174062768808744002589871763131795763771467309806038888642585441579951888244076114011909382045782689200598139104359374408654603156620303528154260475310665717825918822763952825920641582188452944895948788121645990428623858276081159675561734815420366802751389246546596805394814349224808584141605411123086775649131915474084638031051715139979127007525653319704603780038827583092344326036334355036344571143671417157677905299695340982861049881791465253827646662700721440559166797697196524010528804556114984962431582974810354360322297604560046427339416031632603298855474217869921025333250185072292100297499001309132034500961337329050230800765031295432964337196776245701845373493726535924791972794925862221795916341369403384431611225494996912686915758323311751378380124803780581869889772759510797133846700963551947510714125454230012711025000020804376527106986218957314188184800912129530534764041766056834843640856932688341525365739883319681903243781002555258665533745092754395185162288637223886407703108756711074957346373155017950411653717354517629713813332588679221949642495498083376700374711930567926349152190035029098058359923601226312508497521196070078559454563264262081444909106693097817253718566378619580559233133918321551675740104159992807742629438254495354917199323249447569134095293149942766463530965411241490837082684933075308804192354242298216865725827285984292361181683517616551671122411705013401323817901457403031410971740442759872352834779659713726360929756282701317639358212514865200956406517057861459155813808075935314216681491332863432864223582923156863525930026357603014004298063301271677865228291774712600129278952729698845146284110024692895855067693956724975645866782400185459202229548423596457191659816034021761340955109973432879335809682462179284150801904449220580096567078002735926062008695426468011804925795591420672399516085296402560522083652427630481087707323564497399507591628358459850275772329876787611102849581711650049319584208018968277317148173390085288435209012065055610599442554575180505267047777785828490274721567343652839230091297942225503153201152499352928035400959296654184447072345871270327057034383932753124159733756999497868741308704190341839547173032444629928281243104794440551804832635283799245116355222931688021862580644536185983293063441207689738452193481082067401285800213500852045289364488414476423725658583577639358600573942510837346602386643829164230293337352315572882220072762026820359022400136909191070542667083511006082852550686034484675246214790864372257151690066386793459672981249473855986580371552831723798392933177572925083128098965774104491339250087578279059131584281582155378161150293030141818540114917744265961864577975990115799587099437691046928119167887853393031553071935716254487970505439101620531717483846336944199220769094399063289374479741889934977341690346247807469672862277279250941119665812275705831333412737695615069622309330571980846493057351131273492304893649487571485128405497905599325702966357386673690781963034021898673993268204818009365096190191557825699065382916718046653096191578134710134964639538242159800131943123029815582491106510861749109414122452933855216001618738668995006184146685194873487974300856953548885849565059094373502032517396588544202650587130408084680639347392992105316538166517631338890078166407719203596950425348168155507193841453436834991339035740146597191103792633933702879728300468405270245780878906706820897679829170376940947040800091614878473431037645707166360376082746929932335007920235242552562764644197563066775130216505059277285325946420437668534356648431813261866888486562943253516164894191913430038099763352940970233766142340014321540377787514047460321837275547245928859721476530336802850974283193934732888447961644420465708698038037122892896700726334571057851437775120074023448910007237759038192637478849056159637538559238567989721366390653233139586482304116648346013727157890134252280241234470812843974385249425459977411070627126752042566360729680576684723371399925249169618616614911238848324418296131235645339439060155389643044406040587008852056231654996431311917037719461970158695754001895230138027006037896038673272013358727237421840349182929816017840072629460408168682836136013824983375626145467804722325221742413926035320521693866740955536311688239159524455880304812243856134749384684172118737511645034354191096443934778767702021838344844338742352503831011573837110899767205384266576438430477261218577673401926419680156784684978916630482200894564150740008201937145112187974889320619522466798293510781713694654574597776027379931472296323930570711698346936523652983229619959472545868097359994734430306936329147446212149003835618615151017851297658609560455404564946492160430065207887730489039588130797296871628092810210429981896374185689270313445637083161249371150942218360038281312225202914410380225118522771961914284071939820286973320493192339739439837137705846483553128755853217222850524533247636575344922633981553118398287881790841569580849365847360173341680186635986145745356495102220540356695944059445230273692859180798780317822325632009181321635814481315986408156266404126914297067329363540433747632733032578473265900389812994172064691692956035189847299399784725783649172851697780361919196758461416591990001084625257843093314277286857449228991736972562772000841456567969919003764339543829495420711881479092869993576529597790282895185311326758203680477924915869098157826157018614704800171190616732339118291271870277280732507274046919593362592729611137466152838359201407251469422796153555752841687805439581887822510063220736992486802502498440092772209328189732487763408241939808941211151134047603391504507460332921996471126036071286535679946793802864980326109900178652389116718791187265913946877173368435389376236470200851374547919679004915655985017246204516649614257980172265350549570165708672870752638905522186910555657907263136446584056128920914028794543334504745917435629305558725959074474888675356354298080510858170067176561359762842643077875899996264172077658275566235602535399453707183898879523875697178829267453519476561705278798539110607751131065166447590059685365982399007767802568984014504511489463171878799890011503006854255919688898424659132410277422234382318942993016319796347738468012165265878130692973870671054168133323146320008867166453706299827027219904099098976273563799325446302502773175540454816373758010453608937413719076441810750590336926955226892510170563483321818020235766489224251719876650874248323200676180096314797179381137690351397181436889045334905171374620904361497705631790155845919582087887824584662672670351471861206112391553136959207070803038014475348614423202781933029750549890922061605659988666281514056574076101948520404862852786410927179163825784927281073241633397536041344749242646479397481619030118168833515333532128834096811269328779965354280809934882112076899147568785146385916711267576201653365810512667376085474419467338772615700190903704307399363826203379282864530131358988364169880988239841725225699479689467611762111153377759817664928378740415505776003496170675604062585529769904997183209905887139926389218384778899452397053951391463664648096360459149662211359646393690821630592768425562846151575196102699797874925657674685032650600934953593262656288154625557042171207471475690091203068308523166471776716909630864926046349015833090796419309467876431639893413711901087354660749174243735105658880570033526312733821884348220335355551419858033906481478321872934783602679521730957512977623319532090398142554483726998509151351413422219794525137806966320970461592779990643787588945817156345662475290590605225007746262844876218346064957311611398057163198275044915307670731690787597664160977620014966183353185046946440437087713121422008726212375748849127687557750044680788685221350058291889009616403959185919548833073739783504727676536073749777962011478743517970701100092439548666796151710341231168736503865226450043516525374389447779268628489147558048394986004122686512249667049462200110586128827895068017417551609149543860501079720805975302892318446494970627586234021280847527777684152596305645610878138489044781274835632718619110955358281592887643509081972750610140801077081876438020026134688084680373367639397324794267794389879538828930844399663762072713670853948943491619449824247608915215161432331199060618209075135777034510593925965703260686770664890493975919767969070194133432319851589878722236809626544005845262731159814559195256406551742850816002766794843576901415075492471395770393390912158362099038545015366848327414365740085626225298032569216084740182192682500547484410496548355211940881193547925403596048163263217015904213696840758875245191955567326986240184765903735887067114983773381192374840518590637422287941907813281739467081400910839602862912233737624072264931213096696100867836167469408199644152370531086567229838730714723852826852210163524788345830169150029503673263300391283534962981916281526749419827658393657585444943779430885288449414366438832059152223638519618309127712401541323115917728691802043873152950296962962445683992787258932001259232674468245832823691876724151337730311739596792740567592845998072266735659902760048580833701526043548182348367559700169170514142367448864459033255718311284715197716228912109794140442861996214119704358017167739454652502963792286892099145514050171659525021916697417332564295406820900758257206444010254904818335036076516728782784507549508728815029706304175308187957888255343888717212946864564648355134685527767773022096896619212829848265476852604379993357747453390056849480158947959128482633060174793457408594315660990452152223711743151267727070830895080380062907545340260190732956610621957879449595456034007888108552638255908395613097107734878494214418491556517867034053782821499172883979066553668826360832567838366453640937798444368856850679983667965626365491505337506219747518858482598889369887992479598454720418651671842360648996923136875334319255340849910685073171573715355517374905262564183984204855563239700071812930984348257831449965231938475116416334299263529726118047353825831210670507701303042091561569306788478969439390093584857301449072210311716091835431573940952647558408278791909597558971487578586365824507740771460676601299570637209438271626721572505555523198200041815793237238189725254594829857235764611464074647946575540615549402363254333754624443293614164417423940441641584258451770799332888399927472687675395237136097751960974441602445580449474430680266290813896574918734309048581892738258893505332978418953976706926987055812531570831360668344792765456124833532677472428705435413053447921009417014523673774541612939165405216670763870712935987327086012690990357925741348595628528716377800043926016488760242973692684564762324081802744375657887894339112596400001001045970502530580219752675542546357757084446371228444002315280852833537593988546945219748050742623321682184939399176991115622922418605199195818046903913392364378277914454003550726196322633169555916412237923380037757872109566129248554728235615446619315099564238630755999493336970218709365065373389933739787067026020786342816214622204347539340754981512973842665548909094861114431065625663145320058664788778830767996934558790640430286719586915980353246963584644169097781691556932056187754108230049204832456844092461316786682505045618276045639065767682866822900470829405016498580893499235679100784856466059483152959231641544534490971029492259513882254651060804121292079298196285382254802395476899708618492308293732106986289467447444888583865586790858126947045443508962073600474315956970225532484955291442301888794234358795352855820168265523552240408043623835009397481917976110317365130408500311432093902141320100392781465032614954355529722661443750485856575908478912760532043132724076307344117603402954071703926793580430963765520844611110674782556360248642795473636579620575525764389187119679229883189590965629171004730105739388123566823910880853912038342286921036817936740606225944239321320505380124960244426516422048022658470132724966627996109775163193435299223924379311706653438922768420910280854695348019459537468573263457649171497811955767922514329957580945428980804801907711517962231936822155722826662897693869447388356819927662249067599838602814259470460880270905261861962436824038377307603732861753514925918180658910673187636346709802987041645059860918332143176021265610551888204095797845944514731557445100776985898237837187622254232422419692658872368267105956991050404514918253856090075066406991747721312690696460497900443572305526137161335775672484651667123387319554639338831020729834906707005906951506968815038331315899266650329608779599928155412883240487394417148433823458753864467287989940977835160905117642059251106538179358347214362780148877809399769583684482331734705899593373364683006267194235843919139214175501596626581200521372971188136121935982389120365642975180209607539530436497276854864963501311679762922330793708075061782409321902076068144083021653372656189129295487466903696803038446800297003440355098967700946861167319597604291580672531368532460822519780305735484420152788962000874112164144972353284314275877054326976960578386717817174940062325496994630609216665940253260554500295482816588779496687814408426674624732052071454290526349187290101519149732699731369258074052462037431628009453261103824911691718036711669402725907311720080610668931512658417524721289043847346675581986397702595607927862952668445470365912984608790458828433934070859509846056397646871720254046295683533911359783795120507663495540880561347175655802122160806759061678206622829630014732559238831639744868302281968401037036809515419113882655225246442799179423541389977245992853192382613537066323786580770314479332386337855550783578509699457657554029048531064625185253819176968563926642245295585210415919822949993843204080709077037824828001035503062605175104332137116427472150400703986018146041593849019918141411907043899522313369811953894406966195679225275055164063688374574545596540760125245526851285860993659842253913445226196182618880876639021339949820036095279904083102518972301075433244271928348192496369762995850893082316414052574241933698185532376584000092422419164275477712088782046124369630621005767760453366965135920397196081299576413966741294885591876144304744853347585933185555816374686187760907547019580475485668315448658515653905822783455501726403710447133170930984768116420251450323374257144262476119897098767205582896365905247950851039023400117871546849415241201656563155020908432986918593031507045503468798803933971931348920324476475752057587519618084921275951380237413689650439224501643146216604845725179962081858452558938909598123390477007039843715232391953250329520072348827933557978178820903787997075796191117371486313881283544829840099630836565622364339052501672829078084235293534025196051704906558512662056261081491468117739251129010614048538668631690933646927232602281102109782054056075332002254711392809094312429076907203678427011439512103768056228701797162938858258842346587714354928552123405605137413725150202469954116977182507970803382275335337034021373470308809326825835866194683457810178951445528366687517781177539791043883262127492214881644360525664788469622816186238685556935687615103681705479577883017564403273008932109802415390400878447907182609419852677131594131226007360554831803046811903462490647287167023732384118747192340306767001099482043090773894439375749371477068052098438303809463613188571697025312025195060999084627833378591175731686405483254028186234258970459794132705660683149945450648759947499764725810126823338325626268177174888068947212478523318969715660843796212667301147565452280240328703724830532823284165763734101430079074774549594709399299983518958081485700748670707617841106062478704852605654262618223926657598338957450934476924728821558338179468047477703041868568432830698752653214143859457451740292631624320332527701669471017200447595015156451314648349182902705745128572296693867647300718156687946301575365349016327982895500343299498739317032370082323944652540952485632936236273383044345946712282160090813749543466778137445379794368112625447448013197411845265679817195302047185857991883503100326162892156460010830320625736550508259707005183447997484677471877383794782164547695810896530690535862732451754039102019974365977296704124444516946573109745858600206086636492246749081184827967566297463899382657765182260723177937340861470993142326936350500088490484999461105576483910775977455257478221092951574763290639036208128198609568727061186648666349892438874388164632132436918873744302969687945338097429500840461652688336438717990533642083836893159521101591040892930871593461623488547540735256593920011228330162056026762035057058280818724138159585567988378548926269677587116696713927075858076290183149944945553802112118360230478204715871453490518510196321008057924668431113963712205340484335918253399187885966226666963036700078707316172109966887081805507031301233829544347562527539542365987223833195026895111425987998933205668939239958134914763740917266173506016088881872453711871045828273689867136350540927908468391471974978994407810127523451473750630615095952407166034938082079631484541971174923057629757723036764188411408990110194538835592118953603159889023563629480031024544172554722731054637874203160125814318366243824842583970750023438863828506783852538352223437969182649392828918992714055358829930620612730163765948298097372863049227007842043043261905103924822594389469599929505543794627123684526719126262485785227101733135464383177399975886667183940452858389382689492881285782647099388812400768398638479892241473040518141294825500719878663387209802190243650012988394253335133315637773617780292525487357494886051087437426279737991637458678007072570635907459533981451123738369367081766061209260482370219634959344374521626676988007058752212313681325800990694737479821841879498901978673939680898943935795946536718602931895230483763818773361281642981546555503797299999499546321473681016109087502789759855734289647719162815849290608055539469344660345882531152400288355674494437983241795991600648870678614601706924206509101915740075975373852069532283558413497232539440850644842980163194007349138547474932703179447980691945316005350107683768886717384926442098065693929113690736825529185973259405263564562872452097054135201938758337830505599687029008755164403687274849059693639840603602898658711430904936802339858449746108534799313172062610848142577083760261983928782524672658568190261792232172886175514587829603937466360322150027917885208697091684486164321717090092806630650562007516807159556622029720371364984064527778217865855712928711761935365127122004409665504772051522592181677850348588774608112846210241972361216040866400656125104421285740800521775812761576068189153195895643460278513099068984178162912953075613707838522198866723645824086482880863504436641077887953556347301764063698446937452181980566892500784248041831513297245977496451710834826448740276900214064180934124022992014165010201313372324092013999141068517705690581715749586309930818730988981225841128125056659795267439693267025661464768110958723389312741280065501322276604959304582420529930625451010346409105446615943008759210166425596104573819599883608498726247006920205178652244124900969874997025965981529108988217209711352332594974958663897143565237859974493079836218082708707117561323677214607986989938617900087309709004679968363261730771835402021240146177132159603544746024580182263242788259339758414945537608664981121954971641271377451670501931753117027056597231989084692149502565901659012983460050597522843930025336382672630682195907054061622689517406109572337766723142017612970591776056728178039631728910175522885305923321107159921302674889043506122295450533214886434078506360592168977101890042324787455214885536939699979643345486742032849391185431107481987717538034592108472094252935019859575512187962096994079377613094655944742655685578968159294279485431615458405212623975704063584937093084095135446535688199208667707157016307645655066390814589036161251788038272736263097579158936207442183146794918752341583560202605033861694484719816791377220819015523721806176435891849504710462206273786752750032391702486966942848040263848370933725813191955164237311062421738617218314838989998903936304472085562856689445968165819529386956624523171166944294883274148999141354367995148783730886773780483011902000579650629166253767571445737422814715244415281603688727839348468981424698447195589947560919070424124091629733935592882315595094301295072370207211652052400755535916004000943289025722691619489338636280711301333062414648898571032812262925531131800412267531046322371931241011349475326641703196207815522362992417579856006271442574369111368111002475532347386234054210834651384462326355632961930506753627300871369400926435602339975393987001242690171933927201343681229556845915541086302577368563675343627781515100411805737325004706864339045505435616093549914795260025495655935674352255281506886259670034690092354183587369424772187716177529925149300044459339891728110758348584799892388636182232430118199670455717184665398011734530995665467719362703710846900238329791956957879503624687537149038397823003127001921762797690800190737384469278689341610436169660042480328243081598219144469878899128804396076288295642625990424867133698570559427516160146857660836755712793309585475639710604270838459102085674283206492078449377369955292861313682121390718652058458282019210485174005434705788401107571642270448679344502880575971666954543288184767120859064310295731942078811990946781486056261160731846317099454768862992030767165712508097039826609062800042090544535891559556355957066207870547266132433918830184175845340664278344862331089140061031694837776350230920837675999713767682190524720967576685681907790560582617355020656674694245621066449044631242088971085278061519720397890637560792541592182467705627320855845216222644799668606658671436774956172950380081131357017423557087407488835609207926794765835828686781796860065978616003775391173819090029265388155675755189866863456250826109727380748643571175224515190398688754429766504432475733194443897960176583893459312663557131225504391711243387067704305291565468129092854012155424659920426563869039381421767087535288160966931309294410131842090909568009032192313959907758790113671189082145505602970171012781150702974703512849899022292127150958804951911388679487365825072513636723372965825350074526721888018592394623276772656612799614958720093260518995048306791350985362389951339227575189272871225186088157332178840573348980346482344418778119420917083586450477692783829590563934692510574811463008958063263010589753612513977598928245593584713751796691752899850180854893563270383757487532945513579237352030691967685337422775399567318625434189692980126748432139022542176566977395040808213900729107638600493129209014507233899970524642593306921449231897663630345213652321081290798710165773512353524282066253305864759483337358054734659047443709426727815005528625907412348899957086059841553426893139000181035622542500083796088148844898935334303839630128457000314032359526521384388582688192850991030138331973957244793472617383866345324569482446358540675214050742771122296666085654046857240785478618452140648554685845762628377854601169531575496677365468436326059711203810368848352300576820787197776905783102774611600136691435250118658262203324868742624981546552051636369414010818075264878215830141400891342478750200608260217494382641836819707352028112081500851195864018732969219938230837016351721703928653153172819629058069652062023782869273064258823002308928099431290289070280614893040860573892683741715549405064019517968577170252164506956586957163784015875810859666400680766543375673275738512544552836771254262125110211725205166247241267153906773443474575042221256842935924658497182095234575752845360504933712431427627728778552989770078901387175222354677533388485100638866090956685682201372276049436593091913603482304886664428282071656833891637846565842889690040661831201207494287786121876114599039117054598268238496472070149662677092781533462614578675363642139149182105276567911419049152219499915550534215005635112768805038764389229173317194777482605118060310895891764145123488467446457491074502085247797755229076489715191829547135395995948108757809500896388599489254900227219472238908572743940327310964561120243403375161397611381295289561212594158988047790269674997089062109120199547143804896504061574492834955356576175775530535457246340405519787064050578760970552296191454600327182491971493214014658246821578386843054560796084898736128378277462159395523645724955379132414466551301847544047754364062177308839508959753513151512978783363393315325087346034834259437894864057137445587033519772302540250659082909518124870311105100450277932651871632439443280393065194357409884984606158869220021567026749794349724995830086060661239998769398858632658353178194920661729082527203515620451938403614463645690953895539345526400384510915990519390156674429465777521264612589897295804809572867955117927803994540038913486133907399101193723839102795885739028020972539829179510632350872550659686859587710763007515134803637472222865738335347941316342172057002228472690190736757149944969405621636460100872546759849854626886004556657004186098708328648010316344942211402559786479268545014506322916940854491159709637193548539514162047648608544050026000981337768301729685092278782710977066715055918596483104688345936005873559574674694591574467543792926614980055965477594128121333347006002443869505469492930896718340879623607960458160443400458664155058915706631112097916851708869488633364501209327728399937527115376581243351341588635184978694695440870520417390816741929177337658177308198538791610697736112102983796952289513861683401563050507825998086535245002067223722615860472376088626393861192899458071705870169559474979508530474180037730805031701269768830635207092184937197262233043905478500140724022683194476461964770271834191074855044791020661227375936521015765834236648673199989661067397113800874016779021637306944527917811174099700366864792174274191973037970141114706038725599322995724523401892153006941258543766175376088219487519154544755261602222257240491043551765228295230878828279605970950980064269231054208159748737488803155551954440669619854189503725731636654999912965645286296864121659555888333794254328358073619202427946452815876761657059791094860686452720384176357984473662943981199763843998617481174798288073798544498598257942474354305060212011225874291219362173728485197357681211685837405185214915187420708957704995305869869730304179140986758892885914129171399584425937094899615360102414537098771218991204194082034440780140094201301043416690562301622298732304855362557391481352728529851900437940137790513340675243410088855960708051446040719430283793637960808777880248144122285795575102207318310368513489640315702625984824157121189222739060348282382167638201165843414088789311296439981384384198314861544581419908354058990533473075594331600002024009245946766702700898189917483873180456471193835126933524148273600419655605301480226939497725242890707810673095823322479435747341080798767594677045246650250818672159211324267506004271482084446954216404114156733563085125770928054562004000386293958416288827606452927803242067509044385854237636174399934438058985420042462171387433375859407672713133849561558181601408416516956396124733863636289056547119886333200546679430648172705229301002113568419073164621899628987507923284374298651209741317727077193406478804530967712570794494226771382692943778368308380144655157927442205962445129807668419399864905549483654853771440267936034805978056910253402062240139625224822897905669823485167598697602795636943373665814210194168693153416889874684892222856320999624767955561110865924372212901819475382653599743384583787230052705981693656323685124616002983109968021744882441175275698405455789356914337424709965621651773222794134655561469409022579406867657821462615752121670339521274646244994886833494131502725472747092770877011517548382321820974827737761649185875528829339115492601815804025311102840491817122875632949598309822051553175483127516740755302294043151734236447546361974384509141213202270583022610004583668323450027977069593622296365460037099112530908623562347923406141677038278905852213379936688453644302486258636018060895924464371961601687545537365140529389825296056137854172727239720352573336105485677311665171907074160451567781357537505684658836750014668811786777848715374058951301407800485968492656372235130053930026343151538547063134268034001244750984531507568795705654702446833007567394006238937525506736325966257658758356043161050658959196997200280069450894472259507312646562695378871370407551155470363975257635388103151209750208115984103817137545160359499589072711648371416512148620551054352022056894789679767822346076721945743256219129634602871775783615642525812491480993229325113463723783205562406464422396384403820649951873274333298467753025415076840453225086239932548781631019151776353877978861566373223279350296388349557865522301084350136783843076628499669227726932836244179724533569195396039941826750178601316824949310859409501016562059346301988606306906041681086863714607917822480722883820231559148640356574838736708476526235401873017776490783214437920863099475099375748794403001945361610777333783743358778784000650265255856236264973777528534898884755620808498123919633650487856163607832083357734814299563283939072209502946616562280792698354002444620362158682703527911394965660786819908517642485772464348728161388620612374244841675562013429661106760079283467783509649072691302565986734744081581405073381235661523795101452415738432040455906604520674499093805680379639843131697285960337422066622035158239594187435481375271615472539744834541529750415036125254163358638503558837787790362668704682401664982632695580719639768700442557909681401507620607109530109247022803624086128171173398608001340250695781887863942142003746916882068432458069202965558118322261386965822230893644099818445122948933435369206967406880198127984423730872187867443690761022411057867407722821274348907630938794897179058219307781317160026727526437639538526421289203595367943159694635272669606439080150420979436723520861134779211148912748530265643269018531231822528362664180563155470729878478676815155230897773156914348338135204883515647410198855292621474870457884076928828004691024547123617405473028326791105866697066576171163602749220864611989839562976327985886545963542041695910929945665472513818691756800610330471118664375561822303643650498402122723503772289475025316198573490234161466676990095290620399943449323165596899121917820419664135570757969817177943271411372477888560466156891446987140583100787789954992718717179777230647059327375197956879033739330817128214228294380827439914308753970639638916510511459687776797432783736688983000872338943412768915443860244349307585034230421937259203813189164818848681285548174639290554169306284487621573206466355102501072682209708897168987344474200101514871363228630475373064341519597415921899921289050593697034406856043270533874698836805485240069704644736610208660792665306197750744410616039197383245615292383935415434910906250106696104154141172275272560342723010653634546739209995907123894565273009601464110008396369865038250175168435320631566242338261154292503307253472082465409257306792555271268237770628223704310099394322820164312957272874499508677967069661697322231397014416487001020630363708032243732814166148213641857321867177273824342140890375528506109660727264507605647142649850576622886918788032076108819769419248732130336499191211659414476272187223905502067555208965820053651974696190715210950152470583985900366953984536527790292140471991365169893214754383764770865333839884096173368214229742794393996865646049852155984902872526538556758726446276464991172178680017324798269591460106943956083892955528165871327009380924571541973253219232765596377881905242377675727409677063457208798685266109029462396380113903551785808494511458232067749319271094227937411346221362923269580891503944530196286678755286189397070983186598501049038663213293860685407425140586580677945525050728998603812911069419801738587301555249057716470337148380970495485922347706062494979691696795828996007279655812559298727091817402901871219644630449514205474925626770538869451479094459795363920478488837089505078263487931515194091806293610412525682473482580665087003447085717099395737758057835078164798576371107771702230943879365573659053873879793602848414539331108543237369583950801221017091798581517507918828253349668816925828787997257580752592627592811222585131084942430117650496410392979353571005066169960708325872197226293257502095175291343949385687771369333367240605628224829757460765115591370838891463985352767925395126357137074297242066784683464651903979064488701214491662193518546454905582340589639096215462335332647269708263467827615386081902889581859125908413346611553471929489117246688394868509811990087051828974882252923936742787850998337743991372492028767680612378337349638057523446312971625860569702815209208586175822993391449395223028249533583439920406066852618380605062086789726785803547227412451647601200236723085527220962328450319965609022212755631636592807369990300518899696502881073147646106544739162060410754436763207796335631163971658623711281267860706281533660853927625670373191330528718912536723426959486933202500115325874726043090085132685750076323756861846642561255946870885038881655125025409884180153318461997233500592112176926578623755452650209694457387791767402605817337200917802625208997346088050766015152249005565839897945622162336299828720363004713730652498813930455338458557685550733978101193540697227259947733293880854784308446342787202566986510604273180724691627441361422420889343569437678915635258750078422851755092541674358352403512911850583016869290269768470797115350651896278686412776328659744620895237280394668910653885655948879204794045748618575154986436112732147429813968473565291967134453174311854495339514173862268754897700442229455473597507457221643534838133969491236202095116721444145005313666472051870281413750234803852269102771368800141941822922983403103961173932667457366575543328766196374571399210511168271006490452896601420055442379570113091710185808326550354319319439993527842349538909773276281334313944134642195028696763333371016158572443981656214499211406340515293299320611622638181808031470836659527944419945173204952071910939942093447064059070997177590832709494159381215579754233834446330139481063196206501393863569645576580105183881527479660646398851412691537234999481852078681636688345365994195918667435958076568209303554115451399003453021595807203756836859986685169653317340654611160321336885599987272476027000499240143267843266261397056574118762507968023779044572081830566019232268751510869703980075512290005044703338859168044225344194048417121386024045255586588594600273897864177718971869654646561234537650246003956238322736265716565159054946123624784675688591254586391004555647047622095057636780577457932294773079204263001114895434336245535246686625531546463096231645101292772068902330298638823048075572324536232787035062223533618269503547738479603811404757678485350117475858133952461492562170762479926730887606799362395106245389455341509778315036703784730946716805124080604794147054362237885519779278305490377582177456652232540616166634325654681959402188782959421280070598835587098162319152404266077225453946726609526085501709120769116408141713270569204309639357155423885154524261603355997410376806929948888124497758365403863320949245613574032427564120298917501039620965595968693460954419853128676197764529809658117068679112352618523999388392946645793675241089240070434152671371975144213702394071196888927597440134555601510637307897778012895044912560643946558597199683288079772836546953482827094195272440712911809071807548639218770505084614374961016865980252767187722502588617980474931606754714224588797372261725587965547016290693576670861647406163922342799533503746354633032087917956650120583196759169417371361811934162789540948704867107040865799276233030553843845030149914021437310447926874937634866624538827228526348393650194069834255601885733938190441396307562769638767075868513419225578707191073243307227297287902482315783280886431185480410832686341885909984806834362871167232012929260262665689071562611588185320225781519482402754437866092060330242826574199544578818238562045837690903919717717820144728181147533476670337325450370024655049618984496220425426782995098309235203071015345066995183328596892295087264705804726040367780373600293830543618143875727940436432714348846287001988409244018542915436749446873541539084393899434676137166041819727359633722853263385886651469247371762485430059863708312359061439647367876444379688122435906766265135975373956181297619815184801876792269056079259843222146237859837586738141603009514381568182005174828981452911236799012475162395062234335438040113865396924574641061147411665765177881034731391575791414003227214972838265110275030384391316488198414513504544406273912370471581137138128785549408861733886698327935428076773842028690970496256892509060592444314617421377761525926160649868251936820134945098605831083384784492545653953059209100032274060532682244778472047402723810655867201728962620053553821762135797689825866323992056374961853879950631095081663078161572360617971735371859644928661767506920142448803878649010986545586339995174105484871534916579231743107376516725054481776854091937023802061609573764925254662845830562231811670075476371033313845122642437335899773377360566122970511847322960750155959173987218148241053583898316035312194890843151522155381202099729907021095044893009361732509763726630865581891014243577699755646680279556055393758091608814438473308395599168583644368755952447363002194817060545152206941703936611238101570716716170447229485381789483051817623380695508756530371465499014143316273065087599829687885022218392011403457250280495592640248654618476349615756719184236436123782107554281864664714013359229864521607297317376532989520872301620539939798779304559883706916303033711991943138854981188853404405907751855516923056901196318587601255438613485607438890613223035024729421684423235167680201633229849754053933363365261018164406212529914527139952422263338091551295806498628268052103775111017902375586429931540173887396811108666952650371756683984486169256760421399045109215579204902666757715199660945568578588430102699649848461757068440065575654823737268277883370542774305501246538732756549267052166784354492729754402107762980336148801117642975029198219572880510937072061317213857699867972844716140571830218586163210512178248394773355748494860894709475031515265034083086079790283999110307806228024206761054404180000288725158185366606990016174380970203096497261500917867039905787880648396558892794053358825451868832853344940863748801307071424818542086321796959210563075406900498761226169204536977714606228428647928468703447320100281832805853736885123017542455660040519627759392426379441744068876776949010441004903154510358130643242754804196080838350493466254332482842158627492336371051355208981416573226028298394910603612903061459380472809236616760657287467708911480959793658570728644876331637130637703454508966108203064084702974445712876656294803754535774114571587407692620649230109844720929894349651141701051784892839127184449548230765719255209860623133960035505528811680640684633099913091367691985717656577798137613837545265506196914662192086472362352484152484902888611964762151228836127646357903272196447708551102741540404200518270845471677034876998039078179581428996395771010512536804091150729744668766647717607436505810480877397643649744071301598399004913434678284076947683873823101147200477534080224784708534814148356237183312532884673686138683341430403983528568718666306513027545519985425786935631239160602278946749737296398541786234883866574863920533392018058659139536988336630952747525431214441767567660052513618296545553079304978223011466909123560572425885670034152495890997664004263124324079453592100749981778781821212873553599989086648223804919919077242921956662727248012612311602676149541481395856539375782120414656510844627342441828587429258331416867216666036711253018123427496410703176743012911991979858424781376470529109175537802153376738344804754150899100171576346477979894597078662730687662392930533189197262914276052237974939552792276238087054614223990202240434681293100490902788991347894883178815524735780465683425629626235095311819151386035081204944939689932865177268873767867765288806526437101652418756246038792886308745909667431618225044306274252919445917418134618555414020446928430416980439890606954057749016038513783068519560001095011992013602771201042759069425765971580766435684113681651480460871562065028605673070423810109142365164158681296334667297205622569812282546598096971734687770377861483886457159180179227102980961332188641188095757381114714168499463016846396149522447884484216755776557334617989779922916554333159821044665872661396541870023795682322182037785024861276199864237326413943152084009978572455955008742837499844643830486204479589596999819360679761303111263751700373800294261703399571088915976274303247363200743870328575707420752656992874327332090928998763506829746558519657361729559060291620030047102676348327513863403852492212432663165174472781471156606010156172327378500123377250525044618255805895972308197764949977058743913163707391014079559280790325658508835016685781821699477820549366523269330311086305689289587858890150947159555695907939425849781678772530429967203007135226589919127569508079913279568299806025428252415993694811550657785974945065663827855094219213500876276871725510946857821469276590645748334426983180161870697956348030651124746345438819724365164727125535396508710449300997795140924574045895491971072712226021222685097816502489363419919142363388141504066903624172131556101978777964032912509957460110269355453693365310711119528743387109495593974866645794303699447905121163502166713553158994857130499707836919441095623875171766753842860604741456261384080005896066613788865565264969055891347851159880343614177944833356748529834195419693456484866153309462009900062524577934036864764508005074689307945460627058972550676000273646010566610886286566987719953024777431872863065092726165508143755800358425532818632144823483934068395767297176773643791254659948600928951369399027445381976677830829235317573231792175422129353317235390557049861229701605667843876003213108516861950636306974622538161585845067331578709183596528046812539749772258234123039567757638867845381377299324889827545865402983131177371448644345900638887098909118240246354800779184778633985745093011462101636225132791403525970658758441256652481935726423490755302416753752223758876295101768944001477852028584918562853555863711718214002488653722278594382485605246365788426518588429887176627811776981303371746371988203644081112602328699629373211996930887242599156117492475285056386232958575358733267657601637588163124891412612998523668090220233173283636442983325764618769802157811023024281140940540625264639217054532095042425767425627954474814318137852339731192730729706405056240663581137428797388524445766312378209551861840046950223533051657517110445444864273471268313788504514206070997504231245177169221963119575764261045976196967995494365971447025723474579085469202773159956364332132567842801925597165297216413773152190316540255875811690030726525143314366274646862932415360193407959370744672658248077664292970862206073517223528134491704073256327230164197159076853778222754294564330591344197561138955795961016464943803650438429607773731003888110628103587512103064914551775085913671359991284512430844991154442464726242416296734309319112401356283234596496602352148949009484659014688057394243939561749517622254891708270957140692634276852171464584936118711488868489968478998413187984316296346820824418586283449731213825041748551126917137772672817237968404846152355312488892936434340936995253984380956371365752712762171039809191828083789425076365125755967166016033694047762065493040694663270877433900497913288999484594915607378318141451866182145258719159695041996554242119068983453773982859066217504762479650866411702722931996131100631000721396956339707170360409589448377348785523121553743482475242647630861289241652599307991261405300723778210140357980634651766544706291101463470557675601017886358761607218090001635540764479895494591640231617581616000422099215539147482355605396701005442391874078361092822975126867721627734692494670183058503299725671437847419128811168378777655165281238847886424888294090379735431151423059716619884874368181233822866472366537608437085189209000714745644240045070792984162580289801743449379514328070049713594121107485032269202345839940724272757305541190993541453739604660508825013828235936811857588003508359467588652654659091603252590218110562428984776554717035248023688768138626162707008311090295820919126336107883619308133271690322897310722658447706980950385326229782679542413927027568080347218705130576689270786760752176431521933271108614256297371546417363921079606377525683454567917595038630968244189484993785213746799054011203612859049756486362961594198399580771088815851406441123919095303726948314017729907688577076822104669729572583243550300886240222024058385626015746094522249423316327247844002777868709138362946804956821612911313108852459818005386326429408688084185636303935246962471504293127707794701804388802730190374216564352910655898485914867230666160482564621294318957821296896073051571718733014255610391952139943722294306370309453877058467670603899463595436128464894684496045483468750566889160092727861763280580016053504917929413986175668672456024133059101095674845794286188283867790023210445249201028803368483228835313372177851346534698467156404359873816177312326998631883843460191980044220342116673125260461448280267443127585182775007229103186012932443334577572547414934182601707593497172818663486551685289681600663727930833530300983838276399889569932093338551586475032156960046015435322127041935604544021003633303977495040731736703357870845168806678335870886996903566146818389898918747542284874971843770616013130683882763022556902806911274937973910324478103092087343085565163972365654736363992470266177659980388038898859312733929215144458008425563603822460692459097794838999756915268660764070657499042918684715972856124886917591596741789755694056135629715826815828752900433299900188329083865599575452885611251671317921463647558890276271806999440352209515393704748664239973902461359031549611631383584910224666313214782598295492533464576111664843707016166223496970902155475656210559363978002126242176059206126526772664610095601526221049965831228276251298876614990746270151359377738629560464398135781400205492410085620836221967962019153957964503615644566388012942852619612743729829251736991755453428195530340181272717808669074480074944184169626227708448340897751126410413954395319115629924623493914969031961942722522665233548611496421218251337402650602896012399758460971046576776748069915867922672017003274351535162396393619853834502238272038149706196414991076884888065411576188821721395021371131045752469449401328500942352406871826096726094160627722973340121225685929009679549117276066751575420068026835110378914649225612444604955334306266546747822750220497015684899396928414862096164635755045203892323088579848254346728601466524384771253115941383381782183537515121326021896234568423580637287897044235600267113078958520174205343746828761659818805735619005821481234325885989051392124349238126600197533123549956135746176845704488367562547906592686888225835500991483353665028020270226253613610089388425981006124928955700313177205128321858708433006305408223776702991376227430349961143833475978754503562299282068409678728068480007033291308175341308559875033460828545044474283887515231442220771308297504367026254584821957366768189213383021969077135689481636466394491918894669630734938631371393560115658914306999662278466809930666933485246270298068064535348534246906461828342051775326722437502308495581204652147625924696360567978893509342042281059080392164849787004416495787889080051646478987813052094790189225890886408888282994216051309964701860077406345422755820904742086001725465286752086040246295137020319122312025177755413939407934085408758008826758663600647556949856376420120543958070890587401539586880138644454388409268234190358880084113481140410470543781158978576930456791967543847108293192345749584072641928815627759704219808441133739645041784414183968306045527587956117664575192833680987737815473066707661300891646342497722469363272989871503474303534129638811028041168783721181321634061656533942023870381154171657489061890927589923515109779151000802817905676383177747738792829294937719678351221616824764541814442483555092296320057629137013422757668012194671168008616396401637623588305606856264193846920891408570042287211441561790298425536304489265937337785783297463304795869713379470536476002580576672424588135687307758913178218329953739336814197638302825555846528124712718579622208678660566068367036710196320340506369346129067509754056858173106391815364124176392609789711385316613086958552718340932468449414648487409058740540658342543670204303489197840143732755379548038159609019123084401276306803856075548498319467969366606260599497974768155992614099045412031271439610876469521298570296945609117094981551486297747304879383922473612088152541377643245965630860164246023740614629396583107858596949992478097787362330048485494064484455665962367306796666945967483330269427212646435023905453824301658279871050181389679730996885231976871808125254128822396348691576977158593518662126274577205825450774057708150408148688680536476073031110291551737826720921579014955183775853887239541749822901354451244397013051075689651536644829982449541035857117816179127897900281509349186288712505292773873931905867859207337242319251556407010507106396359753173816845886798673840823947616352430991289272728492737201756255737888136626513587053835793278485861881891393398382464061010036549771691780722523762643501207017551998034211055802201390568388955802310004016242140894668027117481726099482227344417341774685192857002587254927906965771429596278882853374335101369414332558867470257327683036461035893669388489813489462549205230849022388711810274139847409298977960025354850044200052561386492851925889200322904018906932474337376151920630862635357178708778852804990221923498821831358655347734063562695881128569434171165890416770701872330616689031201213524287936885984130838827005025409145446647631976589535712683969674416756495275558042989017254063971557113286998204833379961356380003188329128883327778977441569314725156399080089920117354587868236046791058775204116993545361083386723434182151807459059157635597152833890880674242476362343827384136593872466406594770781499484930571204935668724243151092641691878423475148527147105107011210383210480820112232242187514348384419079422239667653058286620922655951898577949782891178091013653176887150819582180664005546010750349151074603349279591135266632880850420578367781798673152514127854156672846752670044152686674655384732981330438064560981620271752440547823081717547239477563621397237635051968143965527895334234993436618692825067430085483520616974580938130975538078925541122568785209708395998473532324672157565481263848016481224948838493213442548065463155929270100644220473799844112395213979531849225721925673865682209829989033058972061446580593542759387604048441841125199643946570083604382055235070829094139725002347417697422940866218616555043406206402000312909435872733780695001346593336540686117354683014927331907461871945459914096169657030307103862020625075916601842624470555155211684083882314686921108602984245449916761757295362757460178384274421864476529091146530537088887596050537541544453920842372589461801652573450360530579076028801691102402532199397288003525684000120485425768237985420150941951099313550834304314224520446542705105274430441412468051859614984330919082326684681076752579717581864494154798029615105319134595838100172095949810621455833177079506454886891549378805132411867337308922790485348048025538509710775054481000124150793425815894687098313417365637162343653225141527630191698037711736801438324505498670183340978827578419812190316586030157697460865189903697180662936900529482749628510365236217794107527210833311707725391023166289930140479015729927069530572764119139190799395151577466820788760316731900277131595119695904106099554926800757040944001944559883450718789230914407561459899433849344230058928064250558077820470049080621050106634595376436760214442305829391510281894648228185084145188886555403794991219455481151308459041316854944777403556294648353970940478963534078199192834934066497902450187037274010747233024042965406867984464051807853440133180721057803965728809785863763268574975004592160250289148418217919173080027770196031597515941983674470722499356183973524515484903204537277555311680980088814650765802394641364157747643772744174095234755061587177253387466188908854043809518302072994860511499010557476911289948911468860338251193756107242888656926963563407686354186759210953274816671484212653881172580188324340974108187281960577590081089125936350619186025755868129370830240176926430444829450153942694730537291737901144356611621714902495057729695693079542240900778669117278802791077744150502094018127158412244962741054685425205473483070271709075671294150306262106882838052407895305252958820232016386752839083342971969627278510617907214942397261950302900160691903713217052743216219368783709779934819405911635320623369724234987988357213325864277392923667742362422939796012331975146286266664381759652910525265533631865282588582848133781206208133911308427198323527292157398266116216386901665973123978482245428366624165282221360251133698286532564331286026818694777925119747842404607165785057612662937293840891172051630536445064060809039918397061884374219838405200596131934202708533752466536779558598487174361851243911752502835445869689115279823218900442731595854515076512620353275031282259014176558990414200580795966246581525887955300932285534595349929944097064060103694954067162880006079999722194679753629807475515169461708087339894271027702377055460191100675857640914659710587513032724953620953205090958024290373265484245403780485341518257231824581312844477463082761262691482182409814833079004594339985953788413236172755897372935889600071710437196264674696281598697813043458051258968395258223409862913290754005725408802531648048735757040532628413008030967464492853153551661254771655049108357353714182786121642620061198599167886569273764332467834771022665162899351087086218936367314607358538916340008247626904075274560620603350746734399213396407317596840992091250017027345292076677404017338186520097313246673595233745538900972812537663865790078740932600198343384882168921895330027133037641228016347173614336539091908280041648618426887967030252785435319739643303414425000241041043209255011798044154614877732042773937150145163646029452800636152456282027229737778546579386666989653686278910647482644810262334536431444305152670051817740592173694068449168866200651752968770039132581033733035408562055573123839676975395461926436490694082080243391937320832653844831333837256090317408728793087375654004988033251676074937904935805164156869775134379195128047112987776225454022590840140366423292674633805263996331653171692243908089254629819498031368470679358467119302772891694055009523340586753990676763590230301216665713818346971572569165130880972746700418845948758670449423316407780496871173371028065804176092862442240439914203015955999225771595489000923664116730450053537011722262566927875243340198490050965130678527011378565006474563347989832466610285533832830977838027676609481665713145646249653460658484189970380887155507037472049361640183865243503483665059028110254595800144694621298333186641761835354048043061339694506442572449920036105613244255826590242188231166170545994026471882182722537337546915238623033570089050329720069547994728521990958401201297681105290751757380703918360456871216368735390572974608599804553319867007655797468635179187765444036125068919158950376430523050139007917252846748407678597366832586785255770850198803147737336868655189396974929614738906217283471956119439552932119943227129794376127161977054694832692891963636114935870139788364905791932915516409197313065306026166250369368686786874817519523076605581497346705096195540397070123142775294725456318492731133903372973973797639129485628787354069719354287001224477986155106978840119985209120322630324717138484096049136257461684394034316981203982742987190576507597899113160308121829369734841451370465695187953169215910364006226402137137853393726459908937017222310803301520151051609576751079612203899092134862608272697654050908182688573449474227888206117862940142321186621467832889912970110492318858883297563494350643225329336248841039320048945550541823478752036389149089266830870277431946546565921483155221646321847934500166620138146602295763093624524253365829790380085093306559933769125820424793032159989042707946118498663128901926083936425171195661767886821485074001972763546846465939638083643771107844047170090245348289246071374617915987362654873737575713332728498446939609039407818602151664624636193414940500160029195891503072690176452039729269363219326711267569094395278127334108781866138604267057843337951804920754541896318352601385210308524686447281847508852907613329888467673872761314421203370776007368548341761575393486851392309156351759468615062887970823640299648003328786759718462662258545996844453012548959798327959385344758398795335533914586824661961680605708310616989593622181793824815079022691284858212349770614098702576332223419425575432563513017815185841802105619574628783953597379301979766923082510228560324821231208389675168012284499728039324803203057245451167644330294083730028514747578757028124609508420380441175628658190931000689174936691557956023308736061630632141429441471866626687706816019306236049422164546835760884152875767484955241105169654976106262490654119830928494137854464715025267646514123260660768814972467446136446320110812241053282515941672435881966499477197558704421037984533510000726067526090424764189029690042988201206178655645525479605203010162360336207612490806682735501379233277674017219753876240909302281155295088279527947730331739301497379401332004428389449622409984626973492439006026818462526177655683425022961104364884698827111980050968152472717764972670947704876632956764358114899087636912601357768128154015709247033884076022293980125273794322099777285242150808347008097825206167504744896331459792205186056061948164996232744903776296458014398887720936855447089589763386668547627208695295696813082544885172661796017054540628169796930814492565327553171107228538592696861966572411660911477574193071509189449800950503589115568023472515266341238055396952132197599919656131210283896528189929193100281192200782527111807388538298346446384913152343068487010871650143989968968233007419575724493289949012615764327012977198997162592005963157751598913662173487826555015216282815977975601375438610573460583483876487063919076525879681689990748957009288706603189924685364407336300760580016214488816249307370519629625100796738978899855971375932444523929464695293523495862482029361664720647901165839606803252826642475139338803452579321343379218279831713280550905473977423668395980334450406509639946934953160170781956496170659211003770983826226297343840420333482983070487052851344033620229926521332880025633705013769979402028099017470123773938182835747630518086533372861579022667755456349957297259042395088712518318237687970161917872012465180207245252771341448744727695511060437866746208533043931127008461519645424258214784406220709250538149777680079584709095920551819570735755244468435990308391666183716597584848620909291262413112954679381568590251587498590850329565730048500111797485541113184044402771853260818301099303412036457422613808321527377321440940297213560979097653805237055491685838067181125554155396955297723076210221413170874093612757038316717784111067383606722228649497022506265262316546931693101618686318942486888093616589301610642331136947095589244908432836125283155432387054867783936594962513566062839045968888295514306859033667612570430612740133521284282762937135809986097681218453773472911411207486105447144310591963826964699584983028555208808166497841238960217560160808586950006394729755629353681191040683917257614646382454727524052234082112806608418801316970391868452838637182269631389844726206015234814493623352659837703078460257130302194827212830396841594072626585093674293805830217162569895704462808902700695404434417739897706685325795643813413137932895947802355050816716669582140753764542000986587164424346609924759716986482515011956085706070928740446029154022945163395242281857120062814857066155281820503459045211748439917915008553285283994586499912618327171813257336952369024998289004973845721347664516592427296155045732939609683510107261748238873695744134552021343156113335515614459824414072489191099930754257886756009314415500890040859825723784593012293534461483157413893873362012191892618653735874234247315221674408320617846166686569859116434499911464547805302380918801480863697882310905544361555795856783309717599279724156774390776516511603587714193502870024238326120830590506504367103704004554112219381217219774675021846241859966407772270688451405792094995926887609878763926249075063783523513416320979793601938180865597886290497610431253619207080811362586107906114204788597614417284961679680669386339613411763262469811979328517843759175888535111856508903868519519907557351094223748628168360298237673832943286370109107166946546652946786816530364892544667030188026560665459024414451895754795207519984476833102712947100692665873591627547740135197562330713653623549131560068154391112708942030359122165786591718427164687394732471357960399867433702316894801996102449291999527073334315281206761764254217151315137053426925559515927795342272932525253312672967430758604945850203482233942903295362344305575614340427408436676656674694684064726942404765019505736814998789338242235973254290877661569645184117612890340361576552598204739633775851406853885399740806147011898662934423627554050102547013346280214653113689790299949372786030795576896228710747916462424358588844878877857864590229867589193050657967582535082548015206361364905241169845057555699189149229329198863295904137182247381399379289027122924916200373092213911650948931897609363676178234551832807170018281344544589628204970248604815287504407380608957940390726390726432356776544266351485963584299110944943235125088665940373015133167559783695961098584718564703524735828121300121107615209377774793981324748099945249267115313484415114972130079168978001137866160985138866475912159199031256184060590962646532893152812952184059641964043696667096294510156535691586387342629456605841987256308889455509978720689566504825394582793793513861503113315430452254561263582223049060016102421174457906539815030235217068873133841816019873382332105205858561278206176602897839810367375184343971254571933777586053529041730535464320096492494430848795386562740392712986099164271266329749375374389754204513436918566758036103791401050018132685632016500831115210426254901089560440590849426207062594246859621323586994394664308903993828706829662196610774908852044654055395942905808703637955405188116916727217494015578297566031518974369247830131395253677000397162783713118067525312589305072878161463531253084290619831754468497377701438139167937329235625748239294551889207497817966609902740197910525105191240389552080847753632283187521344951752191426707160849438358951071450653691232829174349127706717194090914804509296039443529606592698427469612147396057200343103685972064406379585469036595925343233064998755917725715809611020976402797475025723712268305756217616381067948385450957484997147619126715605831409295182128582212385008113266999693600252134726422509390394245786533511353915888920330292666525128195597422366010979121047062851735971628627357011627917397006202535715062550261834968018136841760508537705566312340362771328947860616975930597407261518453874482975210023459429064352963481690913770190420888953228984745201026921842781743108290840629429271690945234008492434447648802844262746819171784958461366724137654924448365257910470802489669743496931792319775907930064693247447763085247499177285043153550694446275449528784422256392369775266080094254485927481118902819207238077830516778226209038408660744153213164712597365679968900044224079517447797385112991184113294593326669485141504225586212416051789546426465589337255611506849759116154162975139735934919245178851762834412752270105582604472262554119776806183667503764172912839233897866225060635019573607281356795243814199117934145601386548178364101505617801182534126096354889708790194432511248743003638780342002177102546388871245111116546506584870095463869401830064287014065207943412377777805335347713875716887043386685699153150539874445289131282702543651169148915702003517916254271650373862834934119121275656212422444830446522431317989817688195196617877226142096367952342699478902979303146730259238939412966565196677549896279124255070512028602888801430991329034926798420252569020313602869774988106489440830903296592355752298672840765562297702967537535454851229255483503636699270201266993816174521181227567271513195039207311051832111869157019780929992669207012577998003314288904125081412672500027204862236220122532770956741280657663184154204014853854302665872997402538160895271923308467305478195424320931781074181099918186905781948231725783634984881745818323392789163724588960063040143303755110000668702100878110221010922090769840740576016979408050376044199773625229048954289778783007292023296562943330892169116168793018046952517539225218157861113410852319518236744884288191214953479273550318499857898954734226696452461583932517293478281184277086367235351137438838558393139819089596539717326744925538802852639137765449075374109765799492860955674303645118582502570188255150861214579921877196566641938189744815562730956257108771337168526471653275819416260820763865076763859059681471216390625348596548683903246856891118853169043562180419264273535037663997091465594722260623230898593992537187114582982450919841457527241373399443323933226395761399031879781317884052324311474752607405611002894712658389081982570070034212232923762299510977191609897450308207785399313223074593246856286044774510810232399330434820475680209064470589029515502794797797073383002741344200041983390014043079051133662911129512966423229587811495110436139829849654447847257768862572015486441945102353809556638941935547483504370259448955969617475797394084248871192802241725763311395749471651549544162298899529343056950228638478565036588933790752467663826682663585313469710235510583015940549701225348848483117322267569202280387342089641035944159251729333899910356584394441075772084175300782663318059920387011650736842914472344384538582094113901309401942413069002451609908212803331096957600942171686949290414593143791166283910794313416449407952861045563300525656269954518805898436062609094675124993274284415006372131527543363317921645545117285936162218575531861371202167764611784720574734340735172538416162614939977048380401412594137185891316608161178226730930226060698065807201269234095143323165605429936117439331609242386658295486998081857016251551774690729357336296923887434541111889346892996123130621498095833048513131608013707254436403622785931314752950405350475340169873541059128167491928507014307328504722533802947411840851076511806841302285326991331711592147304822580077258869999550209775761585825878798583834499638815101395470726314984029045917398035644907892922912686986620696781592842746809343882821428197868715367312699710087432241424090553298684740723826628275040517032292797031779515053209863274571917128278140957991057048663387284499527674764006486802938384724662428865247642864089995025053213874707773183182025491647925396270515196188538814226662991310120122576007276538820789093273784365395380632060978119657078105214567196639398404829694689671536270026774337525026841752951473587927852871127063144510461414496026261444198492797587746437207244678705494180880812218166062242237227712211854510855228587799787640291892347910322818986842811722933133576899587570468357568435083163273922192872512752165746248723883834125910054907916488171077874987304808846717314094445720283504542814561282612836683560101323618070601506059482277749388187551492384261856003807681655251353013842562042597100596628172276790946900907452551321777875847510980963246948841541031269913492050762418249025330050041536292929694655612829806254494314270672815443616935446147234093447474709618248284382461793045737189237935193872446547257706681797741740056544266624994178238456383064144186844712259056098210034418296677056860471286032246384181080352741783670418448900943847830018086613513569213327275590536798918919806784552528039324986886363905843696074275935216285682432117766015684680780352041121102739975507014949994623843899141561473268437659480883980187101032323834111055828093371743932029423474102649350740267703182011647578760162813057337524330962943767746613700903250704638763975355249566611890487371812587747408071234899595645770683176747182502144401133086806376183196305764784277075939713731632962714890062541005068211593808342123952610418986091048720840804421181830934111965832719863013403776676531490004819638467905103537711912943471539080213691860489922529434890237757726711570025581852918445429342941613629973607194020510562213084176302673480216471138103523491288311241197614664918315365847771958686353989067827535084659774477177610466771828276875112156678133831665879799779100933489704140716078648767191260607451292255830195577139757207198140663904463986306598828650512439987861463180211683895702829204367217438914019842616994629400284439419889705756591949213777220923888929052816536667785875860477273358658629564826593720726419012483394416481432769144248191210814759111910374432903378674356047616808212765314891318971123932778507541114167714464834474236046902821068838188516907588106681194273324902406209679712468020935868721304474874105607226494365049889950811894974274731198360463721177460124309780878002384316160166504398302825277465586621415410209040572211444779968625022707373324943237771944552757493450960109792979101646261639769208002097553544674340891335611934974007160373518984835442141187146342956896806629686169809924587714850113774096280558878913006193469705518377242284318940459596847538492266628705089840528030029525689182468648275706131378389116039666529004698110425728761757205317936591149745888481933396501725884464439583241874585384393691519275405392003144477805131752297551940255566928531890668728534091387818503443457806687973621464144994049074433354030066944576445501937124485183167188184465636086413263526519625585475296631200469282879839706900416649653685335261819065166500977168483545686558285073772323645860692182377964857965032280240799935618987004716981470535159384572931985014292733305906050194144560986489809657736006442463183349607708566454792384884091473810768515450258167393059641948336561203549108580747916498665630849975224935165656112226895093822410222905154700103173441300171647381476759580432971500608875789104278554565201121035198066278777203198746372273825835983373594065030984495670854797175748510298365860286611995825864153894570366517326556928749517479029541261366981299106854680550607968879894292194439775393144972705047721031764808986434717328794276187446238415610993581002942528810271105585692994138223212362700146810394712415368132835648895299324742415576640082935727822945782176094083580762216500790785752106052739967395910396972637086003367241466695794988849923615328294306213068526634504491217467323091116328801161285678100092611830487196257948331478139988669195346113651523184224936921915207795517118555568441837415938276999851593432804855100556646407431232368484642614514289742601899445713790598999945706850608942246098591239005131405629178410960943348561716499615471513620419824448790472151277377760227721492391619691000914396586583340246810555578902754478283317962990660363416451177934759527376954117114055733623152522966970520125178286773394371644960165733925059384404706971374715993576378612139962044911672935507587766933386712443812138086169192561644623813735047701860041889520944814815490387852985383205237295430650361318005897794532049829691060904951606828100716043483110159693706208386675826813543660825837764042445308714765222805754332745446693038263258592612592169201601776571328364186544857352514729861674100262702611316391943504343674843600366578937861583637875496298888798787007772938409707701470616042497727969283886922332677082217650722613714221326593850912149554015117742966448651871263145793465827431706814608790533804322251156857653522426429943395138910536854534686038297752298154922184151666416192568506980494899171971496026896829925797656606456226625258049734612866254954080192081016522046605462616097199351786860136748567606980948337805120261936136417018464840489995138147724158483495755079476962922513235241136473317278706655253543883816587762510314843408122042596568558893996798628505849379831729066299367722919564524628348331302538944006396167021217488725897385225921697110785129129051634090524586836479789068415437214158429212874362407942860729610890050820456837370511942631292257337815343333593465314215982575222174335555335664113713585234892152749296308110673847312518727382063370084497334569238847320295311786261902228999935207177463887650247678452814209216779079776060761508355830459849316114593162561736392494816029283295849217928891204157022556532935345165279852174216851123094487582992427274457448953675372757663057107947938636181218132966286402863243832992217859987157735013040308645936472230705280276806611596288033475104890460460375932222334728665363084401989122477710915086132799949795027213275795237964128688261954685716678424263456636287149832721968866323181856830527419869329079823361754717894098649956608379454369622554253401770983128092660184364735890552002053608309218736387058056173343046675001456181944596788451058314481495835236876789811355231102066015408468148023684577403510707098467663090466649728424021998389421792718572681363117763548386743851040769909157333827188560445823730378647779673247089645933481373101019421075766464974900944004819965725703736655091612410333422349214977446959533535119714472170107920372902715659997325258454247106595569188549580313841922555557447973355578396052433896110303426543501205169461884926640029576351262927079080068287720369254411752768459549324345114338412786613588819813570391155586518684505359266732966799470762768889336043365662855380119530856846061079424615727015257277914990245452820415963777508547212188278597649970294899855204744088172653972539372651840194113128066656342154467755266696180236933712877552908482885629454276914886913231037359106569391538103313602208706429112919065802547328478226413431263909232760393576304289239697611756172245948555027200320269748729617639047333683462771813116238881924819475194412334796726726710978221637995276720844742871138412517973569624797279924427957694912272639157876211609625097166218685526235892853085411241068054766817139409009458667216151342381180771751476355122484007432535539488775241341585056255199328012030452520258209700796602818029206289172211880577048288269804221115429506840921863045931778987718503428223373713739183463227157887708879334827332903681068306107466128043396133272749900703074836508923633524361300193192624035257860185436093407922255174738044036909298636916095226852794038582965058544839903663956650610459536656398104466245647084482867810316028361873417206956071792505554050589922271328552890627910464344386893801880298516018353281677161331541261986942526720711804087908440948060437339754294070894442466389584956271288176934942381582661781387607489153929477166542251326026600195186079593884389751709059045182386977860470443899433951694316931116040044308868557597584774085638326438181572829674501188101831983939092736555191767055748664611155528270736021768113024727453223361856658201063947863195643584422082077800827987105383677775820359098175873151798224849911860707833196212559940084154948002268462262203848827873313979859701398100389043149117408279826727973047945793227501305001255804035588922294490969615431819405917247569514824763277126262323894304619911497866844333393019831125559411834817574536932738071089844657013903752041745439172626915964755147247150960670946451544356337846590060143692357586777971466122906271071736726097395121238036791271104311053945373062631410263121545211883238395709593960472801231540672675080723767121673236694611902472777375100736434717384242817947852432163036313304117126612774664704679801754485583378877352246525990056210270150612988213548011549729474624748738985829668943665027887506293875138529661710924933747571210271545643918840043626753311617039729493724466660375376452411850043309351375845912585371358281078897939594089112258497218706381699242020519719346081715406380434098752846283971141488809235521405097672569443517915340826752633314997134528719780090274024142042912038006576829545956495027775588159527832557112861311527313106582284082253377847907941785573236066892931389542785181911271923744250411671320471654685695657488409773139870058652605236083363182190506898204616992319262122947775087475895722281279103626677084089527859768557570940421996259574340958645761060904354791316172319850568283604669484557414134011819336649844467315410957990504864551111464428971855826569140433813218373764527185142608497159105320746896128796701316356207341449369532049691451717559582606992900159009649737602414270168231267502718083080541045680365190414461776841117076643897393052132188792016823692241824733149604970155208401221242537189356908112167634891285725567189255370297452987495172307047489403633435017791273029862460061356208177509020613603692133107086329770876120723626387940610604933135989065258339993128738360354518739208571938234965416453229455467855498222298881311887900954749258670720692596464878315949350317469367752429726372197047671464236372350418983321734108929256138907584243844561234175057196635570754738745328254119824874304585225237757191783344632125408065934369434102853078800638341637430055892528913789956544224397803315782031330903405022414062054585875736528094267436987924992459601027970474770603700682175968624892934301957549674795463832677643146486428384319626863652836998813896170055829322318700729647661524659476674309594865704055811220201041255322746725286130532930400253039888732994063913680127903064613730553689715469167282312110625024312516376831636526274556699754309887943957268035298803746322011395434044484153181955718841941466166204546097678525928960686806728414323887196857787994963622256628794040467969914462046731941290308290571561483090171950958880537071541883282642694560651852449123096342050228940507205311416340486815257508680323766525773336159911509090334614114961011587996894217554804149409267132162886107835369078873621407762159387005180375218025649136489387352755790806845143790491395589926083918472183588738802707043478162264072274074942105963697288831084187851665976031571960428046250706029407096516579882025676268133104808961455547411309422850673876934029475732227838727700441275233827857096712961610216124294867493738050912672734037743306654761694810331466351966299162364197484955217280540773826855822795845605881250070047834082605473628583949533746962643782289677377513533648459976978486730754951450696327666592676635854121449241459547319679741388525387915704296361917311017309884813050862414462406397155550206629993563531773475776513793235812275864790995903014507256872209996867619281587961123855846576968973355153174044180546963103750836621939647042606520182068366065553799992565267409013991677715575415748990180380774962269024131215158469219943181645211165472469267844730916820350876054291163935933278859711984752493894243537560032566627646332827743320342780917417617381148081924399551030234069583064401909601917082454765906979552064659775008604810100210296871709803418691144713497952604772159448443738027211107850934498937480226208025594031608670250835356897766163699579184517728531462104163184799125626062341518107586450329214652972447244784480645094683734671844099931259972130461250721091839282809955649854661072881901790377913458065647694722481610805642583619030218715350155081212065734452928257485922734354185932257750521491981087586902084276934987287177204022395280403843638173254825430265280817420566546127201006946879817571705545857252776538043535072446605663184506604907901127993460599426328806077013601435011898651810696431388422978228940068262781367209067694956883403767645863827013355082178154707244814097698364593323020170764045558291772462571343715633325194904272227024390931136332307567760995935337030897376224211436329497839484812416060394381083075575750856827680394591043864236059563804126284003507198361177738491213935605082961323918044404599218004604404312217868293894875357301579008470512007291723162203279825949084740568292463998373989864771104608025924510424512172705502675094762404462354592844887919690557162630356975088320131350748090281798688163943037116388993177979050801567855230307481682845220877750632213318289832295524712579616110824922949274256310476611287507120258872004642757060588202107469491073367565352734434621880444510227234386536871560830006802294441210298041565146449731755067184852632827889122395143254122211321223720852790933025475445555828029003564614103306968701319290251162601439771673245006070767699689732922417018469398179619338572677320199374556673678857355682885102394651295999973577881533519847568052450375573498940163883698429123766213197679848254817331717578131607857446235928299255584811521210117392584298750085272149087298714467152273169096386661230368997499016199979835864535313346220542717009251174408804243983561493624872465427824502992277131042521530576946243593779146897071319910188921607430213668845790595879498564455821988397382226309576366363826053494147521421941461835323691738070769387887432048357162266872465671734839871216706323805881776091101084615191931582711342425940776749896343136978684566612039031524136246933128131257054434097324278704471178450827459085650392984460703696815380125075372725165248915867153854439491451460749355156016512994901111617794710537494365850989037112268941417830286547230984010376326936837984165072383856435587573719608101928314849567509859614113886328388913963648838767841595448739379119263803625569148326530124380279248504492490003390956274712358258952591735667856743153767828969947727417972731479774965227455906513832227157191072451042893970717800168919014837994613602049346528286946033122351996349603434401730862353836937631684952101110878986155076314957726207982521890218098118597246142401424754881270714123074554699100861507093992805291832655828719363174475415710019714636587255108366680762860273082967265345768646192627289538538653817038283777347107082517591919196387248195705288540832535189595148340189509694550143649824750629562861753745841276216465633025959913677276784812128417576047261729923428555187110073199652069934160905387217082555931025987777176101140370597605953558878115460707686372311711839080072635222383860486662789101266332685882204836573367076977308784583082240871530625489398716951621472663348613157679295500659731828483736341626166033663180860124201692320966937538402032470785296317808144914986175170000151836181541280357661142385699461071370648968878489208301545061282095583221930835839609361259065863001638279540216753874677300026574370144585845161702318565794027533979264229305335681182845563794998371719722252294569595789762564750657348180858667126425147860439390561209660474381090654242898524707698728573530548742879920354589038390804517844446051960286308229870401998019704052907637908630599823904674524123308190792352098891899604210690335349005955968661471950940191558074090981746102351410375991507495009284544890515705820670296765199444352559318127764041292305401626972677054423398504224324122294852403848091235664696447809884490329555072487546205465577726989748617273722460180477573829484437803749312960060973512177635583730111994984339637588933566469611119039485299493168772048772259245849152778500959535693163765612598044872906478433623896455788447330583469688955028609632563224054255949766798147704603644390629844321234389025575367437540738467986876639421773240031627732150739706953462039630472258155358317313968890155180063056220328260420693862015139598146139305407424608208184634544903251884378396908608376293479505134739702080990428485544003482265297258373901613813577054656198447740445773387766455851982782575846492664812494022595147147448933333214538404747331087321526090931403102005670857189378404646116799718493088931762085865464388722382314201205149266849848654988822159500647480434242392429257615008881830220749947213366005520363193306299320005570166544447115664924796974406373179661319518983300761013817252353673221394954406268283653345991420954770999374018790063054412533651299035364815731854764463776421394753941084070786221269891443219359563902809317877520775000081004141489846177464923416854222904314622014441196244911810478406554352515234661455345585485314684117908825391199737058331514989941576251799686831886623904855521618674520462075456431509489775133153368368672386608138794945790063379801041862130095435130838399055530565966991110908595638535744499893608490833824238395583413904556589538285820229636828527774479915051336076293554620193801451391643707787114390359861540039997289932388987792107346852879799363729424163527394795752598537161314991664752329456953667554176480379152295874596511421858360630093606869094868444004370213494736230077363266817330893132660602661857647787408294530852111271380078986421087576184324278162478274679141708702111074899325858688309664194763569674562730441286939894468084933873772170368399851404190702947354013625379400124122181669144472707183557325731364517159273088415648259651717315382996861073722408501029306874131143886498134925024584345803668401576960524997875689522395785373923108766760088817305392051942950745610199759680087419301648609952628095366118276617194009197387880371443403098745863958899929698531846024183887585918452179632170794707308650141154474735713303925586616226324657881435542765739500191243528694184330135877976608183257732902719382690980718707996701423476791859906212647305026991786822787373141937564109201812658022966919985447571040695179501503202985782411765895162598464641998993389900300270124078382176130434737404092364725341669827756894499242282210401434215394488880701023595126743289602032807338321033695853164676781663824607630444201394947527469683289129227279358414629968972821397395553402228980191576407277657533643297604293463923017178192207291156299823178611489808889491459784613708825552346413442133467406381782383483407967327880561227688136150408923626176828925115875335728058720867274809531898687102673382694828366121685136413279806355796481211478207632246622639615393914794477273497955262660128662472410134554667050683064832296356905842822064774206780258711336251271732067347203760942463713591276893767047371956764077895004415499611241900740631049214362869121391688135593332678285172520351357722956214930652088858956928110191426722388615287374198632512029330865172409050420022149107791931607235226022250964942906059198626363744237744008827164578841377226312348745360582562991630732064793417592373432404307724408890786991687342148905175078608266116560800924070291250775057154741623653534190865079818382898331229268942859275039832848562336162380240683336812903778750794730767602276075907059518065003978623135918943033275053520682794433779748649967318975111376397086249369416894872358414118907578429914399442680564204709032708784387527902553272430489970721534710882619801952755079145498763681020698937711499036784804435702830852782510983412429446283620806977048329662533946417006698237358312517308567826275761941202912335200605501946568907630840651167296448588908641325652932128417893997793267484318782469787538418987772301383660334831609016861589801031162590345381275089213493386452026941682225945317180203350813588778144996487619211317565326965173455966021255618195131944458178075963003788451827575694693688622207541048633995286539166239509172982538395177857003191144620750155055862344698093567987274159669498728530276554737167918777178082033483049756967710154073735268774804128895858591735212119368472102116994981618232556173014030293060153432293321261251292000998619143530100944061951316425970769856716385074864679030024796397871587835138928591498720892230011221355352499662112308308400991071649171716772026807573246945460910391760175875686374914425758599771799992418551160934729389307434419299392653765876434213436699883698810389975814940610569953056410574914797864942994302845243395004652222243642022508949979123058687170068338642541939108089004714984980333651996139840909297857916295210381034731158142564202150125891518038998063278065773141700826994933590256707133638728935993136312974174407760661442083309829483490974306646250367919225332413342762749277424367872324827856480437440773169387778602096899942861521683232144248377020768051879748738486970843564313873302182704531844093619294264916307737514159239656521724091233449547841884711040817447743767195765248081277932889931330887817777302348994473175836336280684975209129694708098085512535472214604243558348106523752936764943609008476903191091511003262630239702671928974514604984425615520981021952553316228319562905159996940338368564979099851647137299080611572703103127439998008488537864480570292315449478729595235056757616806601542119134042010283452537269500677270826266381038217978813460009031256134732396565314255470051416539442560161085793233541789028821273671164482781673820348076228887432114161703948523204716796437572386136934299926010472706375983538743136805307349570208459027972823767355755945239900173195321600728246236959017261916318240526552517457624196196081719839946480130294692410392970049889866221998562733244353490923448770980538777393335280883214044655571728689452114459343328767544725032775364708202520302534751202477973826297872688313764121801475667896312639525762445758783410947147196337376472727649833575644368680469182936794436426588071387180200270112562993113167681689986365641087118413341828217929153885061512729709738541305983170249970049513476182628552917585250901285787296862160407852635342885255791592433673437492140262733280483964329964966813298959766437567357957558926749885704803845067070603520795553051560890153750537414110993252744514474003013080804930454437203841709496047590506349599564729835423673379780902345166666293548434862886267627746174208856036590509594682346778060510651475298457084378516621910251810026439101127668331560968415937135197677104264367344428380086905812295879709050414764637220112943067798458314842344286301052646305389849665533414117384870834123361253221525740531682131904048581416202474068067556276533563838390006036188312581774194412729257901736392936068745299250730128486859385216855627785416692085367658919690840342850355836173109448353192160261192684161969921307971076857234144832687878243338488487095634718117788125978545875578401321863270128426886670144184468417096604008482431235152082114392420103353735241216400719619850535051546306381278072145390159208051685372219206858900123969361443260318005794914924088427760287362273526071349823282147803703453724962430378616199577854368492196783496995786254025182508251343326204887905417100317739088571867342475887376577757235983851872157604470619772011441798179452248599032453866551070674969696868152166207592525257955669473631086923567775613678871069413189143033220772202980567005172523533315649607575698034315357540556257125289033647302473949004036080311150613851657348785347841599826111100935672254477178786725980965494136137435891951970754111795050804297028457747297441953321354173942528199039052405509648392559147386771664498553190747714260503581275144002256268135409080203302776796936937164283270702857846145952634646307092322042934753416236272475884164344669309608302166099441167408137430112908277063911089227362059230058154837512244000123608235285731583754794278531838916551400198113957994119211067887413177731084833584860658830384228294078512119062118213974011848238487605826320926180106852170043130048366288580444055533324771195044501645132480322080941168746114249514042013486693524406077273935621304042689345657385079011344892070253362006258509111799731456294930746609345763981322657319196502991950322784385231363533846954767776879329094068713596684452675441836352216682570834704946669552818071214146271991241263175435858223404930704988180622579190300344548639957130402150142354597575337375547313634485159267832851223867296228761625526013541027340161938203142205638897456685659597172770692151071319395929108408855354517650874874165154349158395303823392354208182769520453357852328873105855281654000523107088883990485841866589343586759324879788059574693484319418745307481787667911757459782253567055682753513991955023005532571501747602386541500075633701420683203196025993271964198532182275843305474126341182810959027309289597708675122876883684743078313227769929617492308390152232885578573663241931529870433244292811209983476586175793027319535917115687350040206800518064866075796141736005748682729377825722599070336830190473021203237612112102717567773764369112016583050174937082378000795914483048038427383274967479082335916481578603898831706668936003369207753022961945313078626851419488714688568495328857332028727742987246393492933384368578592183823826172827351697130606641975684673836295637791390288008209433745821006070494057893135619670245424177237681615256399324680692862636819083165101361691886886051739992801004355082302600902189272343996849459721017768553979430911970021170655491827460082726700382613348497691467167954422675984985871996685462265330674467765034367023061510627944504968115239765795943307409425204286368541314761932249054365513896797975508342302952661391044048248015510014655245758555123952184406490944381549026707620675976235201094422651113097399530118776986407805521285110763066928796193935456212650258595744201954667088554162691551042824834018928799367721878765958101504473814048910025797560933495108663112258616200181332227634912337851750481127429863695435346895180262685609811296305371980185013033019020110825618003236609203702924156290950638294539145991324805727455836125332622825746348633054881332418688158245578982470341770963006205129066470261518439520842336011027379183882877642747340358143734130652952221377118186790447592273887450709070707864571932594616479194612138544220686924108178777672161909070905951103978250161783585055939569873113502482377345338736434888735476094149344799770802981337575733085882780061934234240640829577409957562786342937129537072716936424092497595412999233537850221826291093305047979939422852806430005731611007639282759810926932106539125513992541589709085179269615640273466794828570370212444691866386879285325533223642968734740554106797310025071745004329012964078864291155670608759610401476621690923319749779131671201482723242405709943839624624579542804091340435533812268374238090782261052556967705392999036305651640512819446787632262813241205700871538407858375134725628649736076975296993222539211149649856979182205859785438706699719896437757619950706589957482073450810315751695128802537507226836965371613646978854403776094950335112444629985267433003896308345663398983427873609744366936607625409106971981711327204115853452846728390862825620994100030103889504954263849987675503062166426597476147956106207325769800534415608206224443938116107013900243264263978426986385248075002864714655373562627955998471836779474787033857992253741624778905811343311968588209425469465280759217005131763282595080364614040256461117873067823737638086403255342239089924211659306688833642360019439566276182934861435138680255958866203301258365456993687652477294542508364861809947044956659397363520623477493980141067043170467044661483209164791683143423960556451495565810515280211480881680097574123731464424710928194301562627181337979238780148034938909695275229197753973080498693813820234657548129435137217617422971078207114662400481712393052748216785503683241563353747779339337545277704813580561787422360864672039825989244718613310824433571860694518770728871608549782146690255891945113232877767502053964142159742172156459877777920190551616194975956457905035417914326420511133707303523484505207205398555571044339333098817417846211593885782155027004920704387515689460133720977298877762009490903028287351066924664092386569479886342148835516647077969845852611192546894121923923279499846072720926397841039485798941422160662465358126980179040397881567993501311983836406604922117968098765733905778887739077960979133845900729912927508179912102498309160988934264457972530268430031835682586093225767718755653534468383322724479457743478444330377278044629713613217399600301050783135187374503540431541228960207234387836305276453068353973889992786572929785934296973809649588147493962162425080111539711176259819213735307282501279915487557064453197583865601406609471463498366926152637577971603243968816771902817467053873383824427325650840582625017702490794323203516228796185623494431515012036475918335865834817770059955134663126582674900554964007422834639908109921888568269768843573906868451189275449921041441070098331581964067788585482403943840927437985151463972444650647825673136039435186570661036640705911651792788488080134513453051701416907384065086169353239515916480854976376347554544958562912533386668636549268052163106174322187623469489362885843994564849082461774957305028211072095894275395744276650027453129541122883639332712804930723759949383682026445244024736042098523933160779477844841642439129150062363934364120444573516542996011623682538696118119418187001719011904178786798207425024492836568798959415546914642334591215758389214851723632477001728212758925491877447821603001487722183328194856795678336080161699456094220020877900124508222624946420899003940311652071671092070836409780431734849461447849632413162554607790685283240805088208258400988905916500136529122452197397671124659985156256596437421928820113793690608357043986609817657299049322839693194573727501354074344523041818763857577595380076824606827621638769995044513298173878652981608922722631322919395891893514281034351757733772077586590104032541703959943104586686959046674237635202487337862901415240994396055824048283920498644343504426590552540912504125322838098131816107077587306110778422599557130225467334750251165801740352213018552963875507717816682767491130071431785017997182564172606857016219642762026826829671446082604514273914933335351106233131633269362680015803202818934976956036826190099252080595405321511957989194604973030860003307341631443393536520117237238076902221232871856125295108255149636723685092780867777779772427791471816879997987704291767122836818032033676982833212979467839763000706680244179880691944247717013062062584600386675042023382996301582478799693136709436880143699693633581272170226979852022035096017111975926455717729905789319528298895879889382099718644104483417381703117324508388580091703407051508327543021730245943886448722631810693641438557820906170851999819951684074136672825519029027152811815898383699283010753189558177250609041351683372255705715655937547018463169943920821523513414049513412307128464167042149987122527179063883159477750150916518107673458956803624343367229513450811132486569108614625690192412356828199666908628646794591407424255701254953498704931674002639180048673584294271978966858266555029966098644756226405620492620261026151935279210308919112203457759065499965430749770305842626563224431723948826916296066049099481916131340553777092801677378132771263371479263976035581802828862798544725293197893202802010470417781024791605106917153838168348006575835299437104803344880878713844896966459089767177384490476093990302352366673741299030645531944997088644818168641426756641929422879770896097930269896947782031691591996275569182128893308295150441092869766901899838663781683063872890712643653050136846317140743036165707907951630652963885210548594979766150013287427987249916805487150509938550042298241414154726469782212842395768640996331295710595804600609374717342527332204087494245294224797199029827321308145418807306136458016761639587303500520741876703654887377406206236861079930119079734618283157671102594278197678816305112281842728663985040685193188574375789041392435740322159432923254192282253490365713582115500313026463693503334137073121894014257272507424512063163715571662016657007925559928979922227393145236518803794542200055350376733474234176942482009177129201479399564778798791179219000137116795629724136816592939405278042972731400885327610254055941332690006806766235399452033707777816401301383717185910566252772841642665095323417727746986908281996468020538376201801000371316042669303133654005675173071973815010669300352481307876800081845321702734032742672731936597160180522492188177425582853025286908668367771535695282425551139976137974379350992948904024946832887509073800733314623130113701677830050342924524131889937079653721687584375147148469752704634727267892106156043109886166379624398229627003719224368991751876080427351552569573311374878256025064711652250734086142986674240235008771132030529284472320098371799160774044016777798387949506676237686499346441104812093909866758657682749475931845784556282479730397636554831014419741625548643255255906423598369099460022489988107323789400832439143194435752098835589810436363835296322922174432033055453756861411400961322090156213259290236964877835927630934754864009490823050924453662082673030717790238709169674028081541946510981576483152247944632669200319077571427937983339442809799304469263254626452734145264283924949539037319148349244791513892977432458935293899397726131033535915322413949485045522362766411674676568293556178350334672517706680043699195450846666425067974907672940066945347497907214232445531799564903381106460665229279505283635343787581740680208683495749684415206967462744103858615595834646297477468222320838140918979133379047350568093621897394328666726483944926207004083465318995660373164422668888082885142430980470888361471682756135837775176367121163744208202389755905894047367975902149236805995767327810049921256121521044209486035852817753237752593664720711653576266851688806458401334951300137102127266200950722732862306342128710756582254862911471599122549267344183755482961236126122758808855523068364002501896092439595336023503661295864413277387307713890573547812252390200296767397940971895829593034368985376334265115442485736618314586171766563576293010470262543425997861305790431905054692525261513053154288665641058850483832181745832471025179152238568591916555837322574418484986062712266865438626920127580636877136209699620576262668396723191760022422772556902423186503874627686150152485373344704851043115436156968901665871803258008494996507632750856619539877002693743373624650562436814270382229030120240509037179295001130646807777073378738061908621297927187764546535612736869076800541792555759226922471477870680655199576527379297568137758211840768840180231740840160274267159886606960728544452965155856952454909128790398541093082912260564422575264263741502901830207958575024930889266583423891758782566103910559964430541368597778850054987107995090699045762517231223485408764362259851998953785199711471934484558995373946264348428411444010533603926953531207662240395856771716488885917235506902455543437029821025182832975084183980690526179591848674711671350775954548447689419734258512794113443690069059911093733047124686346837525025396441480662948200711836940356911906652535275007292212151570410982013559880245081074613912218954769191637855713114774393072518538070840212227447450631767378965176644375139654333426223174785291727602523480211617906461510050412186724690006908048220964212610653700281211734655893731776944139057489142812073328170523229017443779748233747570584019588460972459010224206020086645094521534649444053753410918335793631781242685456027110038012545589356691725202002250040654090907019982281107610357956131645745253116034682427865602308301980818242971872727223795698069881572265659685720183348713643350621613200949361797101906522052962078638777732134981568250418553382457193075385996247190012233749761353746377254199588772404281120131444474464716032829280746549870453781486439946829444672374634178245060044369025265320223641044582597806314416422374707938617215610738702379805957684180458486587559163980178207502803390939498307663850632086960472024434581447628987163572694984315027965555505883448690445971799837496128153066339649105992382487027651160528214656955096673144089483430189993794809981941610177273083992026341590732222574841439763830056900866155462662872633317752684036657348536675561411724165086038926207097170509360495113901108040551152541127478160562748724220682075657080636724740221331963818332663360027308526434125626246129630618402251853014950967403493672355495218647104663691325113350120839539970209506532042896308310217753647317948862642756549335209382082177092006210572817535307735664790188503600141792456502127060374597565983061127579730594641568577448013337285451238760574237378332802515667959261370532356455568404610634549512671197453400113752291612492886246916062720932798823625038868924775475793654934002456679504514329533937299068228230283508783115184742764457456055473417817975971620626380618306000270633991872986712497761992185833580157048847228827128134257353700960219082146170909237977539355947758509998080672251141711808963152322640641367964088992003561008439313641620648952266267867824540131283280414119075452897540677417436914499866440429637474583644905326301621479919625466829467345164146416792279906389110099926718451591231006244967920675231501050782082764666176222511460466999474286942448307868775872401198529820393859630297655887018194933767611825928426666618939111026596929072771349673018283910578382268186627364202468101780807164904281370441132164394100024163044538875962762634959862129621385824420586267214458166357607747284331791056639261788990426840436983342749039012798189203564680487254620585804597217384360011945196154294880052423349207767541495619387918845740585745377994981387635467397841616566826535872173640907469399857175174482949913457846432859174695772176939960379369452537418299132978079054351144209082097885783527222727592845137350010440314820042236556648691423139048185895030981257247951561297080643752485866187137322854619704545157592366189146762827415625281050282057864834743705332181678216474486913862610389883328157133493053308859219806430258920541006995122492472708123067554968425724939472087256239989865560661018113424283475741159944179799533092928761822023171271127870113786077043102913918173296375243788956419413592031281774523487413202626404731311062822115710085449552832703056776347178057220086348333609030515011641361463028012576157160433366444135905914989157508541777612165808650578362545953734606045948365802372467248916297100746878921820064860227352491763047478523884519423022812210923372769015168441196389409728018225360423107514580624584046678852578945166480380946890909529491862637396025591491069213350236566990807208922104273063978129117557028554198549118223234150654712457854771774873829652074957160508098426868832772552544161043789619387071170083756195609128953946314620701003397674658289802164955880634794817088947428084308909466040663516186266716470980053968612029406564489768802247757919427950588393784967581762637643703307011141308862456929271809249875042758140665167269429441719320816397191520953615413953633266332344536395773303158396773001189971332516650270039097353240227054486133685500566032034276816478690294235896694982198813142123351253070349066053164361109400131534187915338655438447882379665944623676387005403463238560416231700531849152831767956603385917395666001289858588660461380702235957166815780709389138035125502501068787466048092270493856860306600030394949666016848735559481299339253282329450202280323039553241225502268466910523409926114680752476353458895322225623887356843315254793153383836145542825929897558549998675333665176553450787336188948420274864132127209069982000129089769670542181065978460549811158231397375969007653043033024710305116084349570424916129794688459929435280878683911549545299630330417346301116751084230639312072803917295044040870445751306180892353015392262470200941796460599119987566113161906262931245224436461891245437264855349405384080408456894622210995642526388440312636063718780767414836702020734986089816612956158722225617294993987636915404214775163505494429600640843857503667964902278685872562196391743042395943179687516429184421155028008916816745283841598518759048193922592748290752486124430358498795230298447201804179372634338371758556286771743816057893708899812638103077173029027934444438847950099367610617810521151591900562989327282427777675670515366980134758062345903811430555313806517306326420270273463237354359030364660693980082159742168227160971102000556324298669499256807637644482139580153763100755261381480658495671306341499002831884715945557744761217017322148222408986165771694041017042081792637177850058848793549094364531169689628511842401336002966483294805580039887075235272591878792966617759212708771899696841114418341215065982487599493599939225120453505375533905692858967981487118429110081456253402197734758353141142454009080646576302788894955086107429830738131937712538523140177653785831018886316134460580008690818805819449295946022457643724578401284226926212592106140767629646224354171170445655391889378228847330304663560350940499560677273400503466173181530550802679102447784833612185521287326303437194885973662976160076782498900098585004641344911750947680056070826063088083040564346684476208532886295911140691058618435933291561814984224153480460612582600486993547077144399034628989436419707249547315346292144715444798845471959925067067535143077449305705538370500507565789479659405402216352652570069963880616095043831020221228857860126065211871506834290545785728250945056961572980197470059073320788455821120183386868182344391862752979993364324857032046905183502079847197675922111451628542526050117887483340993306591826810716454705638450502061720022084237948340840198403293537808471191949980759409549147340711550754295922047232810530963161954431311142402803679453776087035304712076237390046679753694407709120106742895115743801525390637182662361186540178572570990475134250759013362970820392196780414373426367056810095528877384718350992602222947154300615619466530716134525278339163334823092392052878919853330848802128771216540603336173702913131700505633421915773149333425699976390489875563631847587773938675201093803555440108934471897262355781163085132368581009037476746166234766102077328621358689107385970922807038953691693459721909175646242354142754398898735903638785830337036334452652962725430203473806397294795364858907610933879812456769175776550786047289053860393705953331477235985336748896234476561618949938090917529909146018195724622833453556231527347679961987332310525149783988448177558655635879868775317377300124211412137713974258946538716582587803880331514591697652124990232923477457240082588263837459148349936116536671333637101662975689916569100943356107745376196475380923412301838640937843615499561884918158531026909281752183872831289562841869006391323925524310605269201600973013204201538111591980963221977181404957639282010670262979402510670840208183409895847748063325318584491451470015436448715340311904992343626630163010955718699639559817844320502482935291548290764283626863723951759401786498382987824884003616555648373667590925537643167262863768424100903986962725486011530398017091135363283965445055546090313515101583412008073785026143105256520292100205860209960695518428626813425979471205592283138450186338803033413746989463079052070461713427299064518311426449876919996097838196810044615454653414941293914725911073055171343312594328223501079305625182967020131162966418052310268102791409891971227751803147742865096991846991947984319868531666038120052578481637220129328244312046409097355192923071727946125975440539657599636294477566243783019235006713246320259094581501232218950193140053329889225625687663336216488729992633366995643552339367961177729384659147475531395645450679999277789245110841437294262247197136213060514025377189739084635165405918601713631699536459442369598319366044699644535122369701443426204276496331994474378956733723378418062365801777755471556286898921950785902362295380972231817647343443754605670520054418664439601005010062494668156653416718181102377164391809695703125076730746009811121331664258206073168560973879369151245569917470909153346622368870557186214097256248527353897181259868712947919426355462126878343006556117292739079218251641154393834026575411060364374585762841508004937393308731218391857444925619121103678916110656121851566456578183651244171300987021478486519291309458292938021751367123400011229250546574261640381385048775807162082665162306373639476333837601638821912415520069481005560603414755101348708385838193499190428776176784839286694888537983575429643349480035395922960583361571534894650475757466702600159470134613238793560176019598790921379328910235356389469527557344733094033254358992017085944259482871595868279379817742351598120175289229782546627862058463439809612308963018021728874737239919416233344684726318494590798995952664586001525684873004535809152536650963810449088186894299798877151257945753311401354298944975547408953290117738008708170247704213486585352307893821430525952315977707359522124858141295088781277132200000571388900940155918446021868487423842709784466087291892958249097059846348795730127140240123258038911931991852889467530693927461366243652094475989029576586550945752156105637797821376607928145923366624481116695203215983330307007164201975254613973723622591465179544397768833777086490004780965786800250979448116664535751722099550444161515954027782369059282931068581452140887833288845345911970493307569222613244108631842807665690101232363745437935526447896397738277186130711893471324948822276080173378812348180199601166456630855221099248319792354527791376005853558075340738713977259230419460146081626727590253463862245430809355909915889266406002875748771677375533077968093748453000098057151766711756044238252890992573326708914085815845820619207804585592008898906778342708680033964730204116244136733498521562710987177827740007611953087277457646545331585763911051451466230111838854525984751862715471734291421725427097478458051800797822327599090785490625974054140347640871112511071526358006704957612981577439823078117579159371397484292493869164621786337133946747303991891722975900793959826645855948815826978058806209431024591858770131689808198465268774694052018730228979232627851260388255559934685971650268973739085302833881403200983537385484993943260530144717389316506771148346500114637714500440435122104639175194970305808492274885958901893172057067203785350479881329268143151535092708999440325725699436913068260137657493533595319634394699755875955787677831453186997582938533154524923417116631934828011064776882532404862018788298650216763158914784400211108779591777133555211007057533351444132034015834509449904183803042641299612577005135860743613793626252053636512089342591093061953438671398228561781485796706777915653381420822341295521006861968933039016026662983485261906806531113776713603030424035001540784950285190687780911962651630091786833680140363203756445822082690670774189574278607640093871130793086926339011773965546637731422488376734909662543823038859833336920311356668682107001369773742179845104760360854701455388852664966897772310399123147058068104726027201377893855812375040090255132920764100418043811439738100972071014932057505765711651724805869308693935807748292921284749693047846160980038438685274708008505942186711322133029039095751435240977705643323069312751208843075394340680515917785935844147343768995431414980552490790131182985471814413962991983388713226481316704097696789549903175476252508002721679458884521835837606901340928662472857312657929460930270811712573255107413649756790572031669674441780216070583978631000856670135750357187960128914053067163641737429686424594227143785826561454163377146831683428725842500776312535710349886136579452559966613283391162902139816216513754983376601534318955363830852216539370723570646872721007983184133327287218895445024644998833594413691293876227358051690169276170035526232626157046372928913266792411979000260867450209560581220422481460418922610263793971508771088518822750147197659319882313253093793383542587578960661983571039619781651157589251392579966284627622093201778724183519198736017197312993019080981001855791140048842505283589494854395009515104327504244223378708705858904609411193384993626516403805447887638842939121911449590228888307413704178983508996829913830026721971063500683897760807027648122707990636688877433789717944630565943696071154419796554345703423559841148071606869164703531564700994778480020175278435274550653285115797806994283613534099790042432289471523680115492281467240683400382772382985460179507577681440457583340547806060498401617354287694547626367997426309349217178103875976416670535699524927897998920793351629048959138079192943169577077722468137075568483605230711031908669907685700805944403288780786408207407490874834737492182243102705784836808072333182148789955479089112375490565938194140646164830124788627826125313877800679943073080385982967672099725454074820184972300352765030671999500562051016984055299325745299431930445253648839048413095670107370240820530845326384396790137244823147295622161882795061113413559869662091851690925068181348045338788585356301058012323011428346723066770778239545751078515014311637333793207996680214302906662537262494765765763619584677126679940063500520403209487641694427307869814473262826771499562434787552522015937051915647948928341467741345669778089560698431554716665044171830164445001001253906797970652281038499043458601874836310624284777233040637547671467938865329434574560129333605120957430134881424603648616104828096530266420672740629789714955070139113415730328675999218952225471343668747182878476840419018033878816943641385330136467376371235812725087975904366525622754549678811162110847495368592210207936846297474597564209817500523668291333974213451704994525707487613896392665180649189557353571894867783226763359303568421893423756742292820451769594308655534700404135483781627534119910646843802243328042776958242868080740869952036457670535923777431704162701659721337877790151102455358863914389702998923708221615433724699102198592312692801765431628192791373408007864939651932521771831359786801553360926401555081908981194049862546785076798427932013357304656382051340650117898312889361144452713103476406228775002282074620069040517280543485043115044681754587038636706417335643185228275741066363947560739797987642047214705725827219629573499457185967248738626085900633813591914204478241335753630818745717090574470738720905698172187902574616795099418838570813963852492637244093851387018362209234981328541849845992813259925903273123165437494054997003399260095454066569789275975679593361778467114223073277002455240314853064290700304594810369264437305338449045502036350622607319621223591631887838136740166798576734538391009480555284178488630526134270169926117863821684641698017726001186014587012103901484791290898074277876807440883514379118901685799321165311037280982399249748043209423374574577491740494795728422718704154919612880006892808917350792194143850583098934867387118240406282809802919104403673543911608826626652901359193230636516878554729467803090424779225396436400776965342255517790145620694127357984099963296356604165678363796015340567633116006300505264324456139602279809736910195570007554917427276437740696182520327393677659134733773515440852094742917704117210190984331693755936956198486534184334850743889196165019253979008887228377629423431797108943821824496940697242717303345352163232751754808978069654680882908127628094097420453078120699476157229230846441510861741068352295281728251472426479104668663770108972519570464546529565172451535671603506652240417425078427009079290632286513766089725108786008778002384140186706843301237654598375353420044129902053826113697607051720738383687193122362304354192285632786930375091428134846112604268561787427725574196623624483998462369971208987611305551923832564595530922879963572702152949831800769740052503271281824973530154664183176273250846594371623262075908520135793767162882729102217442694981147750634102700552787448869503257246166879373798037569802609245059505037022133212745644498180013943880759080800395701881902805760045217921997010618620292214037977610430739154304162925171211535824655468336250331296788777619300402410197371988585500822772655773761109082968639080247400948041253425212733774406317066739188783197262092161572500331259354774443704034766500648381859802782307904544017038003706690554939793801559027950561349381045971842864856137987832193072506162584731212775976508780711471166920384576829480387359614165374855260690602686655051806334800877980246120204740857309686720463014100532913726886891629298859945891212198945647867578387028552617568075399781791345820494562740105775962717844862743174319801702906704257808697033263189165258038500278694866964388732644358521814730581690453691371440488177378472566479280565121524906127973270272883962007436102619684963105973876245159435422164231693072826313727667703442080944323600237138818438435671185935540145271331830228774889741467056939797604834542951315156303879434162031226809709028784604280016262807216090449805818698751661126205989351384373876762708221308038442384546775360681028595658905157868618328109777200984221178033986588142132046582603985950868865357065972911393477455412090377236185872378382079838403916533789120676368779094891657545812967169450509095574757671689438363872811792458599993276408650810898247415947107061993841793520975381652268553908001470323469107292914382508601173381137179203596666961154647528742255485732649818435744117880032017383662739274707698445931577155973668787536675492986610934508957637937360216479030105870832475714378410623778835912916854650932448640542359263683465571148847082848564112938950367079324679152168763422937529702362497493826611911920692285149481871698050514064596632256590758214981577395578318963958554879356429000434958833641117244729423884655227843347899430174959995521616938872220238426267980884026249283211586222430930851695876241765111143930268255117339236024991776807809665832738873569208164003789622504930463744290173757192561404754337099003688949441617980754029888664341730389337240294293725682233480498997265204477605908239894043635254201888560210301064298593050858099866068368779991486956972045903561726665520261963774452972239705941059461744420265756411294871905364208603218642138653182564583056292040747362231759840224775411939906512642100480625248630944424303777726781591351319872494740485299659908276129340951816838727663199140674396459851537128828794116966278247173868670727364602811161118656571573965415281641743538984721409892512379642543071193321132878724876197409783272612507493741783076313710479673111321432708579709100770575643390393962641084380394892928014545075861109351400035640361177418634985349865238276020606228091758247243471655190574449165459420101354408038466280011792986961106603425936987781350198392401122273420526020113635396517379485318109901780729403150307373172582178829112187742668825993819978279055349972738336831952834110954020126705166942015124043139161627824772509740650388131516043169102046338752773720651743764180666086508958063536293424434054776426016852793747490943217803804868543760469576098689017491241835434858257566404002999389584040787218207614212980501094455359571311687368846000617281888099268380454596616353423044435255648001445034829315511493728159537513425598532987187640173755605305869356204372202985853742738702207714365543069485543344723755487841761582480480866616075795999150869688700323988358289360293750298889756435625384091132138970493869784267480007386657344712033362784526709880087599652065646391212280239540380308721512330340345102061013882740446862766906418757186180604276118881331332329952319494590423781024197424248661772346090945188212973058836150637074173609599467113683270508530170559154074567582430105851929187889083004130499607884735264998580572516613383297497678899767610808415287116469850800154358603674759710667016452730276056498476377862926268541103092823432976096887831541669856988407185356762015931237624301702715646255122765887323091683302161605770547077428921549320260969013327988913648808861105703248692294104068499792686846899112882193530900904496232607775170396129699468590062164542341837561174134786582696043800990194833851023372655021419185411862739015308532070577785951105795163507205167536924252988800555746558168957695624056646399676334251415965212410211088794922965355058188134229331191754064452228177634761023427429818515864682609223914974400825840092278483433620405740772973746717402458962951182831567740947614001018024215773542109126379147686567033013376382647003860320010275365877227914082955932050461452441540175767209138307454404533825083620163716505132417987358762582948717564138677035095772976953118575400183580375722413767530900777484734038966921278924204933003663466409243405198702296399658557373933753430176830501085268664742833813875017522054927747178036603158438459028854995615788690048680074524974041906656538150085800512381713588979548962477274788444091537693907029280732114698840391073098973286850472353371531542360932809756852478748391178268770966699272692934628033142204806853963715125359025545582299054957687182509999863979644081239236521933333422490697610304466280547882551048661153093846258946645608401918391606409230284431083108486396458171510943100328805261800469853567200219693665297173186398689624230052271223624471724328952741042482668559120062587418144828949153045862596272590671341263739151349923177162323394482212594259597311968575229273360696251735048254111490447512713534646329128327838235098149786466891765989975045952175001019856532136033494196301614696605196162548976709559490383397402201963621250171505403269884423022101540246475950561870755663328343553512487889565620918169061940494635445445705017299650625049785603801170519026046279542580243167139566776123980632381862796863659900136798029461189112790538543475535879667880107171712944157610067964422803051653541150347020677029405485869580132446907545119912868309993362435466822900147100194841716610879974652659855448044090891076217947275472201679037721712405446174935144738524547395483767447759765612083688838835388859766505202132789878568168130465475676395761752196118400979280565624544618782347292848243130824274693022990081379169269684297405723097254948294053090712364592932861979752645396588030792265598289794215135895636694120857837107918311521200576274069097187230351247938458540057173893907730144215507383197508249197496027948141069979078361534342799834246698926511339617223908804218816116099829826019267959448248377026944770636306769652479668475868377498225087885527693310806437471178592490270605942857379481918327227895696751151500194111546933076002374107360819270661482089653173275926367516328535553371505158851031861285714807444593553037409716477560725929131768375865564869120758601944759352823101545115560779532520856363490831237302163637965992241942834921990669603588133644337960453849876476325059418406920803665839387512914217535052781949118058942767061006599892647808570104055364297765957010703736715134812006036581783275101546811590236803922459169027388258687478004116206445445179594697772015369568050206201412621419056345802542127630877860179005452674701741685107394145214832547325398463629315521551840913297999048671877446106233519804606340499897725856535718699970980414312486446106150032068374850198418950990935470210276294710536318694654046021470414024393128384230761762505007139447809213027427499151408871408101969621139499028700479195939697617860457880714202349485399247783599386676626573048415407609588127273822914209133676047308342923444639002645090581712159433270202525086628834800240254045860106371805211733763567759650031635848108823015310223907341029217148204611471994961198138720270020858769840385739129540857633245321677298220480331933965637695624217954509438947732173853978382401542316908727010815712152462204696357044368433213755373357748786703520602670987279650087272360875733598317938832599537525915899898124139257686640114669431547406208805446968090738827579546051250200217848749288149825148379989013187915551125667425752786928628854329126895821275031011839751436685809711699591952712680885568674518792374825389851909380485322016155252150692130478482078233536027012936917229499255322752829446240990581750030441004209748777570536382867067462117299316353114399424029433810754546719016156504855485695082514875376751553626758194688738378460450895224522557988732854856582619249305676951326181800492045050054362189865287061472569757849808014571909616977372064950231982015828222237810207613166799633770049446693845082637458216376571526858921228336536289043170890302914579664616875829270852295055838004326526528529583927307416902503687448049335890432903473750312986971918103874792721959358371916777091088800557534917464726936127884157056574798973293445218612770940163187359027205397426127139163209997187618813313516335183099271237350536368173543291382221553153267798211790726576226242857907409683833308216903455830241397242604038250437722749502152628295502992051247882960702637490070252137295619561102195860863937130728443789632505258765905405559000538172769629640782934994624247460018720067428223752567045469608266040524375783703073825357945512525813173970291411686904526441667536263877313115832534494698500775965630549349648328909488909112959427532897467249160109716876188650822155392300001998339382164681456927027059334370447727012952882197858413850147540293349668495070307928304383567953387477881378442013473258560684634428063907332545808561044329237691752084001501376510391631130061561575179731412925695808709464942062895326451999159405877827035109297621912824387457654220377338206650139339222632145182811393802563216515468673177323138882612366562498685114379202589678481567223950069714205097216633437472210248256028834522573932526298973662532732100955801773573839617912764964464858765161400338712065900585006029183445754900760924446760987094104952945394709069396748738936575325543781128333444901340194401943595756259114263073893659234180314483237284776795311179090062663120125411937322689086996876623387000982635984950744361993045314343351837107122213414427520839525772793466237993541071380272439201425015713813104424564872836381862549392857233919756636528586715921534244094632114726914643290196147121627324219001252536353853801183487001440194729815831892362080911432586798410986584721858610710164558175196880698571280814063291845068882431548927353628824063680206404570892415399368981087356517897772859556355270693072739011427845387162565955237292855461706941095569637627958627852720863672585346227182925988398901652631992707649959158388440635294522296636780402700085567001153464274723871937483478720314297683941185472607057082175277826036671307465688959929390038966657461257077112340445363922260732747797092210668370262745975851097829184691546225849083344738604491775417353784756692364594519769891776620838371934442560417774715474388872417706784463988240693029796310864969153123240505087883219485782033525614134324324699514291670943355803037664106638040766359918470495271444431727359786079486593965823086372985175071169274065714712739271876163497446281830685492762978875021770846527617956378966502033231724813457882369130877639839836039004122586454137476554887284340427228181012427486207749602136082796718725650834455892067373791369962637790671179499283803241279141518554674741561900126130576582128075042211153722310824526670854254537197487840094112774741514864778047602575443165618552097432929360843181400961061337675959858446551109792953524027204751508091596344247085901382148216112772099468823481997770756199728715508944530716470801802466332086793640447488523023885421823516862493540051309880460088788169914659204328197213696578559338500325567641948967702809638582929650147189075622535047796495412749856792829789177596537829909192461550323595336369109802938102175581174333971496508833339910855042918070172098175585826512972437177820746187718004454116799321528967557789145460578035638979223442653053195708622823055145966724292960480022945500417022420105564452806574226775822534438252544525287865667294213404393421870610509834313355990147510608205413981565467016848977329433251599157457131393175618729837969529508473573780219602486161216080310280820316558378815140089205156701570771210585782821645482290907428929950949453335597826324550696389701238690846027131115831898067423449090260756608103242049296458929911330260848310756875587725905237820852426103966501725800968676971600616354516281548930961488107219602322653058905554936183179045045207450861052426122704434866476210278348170303832423314739374008484805690761894364818959267377934320806329040553830284234413229153895759294489789440283951783452606951089704525161896341564425584412576632847611057755585824765148946095789984950035157142574233415547731600989575613666617141010369824008162864396043467075766935943798604668768978648496074018041717458614010375372818493420497581965431264962626165901177751979860708388670836534839299810596055608518374014042824653739595580611450411270183138696589864652101750157697965505849793467141748641242598953536373262772052199929792513961646888947114030794795710558326800345936886161139413260856678440516359508577329955409175922553626703123973868334872303680692295204774972824429723837862088394748258919596203016445295249899008740691760374732937060810047993753434328321295279985762534059302559459114208145712013580549239399760174876570641087982984416369684285397680768519397741617720007170725897324910468604607747925191992487070022304155924649198924721608150890178170665253489586334785306101042303685740434572146533957677403764615643352180621547592871032110042067057216318856475102595696169831036749807626898184853417132123826948561071957491338986702358478632570551812690811981004262244509756226681280286192414791934947665089737070382372013937831977884251868701181344103666755550579280557436216806170129047676978022093866341600662271360400124509359226501273149439667528362326263609756131030704849237161994246513787677568017649046941283693459122660262313467109575989356636876540230097855772808456794371147996307420809895459023892669808281202920617242214737313787782245760539044922981302009452082456404914056816571554751432837954829768346901318197272370464087268754536385189757802498509197130712145927407121311188318536817319468695647371924979930944375184782059309342920611223209041056740262239679492625842501963884929128179700642689977446895133583706695742906760694210104109598806700029139050247001309389669988820947916498218255633216430251497838073570572111393823240503277435643165571638909828844310051727776905740910234962235517597091762309668477403838211215888218084486782503756175141870259565886343964152808474561082769698918441597536084812483000440291779155855253157065410107033024631894827811330327652962762667922332549077481552680538746261958185942240791089869175401822625381715559153795971650799757819592410146887252430007035366987938539870754758431626798642692584980132225745427453440023026857621265695002980268925515457210639227361016486170599345987634314242927924103356956798754414420437008921974284817757352851147296192707750869911573437879097550992149607818114073242931428606459236960565565225261278462360562801275390775376069087380172911740888004489424612964671956811588719342459886569837303193590052137767949102696008331963786377313861487231808532127633278370938629963566176397897159163693063404587042973804061432564032420103573500765530308022720200020360985772025216217981880963555208829913262565182303584124346714474300034849505641057794590426162575629600135743273164378022383851965161957745204279369123201526468646628357267400555565564842440681626782529950860888998899276748760002937713337171048866908562786776485625360975987288203042038054445065610439144237647962996955822550863005052237381886324098987253741167572239927342866491700336837053790576171264236783707363000185657647543963475645043561510358513332848405495013074353777914925866755648491931909568480196241705774654305154976135701419209291425689839215783111041714413462887747659187392049650348475274841280159878609453093474143255018026894645836090633405292399598813235177706256126168672310434202900628131644333943800766360612046362247738247375820917209395272156771408833485296888318153562411373191971276797225478487704804803167058466443069501543871013764406640218424772147972822768367701097443420623331488159217484794646532277930448250433336463045254630892649024079978320350087066335318605456490113354132357530635644693048303143141303099176286864852289048583858513948496762357382521342639079869695343452647287926289505350424781268548241852087504340919770570670258975628347515543217939738948076548196707966186104077574696866962448237764683882847532253258246756654644010752636401607423250297784551235251118322009351948356221939323213131738028168550174505320659631252188862633672562312467102501477184581406960221385058114231539014126376427269197140264561978945965590724683821684725914367293263742829426435105457664798559507692062072833671654539996987454232233972273646631852612312912599508210074463845269312808880498100004736432502045397843719721046715854921727216036975555818051265825874369730528150895991780250333434363192267188904553870771618467995411002201850525468326404492562470595874189645656588203866282934940486626459648872425763316704670306003297762330342974989194269249821141459902580123965348138351727206595086343685166438177956624390573715955001242612648939471359473755560304900006511580592595516804886923896016524350516546245222361758207914803268581736853478876643706260448642779379277787408242623240855549365528146292889698829482421209084088571737102594406880226784044047308639847506995940460538113956026114682359762587156067320280937264848995162916546446442350205806100664284951368251862033420617375527585226392170038419308597584881122362517813973202675626740912574437760491750395914065529309340765549736250277672474749855279242118402181583476963272231649734923004215822392555282905328925917476821116173291936199421728446292521390042996661800907406947202340481072536255664336917902133509031782735642985029594144402982483895803382910357754216199400080005248332473388336679314113161173473666046230785593702042509267659806341502654234470329274468739464309072308507288189335560087723225886373457734162175408922142111714577927221811885215167296179180056332456958483360614064117869113421485266514465502183466311673025170633753003723591625869614398233233617340952411040538756689266686827272289280422185798365789276242532149692686146743248451070546877732923258059334405077050188679969733484999809923705922646754409142093737715045590545376875433201826806965094930481879842867284260058811223763275527574728145641025307561458990460302833434231039746333086833683583443951105516231973403909768632742627965953357653591006126698617383199556563546970581888227181658338106281268034949547963604196954606016003392832485502031750261880735943290188239345294893629819428524058114985020436309733082452727038159399567475195138962772708656430608807273006920907147171510887125468354468937816139736705519136156888937867377053376444881734995663575923519551557713029739863962306147857784432394540578275222401107486766931189345552136880491906732624688498535494187410148755844786589720255160866926549173286456467195067913645687326238034200829287224958807215336971381289423506953147218401887184760344075797082336684728911278259205066938119120516404403887647176145034677403368614238393065594894390156301382764013632962837427818679984142487920218356529766775395037308348711593913325607303578271752896932689466947447479998425068581103667712477752003247599140697468490758953356811308403940231376542556945864849408429871517301111715520499199567352158025093664595205255089716847373768198183866000618891988672165656007228454767688234060863418815422942264702115058243726870428633774840798873927373321173219795429205860805936452525539451161123803379261279508259024980720696655856440281608188823994011057475112239540653925080826842358426127185803281674346362122211963049437356156118275478252494184770249521989990859430394699430299562906722311505108534836753620981520090806379191173194469114559503770581846977526402934189055532393397587182365537316156750560961593663984071320809589507437654191700106462646459486751259748569013358829681514548939059507718208445432592313263930357048948136529375557633012750691215954667538077942793131863595924726997032139620327517849780568889156324181148312794607161773088955206478750937386221085195224880967551506362330904825519214363434787369931616200414713897255869007410336119994240910019586427216981023946356998386875177889552644722618732822030962887339999635944256252878231397744249158728895165402602233843530065066534210525531628159746060481477471093805379377581410980373778379989890093375166956824911755007747694802818942942699600413940634993475241733917452425520780841490517915398357935145194446010269771871759160351010346554429381902260152459146425486298499355545818394025986017423447241669604839052648893400533867779647045897701578338754413322328089463937888575915952201476788791983745179833207874881035164595740739363954028484858401206785585957020106396595737581286685898930569809351766383984109329267171090247922983673180879846279399396967370905848833733821854224625937076009474669074605768527536172004537579865914775977017006636413004311430300196019072184672801409920997147451055800775436889128002409298323053327091937014588265644846622630529548004577967556828928638075484384127648921237700596705877484855571646095986479586980095480411449229461925290836623533433565632438296288104041266481771706674433693140050847991436647523666516885082808098583324934142819715674283509952772494295913170210680742410322594251209621578937564386114299899303035671939294383024036241252033763584400711688119854871483154975507953687028397527636422655137364134798249192898137450588138022763807052118845041437218644864634316897391651432262500728576165883213018029848531924906243310782669720105002419185149665253254068669540328695132381842911751264620070553042329133660764265044869979624575703150539010329092503809675098970193101839594043725626057644214158551880991406820706395987178895851547952315867309432631822411039495504950358059547838784444963849581459441621219095651034932905927927179941094843359392002837252602213013691576953363958112273549963781735340480312064684756028262169581260879210054014695145551688044844066427299884546734329552257998799837016542146661691200060816865565835935041291548729380722847758612728328562504939728939149422956145977628773518443180592955352563474052638117350343385571151450846642858434443781865975568722170384380462672785231892028169203555951643881567637178181050359352280443411347236038220206200414043417508083873894805521112646648168942729302624512608660691764348344462012644552676847381180658273831515475384120294229545412255013367328818786505550487238625522143740161304959314942333628152647449400220256187578368858885082365300712008826827234354653139950630299770357999438510616685834871677691930620935782412423807900630936313316894371915875031026922725264556162411420338975913546111510318624413945326707849957433682075139767016492050926303213761795370960867361865823362735436144939532531063034921914327717564417131401824866304450439235895853375728376392034340231934664022713473134809047541115073161725936331710678409696827547496823987077067261065798689837362709926725724276670651272098269183293184925248303572427421836167912001543323007285134530078436534829901179963931691034862091685077714956726207418226349704022989794771485714371828010541221607214460709187259808492651978505625791946983490288229460302324472982608548193382587835195742642318579892048459993224360444339494706980682649984896453065832054293745695275208443296217955351778202123630424061361941937533017164303211195466132524415249621517240462846601268197733153657533957752292969651689831939251689861722277152625328657773905526664377261323537223992056007119754402447289146590050092672359101213553375188344897644524029335782455948426581329637208825579666645587931152589945585191191870954194659319340273354029005252430967183847096206886496616389871716793247330097547808113311221991964912574967994352544018657858877853704344940140787584802119912459938465538829017254786175907230911289652227986720078636277329860587372485863012464727106251672651157130596842834784843431755283209872982957988834870065169160883281462792257497701012941811471015972743302085781376278617628937552863176815904202795267503966679863716879686629324436661115307185727080278878207974257108984894038282269941018757941477765949576029999623774937912510219328117644206108530009328730595448617956256239404671544284297908895292366373074664892515241421148428218348668198991953088051763378837450818952485443321031987600421146646309559018515790063057583174905755963090385024781368346492420345586269167994685621665388162595075223370344038262482164921981400335466798142128306077817546805215034956570143509812049166221233312452431906776821539723492209244645997072155726185681660359274583145097986480712344174656412852313696356268183100324204799082659762725628803497601905556238209079053184032643516779901432753078332095679668002865991888901956624492495069108308202897997604227822751834554555258388291187003171841605458844157592247005953688038157190188006530580652068329261640969107893111778299726906169891985965323953126234769125911686587209448635293700899897368024127307933384467462052591337244949959492185967362007849062290608179367530729323731852843647202063312770262307473899630699634314244715437470469347748977376284212398153867434809428554669784662513223482049937402699853598750049539769631802766812544131296574371151720105792658869500232058617555039148457552556429067457292661773685372993082672948924472918690146250910283043880616496550327278332368063031449906349271860038772082328691135047761837071508368424602556845732443680145391394387681075452849683622611960392456682987530335706857846815133279691658062217217656803890228539448159411521613557759758366556759086560189363761201590255418470900004768948794185861729736729890963450530675041715947385072296598745751756721550428474964214882061030895999566419337240355237164302846631291873806547090785866380964319907802630848206507645386175803337327674682326741187781477741693812811989336388773236267980483984345407896436411103749328061473879189086041179348122596834909148794379047357701159846380845351445580683769251442883180066494919725477573177497146124985951738292122248656453447108040969625994842935363324256672228780078906728713644543915382102242751597225063860639938129774465668635857696772572258057113215655436677550361977336427386680022529426714342731001031488070443145589698520617574859717662170404001104964482286024862990416701285305400014796820274057355757801719519589829595399465148230219920066713047303655048360659507456536772765762870625904783343091839780369554338424386445785847302092838489855067786387980855917946395745479970576603239950319590795828018249021346490334379585332563885148957737901567913588196405761057587103588171372464756844127028836631226720396132359075905485999969224302422665105575185162034428980967456552946326912620409018077302646610210429685596021308354822357946793274064209090037730191963768138056487976678305558803618255858766748806011792348438379821654041371675447345074296370610027279813052189037612587340274476454395882743046432007329500110444605316719010738270862628027229765738151392435305489296866265034553887317322146510001540598392552379722641651104079625789101746833519073690434622189531178888949383800475247126524114787777305110088619326417451999786595243423112431516891852227238729984422538146905724827833963975779125686894087573549854223165568203080733981067262778011352551018994872392088541098036351483895930366542806227311635819904239604633259253675896297258781109408635537417365982129530763785562532162649367624251025602353893677593650659770431433720754093559927872182039448918168325112892257452744763445587832259917534161344108271572727657895130985824435535347072789622659722467235307222548131853633814587800372310218741415895702941090489701746744713903944394302373456724804747138642007448301661562903412413561074012877154913891941793266714599771403955474866796387561286817284861597528300468336649589063492899164103729478556015342070763665021442333772934125661416104138112948147901377847639216082721541780614659724671607224955032156363486929621935582909174216606887678251096475585283294909053531389431179581027811408621388559097955999243828277170562870057347133080581058044711192102015212078301003501859431813192461338854845142457225376250444169909333126177816320474501170187664172678636020266459132939207618658088776193973249243480676448575374804740864397402998082086699445097505462540452478501715990043386129478823074102524488680237461201195657962716132364921613318388912118529183098595542825208881178260122994310113982434421390718295776863532299699730465913752281660511031378650004637679243533305157399123991495962718952331879029928214188155973957422967380226932954926828181189010546842025024838484156199927453588462019670863876064483064189995887825889685706789128124372659794007392730342949595984151859502275408851340937218500584770946510380661690895407053656886211291887385289837907946004128685122828800730801808330485132781911605228768403207752954600511222227086944762416239900229032143098169503175566089791416871163161207491365095647114956775520036542332900662723837910235215625884090045111870480358056300004677472829228499778223211207643770997723622203312127928034614760545126569836168901926071983263966657354959996368742347314355606532806989882030549639199806164763802946804250927169167281937989974172934970353899135277113798038861644054290060192641167464840444608832699832223586986274394232192082070726336243231551339218776672730592244273733985126665143326635648761094543417414657947126149833525067950525836459132667262690422303160528018077089341146601295560923950748037056707973650962561861658522910972031373546457067148140108933743430961245709662658084979071320608328441738454803331843410199046034011092060541245245555139777892360276525138177756866752618769855886114049399748008262354209418666679020606704367914980721061811386374604005914083714671090688581933591020613966607375719850663851106361144738303222010011288170178625133705213727082587946732687997951596599151191955678924339352369997588274221304625006785209452802619583183568893530885260591318414339186610225238393748804166083708023643336745680111718838838501257900665825930501535985772324539732038196670018788862074245801211046088751498524839720529852506013672753991471189046264288835684990006502269886871472159141628962738408611831852919553325922155859438705565534264161587775688112536416392365260885599222782668611585200674852740657236130932523453414413889039482625522599340055615229324973688388497046555553409462760900096171954862293232397296297512832789460144866028923186586848875583140456637426656922538638215208815160061886554132526982488466182826586360392146364347684415857387017137053971907488173122407412138474230780351497828161799123081391138408679851434842283693829135142221412798703671448976583275638352910820855323556704559037750049648207058091491289567424494321288061080216474780078254798662393884754698001671371821696540852145002549446534952375381139849129018313595756715545140715787760983700288608331144623768821051347039732774780331435846137958480953153570461085925745589358382017053253742461214726429385546762786950660175458993840333379683709272855630504298199932218812217270370549511610563147887715443617014577087692217809495828855796415271666008037575787569151789819427466001561984169839271587980497053149871016875866234376842055816587959508120991296064042271889381066368783339294052194594732398069568656745329260455799531106785910351278020714318674088601155818147778487259893252428152138535403883198511563875778696598104637589437238649115805877162104798539271884304577903522376154901526734785922270026699684997212851423909213121668073274861223513437348154748760563293179937890846618350584518183360759446665239163301866258257748091154205524140740579163247673587436798043526566852471139368112522324886106056810377314781595734617515873900111178950898584250578663491992846730298561958920813277320008095050927146421961417872959473591452915437070537061614439020110896680802180101381089401434156475682241497844621034149798656996376343052242960732051128870780586926670335927442005812433827139407827015144227040964914540425289936070642590443641653497937536445121929413217566868749319451915842578205525276014862545685048884110643349932785329029090937301948958411375685406832024969206616411502699464788755084761237201254139617013454395334089871958867881598566034721143756073260451664885371622984167758849146933134290920645254191428625879555426491913181077501006240497170609147589023935450698290140559325435299580866997684415169815270229827300233457633302092590466339061779858382440556229437042352541751093803573805807577897786502084537168777182088256040027032329641518212170106955771159550046692409012510550634477324980778531914448293652035683067886777856448168303612328518270674466350620774710644397910036675354561838013634406717195264244747130298920145015363717462706729099391674824978327659501473857823761446934352199671483419759443214224933367083500330006465010003558283113941864615221753070437237766153891995404948904720474244384467386323926230356602675497179229671071438218557008331795657579248010150770098724812660580705878364165485442625924282074831144853150333721527922187025614293775524537804664123135204942487969546023167505640667322897853038381969678308395947150908902852534547898384493116374942365378956927566296500233032516570347764871810737319796568785580348243679273190677100244023944429134895633458537207927121216834937624190559704884240165537584337148583407883346103297105950319610665622324327889812639285201767255374246740309611302892872239153148978253050396951098359140113848810227047098183182343539174726183700899224602202944296622574981927213030929643909659868595030623774437225757839958905567734460921155994916876206406684063499220568781973378132702460435941879834602627741458688898624100265082172019219840441035232314799733213713968013177394884318175286733323477128483000650751567612186933177028972010773331701794234584570234459184703160528798313716158869807235494245383593504711212193319867085694734615483671124890190235487879317543124675613524337992702261353306400534184227824409202891032193372352260702566040807042590156829384932705949639250000583134153081545470502719208690696784550131762021688412890113275051548120909052611472345826916435631921510470386785215573434858851481614401414008976149282609358784566549597596260447135957432771663263654253839631179545581440593504374678471798373832001560491694998970168907013506608805991442787136634195305391992397072426250580617085173701920514604584142282998936421826445742865856527980325793550663296007772433103551092784234470668465646890073876272548207956080557714031856699985403181705836810353273335923849900947997687364345320956469185771707229159377422351574547637136728150586349444172662226022769223683502854844041038413462734141042050271264997552944280339262894994850456371030326716932542183822792276416696960525023363010170515944551808131084613422122153091223745381493759352333330767051505523951277286099068635524375260149215723957342660985682789231715302778376996169429305333361494828497017682893415448182009283927628741925145572281055672315501581966599523626924998996792539806093117513625035554499320033858718701006976344945533195107270412392593101838973651636746209883181317727475790834415189619581440850477734063732922011519380712237755363337690528304001702229279908902192054863705211817078736128491147633030075067188958507187354088161728500753364653256866572468193660714816368457761551515720181613363335093396191418321145714954885545094016183763944806882238595884977095852369277914539357151447567936810297681149500649662757907616083255009274796752513300083791697943462380265505213737653335392929054060302307590158577233636343853454949570175627918712872099130944538170805173668503835459032389412086178063550894392341817071370153028520649498608022722786015075824502435912313566966035385308389033871937556299292672816408062834718069300744206002289370134678413291989892367664098457768066733932305581630978894004366428555771862591998870069584783085796127550596437319710467362866698949381692405665916149303831604259008446859383767678232359790363607702862739694340119259334264399763813453009629563619897847049889239368018277094166741434983162417523575725775294970317192195563426306919168710764875071313950659930048857296400707564115924554779383733675099397026196284153732201086948254336560820130229126459249463806593404102544399880690066521133451796070803407857382457881858987357298458738303190915750736134261280122214068874296576443764090112093222581531362715088172114057029587238149029861414062671070487876849216400491892750013029490671100404419939067370898752478937092508762388669610789055797022654945103468338177798246851305289718161456945665143522103868235408116780177123106541935198451009279667511245648767646833816341979255782403132020701752215353691862709283392809039974843627257641166209808251685124657137395305654407789038854430111687652244451719454784979649356895297433960166048666934552881487146143534016715282836589493467316725233721583611013684575580369717409237331235179996075913197823734420089585848043334356050689367249809901915591346742477842966964298793847487846141511292848088270931289156513339701957069275667918771975142822384749651060820300850426893669254146118690594720749151572385208081820276174256983741327708288046102331025171425863795896560690390132892997881501913198384676985326779265316912789736291648532670783801271918220229833813404967294950046007451179616018230964262207126055248093039231195654336526098766338263350851321398532823233137838876128111753352371477170749405834253314378505869784574342227828758667207987801843731484083611122270064666788147229122445226968862031042159514687357490531600793968525742070950367417779226146766840467638917945981838557171255585693275857366499361160553038465243095979023244406212197399315519957575406543797293964500064613578201671927584005308383155846622924834647018070303664558121325985892635028140702717890442627359232269544400466574293015127426387710100348800865901308742914872969697843009375263585438599083933960190255700437995946561339865486248078285661598047758588080070657721619687498247186998565688514570019285037576212517658907420152290525499076309095623106223109340923233068782162871150952998785518742029077065032390176306284347909127546239678482723302200998046040496623080245133873513171947445350529701619318882203487163855441231918528294603359682448407489008814819900919577456507793479376066572282574767138706748106930766331185872133849543661408718014933296683015393040362266020479399661009822169009308173004664826854024135464915652709567745031006531617549868424388671156337331433499313113732377768042222528280679956408188019096178659431683909014161004895043558375018860223329299759687249112102422104387560527391888125595236719714931282139048695268355667142865767593853775384620707519475154684423721211586632154633238244085353470378653323239797714854041200220158756425056961727947631106289450806416083951182912207760506742962754594862290492267668585797913766257898883035976347664440453916019278618771138610484760717961278589481512633406804456996638508814071506714843920906959835501345435713175883551112375735854105281095581261221214852353267318985016503072759592670970724105042416494559114521051775253392449046339733339568528830495236448024606709628453399034434486502666376150480766523954993882716008644074934678533839627660550622814743665080491742015421936865925079902670118667968607039782986840948406275412562206117298907109050138028799983725961275657570818860141646895114352968382907812573653608241944836245956858362679897067628971321748365872073816838814187684407331715797006314081387303927523768171060253240396870345047054935031002547167299350162772368597239133866641351302356268372474863575662041869829613264150682584990525220800905910701091337574901593780444327977922427033052564641656447518015236588576685612302320968227828758817543336406891940975647207916627310952762934746317899314174824454073352021971084665193906520995726320369653387404032005590806105705655707293084473694914343357534112052306024813805025143576184730488919754994484159761884086998068695055975062490406607792034429509090212477729042642746727637482205033649108271793928592286684060157168880198662238750110111825790219695704101534713544175028131425344841260552540393840830159893707864102589086845472274926879587722924584320996522367883366465904067049005436944707058760106201773466414772095503388221581393921779546014717257033103800761918251118230755646086598176626490681729762718791096114519264755336163169740059940750250910716658077953186736101333148184473528324789259809413392114196506304853660710613767685155106391738313893925898402873917702548397227871993600511273586425206477253977396675976986951776179587397900099469996165909272256957719133477652816408551550566510960514253378428521898541920354586318249459536566290348589964277063770900142751143635914449773919977609904676545052593401588967734220748796505675357526853196349044153103374912443417142067624022290983611680619606568997655432456892826602022415295660496436410505802090576301356192028048622604015392554534975480414628997797151006673031115029381946320345567946347405302005472373144881169948234703891951475458858979320428572348826287042041661154095217961232530321736466569171136175534876311663426213386192167187364999015335437311829990749969489019082643913394065237565258801309172977283682469842807821865820969264925068962105681321242236219331853161519982200494060573681287215301177937283155488547807705644755133069880214056975138906031023079816425707588792540328682290488063369633785002008809676293582677211616332515382449725186907816255481568214530720587753574624079105461658857806643863213771446640530931377273354335079491988320588026004082902840123659987868337626436159363399379653133126975412135921537089466826426657952487667791399060743256628941564756085812972540488803101870016518351000162847068259216689812270891502119581092389150128037960642461585504027573382804992104712400624574923918398277332305408007763681420251110011991267521467007751387144385196162812989747116293471410253144854486425133893652654653299169161103481472026738715336030336021364700736857936184042586401802129234800794102967665740243422506094565320237031650915926818634079086478201774454332075105873507591175445531118197241189856295484730689244428813832539798089530435927018271212772955959139342616028267396735046525760752740230283006758671873205683630050671849386716679351636547457759562354741001349574341532920230525536465742317539643852414638380999426003739278748879227960959874690533077750722135098694021742171428489360601252059060770672309767090687412931782114978287254797278082883340254870973306341946212592039259604455175069533157476858290619495725803385477016164566214067239546478038764730727804201446853486744896706268151584805967013143375456089958079549810509371085498265217375774265716784354311952985263848388520689376952749258437698918563301388445522125626158926898996556090236435211990713578425235485768961049028965955681189523272089674571880588691299642548912911591304778688994338875834559282447922804298282965743658510464959586713583371714226425714507806216418683854000475404987530638822120686067553693781565058685468818637355949604929101175088796330596125056857004939723459410587584809382270072204533787577081763968435826917492802648334589614657684539209708629786071412266083475936824337654594409097776053298662271296455570379259396676341201509156389258412023675959867172571741483262394244574240886770132899188314858190434580431260431940441650767162463981817732750608304257328930239900087168722261089222020122391749414459183588264507153492975260751469838242610354712120871207918396608653543631642233306270380631060024177551497461088710366528266339559009725456652744046642751719739735918562931572276625578720292793738963748290388247513683534761064267843983597699218888555733526791417337055730022965142757817769281075722798855504407800511450161139781866571575854005639989324089759624205005709223130195336973992074348998987237080751082270257481017617816405435715597085327861276999597084825971513891497688182054541984890662248056919594331073180957208525095420222014126348863961802789904041076009652714860400452981380958246474049779514387768140642232359145864656253544450328164715988513897254287578886542270259799955337065083591588167019133472935741241344803313287789256752400922749967407901719255411126025392810057210353250767161126545524350779309222830320431783222172444406246779988116729636069997306824913014278887172016341505346992728889286548084753651191573953352274163341923658962636038133703758528449282937826363742963444132044986959797457669285221287860807845172892303958895906321378906578883027776545796913456200140410811488128237466725465495931907693488015238902933415106892717965603763161823383244496671581626584238202464595022589242050858145914036150541794869343254597881721813398364279836944871803426165587500525275150715447322376739848389705172819310677639072654410397673721692951578387254585396733007949592828353890428841086078373603300353301247897569461731824861425348835534253880059292505958388643680325128922698211943867441739496536000179590513729075885821122987721209548931287645124902326931426261338585633894608506995807595589110455496552743442714140806884397732350306727740642805885093839317363739635311186823141423378055530358230340806925132189937103696138046411376567770583776540250604333498114285348514475139366439031739931539486212251595284572448520014140535297535100230750441849750823729106581634443037662263664717457092802607233829245718464980726692967074570801955294142614425352981743639154996923473894043039166488044581204171378608168095324342484072661655419846121674578820788966879115332523826750932927020677178782312555996144870965640315081939160858617838860508801422643585287823850754050270785979914438493843385155371984574406907189293855512938603232538573855784895394673853615908701780147925393137653690615245726794535962135754771022147340090781492071754765673107595564750577453087558090705967438365396128859728058639543375597228743210233776629682279228025696971216385520682924108985021190971998818894816983775997250921330781155277663147833466705722756652650527789935368609216819561391269227782764346800677510603958045256696073258033488770737542435920329409165932763319789571186924589876948790095462703087150083779810165637587890508193480213352673363286472887264167010511849964150417238383684890606547505975140591885492335877799857029007886062182562874933544731101597344888724458106809115393424435535400121904822570812407622014910998155897521101697044198478034975399087472947347329417401458951845508223361019796869578708698448973870702247271965861515677111368011351183207173915709466389974891822945534229883408200577552711069619520852235507700784241492609443511512472373621218872818835455421925490275531664446112059583324653560196607858898016346811516437306161684007080139825862743625794680473370301624712702271891344939663623499275678712900760338241974097728170058993713331984383522358320734505916962642225781475062486532569680865052788660224568605198708779802239470631034752223618050165497446672108047044460160140780628105228623002509757092828996299346266724578014763268561610786047909600691342907407921746019977663033366015609645128361865408060776351809379185469890205173589781654161146885595311474411107798524751894130028165381953419818541741522211920720239850219418714596485384652871298456516082975673400221726385628920288948784680808917022947887577679895248728386215128452829186858430055251470349034877151004933868483279601691585109827632087741753477460762456689118480881491342482192351635301113288081289460013707263081121353293167836876942193016795989810841972740838677813448355870533389632845291626664588527927312149910935553397451117368036283783742785894441358160146049398045193918082866604596308295435866678929422390489666907440084237645438978570311680908679820755446753064255132773172743151089601513023981990285893461268907693020814788841597576112063651104351745707161694591721127024231681430494245520585706716590520888302336383228389454630839693428473518380054312659714890742724236624379511370344248098526040537187153779647051639811116049464340357902304947585671537245478048996145177907083691258309980956898843390516863368148022877112500255140562362798255890737964335392773132769078291193750705321000068516645219874914587735150275339946761306267375260889549512113156647205781248485884663563674887114372730255992147814899289347465895770745053443834460353147876577844656630284549710259230969151966382248698777961795393723110314373252838598576161966002248777653388237565606730413996608080743924222057883921810108257470759467806351586697894259622128477803509734623122763810488566215001567645435392761511810970667393222020562046668406572780787480304317490351393162235539206310494531198385060426266284479080997916507526984946337209665133612416166480667821276154529889564387051313056659381662266037633847945344882048086244574479635515779134376557657103306322544277941955646335708263576565320403151798776620189339267906494361993881105960716225407342039693348711715167991946104077360733859904414657662958210466371747412804447620718958788527421620543547179380007303927512440080841350173779347241793376530145038266361268512112640424986509350122771274402086900088961960642999570075679281629074193670737775742179983518117730078741174159204251278794367537598877979256119686647931910042885428722208399919547757022513748268108779146871244253353114991838054901187879519745028296508769302748662205383886204568697112342848870693227365706721141818373307038629803962908792034588362342479272957081472245839809260933551332747873110019732864441251216366935670307785826287187685793346788379595898675958774746212578418507609690932977587339268365262882641112437611317016864873636537434667984744722059356439722029397613182171018322998143597701235683768302490888204103390364706015034959916692816094066888611140249473815353764501227505728359984141801719399812352768695898929339458547370272041676126168405815280633626698209684923917548358502905328291744610948175814348151238468910846165498092620570070548065463533190164667478010148785195964758106086703621299601805674187462021588059784734963266904272472746666181554733351227557189587792476440177459658739440607292849966571115570298605095956254613224320734783002151318549309963264045526335755560150273045582110231302042816649822055410389871197220933267582051803077948296388296612586704881325467737734616857252191504674554057707407335219377340027645873583702270845342800681923786427776717491533988573716611988358078784484923583111787875231797241538286892431054973072717421928439707598803524779600832254859662811514543204726219940350819353939982779576797341262839666322827588564118345301860013472975456135992818121030110136305178564802321476021716787242959890397850920075844433904941220556943014737414149891801000729193938333611742908077632431215777221046077127387823768660018313648159716409536292206717743307954063633731780304013715866675217615462067860126941318710668017125551892632113157070213098106632161688163061840361158630451090525292681452466311758667287537541058530384682662181377499184294762466382471486663256375969365908429481058523990148816132773626523107725966892455866516692938665598734334086020796820249297603914331027539483154004748370632013499476944054858787552777778612649999598383582577790925380596429436374225760515093649838698889751265796274156837139520894003206176358615965636777887923315728191567739078128266025377480851907699082001847771251434114178370664612569580027196374528145965713668289096131493168471217623191503459595535763813678381205080993569989298027498176218317977418053414685608943735318350538733180817849759443208062770342228670458976927682120889249403817549591864788902331026152865168976228557553995646924751014879865641735957869820713983362666314582921536661287661186302666158864743193639074472807267500070393485907724521671191835054636349104687082554928696199952220245613420651599807705179191341502376064127091584337435939162085639624100907104846359722227344422932127917861796916727388224474986471454942523195925885327455726611623176641222868480911531784248202803715981129545450111222912989880933882799969385208000145677940706719263370010513466345872141557953387303939254152832783953898151410084689231791096052560169777689113077046446725754591725434574143279507687602096774594326083671696493484501447697564227775666176205914635062684973572823581043701911719791006703194792630782144471687783082576649315774092645896688382006662206852348718973268402336875604767449446821949107155392945517813885956550203125346261779692639282881086698083332863362681182140770302971739831189280409463820079983322767788399913112636086035916721613097211743306559114229363545091573252967322438654394581335824107957707557311852620262291274560842346857407571644845739597721394406811143039996200612578475009941049673452425770612583935321962421993040147651891186475777473236061046520517671626682109711606730384682228540036468412175279237041819892689401022420747727388145790033835204519799016488261044815300474921581107687846759117712211034354002936590638228684178077369171578061827519474413879663005260214037040111740129101692204906662369423952227790962985997444606932851074660027930906318805333919815894238786598417576615368844569375330981477368444056858219858966880672819690575426215537633542159455931100594641116918558899018475566174316457523063926827099063620414607171132186520160301505710681090210745284821933870296464765254683830345967585414238323795825452462451460576437676725687020823003079723184090013130442758577352145009078164439307730340669128497030967575515187613493108532169790025656094002178929357167992783698846432255060857794106054851024385629023305482543459401063558712822620443147278356821018000719613170290615070419563986827159351319970031158143044412257582613718542988728931126721280359929327065060361211895896555154937747646345967145042251542941852518314687658831713330454528666130237558751502744125626346619790098906242239454016360142434940445101353588930508073997659564665460587506330004532180908239310394074808892348437624758206888597834833214564082811694323142633518944538950997574178239353310655311239612976108361610539819938253350503528919654483173310304176391687467061139673187426343328609577956753802476935484093289445265406113713027994762413283119632601229852071580266260997946014057264635496038958159221437030541035234295847762457700225143763571006245954708640971679210997526064823383231182634114013485059154086768374995894457648873986104904534093502440070575778429569982968629117075004159885286714301720414957889881787515170328308171129236837375250904933609136049255049179486110419173261519601124571519331635339102799569468097225427872032695209185153475600880678245750228622772524381491633933146843504233461191984490606053779861942587065863249077225911549578206664182214738324714731868388885960099794957171578709651903119718306762375836587181807841790850342944856786816981737819175154713253963760735143324715748677118863711162127764639857402025621020393325696756742553149077623680508323214543836477460980077307900110705778435238133212344067354060697465040410320953126768670153545549702085696817982651749662498325497642200234333475303928305757143825076420711181768306013760127982954222744423542156709202284790505827104060423835112684558995479280888988213424493763954541005394919333154075032748189683436349277007822561146778523329942808804923342496658758788899146219321014879354196271753296522987583049365136421075945946033836723535636081285296578728825520883291538230739676065690184813048366237721152895576516717102530846010849870385601924997266813700652040995166086630603353991217150253469610606843803539562565702133570527472719739836346874235624171186057373810544769648346234620186560279928774949617038540520622791667783639229231978177075403124411431479278603960755151560578150931980351014319051379388168823564702117947016073380761808798010012798998714912372144424019842973160316185367486793207569416298741529908154849462093553128754982711243730262747555900878644361181920035870809062156336509355979604260431373970785944424256357309574342845075852110368832602514493434557177687084758758761234350214645646489867048329974755600784957755029367313329678910364083432830730339429442045634843715855552749331009736749593949941786414647634254207383731720151136545321375497785333638295143095578825112202964805418696640986386876086810978541011220694173597575569821179203422383793558508160162293608180707379738207581120100021257943560406619344584160577889841547577931010315558763875920896251374951536303737552261220884790594115309982475929609855490290562974265507880343723339157015089350767847495365409798687097879674737331707208344090879268220593427114496387963006194584213296045662023110090868796745001619242763636092577201527732599741225686071919847617709796779600895761800061755368837834093732420411745357214129935043673294573123332515964919081450219041922797357496035370593375412843924276265027368059565140527072941089663789653865393385625835567443676780966876084998115546015197284976439882181989653155086428986436924200366699837745329766068826379590089308210978762463189095785568088854474306577636730156876470718535743985957309889700060009396933485469499498755548155595780048670088388479021710216148150009796740601674206506857123601711767444573224583813958628305766519143337892508114623188615417976253627539194174982710448228515359361497902513409487321260165192934247009496841922736347331603251125684653674711550350048988454705331143688535337466318550872707974147716105505505812356066796407497689900074864908596091472665205914152496323177231422950691538309642136134179886320004795781842110728132674580157924272905683197959367543398886537618918571297368653620849537217921795582967405651763958785322564191116707907666434376814528899688068916593169259985131946489414738576461737506356475035971796511698340683046078222018400058619455839394911807558370202478046987204398688730031090975334634100677384190524091263507094042639517325286200701148402393547103667115303826115239607490397120199362120745847844021139168992470711043659722013398933261304475014219070723928970415563844189063615703851382108656055693926313167778594266758408660086682052286353580304267670664923425321294780865325899554558888242752241906697903387375124390722407463749384412606814998413563843009191804701960012444252973033769802896268861752722813036895302430207039125564181033702084884118622561903461976760381883190229465172131793969216152328426605393294046477351788676036208971070992440084584452296725211654818240723860156526027475917040694802706898257078130348706793404295364004446093193993698495660584464478598384417883191305751764355974558184002952684055551721687508022876927997334032594259705600942849820711667872475819007460055769634850647189795250753070675448261819832856487217276176549993685387610919565446101200077645772689691622028586207969763529458937522254810252083989602235810646866625227450471725347820942179551945440991589576794138540999898597989922498059666092511313393856649204931815764061952598517431601771214157749507060078258195600243114215947586871124868536376582222338671044243566162977665622363397733177173504045209330594805889075952304939930124896747235873481930476058321527294465651384220934145573177450669358572180137831167748612155891616039904527576577494954260463517532129994622793354745155660319635470569878694986036758397788973358622652563192566174273734463666992886688833472455970522006188486295308448919655471123236441177419398906092090503319292147112585375137443583156889176130724610799223642900138665420161606247428177907254703542748018104100127120324312762610723485124345747377966711897071520864576772064179753347506865746642100301327877076833590664368783301689173809452219946198096943795302771581498381096036807741832465046229613899170834604089072506774530820728967280311421424787821227264032842747927556664409117312293160335054078910132319062972833004890530638678338467017039928045401655323375854730067327621132295994801373183988381518698983877159346573074401214922536461683045077568943722787508276306150413612305743067984747486174429463259842769708806204495678502946280720911387903000731686807725952525966372262709662427068447188053845196972290553906819591626558313420290232755714278277653607391971090266953596081828927040799876775514370909265400750999045992331853738305783293555784843805572434075412169910199510709210372024517602336768911376721499533242952833808737355145189911577747038831136450728893158129608822331422429587673561971989007877748968089322707785378661130221461181084061243899095780453036266155019051108981159421484707295902500613880996834337884088744264228294328792938957505806886897380727717256002794747082179145185933045351974471379723036536640392486816229976667791604710539501532142262659256482809216089873414858751631397180335033493820376104094981816337944220348550536310294331403202334905682655635544485958108438809954757489750588336787985557069781621702677815048155049568814151366340585343260404111078363536683371906549671472230530169192103603417473595109021771594812617322609116374063451072898955558311738094098444671152384198313169677925020819612050855560696089340058341806496270591058661591339421248080756182327185192906619248092944217061938199730365326769203108840339122741763447136417512976647899712017080820500967209077268595596754507311717559003041572106289897231770572252551572751935301025786354918407256940825347006663616827210534917386909373337879099440656435989021926149515006598949071563176115849449135477264875257979897067577625003867378749881706501470640885715268995000250856495545674103888076763946516414344865086467706112206537972132117960287622649869526236223089420674252393104507244726225145368141979792204389300328611190091445468719509701486408161464573266061426860245902857155185398015483594440135589952276456659847956004425292129835710352488279891369686517288465602919375024393960058610697366633744973967798351932700564443771382641911394290773462826296582778875909004557720183338907449885038754281226545563490597081585713870950144439307238205204973956085209441807733219659083982197504729508732234932132481846034739888704371124679031436678143231286932742089093150221989432020525043206190562884297066842147450977368743336595137046343832251286116001628248615376169323610420785579930819933561165821697877428694644408551842398617020949469689445186709776296513701153668752641304135285305667424737150100347046267827892769059847132214962646606922308534367301255324596846608044884118927053665091122152530989404931297800988139735997796232429325892728183536369198405973162927201775508917751784291680287569561243202448360698396227639632474936112526767741600369974793471240361936249215261385221616811090484199950118895606024336322551768518042914698985548100306780399131800498275386165372173834915809502594158850437196787169449974326585057475133361793284767384389062978396058963162742502114711073408570616583809851876647547936390772295048781426869225637627995643449284515634789411993723335354739673845358207627051594393413413759561714232848773980611241117250734601215524661973337679131690858637468269891112742116969025415535013256345092263243848160652278285415690999878998571961382018837625706555858917875631831673551060543167736318019168665262370546580499873863038029620691434879118373607808831966421550075170697107800718142945366055230100874644012114980829357087780288525455795415156976357188579463845705777376914178941519188805492007638293210076337638251020132911132474378385399440786284326118227985401826564514642618177355870007607116945616774543201554214669563730155349541649543401464966985577269711103655203873370810386130996338133678176183459786697921628954320436494370464352971651320889783500529485331551993837338127445344103594807022742941128686545596206184447807197603183577521788486533746545245726717996499490317028424041443007320222346057145592070492007474132940480492704289733007861659793238157479164572118401544760258415924368304265023209918171361306308904946764068660961492959932478420400906264185457493515844032432782541822160035536490651624643310113297069617149716200969895239504346366500433937458155062541601036507083951320523573773756535588940004511150197431159114018597195158262598049317408169398333541778194100079358133791746763792160564756732715972711812024116462915207365996285794216912824594299982081332824873181118166007333497112712526439687948591147945365183787493644005615703940667097199640630741441160047298167845043565648917171058032661712276070665921016624218356151201436949887145430789015272768579133774965545854912673016920045235920713883678101261250021113136560528309964466185072023611738418442450698681278831631081402697873909468633650675743563118282686571318786319432503656098211055812295023098399299748727862581402991094581733680663120385990257080760906611591167882159460544299567009112895334080142735621993738422279866952354725596551512743868746428769142027457350193846118625310594911141678089952441082293269149196880019986854726439521742552024555122187469111235732686144021489140377213810177690672779476794906476816267723933545434492253388569676954591077142780417305167059020314777916403734033999160502332086398174390147560902146343128792768905250798965807557366093209609367491757316079615612251430403889251100313872259228552803793846327019800990828456950402555449454155670731840917498861962421034328698538967887816424379736602692781276236781101625404465113026117821899907155737437784072477564963925142480816316315114549456440054162320606389010023692483878812005266082528027723998473112442132443562188167988368198836550546441447915601556257481105630065552592758706687982879612230999123660418215792026100900851010426074633971437561363297709281997450304375887139707070004334612947242251488399097200671563674380736348560573586549375490673160407696523717291349626858842521416657685990958103739262898957092327698887057645295325832865550583977224791996395239723810812329643472785607515819770350378570998101896908104281176322791518732353825265885070044524710655625608413428961468867085146361153909020078089879197642853315503181602574476943723973266781088393971625131392351342920789554722103254430360648881795459888738363872626639549871466616136549163902035122685192852646023579360636664175884635761509227028686202173059344962872613036856886213650445273529518576980362561158401941863504379266057569504898129923352610768811699966430473443873923748568397235516985074231015960408990865361563820588536820897824352252333029226815507910881605254251431230654674102861754622060226470437002010121726651054758841190883274808493036256474514621789382377040440574371619539149224469053262931025843084770510760817787676496239472860264101893097142237658514506182755706923909479926576851592762947269200109453731362709811615981619379939388049345186158557443330905475898829496707079835539297474218951260213698582665214441725036910557041324983635702716692448460151566552611219552901449764632333507190360597266064005399878407664287147096532828167729745366643937182447706283733990961196669625109926216427578808520713939673975583280518444085057154408034267802232612471873459864660735893092908355735197673825490508209397154914193495112367992669037751074831638040075494994113737033432599499245048021119305795464784674507013638643159161139416589654624862881644494696346738267169435365003382785886012561935214160451488824853632901128228831769662170741179397812521196909516104098638438394342845285949236205457696140060309470259561623373360814597728285122574095532133059345901168744034791944207709622863084500602330721456806867683936197410496279897388834195043671599384566661637523372822623296062200567786408534805759764729551277465252858497133912025404403338958617571417460315062159580744877938885342259646516400864543970541493467314667803158361262998676273279584366175378969382823339621378309789317156625253255254877731965335175005202516407575322112277123706484999473568842219594800940328792299915191403244604285388843152359105720178922762522303911617407172909630780722739306988098389357077137383332011433339490374600434585224551110188007131539983837123572235244797170013859947389228577394063589522814666698909731342007230364151282864479774729801179901340417379807074499863964275552550519230219252882678749726920800025116590845076628127803839168799054551113794650300080184721265220587585310149373243367678170024745289803734914443728270414035447155002177152873861017746464071573752266929137242518610639828796217668306164524560894800916670641956180484817867191275732755428751147535844931878398652253984926015594906122615202793900214282875657775723267881591023805546169397541377595345412255912170937958326532358199230607112663043472293986517929719750506582082750367884793946477539567477444559112026708179798710189609948959059423493307976476824735682191228107495848229364027936822719156646974369595908434762645664997571152260806652695529182002028842769731362571107208743914105433225836309992953125212691005359808141718255779216523117153204960705696310196600668397414980890262769435497039027963431121894832220329393338488897530963374937103327624281566710787818838960084770466520827967076153194897559894723541766152042630278418106105740959565979641347480644802029699383711147831383801063673605171601102481497786281791309023555345661849027868773933181978987565639389868061466289322909563927595617178288556697966234817696150852450106128252958679556082843128341736771736406749846801138159302556469067626036952899500789180014965142294295977545308764165833141798074840681983011719916503541103887921374629856939162788318337521857832262681647202739479759800275788893718965805332052191718724438066442756339316598976092996748542392301829131230183122413663702277503851281536892182710729927636163423170093373437973544225446028998031837241441760659992688459687924796706276724570127083632656840350556336345938867380785282455351045601963408657821783402292628826839985302263364957541228532475583093550378412673846556547754467536637191884854827954687494204949869098857467106317181202651670513723764600657066628454415777199297364466783002413396515219415153982517123636968682343628723884616579958491057558385303083934506842744896667348174412786162417473328555466879967010098242870605574970730474073795804741676936937804740863949028327664287268285569011870075530330025943133276593192177245684688169852970184538548634438498019255057601059513039788317645348678852150890018108931227744593867249741590352814696027865657327819388006111745351072459612986466441338658093104617360779687701854203648788943559266231257144212090874119999840113355136580656071638497276669788398665627009238582320464275363271300456178936585059670731824862897057671900730947371010577813110876816289118545234273204493958033960804490064856316488071934776180286834489168684830812124916851102146857450241965014509952471642890520978240538714961950199969216032312238058555594966239274881095541233075387824549866935511278008741284704213747205124054123064219025467270192811935738644090056821131305595030339586213810772986459806729868326407969079174778407043468561613215149891918067207054549825714189452814735826848839035075807113625929537084901094302031872693757046281163230999313343105656628581684624977858375696598178316280628094969257977321998228717521065489882837948257973023541102068364114416680870070521967111599677122970006413621493901616421281805511017570232540821514622449543150236161815492870177728437028997004600029348741637047445099489671557185362799094395670790520276094625562982138206721654695180813922865393788283904780786565868116017331636296955879741158301388479991495107579312823533191411711253475473755504179939994033478661644745732913895150949513106677633148576120212524533227901002757341588608414096730260536291808589823780753293723765088863572043745123709538926081961952054635076952405123582602012477322782148707263478630326324478854870156037601075559129101138615654681035529982965710778289463268984166803468728192535973419726876765153164227417796742574256767931821895716365014212382639120733078041621619215389224380457633787182832627213721799512603201912474063087842673767573093666758882730680859834590411097308912010119867480700142084076394513349459892064142483453999097541497057236082957383589992153580326392971548026178586960475928658162694612933734029179190413426610603294644450871670148611780002458334747545872485315451807769039233509997767073347704832490069989608456441864460021653499453221927272246249884056884812980151953113259141257255085795751817428596855101931646045632963665744234341624083339979208582150053071599087214094141739705996035038732200118250170811982696707903755117513339592432892514688552516132978511151008513206843925433609657292811979022015138018111558488552738934746729919797295433244147895332731564287076809661922599216968216971320695052846064413224828082430128837862306575215238514584406130812541143760103573777296296326604844745807471979457334803900334722078668215093521285001769335931571738451345002263334526876230823932932916933090442723823155575931057612244978957961334689299636132596612456542092245104046219227542332051041930218301870923373656627783105910620749774817590170308231343179512933457985745981539717198640049488361639632412235031325623549997366754130766736972967024513714123842171808518867116677472969827604224842315750710976013008660312146127175004155649475169312669642915873866472847941528422432989694607139577365793816017116105607159157145883657021831632629204017622240235742483418675302125818190348539617636792749182268180715764466249298282632163880506553512849035624271567950979984690144920929049576007515302761017148608071079081463561580642797471321552104533586873080626909487524314809958891988005262169695690324892700785469273179499263520732830487194591984712771613278853037239147524872804632244161477702535974321955754571538212365627479479448680813955995496205065680088802145689023120995269642701313727473160850960749571448173054738245411438641088343455242977136421767502631729004638709115052342242332397494657050458414908904614795782842579896015905914615189521230113111290019476014002497263010424089771662615541735015195607821616532107817680680777307181344505772596216754334585266531874404072486446240172152795604777971214533997952352352302222344847881202996790126427709101102032849796291117934413154219402281170486752351067046770837526065615697131786547179122047138862268159407931971400846312006406557748123013950435718904377844414932230376790746240645108492295269973160327395152379974338429771090447185508970023932485988374746260524502804333266892471316209126038651750873575358430115895044692101175111831627312722908203329103650147323384067909228853187150910580880820139087375195679420297206781554405492795620023378065757500215287790997168854297305987679838194371682559605883601226533710463262419067842719673046302159165232087795033536665787098146422021609251703474889389055782859724895325015597757853940154164707330331884144265575775232578191008412139946572677071453432567882454248333549745954665105800761853464150510044563913315380064203392002174219881593803988028015776481570023204099381292946812059347789567993131378121185461281825046060724435262574726853954997406611447734335166834960310449098468685930580852511560342245503105974856037934981250652776960340264759345159083959719314759007935798480472813910336227000053568089974816768296823484281083687417952274085445497061503786497598668214450032111190594166143738230238657142995815467729185174913231957470569293893925633860268550268514251135654940909940563480371447222075348521149548472097200555194467870787152777584802848304731291259575861237092814109682545922977727411965204584067606364657867935020044319324639119726628068286766994271992390554536719596258131245340223905048659132744797128696389924645089222722510551799121564700668034155152434626261035795126567096263480500916187012432910788432739659426391821101310465137570597365676242217146071467101112159383406489792943935116755918613497412123053925731729543349119401924653215988298548691759755585589172513855238463943044903515547573248908656835370641212157372985654215730387759599364996825608619865016826361817537175000062036464255681346450319371920517187588217660337222972903801253959286114931254410474484995926842689615584170006797238666521406577499112465153736782254501175762820104927148508197861229567260000567839149718815835267477641214317089357780736294005554573726700526232200542474042714224859449101395429741245177758817881275646692343674193229157479256686241013814649554704778191882688516403741181497573100258158707440537484750797136853877486157611841089519010379380124388540981504290225756103817816687743179458383706863705176567869663641216334738581602073551757745653923084989651322754884537346807083763249428529275096674477364037816896350113534340768084279151087954808162306945803740606967375113816048530608357443227798497730868550790798678614559109709486306333067912510719910875905249085685956068964912618507389170668463560000019566558350243293745777899727802051064961400598928302286369293194101722822848208205773413614342792386441659456027536603384423862525231389047874172670399194965387398932451205830345788190463700328906109251279820890201017929239117983914099729714655979309632221933735611466825647849733127271456342252596618292265535182008671006440231640661684969468339120154040270313597150985971474626303083193282318788567177866853816180250013986712596419168246738696780831026075978638164529055262928401472547528214498253864506075542989520215849958453929408511074886213433466809706896082476009987681562584369138747438357239596074611163433630426522300162363066602391952234515240398971197384627505406891676392340358389198688524736130164879203468024588389119123102275103986406449707179524516394247035457394552976646139327211959828734996661956891357607116346405604596505841435457628809100842245365011628797261885020347639496631714849442657103931729542790716438016711209438325133165720682466904661855043942568596662657770797135966749430668716936547448048675784479485046872802854941530611094653528491980327830976073863999723744864910419263742693312556158436839355631589855542594489772332629174168277560433750262253119014874667336147540272482264688149678504540680459380324225932563922602171138758472235537200005945560061691125285149784795445246086444958747823310537415322966166674055037128768492674376076469548964422521040299031350595921540105268088354375348946564951316599419403600950517418341090715902708530439800019515000641488667829629140395939651510989715358577994613681617034151072523829135039021714880941546828556550372511955981025105538221570088207102523324879777179957766903058143850839018577340089347826564522903276694469114325300988302893764437417262874399582037456531836068579036860905146526630032946968589999447712881735637958168500446477129976436738909837314028644757075112189675941232250033042425631283103403096156620371601874330753763100528063558127895938026748435922274309249968857359682472857210476555460043629302759015355767673234765395738082076896377597217249071457502739158153114473585581128469674598609553925139486599088923266791989034822157725902557599878004598649596428665879202860566473190380395908931142506940684604649591575730883980394946651478532666596040985337917424028210206229188864477618228688153672266029090709509127961439997278093087415097553901038883978880932981733929622297479282845040044093658643999608110132166517430889390482641997917641423262340587812781836281480528280896553670624569886987117239038011020025615902422233036578228553529222777850614141316799357567889820164655351457377560602135681513736810173142724050812090880350081863245968571778614697648375562476310342144844475129687983338740954254346464880955047339640409223938616545479927361211580109830256204298359036711599852091374413712275995658575351028849815275870957523833248354116919955667439899964077333839778691821703575108705789908943580445764756424920691177200569946337721482210640651104178862924215903501756253971750542570945353161072708533645421979854544853263814936731614253060915552878355993325040684474659928398116396826843915032532939582215458059806976390730345620341212313248550316052702177763335503626278035941930016986185138086100268956579017725804029784470849794196540012976949721863585775075395083064538127241493672869812906951529039198441165435328983296981865111397900154857499103470858592288515446609095073341249974895333912901728578710729319476005985061823396469962720536152694913201508813906427209708742860459757680948009633344174929006494997859972800220925355301363339799527252429839093813650632523233115652904399673480902105083285334585987631307490450088612032215935151227700515313391952709600798604394887028013501054539840557502005635154028082657239835516975000123432213313353574829150719929103456429987288676075732492572371248246918001517750357011265223967172028926178649291548483511544848819086504040768760032564791885817224018653174248410743825798187933155205703054073581638752881691521827374008025699292179101178631502739155588217398917263969281583286222934215855021724178900972468471912107060549787649332799355594549266177271234752377984068087700451340800376906301193594522431740457148784980981152564038976670055807696855831582439305998083088141896451551445894389457366100359941254410123745441227778527603467535164599522999700057076929775911137287052719770511509578144561330561847820536427791275667572933177958840601360965998926301704899689917948607392997670046152988092484856399797935307008640974852824097421253171747201167067592444184043768821499617264069497786073362050022486438101149983921168070694079262589695311072976228948032861491494806300316805780356430080813846648824143363231655206636779800582901852569260300246560352164187884003998526502046698510410856786677272193773510266425808871755806267724677302910318234018093356684538130065171075917205352782393699574511375647055480885404008474744219648401504297279907674294645200203795301902908069954658883936837424573281454869248276929497298268083583939225684731805805833497334173852657378510491736363323214509161159233166897723475807733566614453300692828062640692914162029642545234326483131200505192032512652109482455279891992549233864984751810845370189571574429014072161151845742743714372665765659699227362424942837919510941534007211650102303746771496590288379327417560255742157414238858292150928817072428736525986967151521695666611874652651474446017929117704795586321617927618751186913724529141044882000807622359118625073843281967680562966230817534472724641488551875897818007246323424535863507638924081686576562891612247739708559625162023133793005731661223322423589972688800226417847762459086085339470275486456465603903662782533008036664584214265397346950239156968824027423911912148373025921508171813419135632340478389952276207485875416831028112568359076747607319363349772081649309307425155616204731030565065807656566246176724938180125513810465325061826330992917361808067458085787617858258389324913666629876787659358345084703089414013180459871487646616472645981289082043424042840591470466638440072000067837536029457953706660955927418879984033907419897342387617308006360128733104606733993228816017357730078905048995304714523653660587411194827434709648148837533632579459794372903173476817736003413840917149631773633975115958358225641236569597883958960495298441203511715775946185408611653658031062402891090810874486870073061392273170751138827390126493851167288437865365067346629159878934020964707063295864363602140832079215129768048343400342164821300562756285651998305857453223352867142219891259945897752807733621526455252947167122288704390875275879765398152054534152018508065491440889439081738915056710024775594668847241613597286739147366033679257243193340590944318511968740355396440885304101143793361605138031918275147548737476117004503815984135054330983270545791237233774713113695222822258736959063085931710677879355458191300130331287793436716819630974529811009107942511411449565142500648087580186438098190071110792225721463952265904456273453642382800010747373158778958750133396466668828130732627146639634362068559180755732655318216422658977295973470298927808868225557952768433310183073630417829340273364188838868664177014409758344359153595235228554826268098453346232450015911233008728380226967316974835291964899467513892057191967879929835144041478560861679814917868514248851410521518609435883924336519496318687686166893648199848164712600429183050135976332981875694486972517803105722339368492428463325914642542092332153365600835849546431177494894392088862360809281139994116571808504419843079254666422509803232073107662222912597308794468004303071887121497021422646527096895486736821422197395722361001762977632615678152503728143101962047727347453234287929844636863870988358657509041617545784225567661703386199347578174908771648356389417181423214913552067123631321524358867219760161643060762823718392918263184421378897880924241684459499830938962381998014383248282609071928787588720926208576887570598529298015092136172016837852385949473022068937984672190435847937992999868598030349660851303764689722122470132054741795218058039267175965399159960206445366516012728087357947115342359830682924888807821852252062634103496024926203980653292384798201099096047024164306058216155377322130241721804043999291387498028658648811567967845120412916667251478183006267398945817338553787719708884584693605626175481133794473016948804757271076845866099629241092725418098892210642776612824707407625145304274553320713048292686633276988469481301114657183340587421092358268974462114939138977184805771219494763474430085339171738757725285972203076415758801940001126331815966815862917715090696990576416730129784493837086264373378179696143483771657555787567256284382184080796147200157389729161094759180076527505568634015406876885998826143885371275583479907849806577947234863195354707610609456603655070297963378375227010729034433608268207058206319727325438918818298367694567741864725797520771544734584413042096689417902517149415034165379912273244319388603648489056791879432923233354124162133574025947641038118984357417454734064361673002581825775053128631722242338556834502626269233161919947615981065703465309662620826456584619278055462222841801576975743628076049018249572227528519993045873809273204185348008289341001658083772663654224196923573604386074910998780835972750522727743985704145110768843790300506548734199390181595712320847244261619457170630957378083490827356521843684987175097609931156081934389542304942491541274165848868153004875781073913586134176629263148878454752785589033872683472380653078211787415072663992061717720195129907446211747928139609086495072420449768989934957685849091355525658202745936218906123552499383014933484896412534445008772364793283156077961726992889563986887769905197602223162784128042284061334878330756905557141049144023722394891280296522617830825865406223592226388416157535580131153293652588417208336837746805815847118107722006387855268977992401676685190499647428659223986686317261642281922337154940679813899553711641596088305910331312195265379725603367840830432455781138001551810110050087597183472042757442318287476159114631622665110702381343082526131112235606367019861270206585182498684695283321371074547486804371077019369295182286737667662791796909762972354989304854394560331387609744975297678429113126024228700816287795351735121462348595873145708578993379873744167868942385753550979776575877729938093317257387611707079845511914925418430162002745107012391963797942605956190440892363600618398534433887397301183529331544427191254836489999881667981606392164837135823705200710045279179202715869729863822982867381446001066031538681300305347457966282305491918260488230856763769460220614010559319735846456084270583150952155723536618205662826602664240408173050235974784956962950525782915672273696518527449772630971124036454809570871487665052115945458871419883998238178721133196478591374805843508123289758697509713078570088775812318358030709512956891695934034606437249292912725797242135206376165101501364261242425252355173566441156358338133365166766468723923861247794641761847468131242109850144406049548880207372647377345064304274206471096104443672845416577910398278555304612925117809555633068757910511717103371228565938175001332131738993270659740803531299557756599703567616717827330458520064351379654759743264064593393166992556959956846234744746471953972153499203759305832409270146222102375024000304911535454063502543524238047977852557429397121271018847167186869222265667627307295582910507936043673434543614047851005517065291989271457722584409051216688678197571541978116913565024577513719235202556913171325599165076445871899456074148937883380714330878866920598139941256308266301864536605063555693187792267020014363927166182665341156090312590054488889465183797153770988945790001930868604625097546742225453285392324287313371135076483295581737725953799824236663201304360645709630835620780598706047850725157839873596226238187975769131933288209736701140737219787190217820113808025047667840887329687390350030361022805916931433152713096979564810164841296127836579808204460500618157057892431691055365760041496278097232902635112312857153626752629594672670649021205280713108893794281915805558916184781471545159310107488710763612136458062293959851217739035046488765006789193420022884175560314796319760463068054921580783253264959136534689444799042285507882130148934150020282645871539271934677234265688838574593967662071083458564420819432252709469929407109405431888512549578399268396048518493362402211795584291367604183911056190521722427931528494190914973979473849325536143042577412509632825927362263020470697909844134244631636498110081859396391426812347987316034794205697498548472193603398657399781075856908115380813525819396611657615630017211376796518233025245403322233797692797225860298486716798765175425814254043933408089076195075603461768755434406706829131506068575100742849918998640187633074235452123667044557247930561731566487149234064298720562544334215668617097827043860195391322247481768588800226219391634368775640151670363163514877520402216436633830958768101263860246519884281516572239556711904509880271762017091784227581105884150707153075173264785502159721552781606184886796812656536467843256100079648252875985564639624025231452780543541188575963491232524123440691446406576581585277911927744579470075988690991553379582501850383451191594132095750513703881012758556101236809873070958429078803144335122861114563532567480604741789903691297666313430218204375887770443471447583817887312954687261834835975260092889737916851572866131603885207017876090255642939582863210634973823425659360093498889112544621322888804686291270781085436609296670631763252092001302012577379430541367794215210408501531446829222712620937686178013239911252737256572308608941198358739772502884209535928104210159620787278061141766119750944268483951154283370366110289304082588117032690105293044196698930723884730804217531896945683867157765614547632748458639433464724677478888052142463159017098093799431181136782273139196972987094057679208010385588441867508793504057784464956471380885573394785070204258428907085249829990039478373912731808751497387282096275016950496303029651524353273350368088436923703948015520240923543779404476847993435851103785289969305218166300407411523777688865301340337995644392522148223114954967085378900510451719138266537937012881941533061115158907600348269092776907528819679060583807078284905854740288864056544272854916623933697579846270402644035432004189633056545552328668765472167006323851018445687204811940360455079315516563914099712520698543757628771666358639751711454446356921418847211051495531056402446784489434383824600262207684138504837255193905329573078571998733551698013053720534565065190168425189165555801509874824279669102767428703712715671175545666011386701209070620408065186327839767274627626959981628367249216693805349108682655543186987630950149612187173695091945196879665739912977728016019852273644804349247232306781718190060503671373680920938011507383158092842195962394021073018254857508353735191663878559317527066068767826891688486156695622039636171340647350018120087703544947476987747314415735296915658982768009108579435472237444919267829240531686621413401272329907885645218614091966856929847059146624698949881271066082379838691989109742469681283265200537197233480093219442062753239548301978425932704098873343771008472336832922615290406463471227031219887495479064328654354307180317413545190878789285169568657344352955882484721866482222657656851375817506180262137200630962811407738367170252251221357347411524871507397470972244458028388621816795484697043128042185924284064476707585856039002797709931803679734292090503851887337198363295389584546841644603592861549873252233687936733461371398037692449152064048064511517698646119852842658432357618559919882833195668149705776145899761921758987417471352886756552660109004357105180172057592139560936191805506734681158225557553128486743618137035307498032617191368871827358798183450521305442150217830395171174259494511817777406428639181601841951215923127152753815663835167932358885871899476059453502295348834352116258482822619342476116672842862776166567547204706156257147419691425797408969220443910750932841019629013922261932765224022624634707088062765731251676796005623425789683940863862868459778036964509051104083483778415953754524343848666466666062187345808012622859479615617377020223323592047227645752170668024925976629414449746634077381639313909689811098811264577407050511857551408565001364297403006873269516365600328131402568272635425455518805160867907661206292604001072763467340131527372512679820767039896539417413885399111865817144807252268250808092890827514285071040814640905650971769339953302473759323085550617900599649879472499789656180127999866396749588731087402369435618097842852185264724659621971244072960117099403736336365065413987823937070368091773953778774156064500074025173360047321978345821951440523953501692501973725217722592529195163279405250256572180969344675557408614532965166501091591145969296632846791315939662106676027909454683591889902667988697576882481320297850459817874808239713133086268747786012151044664968355239335743062042807241323662212827882687625047122592231336310052732009991528981901221976627808516596202258326969008606219649769036347440304950125314911350108421941822872440937289902371516281093694875089796948783137020732429958318670274111910203641988685181857120669071322115130032054196224616148772246783022102664621220204552619795669689300009205974479058729580996539168083247934422483023596975264180265714772212731483504883371744136194401657767268009857168289148670301502427504417053547944772406661208877721658141364514218964572516994171238861127935133601917648528111365019020552255584165558811692974915926989862297665021990732822220605753939951296190016013738881243300062499093786540746087676676832313576656871190364168456943341032442831537058131833494182227359890263695608216850990032802923271688297612370275064636355042446187077216753877039997637213273144353184953478343481878394178142136985371030814101310021711250537257549417451255889700215707245044328424316574884552652568490134239627512453254520398158269401650511405271517208859916277040536384598780376854177518240500178314559506547980259520073714760198319368670757123970885136205515502340488213248293532781659177081043273082189289562595583155942499677088699539622507332410336129681686306312892332542433800133762454714235339004421607152373969902072993248566901600170752533099253760151180372820925406422820984732987110609435196879955792346830055213189164440728679269385587480604746353685188914946112024944692274892760651528524667627383176609903081607861042186982479078911517779188678519172237113217009730792411640394121309652594939943244595475523440840169831441876026316369907829465437513852294744739578054852164771414176274978060845851030703673395703191993883250261154924339657054827045518449124218183347010949920781950099624419577110817057201800111125595586794161002704515869687995334366904166814225232223553960017707899268857723307340273835792557836602905709981136234184644004930726054733932840105203620540338342403427750425298071153010515232083924462569934797935277737384581135230139796338100150327460105038197539884767761394936874495628480046634458319514146758278988500482472374754365117741403363924485943150071928886024122808455153647504507027965408412774954672568874468890893840850426560282060860504714266108429355769794231167790159732041219280946156087142594244781625746265314429828868033721273388883220451852032973599611140541913173932785048533442751233685348733445402713465459869149074361848823211325253272487409630163590315786457102774442867138008117780174022611363818619831255386613850004647716551453937001805081523613359252776819329612578072653518000854344457148574852283557378866535694922799116259367770350004308731489919316084947643281418901833280201166869370037279318067099179153919161330679997310766789089422866661858361630016066272613287401970004768164285360158434126922120609768811773793733861630347697825852488786990703455599563672176494055740795993039661208593853033670083583553874087407857388423434547951032499118770523978927944882130905902127043848169685814201482043441582702213038930774459743144810183504934269596115585013526308531297097133996539792834240207203655939814063016965003881377975570774914575591747329783430444224360246793803593060654464122385047033966697892462181569724312620232138810302868922793739967836076373693094511189771381678924664233306740966375060703318773482500921187206441574093899604090109933610857026671817495360125741707035623915759648968998980920170048609659375928360421448183845297025079455007344633027597843455827296694778025513652448942947980182906189994333069538592753535582402201370734899506561612304144900081420976760187502007243882350046616569571056733607934465927367774962313092514359377970870845063818712202934310256173023310697306625281343774022677618838707169738828008444514959250445257138192609779956464667496519099265465430455017813939243032571447200447358137979999469190744338519584492596139686518900267536176196977799946547648477726834208560334979665419513286658517190367275098428186070106727682460629224086060138045343485962965867177861062065336587745022600708099077979717946045397300177393101070541193532653187526258902956790166881080691112851546660747616168468885901131701755466549037826618418834435178549856849479740755472022801191092151094707818129726910796772368050353815337443641075533195789707463834544582488267185902785397253098926480683789551286558684328734726088154967494618054510287575542574290939589549493116189350652725135828702640848812003041350833549870291264616459769762824331111186964368011205027207658025731463929356694598128068970945601752005641779900188895677382617427098235649393827931464488718726345787227718737853232537222076295797142027000962280596862168096441602599082878045292781091239528269650763542109168640395724371815268144020585640244415389983219643119524398664182745933019195201721192574371399888673954935494722201320676752535163901501467181832571252678217237190861328919718316812756311730530008889009424184971789857046623374960187551246811482914807384167276277090515068713192268105503541218780985897815105875536942692307191266360483096878430140697915697796640922848571047531385029873519368057677581893132710012243564756676235506761943245171710636625161442976645215068706842125915308806506811102098193417831054191566996499987885904841361117049627859951576952019326639358976897099049655742194724396758881955092132587253543277201576298556011445110636335962731601096676617561553572829394470966864010139989935794482256769270405580928376127301579219644485067909911142362275871567350896805124880234640987560070000131167703449743082098799400815460108146256888768681264360542246191680068870852990998825591785124951191121635120927608378135153752279943353775031532201117046601552276828330966214486614731999618417506742113897066728457390050830921695121978593524941565900690679017131398087355551670467891294685026190641940804134741705986634660852307338760207946537678769903530592411750483419095238143994833196934816768139124914134071812955325920574277013632999686509463667182855404743284015371922862972905009818388159790970285539732964970826013539327856491125051589523302481145884314121057160181402560136087244754968702437058996387937873253058442414749918647990069937943935854730471599814596066266213659659122735107221192848403954232409624454034428493139095653843745742574345259266277774695857911491403449959073081740471134120997469507257530830598280753627637401469286684884179421438916980963558668901478997192169397030117868207577729883236660736226203967909708741841108003536926637379623784926342804766577571595816721752634270284599226791799635104176996692631682955682796197621783459545172253612763028545642711133066917931612499971797288549338798299352096866396419893093524498880801622157630734035113341758447453140156420972407619634897933352171452094510291345705099838632055374976310460126256071425115032519409239655778988562055409277131448184107706576720268897543171538222041833718224357792276649458621953022576749776084678864750050296678345533630791917541765382613683224955599967175424526068417023953187825866559112977903789972654810699946962344306201296155166853703512526052633639099899661419981140077578725435929114464434434457674760060959400109075745512825134159798990307850508714704924782967275737235887699228493172190981642259355591647057990861389903681726905416476223395996081589459821063080118271274020320997087547060386915916475235167111614020217053476147105615552602339219909840562922861260879135379475366660647283665473048644673451336915735153990325552430789074036521882330783104642275770041647324646830463817515906043742058329219277971040151060470369450979864519876520354459330597825507024748976986423800679606059401901371949033840026468586835872957665873076499456479344264307754293354593377320995424206778116879931234748660430854850637214266983016803950096969556144107711880120760523407050731565806156011723043572307727783043503006102621491988956395088458113055169880817409252604950636756775169436919608201958621535399094280954620542888051704363662146073688738961748261831318704040872816722574048539070253789971135527778186720469733012647001369227353186293945853012091428549412228491360796980255187483804247831354294076416796870317120355129819767249952417153791671250666425687588037445032388451482107253651650583311508635904711464693512824860954624738212879172589096274031514023021631207444202923623133026270997177321351235244213482487988298006986567620027964014901903933683543839088239085781653686056185061104599870446643400580099584714953297401695418810299801605592647146866824482384860186076204173079215106168937882904272224633415478308983903974868959197688451221997973589743377273687311487054514274268205963187548394473211799689738069887357659205679004625611962512555660379254632290431979877232255035701773232259181607536567925899278035363122937391723515056341114538112233899142397515065305575649942265597668646509759423799969588298328305033346225296408183278134942844210286284408283355991220276331159906802707856466661581109168408950170344656896593391332953426526255593791287485526403620623081500563449636454099862708926393488823597935744331551721456703052949799189680385996645210854338317406553131564166904761874101591647369987049401157077057442751094941455389304953517950126338088061487102577899359809836178457877353312352043704336851913594002710739448604150095284022390654450913686158490923174600853476996796274705762433416160393134034411376263316507702508011734611762274356090577577007257650692417722401158851271983237261001477779309183350486166577864859093144478401894364105102733953048339836024711910109119173480633224228946463836820545582888135728689984657190154798371730639906049476588147952723441104299557367453183727989923464369869785196547891814996756591741196771429120607024274138518413224079886543887660971737054201765690549783432241766859863742603073988153071868024606433647144618390528130004004517923801475366199301335854575618643761511739362295315881037078458454092692798726491378954892961019781410088665637653766911104299472743876235789798405344174695356314951192833015075835450076179215092656680050604835688038811421762822051323584022356165769158523559142666549493087324849492963303577843963038894642623536733308342557213234890011727359048598254105635980862207610181482253093186055935619938384072539913020991101016614761359179094618177532394812036888269668130883072247665402946191724816773636820452577873088458566574677721951404519584415547368934075963728041877932764281035056211786617519393303152356840315069469883211321710937198989053824764183339621109076782662019704147346932740437952823381546282633843302753603497966209707178763614776375206234120448782853140265383691754512259827117327201457627169107352226450255853215264805948645777055893949858826038075322247525061164768563052560621533893240453863501494350581979799633209632746874254137673234933782690251867643947367875485262796786971299698872073701197847119682383537266210905871048831558827146415796005651994026967258671561139599808567092848974751703911419961571710482647369899212630058917946421199324486805852936002500395856929003265827856980007532493947639130101570258744976662988699293829735116999969740953724976557993000411573031804784924753514458903049196639395817008343229856669838038449547975349167545973335020561425575814970679737823851035760977935955460924320570454529157067321283333463506388381877082343153185341414096141149963884989559812084376512375709837981146359716877424066824291272439990115339378710789766576322262678162394148929367842801223097882667336034616995888902354085383035856122288225512093839774209725334267564280506034442534591756400982279275672736318931049295494010898172663912900734855082579262424757190203880285502296178351029684251154262967469662482753963148882116132779550183131174081247219005146946761006667489578421398319404681225611973428829933826164293780468772948537965485109404228604808233905149991330165406236590760942044860675297548975615510971446448920971759242919875478194437260424635092007135653296934902645453589213552198200431584515536095897271603600546141119926944983600508067564541434342693091398173139944345882432955254473059443042499686761637189567470810292243158793941162214262505262665834621086594881116929400949794214653273298594600839007961776202773988219968435557069606776659053331153281204483111126844116211947802867053589434126379819475524883778361142651793922566918108575921261291456664619969139872141748657045925318827408030892046510731397088409405855557387490131906378052882946304778872401055025086717283776806821453838516233801467627432620152879189579503213500017517571021308450751703214093034129164030646010326455406310148952644030258766768680990390366882487744396910088492363610264281564627001951341382285966877179815103126379167503722599692541461108354860960925136250750718805908371664473265264848721021341498919510555014711619474714597736265746443762307114853014762874203685906905503130212820853676086324180634303833528216393985050680054836002948147180665500050412397221028936641179336027504245471115637086420956051996742600282597456131794433229993681351293965517736013742775623912686610103432878322946611487653207019893581635987528377029991774206162699200492362848874952648800192874682188523787523247105082032082563647750682210364013452581408724820998912894467980065235035122736247342938143004296408369809713584851411802156337734115005546552334265062394256823490982884946660090672581703799519363905930287118263670552270029882860879442456756941249401382291451542393385838761399855041205833572615350946280187322836015787035327663716378950816857214844848203116396726567020644529898477968578008118645012737862000682909578393260847763220231840192229138618943330874387857399961121162644583166320290891964806926161362825785064624425097846262733932125943177466753327062963530998157841080134942243750392389649487439777436440185485970798374735988256421625757139853584148780896686278928332115990984230407067381527681620307080215696714228646822939357523117907788923593608697379781420292348100130455456142147739687529719468223577511260492040987744329829866942034098573433717031070389517955621552775115333580683300399215835258220847570937266144983901950722244468982174009174444473817209394651547722073926227319224764028805467220863109411694236442431320035525674347728858894789045440985543006188606963802364913664665522530373083088042317065741805515236646170742113170050909256003736176156753811031456113417782226627072623235117371691531317973343723321269498200809097520327914686548123210872336992403813827415250987578005707296788684380804097561212344695003812688278919566773989764954469725843235838736109720945084065467364002578645362425129898149323409964029942541858948815498785922291771561195888605007051287209600543867437640217190761485245226222737757014587630368117918525563007074449156988000587831096244495894286056934553895060571999750480894994599272220489342142142632107171401634676506508430978703148480763428763048283695141478662085226525819674199144776580908625665203795590056838735726062184940796588582119626767952979530328922101869773743645175226868972302795113071450280636911508046922796841633143122542680263243772615283066885397472299333148799184842221673957740183585257881953963812242665539527485371635114579840619729063737561007602315655458867568448332071849466502878678188241842732313770445988269762845011912544379220972139430289738692108149782114355630846204034341617664815406647028241575364639588494127997519285667055989200604045683897542127916192809099995259570383939968835815829925065394286654093793352089786063371744225645923329038188172881207757235093934909490996248728311478858517923787460715046771545074865199713026847934587936747050855002969554480420973874776549004966482587603868076199961709039701180793319476196760823730525416091628318362429047877556178744662027358436892934844525422846579675796874195192076079573833532341672867211050990633730561627830396569803098013832409270865914022417645637186763204144469251435863573430328734604563196740899780427346817368511354338486890086252542569387232125127648198550455594496466437277125727827691772769305302406145866306808611418207507856688735125561215511029258664874949012537631031459797966021677612581913031662359054794983155315285948307305516449285711982849460447457264781871739992565724239505916871489892496245374985796741499364968288031569813310269361563629882568517784592003447530361189022731941077073179368076453817854898421825071375602789354690207799561360194345135968452623128242549076104688344694483867208033119801358401444410663759918765548531224533944731139375289420417472799638682896678279798329001545027345109293483300630751192836025536545815637387084980280158227732175856084281092086158923088451234244824216854505332956645545967824973379909242283332429462795492446469658005305234358094175382267310803913840483413369474279755434304961957771416142350776485162746629139163841776379410315828174506447606881502401118505467724743317339972318988244700531739145546845099356507865341210131485921843774899451327722634426481376676301019753284497475278517651974599018915272768661432081130094316855171706995493520190519973855228861063556045809608363658375564184957650615704508248245472313459402105188927744792865286347417763335795938655214506274614449891722741497508917453717053993746826020550444322816565597569619827511017245710818641800565086039386315253834860560996405980640683459905195286892537085724885157764594602824382143266580637530043172942376856355028846635885671931893287043688413246525566131126742322619024296866359753454465159446367695506103447573739268366659726429596783351467494420640840664549181107603229242328919547380190872498254656088226573756314026409335331825572237502124684560355887172139579004781119880931611429360299865540537227191777885526395776829331664082119650878710736789713789016228028472962812408497561136591081472723439536372054771779338455246127371112855800701773841261300005901342786220378141100822284427195830264998391372464365624490264687205989248225580505679170224592022511205666154309209670205213531310373463312682984064039578359786032036773389889396192219808181584135171705012817907855059134949539264920457140579518025174912391653526814786549309843748018339865025778578221974141068259294072579001821289801103216154119591744671325072290390283005473579770246726652421361980236672924622433163582627711150101627180474653943399362793778855615236792331974971791551540845090380131282338394212435953603566160906287589332091928901712517387212510284240350872554355304873243219360946290293822844108355236984705126636514604857836684308033159882960956997129266734554780176096861240745331145013179898881022958640966731065867920609200725361755080494045612662547758946394309930870071185425828120835137865382203800385784157988497807627593515118976328082416282630019326263116869