184041611754671530292552496928384994041431288362437711470711451367414565510629652695691730537240163372143112462212741060064385883707214269985883222272354301201978465771925378657862935734646088708221466533284185891769804165606755626531379035176857529781637349348491845298515639379947669231021298578449653785244564941514321446593321479628622998410622262734238479828977940136148549518702426034444516991079249961710138281624321825572201801569268004607931731801581837986987511989665586266897670789154795911154495163721643919042762241890261668260898584045196354710704640657233138413993794688215581410092483513665729501293903748448270906834047155558611275464195496312643369598885442703147635577717516590026601915021515288623238313852142824308666669264195453983476270308009129530254909130129538853491142395238028905667485232088744905123009140641362536672026237767129316225539203481335419840390881653929115493943976619969230224978215724669921380999345112962595121371568251072091509211304494645013410895621104452156778659001903636025366424473978834554980416750559135483943459549462777303123058976172641220809179215487500068492573852289885898180994115849464219683755480868794159177660544147879459910665614942947551463511977505383755927347142613642307745307253251809474667163284525725233702307650493002267686762366361124243551752168896527372078239252751440086606500850595030180788228711259013613328753544544663938243434041710625867699652402073779309424064415208641441233289315665253386614874719765543675316910554738611865696091385538882222335781641214167140207915342518965016456171958691744671911992691180510211813922555367001413365388441536765415550043098416862028779679849026679454292584856769012912118801968723487022544812823555824312044086993297471607838608624921005372348232167598181119007033458480446332744173646038362994335336155262734157437447110931920688745856109941900364290463817072750136882698612380616171357820917418668080897627325071109756227442452201426328754157573955240795049107477213122292733209223929568506318293751626860370287365197953837844058150379233624336479588439808179084497254420253562385199689347472764734704110126774845691397044442861855969267062990854961813175939647282002619858101841122586435331622657391384104595142473356743754275762329613792224561860514339902824457589312853696555805831691987461144290047697353393464249327459071809313807988811960676175362882124110523090962630931963997038725420666505556749013734441919521816332580271960618078844663518702554619437299996323869575233013987827142763224344404096631456270438427395838766297704933121910116640518283312047004757808598891276293596231531042575891394177702104552796245886589372669814226974338389930053269703672247611191888107388163340925829116644276897086664665172418968722099497280556011235156948309182381812422687739133424984140854021424019623172383803102862985822285149456828462475252569411683105547114072444132495450618678865841733408301197731685191248318607353285236265892296471888942099859690167699926737328448796241258337001551358629675911015293379233659765423231192828414608458465238244913599194333948227090641436121626772347771672624849696735352227120158632674964453565938918831116556184378147581439415471772776971335833719450778306039345973205156576213557038182845319655433775041882458259793240307751899294271366884874202999904447325683548153315307335213168988340092758232365628014130458599568723840580411571722354359369869131875646024890414983326244754574761617676796249286623661136743487565999331649663648898886462529353501150747071192608195761177889798042329400827211514968248140987977244134894279263876724665343299380245687382314964938226126189959218736177194405814234113211857712659279966482348863279534959977764575818789056566652589670662776885099007690800910669178273840641116232915935383324814127824378812035666062866480499086788946160360084857465570406821709563498637892077641941047005562130226762259226591502098329062991786862843967975472485469052697918045136329466431793646933421834979627130241627869045130883694459759217441874179595255589804829433242907281632893168644741279708633288113861135958020104951131869271742537932039589454451510088581637389133787026133259276254894253941518481605303897882984592410232526098292255235874153537330928951613653886593937372817710418632695377414075226469283446811970059676232898869032836244695278329484169320437611139298323476057567315136275368842649419795898431561556441956728536731993519041986709354566041888211774323042237646783252950191153067348275317634186518628865348898697189258038945460061503261308595165827379149283947600402238187139650564970843654301614689040406566356742234424792747600229550727393102697857796493590072711888230943596509703948576184824853817132746603377842339723710218221495339955219233559604173443557981324322306398349078945284612647709117677806889349773108835372075090266267574948362283797493624374426447091688754152349566664622115399388089579429671597571167806348648997401291736426221502561159899569533272261662311748334506299691941694084425303181641231344719243613559428103421948163725135675553029063172552088486225479534577123448878635684884761527740359638652749376208390488041746951307885141771342332417176292153291566188269887841533995702419919883319262448683987804892161729731198637861302790942559662196487953877615621126592899674713923345605806502496008613453117275275200030149823237574032763480422586237255657683867624868182786961722386425386523013065785759031018589137389024459863346829861984128246141240586048521558826908161990720245972718919977696411852223089814262712462556581859667188226984809345498248965153664073719519400665027068279370994867099843819849562172351136479341225762346150689194197474379250743394433490257673059105271860622273867322881819794004952751512591269202995590256932193116717234992972393300137086137672207094343903610175568353