549886149723897170597807847760325653474433190170919738271320624733974705084801882449506119134122443545353487287641049841387124192822915645056037160636176651489042346498670796826556877514240091435542524783705653666392923098169106836177655137860980805527674513649041168689575569636378176146653258182003633476375551451860012545815666734690328511421074596258340691697059152424790247365461890378974014206441172974496470476735083496492511054579856448785055811813596397749787896742198170889687722736000449112521322732492413676500121329878405147809088583511557971174485557622383276445137016458229365152139817449743519738738271941894220786599390704386352173616055782858771723427348471558325799706628412561844197293373935302655441932374030396054892767273030591727725754952879103433382822175739553107428438490209245889070494352467221231940404929801882986183251285648705129460154381277522113049231617956690808788113492552785355579753279430823963963380267318390452451556186828963138194874014511971284955394668370750696236316093224760377575194658135774289368490552318552920294533413496619676911176079550310623720698468112294551644605557781070502062723695688914779489386909056308345942202940145385743341431138862304961489067041960646273757878688219588980407957707872468774196664049330988816476344240602377848282761493809528287790353935594381728303836539523357571384345879808377857230153457868790211185326608896487478377755425693654538034802159242196342603514602130219298497723242282091862629513375318169861482338611064209578238333874622414682582514144451573716996846572216666697553039481088478186717590252358629378163629691418538241035743616257306253844717189585768789765661944874968925388864986308998632736851802712657969126874107350236196747117687460355241237511024521927642391137987914550277929807187834058432207197942657279623749859911493456144004550330543191777249175747745505664635122088100347031701420232890736688215138419502849444125814660761537557398181691941363289531242178801145596163472722621842318483388075403981657357774911311772343803324491544531109042714957166827616250899656844057497170868985277710558483812465276262556787689315434113541755390633715383944973388015123055286334622498882240734702700101166945439841717347815741961583077207814402559722244074250617532204692936090882713392758642757954888244048963199777741056305182095325268295524189888445868816577579365757504881351434370418410949391776212174965708784673693419675949826108427124472304544760888633408603762764510771991668541399667583125957567146688049978397468161605654574005380738040152598054446082652685503868463666507879954425694855602749518591864954670603299101084180685699467135116457935618783551326213799690394332577235964459189944330448378071238982966920802588048227861987291985879531548823374034835636593731649817728895825629755292580018864643232943349829790337277187897716855635259478668845509583480928197656747922536103355516771828248808627469954054495448141463358855772995730411125481036156991933995106544758484957513793811284364846691591978810764485472159444702904709043481712689826644407437249372357671697627300904338625318604674626497491657590314207601656441633931474330036556426561513444670022566710293763295669938327439073199520259683966874718292578667133779176519345522762384792040996543221407547548746204948815716358214883966743260878913278127613377091916720854918257262920001928508369083284394289174182849267271851873993753863444285320970578145537295896382474821562759637212225198779488717414682711775901252708190969623603695665580545154368387317989792673616198758056899059171986387084615368522986715589641668895137937923676971559385740972288253266894185635834411388326994640172213402392848047205795650418865949786232873154904067773197269288653962573835208830969061669399796358971425300765521435212191422193217514810846190494562856178414737748681009699574964589686487526727606759297486747928459032739689409285185583888275052167885624838403327733301316863059475732028937734741979326043737305630027489577382216228039373246108911950517564769741635299336772088547225365567008320772344595177652963052938115572320878023446217271497611175727054428229642605157996673753219593823522968220130558673394790088505316244833304361299889247032643522696421337650908622925590561153943844883947720781197888387266637567573147428095509974052088258365984354783217523204306861296622516026959592775140776033562244993912704775594460550852286368172127908765456835849878102967503042557671425013273676556006631345049808859721743374075105583693339243763802583973054486458761122878722332955840125794681769867222256245583272421463725364198853494673321385526165061191395989035865556421691392145812997689135681160845515553183598084954734984679426690678245635933041268682925081352070968352192673941514732564353632330193985136712863245094636791653569568019421535337623916574705046149766851368941962398432671472817402476838899383926778908161366387341895853230216315132678012873539586506377369308841723499948304176085976299572585978282387741791091918889672906486608179695062383855354721302966934312376810739442382511406992514662464245243532126154108417021462593468543329359887957524295142753639018983249760567356513730835033622277937111862349275113250396834736142299606800143359232437511428854368138874811071793899783883549880361046879171559417882344611817443750777517806558743865929377431815108651839472675237453742531871360414214827434718841219140638447715444352514605654589466828553949863935711263317747075329696522916637633813716886724615761960479861829035206684737183173667731473090781232860039936190991220516892030246563033347229965951728521588847217139075345050444514392146996576943450944038436022495651396089582123538203517181298745602344174150981480674597724810592657451374227495385383851198272173776786719689640345153547735361844867931882459298816495558071