bash-2.03$ gcl GCL (GNU Common Lisp) Version(2.2.2) Tue Jan 4 22:26:46 JST 2000 Licensed under GNU Public Library License Contains Enhancements by W. Schelter >(compile-file "cattle.lisp") Compiling cattle.lisp. End of Pass 1. End of Pass 2. OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling cattle.lisp. #"cattle.o" >(load "cattle.o") Loading cattle.o start address -T 2560000 Finished loading cattle.o 6752 >(load "nn17.o") Loading nn17.o start address -T 256a000 Finished loading nn17.o 18704 >(Y/W *a1* *a2* *a3*) 297/742 >(X/W *a1* *a2* *a3*) 267/371 >(Z/W *a1* *a2* *a3*) 790/1113 >(cw/W *a1* *a2* *a3* *b1* *b2* *b3* *b4*) 171580/246821 >(cy/W *a1* *a2* *a3* *b1* *b2* *b3* *b4*) 1813071/3455494 >(cz/W *a1* *a2* *a3* *b1* *b2* *b3* *b4*) 83710/246821 >(cx/W *a1* *a2* *a3* *b1* *b2* *b3* *b4*) 815541/1727747 >(cattle-lcm *a1* *a2* *a3* *b1* *b2* *b3* *b4*) 10366482 >(cattle-n *a1* *a2* *a3* *b1* *b2* *b3* *b4*) (10366482 7460514 4149387 7358060 7206360 4893246 5439213 3515820) >(cattle-s *a1* *a2* *a3* *b1* *b2* *b3* *b4*) 50389082 >(cattle-WX *a1* *a2* *a3* *b1* *b2* *b3* *b4*) 17826996 >(cattle-YZ-m 10366482 *a1* *a2* *a3* *b1* *b2* *b3* *b4*) 119291742191454 >(load "congr.o") Loading congr.o start address -T 255f200 Finished loading congr.o 3240 >(factor 17826996) ((2 2) 3 11 29 4657) >(cattle-YZ-m (* 3 11 29 4657) *a1* *a2* *a3* *b1* *b2* *b3* *b4*) 51285802909803 >(factor 51285802909803) (3 7 11 29 353 (4657 2)) >(* 2 7 11 29 353) 1576498 >(* 2 3 7 11 29 353) 4729494 >(setq *d* 4729494) 4729494 >(continued-fraction *d*) (2174 1 2 1 5 2 25 3 1 1 1 1 1 1 15 1 2 16 1 2 1 1 8 6 1 21 1 1 3 1 1 1 2 2 6 1 1 5 1 17 1 1 47 3 1 1 6 1 1 3 47 1 1 17 1 5 1 1 6 2 2 1 1 1 3 1 1 21 1 6 8 1 1 2 1 16 2 1 15 1 1 1 1 1 1 3 25 2 5 1 2 1 4348) >(fundamental-solution *d*) (0 (6524 3) -2870) (1 (8699 4) 697) (2 (50019 23) -1965) (3 (108737 50) 169) (4 (2768444 1273) -1190) (5 (8414069 3869) 2227) (6 (11182513 5142) -1847) (7 (19596582 9011) 1950) (8 (30779095 14153) -2021) (9 (50375677 23164) 1705) (10 (81154772 37317) -2582) (11 (131530449 60481) 267) (12 (2054111507 944532) -2807) (13 (2185641956 1005013) 1450) (14 (6425395419 2954558) -255) (15 (104991968660 48277941) 2986) (16 (111417364079 51232499) -1253) (17 (327826696818 150742939) 1950) (18 (439244060897 201975438) -2327) (19 (767070757715 352718377) 499) (20 (6575810122617 3023722454) -615) (21 (40221931493417 18495053101) 3595) (22 (46797741616034 21518775555) -194) (23 (1022974505430131 470389339756) 2377) (24 (1069772247046165 491908115311) -1949) (25 (2092746752476296 962297455067) 1050) (26 (7348012504475053 3378800480512) -2327) (27 (9440759256951349 4341097935579) 1747) (28 (16788771761426402 7719898416091) -2210) (29 (26229531018377751 12060996351670) 1401) (30 (69247833798181904 31841891119431) -1718) (31 (164725198614741559 75744778590532) 625) (32 (1057599025486631258 486310562662623) -2162) (33 (1222324224101372817 562055341253155) 2139) (34 (2279923249588004075 1048365903915778) -671) (35 (12621940472041393192 5803884860832045) 3514) (36 (14901863721629397267 6852250764747823) -237) (37 (265953623739741146731 122292147861545036) 2137) (38 (280855487461370543998 129144398626292859) -2210) (39 (546809111201111690729 251436546487837895) 91) (40 (25980883713913620008261 11946662083554673924) -1223) (41 (78489460252941971715512 36091422797151859667) 1978) (42 (104470343966855591723773 48038084880706533591) -2285) (43 (182959804219797563439285 84129507677858393258) 609) (44 (1202229169285640972359483 552815130947856893139) -2285) (45 (1385188973505438535798768 636944638625715286397) 1978) (46 (2587418142791079508158251 1189759769573572179536) -1223) (47 (9147443401878677060273521 4206223947346431825005) 91) (48 (432517258031088901341013738 198882285294855867954771) -2210) (49 (441664701432967578401287259 203088509242202299779776) 2137) (50 (874181959464056479742300997 401970794537058167734547) -237) (51 (15302758012321927734020404208 7036592016372191151267075) 3514) (52 (16176939971785984213762705205 7438562810909249319001622) -671) (53 (96187457871251848802833930233 44229406070918437746275185) 2139) (54 (112364397843037833016596635438 51667968881827687065276807) -2162) (55 (208551855714289681819430565671 95897374952746124811551992) 625) (56 (1363675532128775923933180029464 627052218598304435934588759) -1718) (57 (2935902919971841529685790624599 1350001812149354996680729510) 1401) (58 (7235481372072458983304761278662 3327055842897014429296047779) -2210) (59 (10171384292044300512990551903261 4677057655046369425976777289) 1747) (60 (17406865664116759496295313181923 8004113497943383855272825068) -2327) (61 (27578249956161060009285865085184 12681171152989753281249602357) 1050) (62 (100141615532599939524152908437475 46047626956912643699021632139) -1949) (63 (127719865488760999533438773522659 58728798109902396980271234496) 2377) (64 (227861481021360939057591681960134 104776425066815040679292866635) -194) (65 (4912810966937340719742864094685473 2259033724513018251245421433831) 3595) (66 (5140672447958701658800455776645607 2363810149579833291924714300466) -615) (67 (35756845654689550672545598754559115 16441894621992018002793707236627) 499) (68 (291195437685475107039165245813118527 133898967125515977314274372193482) -2327) (69 (326952283340164657711710844567677642 150340861747507995317068079430109) 1950) (70 (618147721025639764750876090380796169 284239828873023972631342451623591) -1253) (71 (1563247725391444187213463025329269980 718820519493555940579752982677291) 2986) (72 (2181395446417083951964339115710066149 1003060348366579913211095434300882) -255) (73 (36465574868064787418642888876690328364 16767786093358834551957279931491403) 1450) (74 (75112545182546658789250116869090722877 34538632535084249017125655297283688) -2807) (75 (111578120050611446207893005745781051241 51306418628443083569082935228775091) 267) (76 (1748784345941718351907645203055806491492 804134911961730502553369683728910053) -2582) (77 (1860362465992329798115538208801587542733 855441330590173586122452618957685144) 1705) (78 (3609146811934048150023183411857394034225 1659576242551904088675822302686595197) -2021) (79 (5469509277926377948138721620658981576958 2515017573142077674798274921644280341) 1950) (80 (9078656089860426098161905032516375611183 4174593815693981763474097224330875538) -1847) (81 (14548165367786804046300626653175357188141 6689611388836059438272372145975155879) 2227) (82 (23626821457647230144462531685691732799324 10864205204530041201746469370306031417) -1190) (83 (85428629740728494479688221710250555586113 39282227002426183043511780256893250130) 169) (84 (2159342564975859592136668074441955622452149 992919880265184617289540975792637284667) -1965) (85 (4404113759692447678753024370594161800490411 2025121987532795417622593731842167819464) 697) (86 (24179911363438097985901789927412764624904204 11118529817929161705402509635003476381987) -2870) (87 (28584025123130545664654814298006926425394615 13143651805461957123025103366845644201451) 1131) (88 (81347961609699189315211418523426617475693434 37405833428853075951452716368694764784889) -3218) ((109931986732829734979866232821433543901088049 50549485234315033074477819735540408986340) 1) >(setq *k1* 109931986732829734979866232821433543901088049) 109931986732829734979866232821433543901088049 >(setq *r1* 50549485234315033074477819735540408986340) 50549485234315033074477819735540408986340 >(setq *p* 4657) 4657 >(mod *d* *p*) 2639 >(qf-mod-p (list *k1* *r1*) *p*) (4406 3051) >(setq *ee* '(4406 3051)) (4406 3051) >(qf-mod-p (qf-power *ee* (* 2 1)) *p*) (3202 551) >*p* 4657 >(qf-mod-p (qf-power *ee* (* 2 137)) *p*) (137 252) >(qf-power *ee* 2 2639) (24584810875 26885412) >(qf-mod-p *ee* *p*) (4406 3051) >(qf-mod-p (qf-power *ee* (* 2 1) 2639) *p*) (262 551) >(qf-mod-p (qf-power *ee* (* 2 17) 2639) *p*) (106 3078) >(qf-mod-p (qf-power *ee* (* 2 137) 2639) *p*) (3651 4575) >(qf-mod-p (qf-power *ee* (* 2 2329) 2639) *p*) (1 0) >(setq *e* (list *k1* *r1*)) (109931986732829734979866232821433543901088049 50549485234315033074477819735540408986340) >(setq *e2329* (qf-power *e* 2329 *d*)) (3765344502347205884018786193550576892856610111171560836237851390311234167566480643694312349186281391904414227178867936750151393527439345809099707994701890903769604875075012688919730668927464944493977023952154681154089794924832221097457628371465472716696663965873886219390269035819306926136809251024178887120326188572071923701161313915108415998613407929167133631292221023704371174583925944469999760366435430666804902661130403345791634993790905714278729037757151551802801687936254696534629578461945856239048771541894330885506736407287303567868490408489875489989503794447869292264889428141480481885052360043696562571057901358700305024555351373625905217047931648551031600622244423175425680862541661351292323482946459492487749836998903571341743111299358169793770513732644200198462901496241963856555993034360289493204383813531959101763481904517010180560299291491128601034801911964155279465649289281834873297950285693047842543328481968863694172637292452660055517999462041788398574798155928475622387729061373599594321652135070921925142475630946226740742043233008923649742177990011102583839955370221753763634988462686612399503105411083910838977013097227177158188492417599467430210164913166137927154853625722515539207890847379377703701209422409759478249835311269411315810133301986040777737383481825911545478209938600122970539302848133863781482961961800913067652320305281561618673037169875132101474845559354438731852007742343171518616487810617255411078359950174649744869628913795195958608041701795021525389513659430484095467275139277735786763281136530588157653149727416234157035688690899124851412310934991548671647481020684870706436028178174644155258148785396961141484752731738731660883899250874139147347397967864783693049564832359359289880310912680439840607278757607811574054455736264874107866302226381715528780839714476560406202906201341491426131883315947729739114658261367534395876075760604240223370322470343793408014210406576536170415108356552698748239012267233797197732629983197774638012209273403425008912622322252525271308772436794126279985187719876197010602559041302728988122014644111944339371053811119280908461072433484598394962562249969088879252676260933703913661379520617624490857618278193176416789557816262120970195671324395493830902051375389557590681521178274880561163052990710585402061044426375735380364916246511701583566590372314931702332330742323756649959077849375176641413577742180502301615245507893647328819049792532128844473859475325589188601673160735805219704726311681012661390123659773122315805980207365925000655422511285906337761421368832650403330774126657789155019222114651825565076283211519949600319205942757089036362846437798102943823310242105603531424746268117987023365432832867976648502339938106174391754335201234627678308149530933375128140652636178565216706435215062767408857317369845154797833709879925812897474470853172502155502213909458728719623537633380914904357271277019292002203999086904104267197591034544078397609464818742897511071971458669634094805604943112725267589300724010573364761286390729648639284044522033240352841172871500333443796777281280000338001426538242696460881584342677669788092994578216274987324171230022873451864313488894007524578360119729613728937568587689191139872418670812726467621783761399310075729036352686053426077447293772522792155476994431095697893339766582524984218544029055535002113111779591411486267246913024305669343544865574384367951835692746786790885822400434721620692332658603746070923112357864639263987059580542840331398260364214184059187324005522275626745424510828440764654554641712279858696328006260455130409412911937660901614909554927469833288659170681423939795903107510731597768707077361869497873491294964931257944973681877498315962529462783391815092219413794442581266699746211070259074708373034792114324183030127076584685313020463749211976501533935392216558655288149362611407341036789061069704110395820420066216995870473182663210888390812217024500385457009707054933697698590365708274250551364954339244102170666204071343508933641399267276547689203412451910755410080554611121771330217405495309347312158997655764422522774225435789983371608977219015780581027396650639256960137064660567540768310326019656618870046259519275557842734293553599804641079219477697244086902043450879618391801982535616652369256834673984916874834635201111886423823810447759736452277020380881824232822185784802118843695788056845236615613557007689897702757122342667850499705154563437530576445376237024678109949860231420582689981733339105225947339423856477577883699067772088852670927911594877544333962598381371600874604245471404192162270460083795637696341850865615480813641590557393643376624983456502734156582420086834819263894124828641655479284018037722740935708218797755796141150716891172895101140137789369962171627415646999886096236609756349755276965463887764310439516116982290355752346148366007721416356051240066926180048207984024723356249312798056868136912644893837340634470829440634162173483472183520436822133210412761568637421011895186637017219104104300037450877256275315763940059299198893290890642447525154892178025784969515473976393379228109628670237302070560095634077230242161502691969269988839432014620765121988460217054174793584238056020426337212785732543215210870113388603880477663101132043269124756142587645833222629454034296972686535623025122104357256902955005660568771947273520323467212534910123822851971643088726444711673985573446999107037019108467809804422359749549871348738051553879826851682421437394993570121951596716738010612880692014902703556201594782613416927122281901592041924243075928255217393440577066052237547269998662027499330576567161571015356021672016634136852804126505840031729639460334626921769366034102010443252632840189963374166594433354652773999258147658135513432474299968339606886019226294532991534858994366016287046779513261948285695009361228490529042724572154732170154962477269134116323161446586672387713025683940602336123793150461282866246551018973122041930348672211553825456249791115849785962056352486081451685991369050912001738451799476642547461242649372796794389295671398692786595756300548809700442392414376169221071278684182407471923633782561630920455464635413827797637445254879368759023688494732795311048678935171159863492476468452017596834443170114548768609821725064232386946112207191591683802619690399649595207642150465157522128466122435293518084575274268113715806408382101913152112711796863783641201428456436835514096119591734909433338331248177020982226347294005844519602767854593089294602285127133932692432140953399780844337219986206567274017184165835076946344404192536139996293666432941557217977764687430097671645805269734207212881131356889782810844634451566016099459339755991810602793656154416508560828980202232750336825131638456786385009023192164163281209033273740411648493814668490749641145038975087892178121197089714544674510113427491837362752482485848963844810133538719422634631313498443271204668146446710109110367272161649322690631571050728961362374971912451259888772145395377612773526957230382863553577897407400082422924716733356840715624937861713915191132920562554353374827238416965732297620865622714717398940799074147482935481814326901857890802397125714600022704695353983204699781850896763555547896568945086683108470679992553454937993234360595725480572023588341104545797673831453070997766335423739799293911571103722886808542514267950651584628723671680064108205862069748975954832360067253982729426770706470482026377649448528878164332128687212202006650429950121698730235180108883363747633890273241547613111573735941008386430150379312189026301917772034880195629225610668392644892851764660866797618792223374308580299324612166494475286272923552444274734529828974948646656212557324130588617072657431732042806809031314606468393026620602603605577948379116919351362031101853202108158690423952384705015990058311713919813076473054688040887386687213929266018515939395814543902905261652572843488974130073145280533585795394365241272543994318160751131611684321703510261286924587118644019586406898066022141758952930165656161469913016193452598315063849321565601934153174167885003304271973170248535059744869274341082882459163900884620710174231276646184118010886034636438656023744984420760634417717584576670471298009123989447635496994543368497144749337611911808359323739018295771356250893860633367572682870252245024105958179314939958411056925627628554871629883238381690355527457180249599003392253292316294896542609450697663014561021160758774746217193923431634369808693671117763357644319885032540495197600472549422348980927867948291941071750334716276629442077973005533762340077315575424254923461963850499316271111012206219458469415413031946295203371980734240823114892186113221175452554468464261864173090631946518803093488681677784973524080744139128557866573567015377078472114846904297053349756452813778832520691022710373701619572692799838198372085372381938149936515681350963024121343306491414218616311110441621507273728422094488934406916260872188224091274868618009957025407485037804596462865697992265431097012702359984074649958620141740576628464914390913192572855931260096908589260815211982856659236390855762401076620229196991784596644578785423049152419128297109863480647556259501564851832998257239674593305314624746834823181927787842681039635487096312226779470437680065533407596534056860849820885047546839259331547562982600281412295677456417428086471582051905912336757415779534369220828986202880294870467395869170313570505268049709703783164044758759430025393825614473579729451441543634525492646625343837008389599395694143290105077832864227162656984586491398143206307008188574014791825095441387752930287558660848517651386049311387000971044575180621878686691241051929604313169374663743609716413595315739379792324138557783121719611174499816564284381889279376885299160444560650546063525472523109116156547329971540667753666682920926171038461846505891934566981706053316847249630241515712285882311224508103263348296082992161113495166773266194286277400180419728473918762551596388209866497749247336510864139362253749919407813234161425690490909497119879451100074297532645131564747133972371397807695199390240749222365480173145732392047099929490072401973455852193854922351010775459824183059450234399841801721651926652333297385511486474495801890231911154363629643406609599011337098535557549284626657456007307447847142122496308052169083011272775868724015700105895819636125431931048340205565701482414507411693703132340712288118010111736436545175278763617351920459033223802865246227017446373565118215530018869855021331996984895844738735723674407105118912547658840903051328397599638564329585123603636070290847359781966297686921229184261310428524369841997481006257024449568314727597614115881191454894959572534214793946486766388247388194565846600033055712687528757596427008072884901145576822471746219322373813664321902236325053192990141539198016486735588230247758012337167440630240715097809870973524690224762542853674690156117729950367310146964290024544688277762052153126798317726940146369195845627331591283550693376388704203330314890885746006403339663219573703087717502280202834108033539162014764329996225899300362584900313095318747894227269435864477981832065807944397661546448985241889078429355081253902868219527038248340321576947556415555447595731387219541159021045440239951925659862688201366548575636586893202367718709881538773117508694815581112917640273478448265702896378115890247936166483021060999549311381370625962559279015044909575871637055191240023154562338459945470836021602585655006776543750212022835847006518460476115201695465128625357381917592512256046950225391573203964293996521875717404134803892430760716767079826823179708688765703963998880207921971263405376895415629734955466442978953996499589313888426550349148167832506897666476950190486455377764679204380806831783059378073078954306318021899057427598500847697556236206912409653816272045146273987469420451927638309658372178725456978721755510880729292135163043812531956991651443682385187957376206684621427710965668491457860885718347886532903081709742459967218777354989169965917934356975007822516135193160389463417658020385124346712022674558202300234354506281081086486085753929801989675077002558739531152144423852063828252047405286438894800297368115009867014720906655040720226537830526546057139646248349867553310028186037624289755849870137312731506141977886848278272214413796651212287518347314748762876159853013362197141132465138631650011515170762485537485661775961474413163486713154418891185700212238567611769518005846101373141379453233458910720399804165031079682021380728460927221070467024383907148806605792537963997240752354816067660643058454470616255785121064496016747301427362368084000829751305119832325026781139283581433678316698803041216217620374232945397938067277969779900320042621860585211939157573315991847500994966995760430357081881845104366963270081417360601852403179564348438585949266258649250101885315187514573413868581281388561338451707398093677230122970471075049800406828867735668339253833840904000707850528385516960429306220199573422719403387741079736652408761497583776348739498277655936731874378866183869890211225499483815653436538536192993363048835599092120246921457378075320744915089403219221028892753656465789540959073469184427359629081952279725720328779717697660634033809221156728907268141766497120841272001899777657484327610039978599323076216425436107273014002138948983632191346868731970092867621135564675352644042321410734572053203734303197650316435006237702665193014263191354635980556194077997769036901210996192412084492404498344523569911990943752116831715113717711946542578981589465684604959864702675730990827729355159877465510275022688871620035042555705358939232582170928165632668541151824812686505552213648638821645259274581597694841297032619751692933213205370087227300946264510509429904128901790886774373312226679480822069539987696191886289852258611360316732988754911425004815576669362816460116648992447781540302337445291984669490975355540230700877264858310416465344078367683046202450027940425216902322527919920229907024415414153589717114547431330821712472972999150011377461691281182794245917761043579706701198378010059129474769165255046831026405275889922422987060278086719885481380488079492388218768671706861828838171672601843378764460049306535304292904277685384102350877226997201677411971153527051822699267985295653197037917768177064454472305902925314785107594071820342289657176787740404661475948054337063409439040427114437252477388907713238755397281117065781401106913900953797941912362092938723383327744802903611080579045783980642365126801971622135025225682961125406420439285537652793520406384139712146699671716211792215346654670551854642781918582963536117205289937565908559477796719733751671720566871971311269552937717797413503643004065160565975670521717113136946630434380311876169869419569441751907466775833499276448626043966202210512078747521599140797528827528323973104996631085923377992715642432838075252930461341430450039965547702862261881673949665335013277450003201116558327737842197525221310280718409754239440332355231424838157510121242787654649429827316823703737758482030604284099573273331130776151740677027282610786564559573102684373336573126906327577455553129595563216419482109931564397411207894748847858094128416278051939596335543150643500496236472537583984926520696681965406220665288152298758241994576183264079109995417059610934630314215666717241701850249260358803667640291679942749523501809856846487869297815903141006869757058213289269188488634856711628145829606909199560175072376605077955217332252935359820483239781378382874339205003472641577117550982831350146666646050661540681674080848441178729280075857896481191585775236214484543120337631847645978846488242818993982549645976643062544072017709136132714819561906759417157280001662283202280629395625889424502235831227674512103840601929778617959434482513391701319616637633373382127117029860273792432390718301525077758851894987690524673218950243208016601545648570139015527606881123276133794811838062156377748895159387028963626798409253892872732521000401502346972649210658274828378537697786147981618824829150211036267918553463586424475517401235662976857036081604813684026595935943155018436440560507068439691885268117726937923980866608695900023604710518798058737194374300248421320699368154754201778101973284340620779804094427138392283104566310353821872111107210454528025275676890300702677168991092845389531633418332841768755131514715939079148035366180161274183243323687504867380846093608952060435210715799974603915762175338866432114938365678525906034130216388489426619093623063830800963101416614748502515354157478197410539760335773820402657042175756662834946800757661134263116183559299735588985566815242286884291137762247969356132910544136500393412797510119806210912994169647120368773128139616592355879045381670869924177729427373702019008673768035865859151743638514143755670647816318618674876655201953722617828128533404547127369818654330137893115560375824242894896390514841511877465461587154063484664753266546707135620254029843298111167445955867392748637276150367023809570277640737005788630663384725797751003262450806461385860385029667676558020521644494884132349010782992998136669098810006812205007648883126080280297009226650321803715303352583813217277249745830299040431380986842386663184031540461893486556069743371378724534526868694612738019887106120713686007692613275080452526003404732552407449585715251666075365773124276898761164179004472647026682794331136515074560898958881994849584193287745164938528209996441736195358337911764459555437819551099359968531612785248865483323362090904681861097297825459890452574814427677429206953866586831800630475050757111735195389335623409890485840400705603560701173091009558910668779618867699244347221380390474246002465119086124054753544414537591894038787505570737862098204428091637075870329707264692406599120997154249547861158647640197373187277261177525874522523271129575992866390110682505821888191025824926271405976945736579764130167004243459035151455261096022290263371053185315592624201301344439182657796226596775479609368666675534900707701528404004647370538249940213061567371936061049957705261486511586727330671348593035244606863563750211547182328256639477618894075369715754119559545732000028480559077068010431045465559999970722305621169516351834948357871712830547278044827589534196534887500415419645377375719121657236040609319777019654821129541191422307451835190313939474501149439954509714065776889705536921955910634074794735234800653929059287120190994343137105738001145442713809418321997112850870353203909303123905260969051200992741629299458680872281029804558227010861452129439859713502983124976787689511922625321530912179877140612415730790866303730372116699013233864416694688293779546791118950490468832268918433031340767059134738574155481378252998326478053389058051524955344045642189292964902526139982687081158026493721267888936632792604629029804475859826134970185481781211185046069834681047664813611516992653924369761795537866027740143509759292954943800225114351463968846578480538572827139818186313711401046329515530297413447861539808894814362410709672441985345200497711301056849151784029611271908662104742277432117083706390393437726224485388942641258915008487398381695211595988188675424789676099001532848166109217532651064254657784982314489247292782133334095639247931911933910843445991826170164142134544729896583511963707438910051275319875641525629438804437444179616795181193138366233662275520430466540246294303162328755493732091264560496821640474229037364756904318521988015136348566715279578061499676399185326091808357847222734078317771927996936890252765272410039919245108504033519085197914186254129010290848796760112984108931578672154265570755547683805336610475738837088511421881622767016347191463335734004826403176102227907700344370435153853634324763491671098181769836765597070282213443158695887551612398030049115510123021421146524584849915546502016203693252453667187287552253613324673544190497224291052213107885122251298824843219681817221634161998278747146061972799468619422754750859966557743941350727141658796632831276992130836702086631692880622649581371801763059930162132193356588364378382594400581934041195148893048566499337207238337546323048189705380297592334026207842635173642421876217710499559975817029684753523728535235617861735698142800305620673697881991454520483080149531418029514550809793338750978382331284882999137956835775574290255422437713001202391610397276820250416505589057795806688072052037606657903320710775614499424753241041593400927688402921853786607245776960942253983269685748244965113776483322642718633158673881875190339626737239162050363329976681903915703398152276232416485608941246711931473401587494091008017250709980200281766665250418397252952809478572653981321630545121325530255773060927943557246843719307979794156044746258947963791993581626170854122279239914116694188339844147097978868788946295430361227406451511837799144047560072272111990970577543495078837873725105083939407679849353025618570897884686048985132222909136900044239822647331254522059469149710627574161392101990874042592581800823995209330467651102333255567083033916487045520993075018966326319636057438447871374505182225816194561572084359217622420624186958480583158743567862288480937947431366669834281423457083769223102860813251488336574175559674854969155395222528915720818276669107596637627317607648872668813144841884412789163138849480123047327595672337835299324008113560069603092951042530241354239592886022988303577584504335883445155011185178507356695000935622900880797172684917246071701378775228089177502484426410273433049387239856418130770202041730859762115111089743733596453508421964315358967885302361728977766592322223277099770700811700355365755180526583298999882438386253133726253088062548529557737377449204565083282801697419919362764582660715505380403392056258547608185530272039914922285067633605973010468227517511629915220931730191377213676246952512265876911891763108459300175767830674478334514216002621775564396255640659943883245993711806793856645165569973550203149700369306607605997708972237837270540545000853965598011370075915634375887285708318131691213498225042542087788279967435221685331628839086380156801759702046503467523020570295366297679313172235831349693402825575471852964445528298989783204457295479834903289478329800537188827017652683526870823815098847517325806421774473444679890319636762764900349488685875850468983529154317323358101426287823325922400319193013053917885896502507176671773669476786128838372837499661136406214735047351472702967523968126660639563959468996396960657258647648114084528086228509123625206155546470401664231543966607454101444833347380951687014593698638373150727333022284361105915913049903179842885354470512833532793561992671359152772260475253986113749039216166650521001527802623301114341367345323319836092567416719913677817056329322512878609225717227848687844368222577666632237008662085498048775175109349386082822303298751401395036020225068891200507840439044002639696354872050005503183574032915904339457460436867132968521382430815982666357282098744256599013414949234723169884103212480545961281773064853208953115212269593802589107384067697721688939250442218207231353126678274657105078044205248066948989477519279891629724626244893549441128894869851885234825293923771147719834009971472875982524210742304779517363971969319397779691012686829648673156275143923931763483392479973138569861075413589667815625136160525565695032295388649838708304569285738494182195767394071586189710301590374574290133994945342464285499687107757571707839401460886370184772355357694403671351945447147289936817532845598391389799931084844909303116756458095898047518955813954201952515782308456213462066308985617815059922892737198350041254825630697260926991177705815817033407272848774407553375975388355140833751274006511043711450925566037599108320881650386343844049169655140651332233189289078442612427534680710146987566016033615727447927224951636179639450512690832740845979818309964248809754188982356113609361535539156158754924430536183931800586013515818490122294453071703303052470234192038134173072666641013286322873604447350060925503049415750813508333280319898214895360555445991561483405175952303908364502028066381417155465903592050334372090839130717643131559239748408175480301577766306498521549194807303636027228689295772961662956207098941288539030346087414219905180645732583494549319956997618074233135981447955347843288765893309001327153596170708701418107668827184017626515943742668350461185641551035232820399119724418516634512283173970947702389162647204681222453730785755681686744523402674255626342788022354955447351027716603921763449121764407825610738268492569859716259127062746630172220027717968492053449203524321763645451317843165578106676614439914125571498741897456581687151143676471240091821596930826444924430401760474837157292067588455315345837623533914156845212207421196880558020290111936552704822622982852060597355418567742642231935496168362789154698727658228726014919212741369066037810812327919813923642769068285015651048207801862293038081531647351668495472396492283303544902243674069629387180307906397707459044734503130293924964491491291427023435957143529928165230609910325987044623951190223630494492736782854973380521962365127233746689782454245466724306044815502244143550993288997365623120648397849001502771323005547395484931354869911243525641968507941093176529927644934270731272582041019444950410777086730782629432967664769774422588254291983398744673216679935932513038196681315537093559361833181361564071046079587445619833669857500409141151319325407462449177406186526696795229697174237175553085115307762508419716173200442589834004920779153442850998334387980636156819332929467916452650033174791695344733374222898802699844205536772281088774893911309001599546866567655890734060154705859677190762672977538882419069440918818778614123293184517583421031597395216661257100207634063488675706798393523143700689713207668381229578587935523712879764521508148596693301051849389528661594466476938536243782188459368177787568138926594747543453117344954615286963907648832100105099026671710212778851185733285399022516808795435336978909957378454555855425360038888934482889320372783211267707589258929484366740492341663486361203977273792236710988163885382269582716068219132043085611402479799856442361834308618065951860813141004557574191673200275939001165408826656996787889709057491172929008972089386491010064040928653864902368779197770939972962185962677456025441731437158617419717263678618170693759234928062713376959214962065707199483104972572606892343562619849099682077157826524736255388683052637098941209064694940152214647434181737708448664168258992125685161268668884655954696115642056352427438319484012549819866342101758584159171968474702976345387034542631431920945364305447163949947877012745658135860062896167612081905635912751177917225146055411463772296952013217720842228714395759917515947981554383498469719696730588445707993296594149538488865916952386421885075255351038587149041268407163277975097929001473238780352364498583563212053117537349739881344036139947200794040946133290662604669215562771534281771358504852056339558882002902809410935273988090453909602156187796751054042426309522787921886192119813362963408167750809961859988665100912269728690508506177322511150527755946450784437373992012419967475488008803554247835775162600379234193071596453352564311127797915141419528773707869645916424205737171154547292853368559187201851484073046111932138889388838799676927294887013385780057983627574757611344779891624699386473654807156574571776464705211065439538509333492938124511847871331114344604884641583402502561610338317581704772694432957751377343370438209938633697574534611339057363920197149283711813028287746549050419725115618944057598399329564873739031618777259114174489302705995440585253656716245749299487001475202805634843833929442329532174301880790104224413021773586868037304651918235715605272587946538141442476043019237868127256390603634537579170609119095983130992658562568815570624991832714381611222383372086871520628409050466520638677434159527748266540755215089171094180695147916150329477584175291520888361285899999059007952139933294059745367839474000600465067196570584003731532700035304891168546676918613905975889524112617863701211586467089163950672484388877903330035626767318242477060246389262537121649005241547566667976083751602595630921206031274703608866870707143298488649523135703878690483013477656294413698297626314553999992641976197563990973867200613608713322685452402580963353071376835981334584008843615527562689302522359970991522535126511473017529240077927219109757996318515163222787586668280488168530485235867928623271300918503709796339038132023758889593937272166894326045941830004631563312202076327407385808636121106319811173974376786962610045185168467220406575989895745998223522385600008946000039275446193805200095559619285102695338294295998260033362726409137578281845780267713472705868574233437563859294192056494345841147405590061138483042195906361902459368362092917907392497426373525504229522869538847125761797279981594324323425112293727098191213715882080225414679017552713466503849835258786385219320053136948546575845170389723929125776967582402754042113495649155949285595286617887353026392465666410504970921541949517752453319886643588030882416247039327021539068208220908825416421394603103035272377001971509994527402239995437725062519858074879941003828563901380435123940807337852270596507935328704798365566592205016843294968120770820247881669703098887908187275699057848854736741496651168451420330483932339512110846374209894908783403302945148509378760583784442849253367502549486443768918104190630804303474316771135589442872665994432353395463952069253216106389653212261397058763522862650365973289132097161962370018126467051236004897743447188160332155605782082498543669045048147296559447002041877700195012913958115142371689006395020430394676497837070834998630350831711847078382207818303141644363798278264778384337692804456461194169089618563832393393287754118029598866153480726090910176137642842036382718672455507531880867331665763338205808304588308507214506248569852001879161969664539592440874066573580192773937867215161548654641173812245810247293811466449624152063120707968729746548852971716912259212279339204392624048250543845883435877694624106739559696056071668003724029628297937682952286927241340646297273051945630669961568527477101387614762565329627389867564400778201867717364627711047757105282147919297908724699049557784543120292216341308274467164929076846372663548889620916818334906201507065523435335559505048736195319131503354617114967077968761685953939004561839443563420182689562546829817547464974020303174130033524881101285655707641755762290949348821155383803924845596436773600057767205410699057289615755846639477211047622601974527240818249457984418647007262628983983148303133468388668310879238484167825824637478594194274217429623270554101341500436284935646024560838859269370689063318954380591838682807662517290528785409922161639570818287019022738191574637657474510274219176427445408745411598933027773341726451357899145966819303205397345860351014668757119641692433595514095547771544209756253999969849569599338598967597528099211086109741467721537106486857127349195712320827487730399493632740060170663809628569190892767087472408223113473445362413387276450312308868305836352397895913819911567125917353810620083442773205782051982624137306526580810243936062736878699784489304865455940012213141320966828416900085131398829364787934911254476169350390256495541900648682687127887269182248824493867262873278087393081482795662695696512439619550167043705437519644874120757223340938296576893219797297652702984173161513322898834822149778708397341247178269450692781352584117432084368895213761328173311657935254242321590858791169557827156874118914381817499995070133543600178454187827863998024213124580772546328510722421800729659085446618981736620855850695382761247053544055650576403114765643212626784058224242847737409241407687659359710617337862986131531460434807322342038912251169133222073709813165582966334594148101450848406195967636230363394825743955086647962329947749686959373237188739789512500129186433600853894596042429573805512390389886817066727713010232282150617914817047603408648384417758432831512621860253875423048663089005805815257297281924216941015448192796602210123113111441591879769349031042508384183813488899848428781477481647300710668615579354637543011429848368410855540790670300381598118806322268452653497215340755251493749256642150075081711106275305740299833037353090606948055687695397075893479405034625420910197747087200680016977216094437006160988576547486611366796591870910119928138665399358193501934864854043654673138050608564122158970127008455970411714307759896989448431760819780785198223445711010184379808612190278251562568630277316362530020697724113017275325268140073392233136478809422411464152514899406359685507682341927178216779398021962506069242979550554583308173211557678698962601287901466542000588970616619101451404354041181220285209008893540909964473406092503309392309365028616222004451408877299462529625504680611998187841478985240703122680207798991058586301030779846997427198364960713185594056349708914038144411617552529541398046932978783210813508752430516198073403635680603898846088033774903115846186937955236482612190932169558579508191724652639241234187902647175346451315342993587889148273748648775415023899389617712113891720632898592725388455721500804611369158882847721714782784019052659100951455503123496487356851060468234869204259802047746566323735731025188992000468320803234983408512867459454962580505252254703597435454753260793933107771673501708168129792145826617446917222670789137305921355339069112791436459227339497204705318507501077029372973823281169056379458321111325713205493378125308736077924499394353862635356074218430139152556016007595588068662365651066503607989879674992494030632936535697832528253695156904269887615412196468717947571477417780604860083378016225547080634989862591209862203587662951756278400838068405061722629966560708631573327868470824333047688928154774692844652635521729433990945542478167746741690728409431042195390756572757275156940979207101064957246809310591686080621163964848498790654496849726375117440157909654108447263885519764086662120740725559432815307773520234878260736385026273027872149881185344095343628402924785022361720303884914201499446322674246535947638046790912964398475689666897317020327693913634518627228119799749890557380377855529750536694924332050383290907330484756740701771980699371156602914054622483351598508352655728842820519142039432895655693844981102117401351363932879270903720987667173455537922218662629927326553064299990679035736147707311389592066586643745684238970831588756006251078372162207388973165283128319843119826251644304564481646646143806412223065418022429647490940334173568931912763748038726748265870651014525947476665251193242305581375761024064945034052217525785292727100581120333331076841058244671367080738950926471275793973211342635786268757514985303968763081424249368539712593894854635680290367424357191484726395772854881079737512058252689342508050976861411633514531631273389373492787633907455586741076219338894269204740698122405340398805007183211091172861069507581986810457242691267731471901325527533576627468198874472861028138349383738968897432768188226365582000923176947609840441790489561600711249492374743894251094423209628655444687118081073428320014679145445884673556916044206218258850061336872154446798098607702744488143597569437906317725851535583642897601295400686911595208380785956354879342955219013620272186713484301999008940847677280418746145588681412558763371916781048399473389923725069710674150161562017124725587287315233647961786453876197532866551787169598294465985117035467698552835703405619617795427381062856016008137144401657570281878960840035037644332948061730838027179712646902943212166089867428889289832067804465457879924960424872510897397757361474941109241912503348626331019907398907533750125158847517004118019427114564894016386270973775691429622518788422285508898596124008678428677709556805037096268619893611433306411753132713059383687390224299551200517369467182411396600141264616117533911889523890615030127438979080435773959564481039243514805723571374906868745339643857967662024405750947878219315620309042700465667415082100438132872646281035970217393794534319980394836329943808009565302409936742142783899162204314010953011957893313230592676658319337472334259139545806683845593060471261591621695600940794768791785447576866943719608427687438853575299283981481240541403644664288124360927285518044500085355283378530073272618901828403368425811957171787401523985138871464161009137697220057600726348927714660393101118852901407493344326082966111931626227355405039003559092648584414957087718100431404122559566070886708433072493644204546712077369408655305354909413539802320705985146769463980837615539355416737932318993673467381244876429023292181434596212364148602064218936615501641934611742114548879368054421778992271651082530194484818228878349107383576962044017166852317859732417653596905614970204949218006312324027118571963288074520106616341790285126279013184847730391653247096452189163736432499092244748249914941533618389429931030816922637124664957438588659584078407821231599308885414093409175631732525889619026941118921743367343184144198654680097960431982899724901261192860193537221412606452084910749259933822624403899082764410202820984493985564762569148218389530098283686984225342289358621193631113931056269078638110749379182580688267209478917683550496926439486223337101743024475542973352939394084549426636446265377442303599338167546572374257257331479829628862225775936569953539344426567753368437707117430001732764121017833166501110517563165399162557992211910149625826130438996633053909634015157562161072326561295348137568256210718927772564603476010893508477290332838253735047370499455765881165126759742888434526301670467369524546345972059781855238588458391383933808349977508922895316704420427646292937428326589918357676422862105254672092090065017662896718701450716932327131532947961949789419394440295722149413450203835445218771417363228914090068412469141224603727511088117050331183272873104681452798253056359657749160617614470188131747816024835464879077730464377184323040540555394701234481559596021792239678099002083261917158308652920175168018049936155687108022915372516829909764724479944544761352254541665973866356374297170455248958401416042189258472120392011080812102405381865279947568589047814462153000936243267566799167644043063867782412957833271572699328112346953524210511256535470938570110012931178218678715993830608500887978944136955087904824756859097772394820436804152398562758642233491556702345506322155958504550714102203512556390482429345915614599431947146962397893978596631251896715120139924542008822930268179267614981721335822644067695243170693287220546812341972310794155286871710832144068892141534588952819606197501302795488244248751016159022720862998165056292477460805257706679475846255165276343486554969702241798982575041831971966334117654296101296715670778427526797292138503185043282435925782162482604822219496897570773265870809464089870682841062457861539997977196930647819068069936055014631256234086616605972686335853106954501705769447960133848646949018900522571099916966107953134136852819479530863354944809453813606819856981160598562927697059607627873815340431430238167739080819217048901668673157465587244637673958762091175059195211470060667728174272028504912137970667218899966545545330597380823959232984931184052217251393046579550674298933126350193419328661014457452972344022353174516871945786304925288123600791783480826253571113727648871871700577203755885325174559563014396949790253946854230415333470635710541298653085741669077184743759936878103399512308546783695197797262349004253128999047466015495291325331373115100164841862328969219395841721505607726860214953110132316206209674122437847371249409461235426504260816570117626504116944421653251203499237398734187984480035086670284072909832356322335093313577419540088756890816221762033365555263937892348440935656435385246761283931353444809864923727316667475572285617690428668841578963539614299554064797748436153158156671352790836712865367929566574517138558883147140189650638040291845456209922316799348234914779742704303355304400902996124257665798466724523314165657111184596091472288909135046299333474030002562274309671551731298297502344202709695997527802102987472410054346579466541059747131528908092506949298039268031911287389013068979996143185538488146040614805068007428355357994894555509987738979511538427215705521052650692645873225477900425337179250009375569643656586334976903831671817660502713425353273352376248983519859093330775503929391261961309808470061939984748002557332219674663590353968265203866049109458053954167589299985603807865829998395983251290470961591923457755406570958145515167382431130024183772573541853710164488909659098644359699384374368420075630824481152806102143458136733197561292581245983480495760296166540602152691267862142987005140080379308472763368053346487296289432973296575101534994720586198422046226845230159211160987702175422906000061345943503038921408394689496540157163838623845246144661311278514334196331259274882548563472137830139716346400836587653525042687203026799683363952156631268132542282139167275205015557189084083813754405435443562768468621106132916151959452559730221391828813692380718434956086102228317489963565748084140216566632302340928203057047736608216132529194403322243461188726537444113695205778937927652724422143325390494584685512214838931031485042597182541372974057361267433151876042116380472097039597927989710603726308065025318491248688751392691878935429995281122295021411297262105660769591177694851347772451773712305433587512543585042030930486302196026907723218352204201627461266582037577387973818241052829823091893357663110524657532883306396796359531766557627966209780980670343297618469138970894309722381667021992060595601225075090924939655377252422458751408357838657710627513735125039203932520277805588871370287455935338007189088570625728435956466203406410115012013696051305665126689508705109712828022341250455818592147200227118583955911549500100308128714928737172790293970511881907270388302750204420772876220298861667974238660280012769097764801589760671958915583469268811832005535558011627489500360248616633079577254812481423907133229613977383907996226448180862559779894932023372421379840680558094920721992357033488397402967148191611109132035571430918379350094315298676330852891965344068907029065230890505423877958766926882763619269422575592226179748513691733781230964700785773495534660107904821090404977924121752726760469206761092854588917991396257672204542599801479560332000178202781139331431335433076165299128985643892407450345268947696377287128416963064072982629014324314506569061207211038564753798905979686172350364484437328788949775893623230349043634578432972458547985198626650227347586267924587364411783311751736444150617899944321635631638120423623528191090612399513570082503406670339731518388548373873249226706626384446320274029699628434463143310630254587881845719859537089933777671015879469068620886318161565929748135592903800610015938477028148179448105752923894432653340045858886187012803844779055342771167866387260099931709284095746101209080362714965140557089968582070096139169235646039310203811264331274760369413360834890291747271762555255919398154795970518494134518376964517067079446262401533075846022551085724393237858675219124636034335876289984510348005565888609589563684413293159357463143023231998645116921328529777501264154796809834371687746172197144144025385242427103395915090363850763837972519190131979208947137622715837755916715213917434224655945268203505447855430440579180440362803009988938365117058177282514534597530929305739084052123234382790717579658697423227789935028880492235554717396038675522811353834905321096478820841261744675879781937082928291356599455171532814022935771148744127856661774820478183746246152667202269387900197923910478481130779338466328503988711993262088465210964278007479248984016063951871376884662451604347211598085333571288862225809459103791922860916537549122085834741777001031099358565754737816052718877518347771110613676120219827662124178295202711005462258105263593111240047258165567517830918472216401320960135256516025717050853758734872253597091315302886221982452004085702652577709743100021439285166780703264432116454771224753783979256245993995971792559840725921396039988832199015497236529348251051593715220784936919874404443788258045523991082949917645631720536282485774486437697844148922404549524473831431709358469680134064962827740136292453333963066456669470231370805206737115600037717633439445875924151000446315937131829182980297288110637565946327600634097751592923624716605933758511551451931606632365131178297939935387124058935353444152813929931240185254969586189423061413233310808281270321417126703314020101408889339470361333731299248799176036754719099177562086868015357395123382123672124188380600398148300070321193058556713512958963115585588355227489555957699795008136642910732430025075467721932799947357536526747531932336585583793130198642234770631413041922931169721349805063504960520765911576936588069918313264597902960550035768153042689321575619719719301180806038239284924813414340196862463613388037262866357175959891559581346770351633629281069937954022472377465823285522357551583113168169638184650540906350812373831401704586945023861876850214100727599893404504950641081337133480835437643778890161735965435968934017419125968614225770374942001424621924755883065407965087570659288194548823707955594633357312109503967494015822594655556196453404788905484568465045550124197897403231104201587347279537421618377616936136370774463503261386377457923588883415069011670004567158869312552741866923947354146657510878147392270589365714155002345571310104544650518957141665212460560183906216094630179477572141610594926370956008956402296829292305029683944120212174684466535508718948110225639931460183799480206855560659969350798180369059266650169706537674862993008436839237227493257780005927957681750512561883097527827081000505163469810565225517443728529229581558414341291027053338392773641585481538429521033839841792004665195583140340348162500957217163454714650733466184398602819350746036721778349745457407111434661906542436020197825767143979986963852493618301681013896328952846694500730842500341947369426684741523972039578400834873580475632869594020008015853941300424498403054107557976816504108232845258851181884330845067326298013437351277295241496300224888180226190066646864135785130476499800595455592846104723567170289518895724285810757135680420317514172813094264594074546558261871559914354354634381412462958974116403445791742872783371741987968720249999172450439527476589151230509055877336118668011695820376820166505684016797114418356325372843485761541151351161539653988201549938139703308342745123296051359872029734769462207988517050619964937629029120436770463062966937019794890657135391113878405220021327177017989215951812421573741599469251983320281634054221445651165890911799986926495770265634208752971792917741906097982570794363189033999973328575761478952845958955450771243888084971463871274047021298414909868609383145440680352031611153961959211983913979095012680474350867515392356361765395562217850640839675048395635159289958347480424705467108573400780835826197650429440942172774448813917242746872611441496685044872182971944524142518433206325979579263672080709496437372904467781039792283057862410927478730108422104070762258662255038320900546671162340947131775906933655377040382947688885407915157014822936485493504033669891362190232249411661611796851904394406663641756492461417195451345100627716769028167875204575586711903725079765982769481278578095314006308348817488452020519023378672653302902094804712048476200212888699828986844683457672856748606902835072265465664749166423974273745780326171819340249360975614583510610887953813482196992422661871765265227500909715597830641744075022533959793690275991713050514377780726922071347112471166371028987297646700061487812837146052194674731794194722076029623356284922288239574013517656684718652808187989396782437773616720083819097746125510816359946779888880101606175202859673157562420758061231009603788395476539426873856842228293025040161739994689897377985128007273702344968351133886306254628675512049776236018973825419694156676149825314498089636135938484347535410900049438152419103631764523599426642101802923016460883154056467988254259097651653024699773130070574902266806281807839396294159278389212829118375201026406047320039277184733010660400038637220120053699776741387164236883515827875646361369356922257441379934322761445920418834734894600850884162265086227743949618416980240047908206380884145797615273884219999708604580017705116676171211133057426292687538164797023237245257522312554053713684377240814828424027072245275367625190876685291121227965544209244157969577851143111078808048886204964351632823595378916238660116021294827593607539499824940851769995017205588904624847853954859137753747656129273551332947383200988824850855961178979935049812758418847868379275983057544637379961681774127435047146867276817987802670121440874423434792525806519269701555783419709927571551201384915837096327932577371473462204973229917407600597328506813501003062351362203266386915137605065247697756556902780714368152861004098426996338110640454910348648716368877163583964280734792207782635862769265428389072642676730407120768887185580884701309288753818482405919926894313864296870289131737360518357265135593347390695380637938780646541309979649568865487427133850630569643738718518343217451398305578664472697770397010570552026861507143297187931369771759315809185703174768256536173479955367874944984905878690927454693245403793690765281424112401552099505392711522322307673879293906975486461595218912880154168081518926473625103028244047256873745548498628323245927030559093828619091384430890371054542848278681177038284459836557319912284062248902567545696665895796402786817651231077425136091953046951265722157103622858555508061069909623929371292764003953459680830130051703316846536154629265644025944113886792407758943331166362080657490168636949555751938664128769192582231727696677339978503363423842200116365995159101552605085512856433460895906004001351525454348414438451481194823911524809884274549354936512562413631705634560038110647324432924090581989216060802144408120046136918612850033294075385394809206138245544822025419182431264183976797407644118031083600423216707080398020364152586415032550074899095512168096515021594372606354830928309854199587816845969045936586213142349992579429691712141486871527467629568669471430201920704880183305856216312457007994958765503516028146063743062353282739176908109510876003163344075365004938096294931161435104363935359658766227776905591596379196395484759682940637166932925434606254189341714494359103069149767454870306568098536078922838419900990868456442264692747907608320205218599593151946783225452228840249504407034943335552089805407220118089371028586377674941268553583930308868684666539531657832202000730147896353197005468924394070143512511773426883195935127037317537522119190501297028184553902725885702816012074315197995913795718303457956067184211800809506676307899803014371960233473915147164474560802032548927662665337132890009756884092732806763190912257788624885917023182985911773628927176309390408475083273305624319782332287558262428992062751441205583522765179951526717590660507973027508813181637787100349897904221152184587135159491465112739143646435603638415910092996384680958403941704269056495210936404816720432942919407010637418135125469340181271486653335805960950580933957037633020035608573187273804443980959268503388082157928437506174545767106342567462043790741610495664309605889788879383657900782203664646761399072946925756647896755517804110972658497512598676464941691169000643505520198551411973926027880100484042305572529760392260107865000353875789916704836725041020673833622705285912276397203733602278897299174546687165700904885844497639604553605862404837747550150311385189358648328262672492157361347579339962734322638879249993078408790898545737499816638993588883951731454245408347898087855112340727227576844863152876743742346749113771833900012837770429726710259592390415165794526023960473322265920386143723048559229927967848362814182135431886217170628958764786396906036471765086954837157285102951520125678054553940912284515842300773986227646344942955870865958477791519714229171989953184124374042657707696432436591064839723112955006165919139821909615395046988500610341015949770343516072199442766077012489476713497636106387263048983881961271040087841120767245034458076326506882193496805373774492573204480933208029431380555821355760970807335507396757713162763781652646164871106424552113893808534615300734101195021072980120840831457257078010264329148999927337240772014101975297303211674548976555399933675781712170303005065633479810809285834667985760791085039027090598294395665236913144145234720977970751303975569167547281024991845459647610655391827144351661073939441006495662133691273653670594813304287825445997075614598740405175880661653181906951586885445538514777475290525947759748016920841832686384392115406827161167590749704008643695250921894175318166455020216084927608393047879812266986121322066170637726029782310783176411633680696602919189750835283180131626716895567065767893448701362041537240033802102115311893440628226743558406420472533599041324204950040472575985795600277309803234056789362051031881677859581979443678189707999772846052633847144625773402215841319969277332486260810488542759393876507374531519903744171921818676178909132627690076244968437205941580885652714683422780355993698942018129996323301913376231634013104956863309189273648503597924024499330922550458402343738306319441585669182096587772270846270759897906303941948695355584321290931143109702633991672578151972830394387168943511853295731545635014021187008617726369153604449558323945046548543462616392756829784137504253725175861659730049624527899819137517299874142675677214436541902187207839299043635490979536641956557356255384693282425142699389917268448988089834717299530453704808871573820344573388379887460225824470460413301485639593404607131327201470770266706425165500921329849646288551072882975402999609424889772160454086040991397881105713213388043567572466861009069907515013808811827354096157743422668142355767720225987548204671986629039596133231799040621921533665556214800703178213327251778374335997012865386475599666561988423648149031926146772788750232447821111016720270829280984893029994004440406174396324925386137605181022317593717069167242908176489737791044422390355032136873796237993831600555540984632766971596826204571562524779412317686148564799622594860530208885099404248995993795342834437705396695529775994001481445391306063402248830999399389906204123916030086890039915802905047522142303116362341639808985636808854589542833874448153444125753514494110734069821098217802546117507243883679340813566635132611376585978621705822839346410842982398423940584261345797275128407345078562311669632327213774169176305238762138568147892353723541685657367667585696988999828718450472457500005361018181103569127892262613913635139512295112072262770889312129788577468824396446131267443841837725152614850977917121691966527018335526465786887476771228561186597806711035476410248118799558483876748794918219003629934778003115084358533557794832395640146847622398846303154161661998550061520906670090277400190942382122207977175141687671757467233554778502672371475408509283835390809565456728863635375658398674739026779168218874175388387159167543724240654667385423555736227246268150855131843459762958329021166792677581626133203385818141730198208804810230406878670090545774589386888802188039522340598918433980241261841224219649292019057479144993846794522622234755259689625613852424663970811407758078430438855419255912144487708974462341869335429299911149374458173653707635421224702617011182213706693956597888168619447268363688941225325255115167437904304399684927965178499071146433058532946258736068271768466294840322917652138618798138635326362750185529540997075301322884657094392002196076758659459149282733142019824637115945054512712572416226783531147583284498249314322244312885844661069938071804616857188204078020509640477392368111703642090231101064218092146473267252739351157083308596684864570743692590026930808424727172144189679446757210951616159052934916723866442050522950944691797976488386114552252479898441725927101018351111210720130046444015903365034436912912719673547870615245676084025881973219649237232234675857657221819986452737230971295968323061952512346840608657022005526309565118780110438270395011820377543262151122153902075596439361990822053838434434869942734975587975992416410297449819023493522980568291978412513072376400640367695935306839317989445336541464183493453052098351179297923343943847470051668105929660516562648215626469092467011075136631721902683114599466852446240393019918413122216656513333832262049139651926867013294821637928344913635439547804587346272495396663154291575978590082070474554328421834635770011154417195445174597906233428512299578320169534864025237236008744804310547516358747665747230998072596741961546933597036445662945104517890464495007963276721237191650391698164983034001739172210688378284152010084502666930053964191036503130671741987104894222587573527927146308689687061796608143550860767975540398150538721238428970732129754260620713766289366737799883990560190960745863301450466894742805359231949101320710801430145185769160106283736142694047586527861954539259492563059379685303493032509335797020842039025196661374957782448948622602629447487490648776435935223009045529086119111616775881481540051698401937657348153673084367805607022249998582743064196625541991888899918030527849655236331965739359009492287626863586929611270906670699563777503968843362207981048696568562929989604009104309053560454067545765649148483962571070180523061045588223953413350538205910564080085823975134289726994071697864416528468206055556199022354674237107598726656187291836661638683385273615950382889834397482480353849872033837048052176967839093200466630386531844676263939692152085280474494220622759948788070132743817454288578579674503012592554120767147805832593968368177527252026346513575628607939468093608886094563957106068010838047019534577454795995869163014305432507714485049946006054171034895420764249693619808549121951818717157979454387084777032428934961631748547138685490230215365098819735188668238514039943487140966406049274674680064727556645203450954292056120628983691624403341431208024964369370259837438717424361465160321785707556220682193804497173223652876595109075880653777850725066538503055077531040447334675566235977927767506124114119340265316088768401958845593911734025029841471166087859135225241584651779842776383879248178307303171366968652942752954267822393901632909423548736676503899444553359378397819070885979129329884981181629462802133327800798712839799052892055230437412358126972927310935168604800384221537714405553105212625889728075517574635407386173446884226607320549552087646565094169188533811680183775636311820997129557048355148887850318639976001665068768020322612102198405852462707064650119359948672648465391896842789682118170340176851965722881572428286879376184541501599160852727806498528577398570166926228702551872781145796570726767928434328580566273322423469222003378219043805433634274709226307624992187103646979928354072174012269630534786236327349326635698576255049146015150152782756092291973241768897206174366496216831003771631145530081246050851965365521884913234160764005001197785833777951082137108824380364946862448031307912628455479866667209956174329628630315494926632015916486113517308167594961484554899374607739336252411288473123880568056052833337198736675899663535693154766808063087301495391972159846790882441651563431654458831552884596061681110889800026162006890319940998240252468927543593648917270591855513455702636810545095799207981887023781067159097065113985941838925230430588108177815642574559438596670400245068948432887315262070705019338493379746183634841727641123071402583573156433795514680851404529155883280976849674991776488232037620275152870499934782774202382526992354068638973120899670712573773300840697429358708471753576530554042502866669689635255132125100252764283256220167315879123606641433037379265883443170435032574221443036292971972832024284796616315290321050277752657477660764983010960357290998356814478463782727373226697310145437459032605603484086040874725889774176837765599295551871389230598548711136946341651022028769242539075293934705766492308373111631399561810790316149636120017501748168565032944144715639896396856164914150886158555976929738856323047933128366293687780815508806211954282985915990582747465670600629772281783910547232559604424709627455958237242472504644789795947964571578600390521259963397215779534347254152072778664764951752030893838606909819636544733815746111013887720246360723503684356080891398980312882412824828416596408423983690156934421536534296627763227672767148321536487094779851323046404710540493566642826591124688682484877914977969649811074376535036488035700086135829620248393172376188432908484074881920021477618167943556981247970252817882038040294550812038099235553288656952938373522570423931990686547845991818249186273385904200863424467198268602834534907513088297085225990347339833386739751026489140786706105375029436792246814166005732138957888233402863435354421675252961972039539620429804305075663384539947360934380767778946981608540641994294335230027590576091498906905237793199001890626889366474819721908554613649192300305444263573048421507886260601672273538441236194539311047601707784310520210746888963278776798617310964123891541805557382943253680921979720741255831489083409196642727929002793252971971567161012578707255302779079607322731017249891444005889689864702149061068028360463001674082477560082899962574266275059638320033260150332645971784252452372255632108846002662985672491446138956908045811257855540055202586483966817176932753178472426851241127620164727999041811850820697212656125398433544422293699777442309247078383079120250574564594645551601818498391168198144982125067429387029790791288126140720368981576220375808212355634393799585821573883404553907373444221234939795455855219900024776535341191302178703213238127195893748559270685090334235620266037611298061312049826628822723044663807763744728421460201474524348463189895366955684150765647299103568649365607607277702786437273895283228774759402694046889707475054007508243967064057148416930266288401530763726455604909858474672230935371538747178952861835348527410569109073090225734522693351865031302113879528698328866929050591508927910557981851693149566590948179531254799887801420974003863852020628190388295838391098729899872446494362331531016263345125452241456770379206312538372846350490782462917482466141256719136871575079369100736832656827638331395491962776376562270390176864022962859756871927217785350563505435684870437722299767625661690547936585295970076108117736249660402226360099047320248251389073545728141018860932946270712643163237859120539187574661326982363888748476970378742734276911665220778411456912737342405634151055931546283146273934257401584383712061584787222432567125868248451583147934986429868588959123967267412595188322737684929725696585810204857018625934010484696399842507945090300735026970174588580795586720233372120620585823425269288884220116680245257613489662188956625350171294110224258169358662240992705590512031256767514716898835194817528659737820047776128934943090331313950916514150678263662930313511153307341830273024501266309633527126258808138802771848435277034631790687020335749030600822543904808039609303156849249958233860073107443450173453781184922445131625345278631898841669385738092669992405845864597007383680551130828148046968692579469870659036625353721695918567441457096555157869926629185040493669331250018848581865109480141197593712764036479385468929307411108838257069306286970003445949290263245057161833813369465427346644702281875487449430161212661612534595866012295740306074880408998400147899722165112395419514537108114767425180293998370390614195002331493816214505002940130972738707868926998511719573188432564386830149644630671363504670940613668321380555938104283453682376825842272898943098486838249711497662768502237216394754257954898589371215688724389076197696105344938148107208291273554371672745577867805225580022042335048138880613251322008807675024902433534816219153803524954231874721450489988981901543373643603076753493606031683561812995415755749370953545507464565361692288221475172099899298172025256238282431537877320389447661478036657950208773587283513523322292009843629465274918883888044264129935076121189000438664161060729241618238389412007741463335317448687535975210991569711014367159317248601647118657701827948761424528927796121251945096917094847994168444037589988306120499559183685663787796911684426999519551918395478918266292673176252554201130408891220096364339680303784725856359044805111409817457198978303269200017828877261645578384530888686971442801304449243056263162335003507022297243166732361263446647906651011648617522732527590928794097072370137069274648981819857746990683135121111694744472995798097870061913313726832618923087420152740786388121021502695534368322456733709628806499700176959547421067318318998898647803835804318905422249964757713091270131192399393877232579058852674846762111492024692964455144721130749255047492274438014972904502949514736136916782051751018946591545037089264298591739702855485291786961856717440548857261736713350186588717947059168626327798507130669129694132488485227542400284883812774520276936023048374929535793953274673142239891992511325596465646305447640499614319425264618156580440010214972377236156342432201604998434888666904127054298281770473176795163718162787375917312125021433245317852789887052294906828884375074319203464544431649389707966134782238839171803159475425063150499397578876331218808721808413045836909744645877177228624438604180945282209410031818771277713555060460451751072089141221194165624537683152704010929154670432323437961733333838638914843162406202622127875266618156019474676033682404369685045339938909653180853095290857434987913343003252433779770669554127130385228882007049727802843815854958562283056085889981810694099924480157042273133172960379074807285284538314062162812283910069972670253072722109164447114918830400818997032900975091572365502299894313240558438274937006059523372319065252300509515536283481954171675211193866200542097548757768913276367272329076346970383171046532830625123534254530609249687415898062190125943074733440075637926599495335832310671114633967590638227409775649877719306922983064478952689425867053275511671861533481391517191262199706326803187048868235995053957178620877860054068141241473287055207602954200042581464980758458356989891502886352574674302340994573884189929094037517928915849720429555811262205808833577322681390337483934001033284958506177448332045660646224294706813000410828859603016403177451050688579383029053324734628319796907400520163500389891786630758563722029735293105772307910798720820039842218307563937054713375026813897520923390780686161932223700442346685790539265482132653557983571732160772250448271414145652419851311108462558265214043414528800041166908210388381257523781101884024854266811761964674868024560268058415667203739867568426577772935477573441690333044577766851908016912878243188850483055742185297922304611002065382027664614187366892359091398522479642367520419910344336618001356091983734401200010826178621584392857333911871343145573193821266907375508273009635652173714184790987657352448061106079853191531721197293201850041203194343228056943943873781216998708266848072728258564536910734059278617875389157368256232944632566130118823124626436817436733623714512351730148919155425940165932512783833085899267166958972936147076245379720952066223015969369076811825409859716261755900565202935448111046221688065451400258311398239901310295588977035436441116676490785904669270524422227188080069703921700692499248940560912549390019786587329297267848252043314681899692754278265269057793375961422435740636837048376745394349456262841673559844521577003364163981379853730163864523964910574516348575035726581766323489956189793406060417709370477549690844374523290448928050478411148010825842466162770670136209704477489039539337798643612075714443043965981451835238867237709678897602540908523638064722844961132161215308500219880344450845130762207071919375008414895252817888027770196407456000260923176451795616581170465544359922399710936763595791234102819479088628350028414258735674744722138087752261390834669397452926751541635201384324691587434044557079156343542863238266185535492598284007115444504755834916256291427105798302475687098246496710900200226075941700518135499655902211047151852696449719909904810500267932018013967266720471889330650094744983240801697682406165090590657958413040937969747045506511316862025097310238107261646651898487365093648040347225039280102018939123111760196722695185213851546311178719766947108128732554586381669665335996649683684191521016648470558727844350032284294138423314277477313046271992523205835773535021171898616059274595717602824785708830478127457750786446701772746895196422950142743461372198576057614848793524841193858380017336216533126392574703880305222052152252343873335672364835238646113802194079510685021257918994902324697018583245110931083265528283225482917092343864051959414791989752242383763297907770930325102080642615188834597033264486610915594724693465394240295448793682951046172367593993555945267928325819078611204716179167608084527587442297833378529898295861946500755517827496020778075408664768152954591357665778643318688521595185076893500869003526138770360310422057114621423177462966560400479219397369592816466936203496411814170998762557045897113316832951290127425404420437285673261978205683508883006425951967675472329081856882748182671977631241559227347725585919232833474993452307277476825669328013207360027120232546162805426309374482573288399623070659542110617206966814056757932761637005484053723575210989304938844574082100548037121340327924367474324498537942973637194245396306959046256670240856563172963490210839157557662157612408751075159104958650841309589749012748280882671778591327311013494062648491383621233889161373900035000872667711802061882419366907702198647781921876374015766918907988123007758798535662102475081715274191337896463251052071317874970779421903353872962592663328764964743528549740925504889657234192662476240540180316137323609655172196464639103422795434492748233518153049025508497488558947399229237052519400888035600748725126604648032785980731097778515016071298684139313976595078541013060957369756853645788211440735184300290533711655558076546535320291880443728103665229867989621779855327298902205586952854438602966477276352473912322618331424944109609073187238674210008235642882629713823659897620216034212772452958370771713097370960538263416096277333534950200679697368091891508483024141421119405104841327708295075280029358333525487565465019368761961157498825186211342884042466181184182004632056113281588721243134899014165492754895686119143923675153208020858719328284723531685619422643020668493580432999087443796123390574863770925407999414165654520620409272113908527403942678731787185680641721710505133297225955793722020809689632539359357736341082482529256920301269766196196205992998399962744310492091946730022379136307296880349708179054744982478112871333581503017426317952807891682405684211614539185440363487648689436968934340401758866480278023945371183678199716107702402431168516210251943020230263438556301955164314812377580984400924327985541748084394202118929190568282736042835765323681438911781242630656444636891922582917665964349617486685729244403730626396738369296887216832036390410589466705655825058741273837306185919784722958593633238511990045362709110276799806939597703469638101580503059466776324267201692462956975139461271757323832534948067645725483709127094764772550554901922969117655342566910651410687074797528196909034386955163844817799735920582604627190540469621244885862414704714715083314509156019874870858709283818936960753079804045091631581838602346731737201915288280904024615081718578500306896207565515372535883891887519350591812790377046812909172655782994384781790219836815190441099780565941909121727524397102151452275188237230640751679221559598044436752716038684510953406287746671598829933933566394825360000097100446599032671470373294292743078394094203450555639604533531583830916999026414500576089871887668446009040693873096225430272674063811062515006315747680710280638650422495668846071431755809658653315211841473540191258766195340589148786024791884870263378442009345767238754359078279243468200912914006977870215936932709139670136636627322981969477504323219030051450549705418456694002036860534941463686825974760882850717652000031342153686080238153223745876021130164965843462490355264500683785763512649832186984614755978782395725096603117963484785701416499105828916934611177503099162113550428612298378167779832566115947957874897571273853170656209988404558329203628724309213953601687889868561432096565603160469743026197295078958000833350127464902960518991051375084991300160718109403896209539323219572531877477862675553347142941467578985098917004469440889555655897379496714592073414775804289402432262128022109598392929954163047591340712331897829164027084323916990201354245036782268848762264655220497794993260772923810894049784614306577369204816197719412595169302224569701721378846725618877898790302649365503115021957448806708664006401504208140521411574427216685584360699795148357193585088905674569439971657799605018675409753511191876253896944052482413542530166175458366289529595175714702956546912989517245228697410405767380473374154895859006607770980935131013890995142011793696204901299258486799212544570183859527211464645198898033132491091953315430693264994654597656036169240617135600194051438881348645462640272542876211532086515539078269264553068395612535751683601845520768741882526122916280251467062183256157945657044141960732466205012949327108306569505275990922421814983536996681088503898515035114040787158553700456970924737676440623493564675122860901700008767232021911968870313911018373508252621239724711413752734232107719471001804479773927889130524326620971806881975175180237025079574215349056615134899514656741037674712441949205470291562907668071006225959916477914989099196791936422732334532974292581561229738524685431329335062140974601245416582929202540043200961974106773268357845489848019614964274485705201074008243964671120079230671549394019682082826391884699320654520073348351044255440784627295669252111910781168463046078735865263517120509773976180875590246241798842274096191520020458310685802263470270533910888954464245377211715876485483315425025954418198430350876182033847566328810937414813404387310699119194561178737501324066659335650655151406997852991978886684870520360881266890085484110388493511104480839387344448003447894296969424021634295867086717602589547251256960066200197562953848492247267007762236060900693369177949500043730448594422258702394623183603342692183820022638888667480575650066251705826677679609185217257577439598051866521280800733833774082012690055801315167737902205681637905822551052414970013403324970753133665004740092290491674151412192690571359582572691583485993819178655516323075268025180750620805006769712250434733859624018700443707874973570628920937271411944284121861843127108256947939094607761469709572933752879583416992673821145297530190741937435314001557978358265651315333022566202146050894233968943587090372336477524750856699760568167405202943285856610311790203586050312596299744957683427679343802447389894288948586258522601416222129716867457056047762552401389915498223946489342890484855690869022152727903071986874960105826611112640724513054405081525323928743421246069711694686410463403747192119151820431788876232111821664675366975679466355117856390891758681466879269218817157560169523849647865436088413655270237260142512314886244367509040036567071375653223477985532858848717094014700201900627199443165115800514356007994405150981393630728628173080603501103770236733918086150983658268006411375641207127600166912863831171012402620648771166976755090170842713506339425246182382520815151858963260045834747163055822827907085356940697433865952468669516002686570797964713904260204055650855127650943595199942775177337597269636891365487701180283503634525389140871979934634631949558229590717478545630591745860189846108419155413314877065288608468762304850150571691982131665858579725383803891314492355481990901543260143813136533640603025896942121625835210794578276065949394460431423049717371925613625003548472655189905156629023411688630317043164226530534374654359774853944481898050218748255595799003122336560989605075026736186144905665477625509596291467944950209686728977144331203045080840006762160434466276025330680278749020497520622406386302003703815835881801706637344844678723713302736777652045022050162568325944939373445978958088506822155889479924832210701048857925256019337287656708849661410376291880193280930716678082063713543532622512990994593861267660475755205778752083992440780815939560521255270461086348850789892263393753006823341564973174977031936462743838440014146566557548197328800420503669246890821483601311341950475484360175460559773006705873224785967346072032105509322188385907483585269179757848371522604890320950717386513927211848841676578593387777017141061269466771153935442092163910920041117963098050757016662280318350827326424209341609771640469573459284879299179255441244760227448234796596968464519534225794505040988943621559664690842631976860602192951223751455339787212009195112472513575666294971429075935760392847371104459576505722877567323539209505677254391277829900912759256462875206743677403721122792349518427169424767745861709001594179215704108137660930943062745128335900203158464262550467286111670917541453149803331187081080626901455382686036348941143905508953708211473707120092557752504169768890892445605355646633728275385114576932057900984413243025190484089175481015141989239085268963651342139661623036603738263202171484964521139699530287789731728209404479188028885927130469077354864439173699319365848092536293222609399217166827135087239181324532625344263717259237804633798042574292362019188607559746478294278957278758352366966538481929120646613220979366031185791103125678661810921829486113647416297310127025971149443109460510772611047482813656544570320291281255084418500336035141358005601940777387275671501781768889017119369202974851733290993597401085564123806643376920722776632920075829362481721982526067051110567009004836292518502900657126583776236135170783816577779078203470649488869007627598976643924979060227719982662711186309414475284953360789292019789492243516638595266857757398455633870232063819367915831852345781297410700349491605254144513698542222240739767272310902746975192686761436579108182912339727504474148486125095644477742643860886123279784828479658921297887673481416955823858616728109551245360614988764060629134811674677905632598137903524086747591425964219548092389538338085937601182857084625324707692259610740910700095109733110981930482579421838798161858057302420504841190052334883829175541793243665121055775541535734165785807755553870800268937599476545295237760007771766708488745583724981753071543992366006675746172680367542340699188137637340422277683759307940619846645605965915237478319633048792705794836026119725643950515005230682385182010335973605687933248245214003613234294814600736073278515786412391541045498167047496723288141121284604123067841273417999847613183499685118726604765118997863023015419972972023686285997294566106389002506473006258354365358187486523386657750216544785392782670981081238862529371089219900344842578263644256785459357227978903195528631982197672658365917216934731809101713279394136748342798540587156665327448841436521003499673454552890843283658172406436091913863457885529571825985078851640266368729031301751438471250354209004500496245220573797549134292336626365226950011282076890701905494424763737098891166761217248753516119020050894607839956609055643327052010710817477973255488063684064230891971394569658160186055772896823549550309274116859405848251455451526620596747567758981162872226136402674046552559299578276531483234970314321972907476636425785375684428907148925975991934655691586246601448458511724538813744169287267482652003239286784441656006365878965778425506829430697193700266427280318503802028384599925456515698616030316190222472433648249306340581799092918001567184779508486749566420234902375524657624438069607751190431219568432423593675729559783312013581523998314586142114644190629998317971403889768002881952924643871751968957875142539282513505063944041613695439250048626685942623129080297923629112113661278874361004457815617756707856501347170054197800115798266080443321595437122561948784386537243928234172663736281079560948270673723697574692667924188802713023023220833512706482680047359302532443921092602459359248602827299172979377839936612716792193846685925538362430029796759254492189053533463280520874824090248033370939299322539630791137428812272940363685597588538349848042038803094459266124046537267208279113068501908027636465683176440902675146438356294114570943653237428547804471887186933643646452038993925009499699768000952960614896861410053196484294996720039792193121776923323786343399328024763350706988289742502473966201899093995251338022142615679334330835183927558789842812083280254793773444516524528294915077613324210769352450778623383065193602373889735138001892745222561444900439108980043208254703065598224397459463342303263857468543913018992214324192863407727836819840216454249059948805909177600704357402291877117391302767204868588476453048986869552724598730380244264009710408560240331340445445077250663681720262779099687340034158283567476439914962717057972932800146631219826112752497100950788202266573249696207413989108303920817771785677361120686270155860864492661119444562975999663873366725089535315721065503098660778705110478227703989500011954640898249526297882179763029926275633568817704871849259706690665218652245179164319789375563291155827975648258914261837346523497184982994698042347927823386114048986750516473013900383198487031999200037663217174646064218308830765677807669116322900011581762599942478223617785626478014271748050957358725828739637721015869954448324107421210666285900990024054971119534992262918574625154001611500922847600764856065398540316658937873897527898093788567567094607635005971392006238656936632981838210548724972679604271885665560300169444428725711277999658621124748185729631100381484771084892049808392877304814109804125165861538755949918127318317989984841062051151017044961434420143538662961826781980679847124581988123239906647242053355643379104516854842666358106700451374943717692728563984272924000929738885840773554405107285568257591257810173637934610773708181289957417303465258767386065544317083971708887357996368015341157320437858093178245954079143227660203459624633755510596411209067349504873009083312846991010779369098829468448133482478578305007273890972342636692559027748198900553084013793799945951924749181202728109880067897011572596768978288901321504888119130525247951238825367816013762464130206681323035753508956838923744282246471969780751393577120587875619069292256664652881229741689860728133967951349780505583415429556646136589695449724279218163519987215257190457177909103447340816645867775177775880773981079969707252274794243379367240441953390281885612400135208722402580281673807408464578390857002429193598711098393583638207583731579347933567911282896560715347424694591926400815598309007102251187292603544601238849376261538271821685727231756782027063757088278871694552517433277962281389025366826649960435817450146033208591532768345174113392731184268814119117342269700265884210787596599634479769415125125445308891392489119795856729888922268374893657393426570507504630847633159431472975114319551210898948867331282444236139999881562069286415210657919670920559078336352384303759190172089715826615723923956500767108949842628523363959298883542270158045174697303368611861704595080380478825507000411075881460404773219686670877448757225175318270782111291960160381187067086013211818510078795060353105305146607262160177100336548997435868831331165523289868863628169622596747227890314555781104217869809680978901037711314776879190802910215845717267978380052348329844449865178912917158537942277877774900059245652523228161970203066605064341299247305089595931563714182942191554616895484259740494261536973212520152033637101830833613691054796856574206065652923304536042217424769653058766968077581071184129017652871535352346480284916583182975552241386373003350427836908314464538206356585191008096824997650559837120633364412919746050258927869403743676291057038916997074378128497926478487839859123731143087110714998557151924547669868259673333910651823952333875486292498004612067429481878772292252551623749031924625720613645792271255882932557712428718663057383793297932214438660507507680331156378119676418817598344929768515512037358609139451108282934816930304902710278903596115265548842869931153553218141602239694224015954430987401914613095532092323463582157370343306096623290570628370970813838404264501226933050131498310439680806398927629333592611772877642733429703408507125741966693633958471641710257101176300441112188057793503635426953260186785877198420954497013957882023372072028396099319821027992844786321614933644656310280807145596613890216566206758458569211644060251945565591632033555264164358862756497743372110112385399608955815089591978116551394975250660142774413692317174844002067444784956192231443351517370693641572747483483159797086031838810790922099516858437739686481322129791701309439296906007941240230881646543497478235915985974039690979944097793812662054972999185954041349930785319509655088887973209441465789341406645832278225486870190161913976012825314782156904347579093374949705983083952647870054309480757019801842304254673836681778805758596870642116426471426492367477207509510933460271094677762582958759559829451085971756157319414074460474932741258925405319436629549106293017953570797597393131928770906439212306925042680961134319865777507223578422016466282693654532054885325670392607464361658322322674233777419349122944049252299807035225351251392279778389656279002598232835909978272397527855444300925391896836699558738039356197742313117416659328295670782727023450302351491271612827806369244391023042850157661277533930470075606562379168697260022047613833895068523745684380890184011283973336879407118506997669989427363431042213312984030591580416973717044428797633676233872376244277329456213689430633327335776024943566532856593813996299941769099314209262414593536660425806068324859548209718853004516605015609276643177407840567850698093599203476285313604113535579703117942984599022231963670002559722500512013822966553619072287090060123334121335446999192587328076394045863727342887618806619444222713825334753677759627234042601700562069326167186812215556238949380709444384032294816320305998971157626930684758300675604380288027683967525643192774005939559131377256808908834724998715252519604158136207923054170394994698074426553106548703979602078451811040217505952031407781623595853770672702491703606493986116923612097321132712472021695588462269212369091350496747967983247393974403436898434499939189339367570845780155820602400095574497237312472073059481474468063414633882110605773882935621308520553374208350650741689888376959020412698148360490774682786307546815108297856744799359957862270368027286850174436022257455553259314172527994376804443249165360369929568609560739466241425322003783727733956805594074948238791247282093487324947085040801029377580213928988366166002308845041943625220673203134503448117158214591758124752190565373165609736950663809545725139436373224711465985457255464801607932242484750761443818090233824465870157033750152077674768637340968843979457138793847112661698442877719778670429771049921272249837432275888872426741875766198060199942168048515115830634356961660501486081481355035040489460719781916762485631404684321443277536664862994623410362411459803153088119601169734979596976109507364995438693444007657718497084354609799000984131178522441011732825623610990890161627464771898669070437307046339870187907701269923516313154448454346733491142976774184749036280094675312208195076685049453121423855029466937012296310945564748808605076353713706319413433004744381892369328876336891085571446105965379965435190163445721245282914658923516719468135070457175109055855081185564272861005871232095148086674837753999969849719080300360782014297055121112355423377799251501952823364574012508275707940086302830045725830105313644284464978696824403298526721266553796365892427933124813824371665523144024273184925920012786580977908666918902062252695533302323067511905350281876689698162522053940599686176557956802195361584189333188564033519245683230600068517048370375000394956011686253188002635537117230028912732570806783440949827710426178263411700844012589936097476042429879864668500932120103041011000783921154863618626429397231978716352852691760615052032045184709761648787887623279341084147973793781815509307839705932766557720305013710434703799707964729712679214147729442225838739845274825603091821598175009123199379222336143277930135647150502137968197998304315635546707875849208654807899996183374275226321761938644483646348233459523654863570511991168023341433348305952717591309105765754179081826754216829173890343140411723733117558312784212266463352065883948092585412437402426350785012559000443922895209929567786874486965407465872154429390586401834814133728624046645708918619460343151110067708960674071819605835848356220071132654454772967256307761758512961036383653818468693464400453568566808816025582708182473879178687690771230944609825742596650054570109261597343969388650082348192904394408964589671801106094349520900862364979214707112543215729627946632667521206201137859574022643096134326620054160674138634906916207771656604159138964329666480136231734153026977058139596049585357576381763186099922107373789479648453899608858907306094858137714416859281924321098784376948984694878203691962744753122502749481702439762350173269703163735697006886250400498156948246322086645289101174039547598782101027834456131884751509000955551495550568603906403724259414005103165026316168222540155721680312710553837126688269266596340834018603030160329699698426331959227105784199808353628579028540178282346763917683647746523385894101408286092845844712653908672064808543069659645413540893715124100017302710178797146553500871922153261898260637064935329973724257997572868757522382243213638970565209913438269500354566636487737712836023232367187196391333536326296571743547892403303612576373475924779718951964414922850982869217121686728353155533535913057801490260662126779051738524601866860369304370697470349486156493437740711795263722339616391659546444890416237577317287440580773321333821685711236922252445420906032775736716445037343966185790752792060499226402647989123376159886294480622146740317685408561619595663915931961133398303223937984622057831031605263376523851264691007569465269542835732120165224433532779091892222501199018453069223974313914682916868523306312453928871731554687466758808932853509584130906694147686915453894497624004990876720656179222840069683494544083358793422257445520363491970856679742038742467779209014938925951953408475531375031397989635773044788300977349976179206051901659493400649545549518077623047667878159738214061152468095518442476742320418213721897340440924066774244267947092876539424089919848495745261821026621194430833296722468884403723607145254037365262945001222201012754006248462380174454062253348431699102684803310933667491523392716320329989777127294376842795131707073755038856126009986831017396770958686036833639919424584693615177268853023603374584559440628188178839921874974841482785695020637487233843227170803620279294260225435664871896323089747131039172217871193727790059442021360906423851370771755505853131666288267784090785081532652732632721186934357914463243055121323544477527819302607097750852007137782482482517910654874680190351173539579755187559080847758440921517715236536398435826749187677813243117373531315462831419353473156632731620402317932228406405034077735037429090348214386803299564210067399406872076590737100586497476432302844159410268983860861855983205696240432331591111266365065498229165162810660838415760720677257657656632123139042376270049709216243307218204178729600512905855713641988882418886249374248388836180053333381547317487422901217672701603603278146668651535323149766473531085128357151618868721066040072865978867093952100550115663459541163155346957022504222032199043161649699223531835506848056568353621333942489437970507742335141367482046279580380252857111756383888064027688541798175484960886185435773738711496854839390279693579638893966909268232034447568121323062741179693021572537877293322021582985821053547831284325770993147649811213556800049263873132451037066891153718339653613017351190847504456755460049362560688449661148057851798967146189959698371154017411697468195810088583001841769782868870271050622981921381098181746738800191035742780168580479511839158790072112819531591733182827914329128258617850781050276059971176459815226295846463588450147317319002124890223992927447618689877918484603501974615602794957171443521552997133309890974591818210533821379957327050688152386999023627799782044821455078840041000228809114196053985862160483740973427657652896775676051241624689254370450712111183437832381196030722492166987747357719012862553217613250689914460181899138847543433273823532943981193789036103109037430695763759476835381744584273076824973740476545356144586115644056415790215427827256336685833064295270260716708655008236894762174225660397425520848578676236702695870680888669862043555660455990371920574858117768147563309168085317376841363520195712054080872811287960125900450088568640913217879648276613910531428212554607368814455688414569688956007276131113690814874165799437247735345833992743682161360199514157441920474723107339305199865654223104947250466842309825685971113543359659446977034282621667948981563796505605945136492548795050389079617153359874448151647573191945217987124155887353388195060276412288173202495109682390406800445405801582995366286562377829049504223557627565684756398095967990377665152792550221414210424186017066127521661009347889219511019202780199528378443238322822149232178440310416459276971133256542239670201428203010946365700056691725985248756942127217270363407276699311387028400629620832031545018228541202229495922254647612318124457867392854055734985641148594884218759264175883104898029013809879582698561705813181195224834593475772315224829828032940090781498782021063584267225509605256643668900920742100404805167420850373217311207345420603565193560349346562030088597017936819077209178378516159836529638104062240605502194855605071223811454563431444622907447340925160685556615765400693270449068900641787735989372484117831385301264341397889850502975834059992299568777618379144879923424083346422788099486731672681922615830135102850097130483854568102647703791478752605498975991927686475116198648055804904357905730095292731892138553933882494412915765556507730133342161579483506417843516964413844496597686113892438985732481445904984263578990522819429546112573185709551866078912979586266602059929695641190955588067696274091694412643609893534925485569393000982445663800296263347274011364202494809191477216211761524678795638771241186536621197691359824401100526297601654705860988654063977073294829515798120138961774747772697914167616685344896034723771412862609919807822515636246883373486261260361031701220296264775888716477916045188983282745566433517348921053655454614494333342491592014826279783820614370848998519380080150537435099525121079237355860324500394720309010852941939172490040487443125378061861924194711265959515755232423369367909790367360485903728031531649265870307164426551111187139626530158568999326799428812829139366585475713501816952884149959737373139544579659052693257984770580994041522353146728460316034495223805482841130813475506187854956206671773279978099509294198139696712946458201971220094395109760059393678580056676923158403225572294287899338514548289956938529927752982393236856051622098265122940524218884756755639543778247054524639226179269189095593039773482499039820879372858276707497072209582639953449341542429124388256640668767322312180448971221382448845784835621196093791277889618931057712957586741510467680522001812310926277288741936445596330983991645595835314075866132047244021839067110557972091370473405403429921808162924656004238347338540548316473861734200406294759474059958824601174350476522401262948963482726569278263635460149676441706564991476230677968251257607407529225915869587457824654102293208762151844461072094472597469305864941872599541813900745396209206920435658597689264046928075935981429478674919818503709367483567343561854788180900811267073444684174311567553364035911088945615219166501888581255052754882647251344418131694131761952704446073361001053309759814567801853981211891230561255873350677459946798937896446548130813675209326450300338290284091426239425602524638139884840836138617842717760833046248128445683357035170703014873980353157485638637401256531229678146970327224535026957776112620918191196497273577136303861498622416489286871494390577780223507624329974641467549048608068837489396687981436294767332315776303305213920963311902747487780926543658313496934838692852096905968936021154536207548009178740690839896638105935578917573061947910074194301742103863793274661488426367242330355564414506426077480994313250870090163134179581079498814331424478195872205491415472133731960080482061931944184447153510951869340970572733724688241704443974157364696461443988863628154170403685395813371503882250371890538175562371178528950220257953033484101761229392345466303520091970732533624842817874622826564619308734973735285662572116633188245820251886002800273380528764571172860144874417396549275249716834437777311805301364042074268054366571918752882723876310906152650941895884548341745815779671845017333250670849973623391252133631748117477103898264111681936223941443821582359642731168195535172092247156427946506946168923416134506233876802969383380299102839895158055099163400423010961946220462709999210924156574825655766765004107582322014240875741087715227722146916082901184214377459745949625055947091008354000924686290073383950863488878164054654092921793327411082400280087745838878008440492094506624838014138510050910752722087471395529480303829703013920496149792945270770484470986590476006401617245891142385584477533145416883755052176105870235040237179936786188420371768089605688304673352911763801073326948988054162943192154270620738596794903132847651226074352294961263008577047215924476701930124769720450258685091943491698324736078545543074918499206302264226384564619204182750944044767282836181014107521190770291540472394212188219687621971112128060731325403804310443090643741941797160805666447276967087699894036282291290628950907919651133126867319370940883920163657416889853817228262130711292312537844935494121370272918213096417650891366263514081291011170536468247691781771788423241477860735274717337935343139613219037546537374254956246607219258762705141291304977051295791960954673579960591123040812995114460521759228067881649917583821075972203788710333689586143147814491234763157410880708260038567474738948006965357868941292827660297087134211495821484697322157912056558558556419216270444514174057924944439736649873124968415511617097934203032395064536299251441152995052414234050991801256527446985959930436586648497949117631065942751156243614648767039976816673154733335205608180620754263160926645809675146925231086263184525923036660007904300854702564712910304640066898834615676135407548583022599821008598364341037515242231127107443611004003500548984359522962577542808714988198439324677874507701101951153206271230617285937575656570572466452613632855590541690790350756452819500729822392718882832024417062758020141039228091422457161204921895064550502536513233639182792443802128769374665494017321572873949374277206828265152099868351415917063123715265561217092305922368245529871767926629981629695590930536879024218798420501004136745332713700574166105697429107557971467260954627257670469827977102183685096885850890580135011109405924866962256051220995463135609676486303747159382254504302376708660504106262046798612248622853174216823877754971190754334783013942199277009962996408709451193735876302779305631990907476412487933062610130642796658230541987306117758154965795378018708271635688628388940806514815005680688253468633216908890859325662222809158228651568546781727483463048577272603727327025140268838240554456931221579461194411789284119120091243689503891044782222685029600349360605418358393609837308463096006922728478323794049011643735080369774865612786255359934508602560293520312985196866440079633720746182566367644583500646551014216819961768924391047290731676207124026849069402850507584245351527140307337829505465619366653316746516294817340193050942673527309993939946927600531791402387668986207339018070178454517186111107525703974347203307487180055634077943631042921537523222695492245102892523882362244450295013330426686653965151649426658486170454757244893815446514767697257058092433786191251227548015135062572507136239331657787126547035278407166415762751967476065448171723160421006402511536347104495295549447230970942522837327572094957459309157112082614589945343548741764758174507421281578511143539112326694490632863001442529321331604969279011349507365793625043612251307286923115134399516510161600487945498076593175560988391047163898044985905788217089658314932136722477795805729880515358628465481094760012459379083027946988532309544473206745954040386881986978497564119590420214774429618710275698451385544082559736162059878710730861083259003998545278020859781722858045236667793695552362635210195920526324757137358733539921222414153476819031604945527118371602871003270126811037966276846313848140506821333615790066495879495241372294034944818393795655233229231094476273610400226220623413015313826772061293898797268503908170445467383633231207351934326194639192642147076065397432432338525444347927534917840536822249160729884437098225942067130345040820918359662800431679778644906234973761994209959544868242970321958706397755373996179888432724153174729549471183217739181689850093800025015881864502380095234937207301505883908232499699978744344206138744096480121288779614503802657135757831283928257428127395412002429364516303577258369603509071766352722451039882793678713634508594015480998358848361009725056622855819404391445938002255456590235429804221347615813440365734241579497847066215880463897123933423862403551262379769812088619126260910732830759958411046361590886377695828271962703564991329478087772594398196046529984681842176106903612967764241193223712872397394496420408403531726281098430590951636897935446345772494326766538974648007053139619371039632562268886867015255368499369243064025252370370227920051850592154665605087097318660654281255848503810921721170300507286992157489024158268814339632705854750620209763824534399237563260725296194853180199019802275178650026687855556243907704480324809418970768800643100321846506927902671061417274190764465067565189815550348398145651479614648576080022696799282325560674125106178675425321777570466039975771583744505756497521856287265460883807510928212696662639749284873322355228629914930276921129914414071470796247702549643082272838157960934031864248442586611442651973565710619321323929136335095803264516956174717650922076889094886674865526437136890010935368244688518112673643240595499598030609181360646829210094787991040818520976114141057706314714705096647940993314916269513956239940831835922232584777023371728320049 1731399858951771056429417969926138654955472343521403228212701535461715783266124062112299355547275860003769462232527124243896003430200782467474738116504462963567001604666570450819407190299579735559267150119172231383288663575748872025985031377752601401565034238672604113214622996630976803105874401148900060261855590055794980261277139443043597091765494615663451947150201443595768225474579018277164762630455203731291214386795329296048464356606037371122670675932268668762950579871599633672206887531760131757352177433046871841477752760917910316921764384997980407428485827464681196317317310909814296132198746704566499710215635192460718140584771751334110481308286712100023965254871869285434200181344368878844841794514705178105062962484292546133391843106362669494673471687006088938063776158862276041153113654909587284167456824727970870227698717860631203604787765926807189933619020684566496753438625128204251839391060559782068398127878022049837672605890971254271049776129109561568782885653059992296213448424681695242088980010696942911065410160840752455805702837149720065401987152987793363773712640263680530040298758370804810588001807119393506203898216512424951048838338509544331920521168714703341080095494044089997319685954673163348215026431590354054431897096020745697007748287400454287086364821089887334803997381617466923846168002312525009859294342450030633114392822267915108011525918312676341177767635591813968990019090024229038494913042515545845025072914568363388422358549483493017621032599723894487818841795363219134419989331487192809038313514211511699420726931276697703139003702924063830159323764337427827099161422641342052211523505078259220715244508487830489130242053562451769199362195970091688748228740393926345396497465682627580275307655382341098259167032188102325555529304042650736126346044116486044013430396418098028432206956320690405483611732907384756408163708340611821057817668035225581438214951145523208834100106640052783072374445222165703764069390086938489480144822854823421526786348822662707421401761208735851888720755560087043520107386505516377380109788426279642277774621281681985682635535670440065874924523627926170202848392496324272977868466019120593372945212725774980115599372817332101873563999962889565540542522751383905420285143406593201265935184762096500691432029911572118722586707445455784418634191958071937743465704142116945521937065456083521890837015083943372148099754595442378609991514603678631852487867333234113486405217529775727945185909115998385041942540958416783710868097392677283928883723767649130460921954356419860837025575140904221117476032017000840914697959852376194052924898327752917657747941604748835222936945745257991047088108434442383218769646495305886226176637425020848803301960369001552411586564587432557395638176405914399393803354034977891826992005967758952406734882115742898184589940018323839352577396989049557061691159713460293481485974679142712269754959967266545710614999190564590397803426285799922802027306697409136824050682688896069761753189245601743105809461254810348090930921322995830963560146903399669051185014667304556221947334770296336210260678178525404991114230766964750723615003612716281761197516699153057569948636917200159738558139228810147069456074109961604381980313158238331639696276586410540193311117156947634932839604743441463294885483197465497536252051417356593984160324364059747494151506995620159574877252292119224566184768355861236747558956802951341159832319749057839142414619664974174671298946631336441561742356247086794515746725354026774777032925995393189099886390664302919388013364270223563577758119639532734258001061052591447992365721641118249700586015106006823319979887605524346607494680787248528988724346022725614622429313405181876708167200130494609711167581301570047059981444744942903858486477225690630485972333445744723571078123622053774808983522252796897805416676582808975282131501050967567154647635693861692228069242957512736076831526696131131218070159562249002344133234279153015414892382901569328375058501343338000841000231470089945726790091567723128575423980507192166276380722101695580626952605480373724076326358705820383294706592686589441537156224378474259391607276047176483915196687283532385882942720389723937044210272940301988507789750278989316568563092997518092768135465081735303822359966591821914784504002735104317175901569369076629810083931495253528773979306326962508005652841139155316039259195302214557749034237111633836546368564909526600261270076417399758289314312179904521135716910166105528002237434138798022736656110124900260258336272611531537983006192320079098325433648550620210362501992284857130412106282377738216465707371416775945138620776508130193070402143607502098226090614236092265271737422450115848023534184462732950052069995117294271451040592356009897353050480915779157337905634912608177795273963431804064692411529394424784769101991107976197729450771085508244750515322080389122788029664454330827445126006033268485893628522515898488255534151721109881865612204700617622468078412290156583525822143510905844896409850779565490071873040980194356786696267531591808811849039147254025152194699847795688926511928940384662232532459309910635050116719935272636666021095651728942760714792416894945523092526973235062258801244026714430793531213253674929859331102003735108017731090326905127811090732022680897736257890778073096656008546890869806228893706347489442773874106002042564605706576407965433741141795166644653196608714218987817352260191124919271146367666789356059202826896501962268780670128915965893105725174714748406599374170136439972930210360112355303400928269823762894457423946684436089397502052926848836215487929474067401391712094645793928946843404693362227575371217972463668425258929077743520643341109564983331574831801032137293731433962738259916215227296660385234489572894803868318312114129497601453089639252775252919626663732959324289205768585920667447639616284729708133639155447680871949010978365133291935273119752031239681440556020039759151861609235239677197327407718808533082668111110597990063187188045502802454986206845347490778642805118874522477037916403238735595502712388111008610668448336306977935692364015744817685681361990442892376716491078077767295959659643084561452002448788180382975034907952941796806938284882269597895475450469444405107577614465411830194755448241234989597537026622596634622773758952542968750639729705183010760714907667470188424141520790589686499292956901032786374482811837875649167431651233817611407078224560104020127164764330769349100158161749428853402734074305361371377415331745545938706804788606512537682878602801906566377171362338823358149023541677927038622623150120897108472700881919168124170513534785762822946796286798344890017321291469356524856124626017483947448476025234457043766948963857098639226539432396173596918346955452310778827506280841596267103117523694436187057892909911160560570259557724734897067217580309402265677990013414926165417260058316600284409502840116871730658681810959430308508920311422616296968730631557262196041982811796395434660968356860981244093603820768176691386354258461474988193366101336526580619522191847650498909152848321900933794910950511110850769550277875910612628172072415880460645355657294610789505116026551614769377036151328738356350840662603788131480226670221906280980005895322933562363743058640673593324706534668472337977476558558946174632118863784690451752186206553219235919244812319263203794756006122967806078417994993628227976852227893216487643761031880518329182232350663944390210685939344737691139267775458789179884517971563373333041198737337750576589170566974444928844026986998690238472199532278789877353909382987778795665329333104390620935590660103738270946174049359610298091507384422780292162164893223463896228525379596412530870690015799102609651931814493901414853129887182031825638641753720082082851246405553553167802042547213948419358435435542630609693603490977763840469688927091011284497532033009029283862563308826823618497689025135499845818187184556792777407577620453870767131626183015279741569637598050677295889875745927776176441640033761686183713406859473675078887678894755985136921528964023141025884694386237829996463587989888496294228563881466823699605123160129471562370543101888939096624306563732700843235157796714993162805794634478902165419938211467952603768194795539611195223396630777940713765728943335960795105069837087975212257126023985802614634182249880165167765172402824782150997037072482500827628037492256963870977463811613704446893685252751822362894646634344468693359502723962073417981208110441767083306372120582218602012094737599239451920162555106111260523632314936779493230871337470640335226709238531143230118279640940613702532539632529546396295136736660754524887607071744728992650966770167972399468075496042798671170249862607128669250723658740586809131448748491160590257753782087751220608311374204541347091944514309826258772787315422333972599043605693400145978400895075639599102035320772265396782866116300952373505966007396136335757957336984760343100213217058030829556015004195711704829227759501590299329571152410206821219141938909332512028723963172182630911849685131785953000658350257746219167463088581041178494652727642710600773179328294422935721850429031165041507783197226089771863945738128578731265797391653061312995059279592743647350161016406990781418746673214837529637046864461160161363672723148086870198633008417007948131497318989999567844366075861984755156018523114074131871908859863226456347705220972030235779724086465725960942542890873523730040350587769957175029774010484699550327143362777474897025377934534793802674455149036306913016507454423284494755971880293029402636348703336997834558135420415115481300787322117106270241500516675149291634826086282266350410820905214964081647092174800488914007724502361089834705660302739505690438098173351502667958925364806058623703817724562739004660115463508773451845359618998003710741667826972256158087253365494970360705091948966344338313116968548409918236969748946234976940413002657331999883124376594533248775084797890820588835359041944293038386148146886899068927966133665720864940339622478090210573286388908916871630630789167452333475171477382721531123730832870556104007912926900545831209566659203244074613650372772857421671043362939093790518983227601850462248999346467421668620599117944554943357435236501942289758216746216669139153498035605667977162012235557399169090417615613859658906551313288167889033150986278091863638372829435610470217824590850860618654867670345151198972606760683626919620550497300980875451767679915593178202214520926813520786216463694895387204522587729888217906894815836101104234215737512258883310337013701946586753782052350560442649212204150516583318307023532163302187324891377420566898780150915388173170367209372453976549350727108595536598765323218423945521121841995793003394189260021552009974655088969093704310163996228692228260342556512578107253593315164168555898140250430641587295359542833472709303830757622746759475772399427925631576940237152667057836640175867013796207528874515834324220880517377784781890018995573838848640653060697043136516226699908358935598177739444029093489997478829515958603196998568402988470851885143318594542696705398539835219742754603725262142950306598589453829459839625462701425717624823697732376577354526229983998044977707952979885814358230103617677764756745571635105918244569474493233064628643824068533480479164434997211006860558463912939543639076383137395538416848418070782299238719553984821951058002052664497434333490482767926431755669144834014069607071122136342003016504473912299128833336421394924971367234962289842171016892650557170746641508843339053544922472256070041666404390496142999348040474797165179590603797492337876636469837589906816769292636654239550401741761634463203199914130348548121456803254007544094464134157978768408376519845701997396373812103677416990536388381455523431538949186373041244927373094548568351049420656368169782508416779358342175414960055833872630891814850161952965136518704147248353018216407701324805770740411082156680388047532517881664590849958344706782229791701931970721360712464978198961318687290913589470130237373082187408828645187553116148860364976809132442000020029562580575504601817249749282493697412558395842354938236678990500971662608806303787664108328812929969051152768412686467444867495721716915826677856412611307042714775139705800658368081408955219984546131348831661845224221752305710219594053089482855856768881005089758614218832872652816493600184254245409853102635284990808611885772254511477587258487691671378081132637285900543443367556546867034069345950226042672505404792767384966424788809756734251840059485486615425886724230292988985530426255385094960446650305212108979853457230950499041644216794610913772917961210257467090730119800295372952540500633864709538977021081461315875695184298586197445913970312479971855637858512774956785129027775726652147632082118658425236154110371779189562929790571369723399594059230308459387538686736703467417326934181018154562180315575791775271893461294168680893108488853789833907778512249085005875642220998464868373289775699858947067047197284735844637329842195815767490266680385295817402126431147580460530410885992799074752299889892560067858100078422464097796375430086024449017391965421451892680720221401302622961309920466492466805660638633835554093998404012045590256266647648965175881435337797904766477653571321935991533988120775405577319173334673055799362926951958800442790307660178929426202776732824321916690580057148461821156152976287146967108775268924382323245126057188712366340801313589001208307311310283403088167553732494017099889242273043084109896488341688513748920299858066771551306580336518460059000636644591614843124433119522611570934870439703658185124954679270275631408409352133419662279432412167814412433623571882034303196577607193527382543633800056166357605967093803335366744945427542808935972826905384678958656651640341876628543879700343673560186458729709631034091767713650858528128763379573157340095823497516798513103387014407040844368997097614387639534877950034272205013282402585050256151596831184175010713233605374420115232401638241535619530185314405386323106187750919424188303964570856104116916988166863597212057267001140837150066093598202328906532366795399907966858432694576562022087271305485606387434348190645247568321800320502318554428027434604633640725106503397282747810619187514352371552069006899416859351201664895732168627543311779359986249413433489212638847971833391526383815195043865838644008150189651968967468183339970986227057805394844462291116930061507168267878327299123025262854599919670667408855209468637883908231028560541768565704622713030293856732360708897324792012808966935888926029740215972825408793964662422417340858605607444664165153258177690741614764233906173670679119198011810106678589896855419485823364451376034057483071689553241407812619828136065751040966708510953983112121969443463326182980011146738196960566306747049856607542981409707353817528831820381351285478376262993066489312887236413623596348142350857775771973183289153887939183417370702808107283186819202019916362466584301642882677533084757009216648217579732690385599918421571537879919451500872625463144937173191083349871090003695549980606675376003051400803826693570506193930242840118610730365080451481415552350838407063453342427787872151144176927128277151527080921939277127773705465788313672213684287572417457732895665415932306010032000804421043911042670268307367973138193046538511296437964492502089411375436187488384759836376832981616708155329527040005724009903107629087933927629053874900052670531807428387743883113156663688101604875242715091160766977781039582119039418941618999586957419004443238955453955894398234035490190781286997983047330720999499478847342857329303947834160011261430969338850774768224120368897146961472089938458015630110915071357395231638729289430904552375699206897650201629860124451153595221566337806447772061631082857964337796702101891296339388841821270434440963898019491934138769588796649719870546734511848655165129977926275693197773607672785244360795380947008994684717616990371874473928295796936586234189508095723236981085352118495092597989339675086585189259953453678733469400275641354668389446826237737101846479396841297284185833170305146412664649779686005910295380827596747071607576332095718073435899148127545900964549078607425686402196771313846583431945370104560874481829054723789355399989190358440897171562565004550940536206765351710396692496681914875905381567259162198879840659814396877342603611230339870959116509462812653583589920483002866722600165453834388926063393363526870976829525932495216380108798902825563642307431639807197686797737938178761003810692832305213834649706027431958216174507267399447195722270819271086062407931836949310606447256718587490672587012426096777172494212747876254996035470535220778201079499989796360569388974561235299648148036567523579924971505302675312097546207088353945197188463104340881789761973807008868334179942399989807869299311514967735061081986891387616718841312260616186960021977382862099560627031490684010624390950505275733318542689066934166912835252098533711992508404263310775308058529420260643726017515171602030355092532203434372054057913774785050249192475652929458985987137532306455477816389546164295726474886980386594972092105581834171133596484257864420557842217285829048165167986692184365665517048077420601140727356245474211543657598923247392391683475130878433211679325043013554835421094407887610155539695328276955884460640189566868603398216569514609869147995257706565041938114351629898940822300177124158553231910928892631765258269906271762486685788113029961436798553179763707386670036399651617761876214516706206384177693524851024647988221040768103316489641895483987492300665581834363199485639042263126417378492779930069576238027823507503488577603484345103940050550110662885583842957911223973140501863400855413732245626781500359259604596885865656372177033167667641168236279849137006454153396321770294374912866489969614177362253120386214034580313871933391888504528145316024713561911865659373051843464133817189664212292963144695380288660334201309899975869352712089377088569688111860712895744562202521958185746891091547070033713674146806873723790354879131366297916830651078070292656876902137872867360852191315771188055462859197786487409920900892385385217845348336422748248685923797323736864343425200768563698020013289301153065954252872281306681733378442309654377770020323704898329169262498058787477554122970373023333240828239331680913277223162349696030625958388570464229587269317585513354208426801900638067025876638372937760284903559002649026619341106471291271557233859382792377958484266914306041060758677579636900292578050016111477219317932651092767687901174601374105546464397231359554278672187303049688780225417251296915981843334645507165708009946111670211452956426285195182029642889505694378090512816609310925976938612139250475197391289758655018590765510031847852036581947048965756877306887279512546140645948465853141689478476517080460049519547546048576286963599419010112803375563808858070569671828337160319960590582705340478995830993918551912420691775573549783494604349634097636379920372171823981150379710006826576160974063502669906749784605236882210847591968550986586696919572963626492251750974043625582890829797285793522781558304153261422890111867958076110439792372011931060820064046198884196013589748797798735237810107162281561968485325550343926915725763778489437430465289989778346790296926102167064162666649461802761521023254598561215970038556546454418801941456670682337783404835318571286838265972630391322395114392476501636545469146343708935159620820842784833540661631651735673852366832954510470481314592091219865295776411082653555681424668450658747459800328750379098108217505085721676922840104363921311874844042993414479252193396077007766488749337788210271456765306231566450223252645043905065010771200970262707583118620272744123626535976687202033325167328766480979005750078760014976879455032696812791096506556421990502623071027465636924583342109423503030422575911754623330205919575211240728343299734420271927519037035997956377036510179724558834809592572573504323259572264360878410410835200280961054655302635543413433056894078962778541810437464850629966992215893618501034393758128258508357893635207413238219661606402634082298274155678614523816585575557515207757190573305008545321248924950394634839048457286998914654078706173596898950666954538238699989526658904915685511559720348585172430510497676392556685375976116669152926175026070014388840322887101598662384188625518209219885229748450012988052755472855962042820073195829465957164926499744094408809064678160007215152615258998777062571019849593047176867206685877533265657909516825897833554809561024191474848280526571839902900586307839392493255942620088866949098904548716741292720723552738201251211752335146318949911870652228621797431561495408001125458529211084321866824978167522082288844614217039033651130545429339106892858339799708735728614963536235462788366431075936167430253110843448838085818856812418971482557730649970007697405937375145135421564981675601631185581569589545542079710007133370793658504652884618492536045053318407510176651166406414366585827314198287522601450699854147603070990936921058467347034103305216938193794308390629127454834703941630051746050429121039049198209510243207075576096960126524917392422283792082918313553710195806962284567451519362620469447161168908572772050200301165253031270359062022306570816765485604553826326903574196256017266063934487362496276046408257081623704209929416952873211360277351829366141661990187016126591462778442759180864903391432265003146779322228768034286585998130726364360743802959022112998823129815993319664008457610650518240077685236584728900964728679252482015593496514004922162023193038206731114988148656645667358081121328390453912125926753453871671826285172076704795157464280486966556858553143139416606574540291911561813658684840067948513120293516154860078131152351307933694130537878577479384617043535282284018035353019407882201543090456522646667563184833363483075467583233206591467282724215924452686421583784111041898626503330148836224727777938183868074972556431761128133759978988396186999339205738295706411041255492030944343701778211832110435218291459782593038897208183179424816750946437835183390603866776349349281087240704660980789327588765640329696221111605925424037797961249715123755357921026616599030377125493699470714413523023920266336140031220767323349007189421066068075919045727471168570419821907013453185330659002993724479612448445482630536119236470381043803994508116144252511787721793919861885295063773774181919669832625554025352515106942624403993361962617607458500507062877835991992065990942003342048089924245938440799449382963730053090801059478136101391434731630446054412872667257184153443758297231186930828195235368428120024143557038872836558313569645290359177597827656199308222151951820930632217505769030254495116363567400525395608779839898943789267598081411324679782673800052738713919829130563975174279428447664784620924196987189954680862793186048511869621244063601166245362319521378883380755128608645196333677006444683044440260308819730552812799216674246064291403736076650318985853239750561356903396845551047633584286428648990727309542235438795530130792995880443991224686745643289276566395509933594360871244459114587771266388601943129204554192045019260524414759486336109918435962556830365460929916445374404378620551881591393419521082736131924543725829429194934169279160598942354300161746284157155309962414038461807134583200799479330960807228127135739412133897756699777859034092148763766775564742232833255274188412229279296160125333084931245872194402830762194873592108653213603607232107672354913674428177608461627656804668341304913165482769597321192115539401974027663430690842073094876598270766295441968644194999127405476178712492872477815988129716298455694092230957587802228857987469287771969313349884088468834228419354856447922278147476661895776639114335509118847532702464743070042076103594131605437876589958950944630031497624036704368227751940671374894293283836614935291141439414728828140572113367327359116437007357203359476923880309788719994461034905154519634773576810683826213616499004920336558160190486244023213401573416751906540935491007073624987669923344091822903186868025374558969144785990309381223145147719807323556336028378157252139691445358832407894799783494735614243112252232145491500980031173802799767705582795494943359494491238617422891512833137095791681600049752592849362122991939794441271349437161759570748537348800663808319990463002576629520201954043467162849099841988350820524752474808192793354377067946277446005648636475202872858533587323302727939033371244652820836113290894160431337683100158556698406911123133639532203668215279507621590643540767285410435073192213894034236019905991573428069920038550551331850356259703067309144199477431831502632585521430757453398461149572974639961253167150874089208966554700910399641403164828419648611942031131146311330796343153721716742619232205455077706791074038546141899298683016229401974578583214967022295246630641290673576259706444891585612845514174317657712755068112708135517257500504428592014933524420503535485115304876689967878017960825339703759876708515770712517906123539274567908479504564560558798580830406626407556801019038361960734528436851581638149157855616269587407268144728638911891034926240275503049335567406330235794773916306635512258800870094661404211185981539012778801825062860441796691966918725410852902461750016869131944813043369538334729154818980870873887530534465022461298973436100790835402738642660785085508621494047427287915143198262360738467860304592304367368424520267183243183062259092458276124403052364628427155067239164383298810157204175607424776074330687348378197941675662756772968143366984025736318297592475480092166614170227493616082054604599352519467250206162082178978621609279640634254651177891195215110708858573772785726897676757622622354155443891250102324554262518873118610797751214908381656255439953518894635311593962586210957520318239034077404021980662526441965273823963247179562218707316146551542985568255225287072500279878580555230021945573261174625541616045374647803898093136273963545236944581393550454753138539461247612620275298461915278085689491308635981571692133852125200327615081208224707069159107254862103239482650535532541919600404895505291556573525555102347395593016712915636341656940028373220213265962725134512764079052794889423625110555839152515237853554262031294526979119400322225412624554497634926992752403586286548745190399875417297412684380492503755100947525479455359730887456653667560381502035745832094179644611404894193029995973035187513911226206117186344753863438037972273276888285247892393468781232281033893406250373649907231422543392925842159315126244581298833840912600363156707122608535249370795888447634460276411294390223543065128548950586174299237344281597508504542749734630650358582045001240154412469390812570369985662699862673811021042871361201766677684370772070072014940276135668618735932803905547494872415933992610656322196296340709020245501971857164317898163758379799630858684378679935982321144262989112738336764386783504974051072028808593239891682610406379990548598062742658321225780182661250794229752328181297647356301218721635476127125257999231919990267771916001162616813141606094096447689447217320235296602084355073182777946297406118503116553045418201644216302840668506748783972123980700223163039370902410022253950507218523297877282975492485082228870992871373827914889456964198656226598183482875100275983158006806486062683146949941560436142227605118500010141038394553534078621840079297304746481455816863561388682083196642970835781275317183770096515545500421925072077735528105834956923494096231837891345580785800246695440415421040472308583605361222402908029727079702695034782289110219288911156872879833568752219367834906674022193931495697767750596276586267708310166886058767559848144455199472041766430859451653162080681117458471755045395204297759450618226441609783224247157735271847757975191735495683431432042621397084470074370188823044555174706377318637634709076043291929370697344144595236629038966205853872399931499164059425376090537303303695139613107586189844708298745945829340863924651934143780391450447796675410072169435233869346487033956012728333049113689261872745451954781676213741321225927623081923577304471934699218728728403448665652601673229110860452138835859776016594330038527752950417799939586749316166919903593470150153427395741347526149179328324541723493970429391871041255969801179908554345201521028336540596229773602948436383259638318886561695443962830735138560132607382977711454617886304273564594845838447395216018578146186730304905099225131748073851846240738818792055046906915457437380149235035379053483461931715044816522808149590216009284200601370187298078492965687899964121421612785688202414298048008056933983758710446741858452002986564656129224245486115229648261984237723700428601149398070906172745982026875961614129792381824780794675928057086456651411366838937847402717466756251574249636005045243805655948922369283436891810381716381934917461557997058437634963254160611032620868237769032043536305623845810634871856435216158836095599280764535318142275127571767163616508553254143190597614539378254671479762854906988252225373703597739535077362157664096387345091211196836032070655106672386843847664296596968053830412875521100922601017393299453247889518128685980763026829848258034643190119585234354634180681325362293973831242468713256688204044082033327550779813168671212448931519548114416676284003233054996331891413789180752527530831410968167260426737304179394667015487380720882167322657911421065402927952427852619572802472913347968575357739686053369158196954728919387423218260088007762206133659880685353191910010859871249783857844877321454702000507332339819852464768546952297160741920647993700560561109070893305623436335088915205959067287763248531444315012248678279366963547942179610229585450554890970120799243123691219568225415337652954640259479198947421789394960491655863023350920312445300893931987046757060638531408593041851311401492202779440563760132425325706540018051094420960724547736596148546403295342831348897820244736300893383090191466090129237238958762606905233688758335529208032862402069967314291574502048462294118009080398533489945637947570258375307721469347369331690817711550893063323676269638645326956383864255040059939447145010742648379560325992971623478852849381088939209499352159068174694380562010291804999280408935156278720186547143723533617973452720803942694495848346030200909998988380340451104967759290337127321780161750606145335035796253117157799000624988051225058001179804666247002047862472500221099571107779826978135454079776424473182930920603698915424798111545697066086621946846133912930230587448174938560731460251300873321328870325966720473073177453038951451125766517567861884398869176757550602597482686005787638995825700588884119961337606050437240930767979779767981089572686337080660434883257109281234124995115756398393898208715304993052847084824700997027481356107194363409851488483142557973533401855752535963967088865237968568168605886360437029551249141942973465181700612894681569708274056395072760769843178330177146836427329176861294150643610510454870097171234512357256925837401118709184132220139621344615905584865528777264087221880471075058309178844695492522139821207356348137421185119715273998431649170469044724091443455855178056911578325647851642766865397435102114397008854778374771574903255154358162287087718128133328947909748733975201213187314636995723501769909399785361196151522533116123297485560686285212843321423857687183887050615390389772145569531779379796276868416005951764570274195863578412397615386151528371574960550152113382244045899993121402777575061854676311350879043599265999148787173813712739366112902776613690391128700507678919705053030926311190028089551955384077172213367451305928429131532064846670001129523028761609795358108876183714994055862684939780149770264522270410748091244375161961252830756881867346440316880950216262568698583248227089025256871214267288044815721633730205051942969382789911912484085660276611672658281259590170432390635880831516963811145371281997510488526332993918967615499273882667483273002873453868178594406396706605299604908326146834004119949492698963025036839862310823932625819967171286813423571115345910191684424454319422886106014103525775951932537940655891409015915627264128077337802534026626935527364103072617130960434877202292135382118701585699037941189845796645885928183338965957647328591165164306352565321854241665557376132215004804626595599394708067570955611888041654336206764248605183347303705254721044502810628875708859276763854083455061404104880956483460105738444666476137227610627743437273719770421374074064229450020594696479405028367119898065342484500918414774725798157740978348650666311719096863081166403122418697893598953732890830439848782696941374128426202040057396384723126386980456574111658572286879602915421497189612342903668245001914060742076775222170742479672636122757654489227410131729414698216137294440860578770787675486092344607202717596557068523058944176269309347286474925671016265437365377419854615508543659646730485187877425851119279393001710771654561725676499375237128107980203272672015061313036051498480260564982774685719290292391799306814656076426583975582156708293908959434455330474308672101284014583042264479206787029990930173090625629368955153980977590875000492074993137209599858526461285470137286635033911914733092579919241101647947605218275674158866123786205548906762851885013440659260016711483984421683779298353930943402551237975382737229413392000258493150860179684144449949780128751457332343053970154098611614686638046615929053952072178285988722992595947611228966574331412621146773289552791287314480103952897240483934127870357167248497502385397933351218100124433415433292127507543605718888464640465329794079244860870100113458120801970297998492698912762210565205757037593987185794983685059141343422104009399019891096183214864194435663077098780537990322663832066111547898379171565492270062370187318792905400103772434553496929117594788953557607564992157531114076310212792416193359875407081157101871044994794903520685589603306653716751761820032052621119749219393763208448907310832180420038289417095174022238026637976141522348864411171181725555905872772774742051069196307364686745155377480943982875663804977357025205771866434305604509723015349995423036969809355627985447298210761224027940915250391498286940519520660213598885885316817726110960860816942471353861208483602457540716905875269887490794164246472891777180554185894176819175959019899159542334598328576948226123185926639705173054700015390399750382890552840585791709598287894323224366920155075760649963792767643259446316820691159141102007317274838362198118581500803272622896495976046144077252154842969218390618403494069383656319942055844314375550103994076806228700355595952445247735744934143371356287102663524200844368985609262287190320830625927033128101137171314297118696133317342498440937104083909074884434126163368202585473653017747988815862566488835437063986092729841646463633985555146464197911089554413519432422179838050022702982881305499305798840449839031910507250255930832758719891307975565785864936909293013524485874695548143493978361638071427741431052681711916839887892670623240571263442210302911913001724666366950422289329978516926747118554671246139448304005503360261173633009762599172132191018696989855161815612914128469166806856902193000016122795367512236148968037236009471155878979941323993415248604451376051412006032314062850310058301901036477506625393251413922010602846337800461337987379960032040274744430843649523645527973461824822628507671047230934094845281660247495409553277980405431415081516822713838487246895075424980151903127964145575859435210687507719466489666565680611077012130040455883610271584602166124613682999969198963627794455938333076444232839210274092132614092156089270716202912421902224893349877619500266682628330352922244801489148122395947021707586876508574735845761056851188839097159245957712976336180087436604308791649057492887028980063765116900730575168058893893191376439630420219097149908766079867520400840020164495552337195772530158969738737243696016067403855344239668661991287487223550016996367423208440403400151748356072919847471382591076621939838093950321191449786822335434551913525615423349018133342823998137732797062526007758954212857682836551580918012046729782674452132590049489479923231575085304719624424763993748696621070734735577614798491705606144779351278314189657528174993728929465868916405280210730571616069764664827096486995909715623814483059453599674465166616433555799938275137754573770871615893420812276498046309688286318057105788288277534055676106235228206915107992085662555816247780012229969337762336186047410862254105226713357184112072235119442393245236320019308160644491957812014022152468743348757526293385773647402591301253441720817711165335743090411848047041232093965203397587094308989645114625651359676110907786153893292491555829453338325975325747487714834989791831360502133418687818362041506602280299367570081413691374550867151498674168761406355929219041334084409373642711638299022849902432207654172238696939428090813562928833416458164462085481012462015241255729435050640298453306762020809119474191416237423491995277527641458983830018058545266657060938270562605787504226128801931191365658529816057251424162288079875749128481798302885119745180933338063887302286608963767155295432457633293088761683920795848630676679902320050168675688817246451513695158288923235128540437412999822507910062198978906703946927498920173199879280455612865398073425218589104036511838704825026717930394915074187119786818268374351082034124945014016259930565037192851892729559545821549404711023231957854657585767788356968918852647631922591680187086840788437066611711288909181461743018954956983490092105447129576257935398773333443794876141247755543551799660506157730928273159841382097735977030934207299978183146690146383421568029056137853505443556907742479983851897358777262627127035073179712214372154987762279575064181262940975586875705206556722016342403610093705998462642716357009082567736245772814316874368269070228560976953208588914508291542337025958497949232665966885037998243905999739663576709881477919983408461235687724881144000607109355779836731051206425210752246716487519126591281283769334135516156442354697640357153852405404447490377589735156625413276383809126417453885697167944262159238200927169625556895316670908645003423484696832921326860809494778614111923052095217621364193601521771299502802071675502624043276839922615469610222412140101671578418409852807469010793812836932589749945463945887635122405630686317018123455993562065961610920058356511125114854574219532832337308624769819720091510201229022784807457831470020174894827905406169139486158624649404715068240588254778418707417077480104136426673852409405318796881343168647140447323678112484961199734393918776402514740916488934361488977254722717660296631388923591032084240380043048490404436062900967553054018849858939103478651207519772749778710342951330410016366341033046118150135180488152078358002601004203756989588808411487274492565021090333916090492432705368695695450653453149306462096916439732417403769674394988732262033182205470602284213891312654458758938740762652002838368999644085847649148649252314529373123573187433601754908809000149949593297954288781736146432376861537356707303792743455951077853979944770878240159014964614691533589390793496135579151679466974815948629870495353713935937483778132005969191028139350987221803683893285510486764088649742886722083713558515037345387901089741153458215738738803665814290678780679311118232408615290727349616220667338722751985176527014248547709699324791878856835730975337554559157361560999543107408743105270778101019091208741892343720312199017339340721353846125607319261808974157690914315072893067710678165456743479737749935105792609792513958005701723112729217938439220771155417654890534256011880343693496846872648124675790880489187051133226881375770098352332473948670012717840973551235968303017637619990783137126106405776353786542020987714787611210271365363618876539819405965648616830396375018919736334670635501907196654964427337380997447302450553292219508114946333473047389466293637442487814492730825407708161102879789968231493261133922905886541349485036848107736690549343092345101758306660249497015664455048041649875065692222968640310680681267672679069752764086030878562074599196712179646707061644990924941171498294422846926857858904173946799304331358782671057769102113793942991205220225867193194961345579455597127612235457087250400567628651641752747238492931596891560131337564915593568110321529301636959021587969655257733650158227891933579371457572406853119294897350274383973622301578108958802384184053652957741169386546275040433335301052499705358988470765931604287157409438459252235238722093984310557389434993754203079220552672104280298444609156165236951753691266125058687343789929654014166313342088463843364807634892392620356022910893138430388967894068920857111884659587518239797421488421673153566802001110068421682287137405605755097345867127281056719552189269003242202413985335558284918056320569070640538915118564535964426918981570083508703349417842764486067271908048024310734348111087726739426300076247923321728344218446553612058168022386775885431280235292615263510553225351132435399270604956162052972388712947050331820454076151500290030674611871004897046554469365765111980462436304956551844073553562783835453542250592997923723696413879456909652078142474213561783652085707627406139653491822298580649230424139660900374568758554608677341514037418656045256951363579164593538540147443361795253998118980614844959192890539550434616644111721280129133756402699864219892019958111782109708575055761162256254991445894212920406344219649980884870520199610722577874565617073585017488001142284270139048341433615279192177899059400366901644170817029035285566485428017489971853732399294212859457874242358793495444219787719173042800637363815788339477035081084156907341799596064916512308553613182152439282798045325790400761352126399341295309864733387384608250530749747480586041262102097484640858776833303458692023006406988866739729217791107515884628005384694314068139123364666211088986829393791202171321381883804888704618817858373242600836393874710799232269801485833336256703848013787857746050181834328937282275939611872362921023406339078127371414321069637898298385241634250378697468690622991987176149683035969863426786434160809163067633075794044166682915268696987451348770507918196454549309747332492942671648919616119144243465482605581346806745642821356758623358685956531291350102976323042410684741906685692505678007797390841559634696106597541677339682394008198757401092901483601891926509915462492486265858036359461087792608883324627295763980681262136237337000186469828030176653957583262243795774340297383431082683725203846241824062676695729052389312539813299501050068774198805517975973783586528874619226198004737917260121935016205202964329915574882576742994015797773425388095782671227692612573977691406948464052380637477891018252414952085298730918446311097504346083842812605594530187546591704504380359519487098698540558596115793573467176274351681033340570302153578149758496503428952407777840245704553287385061935895482147136284292245512677364266755846390520256915354299728387995983008872462258995197089975717098723388318547015276787832452624060372525329057779437344229319133320407661694102341681317653037764222967614486024001075779139803035818576177605051018025908700563255884442688006852092120595924994639298348127828938007600899187063156853926962694447322567559981583420094079160154168871656693323852531557216415951553218710463575248209953743840650492062972041681259477158793266917220514106192494516850820786357969642520295166870823074307134945403679208611589339486930904674244598043687788684398634108953585279059620715912438552013842900088914589550407708084514685461054952484239742282869273919607630056888306491210922460479429011163392848301124895771428288736316619426388011774366134019885557870189196705464795925176895029499180075902215468828531607032603534069224159292991006413893465352852228866917599066335833971249232553634845335683258735674581230856662226626125037225090436635853810028783161331851623651825307154801563735389996252096779244306704264657202391581061850821774248024011075785268525379310672950220700790368542894220710171569094721533658458378319259604067553001318012707246830170418870734070238132231179331570484711084761053793437295268895391349217762851756491277692392175064626965323601638219879753501824531285638797188348637085732942505887285246497733673556929566066068965050622280019669766521437075699084107842765198415665814749128842303394133384163302016129454868054498884666391022439381061431627148147407167315154499577057729738789588164906818884013542465782029187220859044402877945011256936521317194882776506483739386931887486904332434494304769006028596707797666625673941274451052294985804058275264872485858373933704735791641272902219406922309988376232078711649642636930736004154873047751221409671630562930977127008842003766086505325465277194872139324347646992133059241025249939330507886178925356475472768593618706942985104097643689477649359668347154614185872532751317230342631773251279865030377183429813815222923475179070104964076462385216790640189091301806323966270998573778391748311576541367109377326204843130297879963453564968343355363713458236566880649448882957431747063782432237257475910942682898901551614429578264360708524580370496894008955619434462828023431415055701106336874552485055291469409682440657280527143610571631616578971319394784052685585679486868547391031998090517351771364885074972090411982838516924572243900489031268543150639606588349193848712107748360529151631497193001399733819119138727250567322160382404812792020696472372051019716081108137073869331382941417303742360475571376634541930840186138037932114046911278223513838006302907762848805332312790709701427118386364667706909027163726354589817740487225151534554795589386153340402035930121143652996917391089807175635192091573326545425054744776923436728523935592172970204521843067307090693047311329845478219054175670560920411355739154965352543031826181840594226213604975894597967954918080586169682624034645303146100875270998462744137583636539550495222613270304272008699158786153398287037260621816200642517144537527469789856752404326206512248455747169581130515675050738604479159325358954387040946818695878342110687909145724034502278541151796479850730488807629216848423122369792302750719648750985874671540398867509320374706654791489856247052275500622745941089804285779351745102530837237224287557927126159678278527866378599370337793308411229067270456005099271082282781721324153841792674962647420418190861984586399604227062573522842780216177378362375794554803012753949355303245340586882665091914428865479334441320785305148176416766387853627283100352186349457041280329883794430479116521788571887963880347469811432363430484316966196704110329647435758221311211541798253247822509480488986324332430612707368845414939147264274692493609533308616481428652307221238846580877714796772823189295025640867035119780355462384935440636911824719310294498114389989321352552240250996015920549486251993834169422226492866943792588049680554272071564988282513313856960575224105172334397146154503729672526374916385436079142298621670641550283769001950856103550054080496763705172257598438656989501819192507023812860888829865723494153135996086520110948346902320293331775161994818062107463940097314505845415276790831490059420380913372627337478006736061232064675585341710577136800710197718235338003206569684890266426258734800500235790688548354811786045134171783392987582567226726280165172715650604114168392243366157201828754863612586952933220793416180453379273759651417859323358817649342313542610103747931338938903106970878932492154426488338222560635884322794753100141606517346360598084985268757715008069831451797560286872760033102239237395274874679765374603662441581620905252836291625786267480163441113739505730631282287188947729560621097591313065720183018431723644279504104803597679353722230532682689381496845776239562571122106988901046115247733041924135082068604748119469284059063167569093969506194106296565147589485255453616554347561975145589935081985454220738452212818771535312334661902155083030973467602843392695424666608870654524505907153456526818097220044336321294387746773632315692832707699107051974639915876783089894902893029755400337371746810846117805135754779140682189598719684470363507887286862262305546500705010631659565519304995603458358234068444086711704058907095210042003280497622146417240969349495492587530511013098742145485173179652786563416664959390690551528704080366698546110408969528940040963667059676127287793449674200818956973530621192151576865369627210083065192713168111071055164704520534916872714728237756159335035318066073486906204658550796157646222801917555635113958897508969026712621472274239500958758420923215482317731271484035521712319895042497554884190404887163495449618474789445620250698962047084533629599138469951560570082197021032323073841844355455841476342596277800643418042436919407217345731768933055757583240322157525801466282208270940318410929959240293978439876318773058014408897520910461359580200496553733923297991885480724324096638639478691060842082524583054623277874356842693703932278871215937645023960777396945134771807682125052092920607836727778867945936034038956197345027570383077550183250956033993657015050910700898761666589425030851757633491435835841360055731100063631980413488810455950864428484643648855576810817128400854675205282048952212762546811491544200388865639532935182321756990972965772750357584928856574360931536280426199988244255667550800902785778573120537055864910818056617322358256944336144426248089818561413401420821201310140226169538253968380700234560521063901018191128409895448640089327809152399157741063645996270743451170045015373388995693593391286651279643889675322422648157278802473628942762201115849039340996023438172117998643879601085386244840372944031451507763830266530914085517920735548868049602811451481554926321366184452216179415965733056269579830622609670829310376456756945041299104906480417682658510153932337479778671899704280467809616248820117460320057217807030205997193030182149802818301311105954992139021225402389652500344430132994775085211565871300001245146912558346017053818186055553197742639746377153015540079829936199669796184765014460303422006574341932692056501244800919484534313533310367988797190505963181810115634846019062908415295218137644216141421391286105323006707525540175538565096309782319676404145693045156706626420027432633055143093910694417534662748809032506035161312332572499830424536810871480468055375538292343505136812964722255382729883440856488735004867925897845993630516575439621592761718680294565590778222651758660302461253091850100438932150084710575256064745642722711001930241706895795234264647689614573895140014505620829464903540772041440382863998307256910395491919482966911698926465188036726046536900570879115265804312784844993649133552078710862104170158561006714670380009083379803721531186387022702339846218717094609038568069130765558420975621908528009812470241242963569114411386731602982900819124343749404995483258559919907201041684103419902371659298045575649734839718724770646245723592931135085583150652831033149633231284059913245000831015111031263666610973734485971661491568619594773465176993790290486282707723579193213653761906221923596872077384493053858592372778256311231830778066409005849504691565017241550156444164367567058119736048142301769956079390074776767742034046629655812617757817320608116995484799757048453225158953724713531176047866313565087977171969959830846480025443168641228419280338040991754581425117768623631313986871219644891618538951720980851186183034718991341419822026309301051289121417669915474070214459708261628698436391614799224290871893881389056960935853461513697784501914551083239206928605841358255445810089171026379602389663482942109640383529015443534197807555582413394548052252792078726441317347689556063989497318603828457025514191429858019179022196170884664310069025175746292947560116617875158030204067173716467216467218487301108477661919726424483824606105516852642591034898317832714196966574646058047370077517997551615177469445597174237378444913544461451408647858178570138942416691971331280775473670922901387230758928397499176676802635847669282939755006387654300415246981160070508575982980428036364057935321144563721436091037438372038239116424500974990115456583142530005761639783697611133663494841240501366468026105515120358464824834360143941968810354695479088360715300368483563869629599241092553214116046793315521233388714401222504869287289141804688110949114809799188721627225736495329158361417530119597254305370022713466709568950658322739378630834560690799851907760234455363765752752861231489661204922891192818036307462212752341795726655336372833974877269169298564708565923804591402965326915678197372282073023983831883635265273868221242930530551340814311800503765130187340371497283803705778012555724626451573943246705835369280908456402991221272760145522758547594137591996047084063838688222740283046060277989491271845416278867188196041860318263282821103775764707016546571024591805066776031000834427689456106433042878293090046966560934125786224755685204898733310665360187599699611474092240532442504543071325092808621977718988271867158770326791166183900409946223161478309775326307017589486867380379614578756883459636498122732280592928372226358591727017421985151638110764901221482046829899452950183637583168830848391067214655941750247999334932608921433143435068632216782777220259611721610049553343681609275453341869892431081991244278331452921471209398509351596996603180650898326008427801491516021481994672749613336799083807488326640397430500410769081127623947612047413931594533275623565574262847561817385774261411005476026372525889027244505752940405509080649603652399063598839939433274517834344590499892829249352733544124425225163914851687433720683172989122701296296790570947512955151956870569024582485640712920250519744706348585621471781388100665677947490170856892566213593280260430407774795595303461297160861256201488102263377438106855598225542404791187225788354762134672646937912174967724322837206880087900600825419185475682804179360445627676071983102735100511965668394247320912603420474617780121431361935640342589847148769898205498243341282499360187445865979013282886624503203877828253047977992999761026990100441044218355556914240679431872293411551650198054884560309961639325553028133749270017816138273355175403875979321178079863993885542536314448678027797071991491897097654059114193165985747923342689545086319509360438708658612895530783506468818771644107479841534876528784903142971129254862746727812270261981796811974817666238289944277696121495008648549401887833054148033106278374568598282448432416280590735104311718049766322008965079615517826456326336690031392907340224179845982606349984407401933041317404947483052005957729452167130214554862651777668749733859891338780021664270597494975765615415834480101241094985968202745047672080819331057317435191636525867548283434237041414868332473343376805459334849750222676875371322418054523400024289695705391166314894744297430060935971650487324596254072364291781498792317351111320551285389223334071390920993712894695288439670957344930020536625207409664950551537260282419611121912132135299806330035790845904144252542438958559239225902931458211677825588327425688602925376271697824517055472189480292389291795935811226574548797541437153982481989064512329571657980197809556142052564397862884893939439270363008081927666574702005277064105956898484483189530366276727188043652360706279099338891315482717721701204828793690740110005515577456785236482221244731218505518766366285979508021049751151797436728420989446307094071521411073239868340656261732515176978123768772230382715906181474523855459836929769048953559661300107791386692748058087202546220519021251912422930391219173853994511918010265052265888833430556481150641343894228555013068544682704338908283360501569324960646963299328183211381338527604313955784270830387829993530646324868897390061888182180141714131464599629101694587234672750524780843140046793522378237775863126816364725547801368653231737774611581822774342552659396044511932106410249572706633197146678003347422807798345989437332906218137272372920003857415339915644224356220587674523777302175609687747972664735094479224881518522169595253810770169700237173428305016659201699413936180285642196850878029197918873979784186870903744136512226846238586643429896221333431824373586289628316872945340512955257610727339579214771315597101560335791457371261832456820575099935793085332962213050854468062652761349010980653972683134327760754455898422880731837509958693835487612091997404913705323485663850268426173127229367073004404170345224900855593608592308277200817984965872065628983204038597879803061594800147630834559316411648924329038881018802020572010973224391026320013749056092714335377465357702140015564246971900792627357920317976785650477293170727087254906531916769596263790352737619358991858541102554816026496692172830125864263846275772396822210789233547962892869563498275383635195094162328169565455916346071362690677482854778614079722591346679329052519002254540482534740850741378984626337077988157824418157781022027144527166576133420018829332527743613869477939964361728091568916218796258763930817762048094917084582459987689541335842414825185182644829582707435129299157898636414779185369495027954778720804400432510726168866246911881918553073673686374043963605755755767429373086909974648908628770846764065687482033677564081508348690702639292705471339018183143656402648946759637993474674362587672723804214111544673752507136559208222194860762213521541413700794477878146426623863365582011946365717917249103180831560247764404092210607265669166446713029834027340990599289151478608269515179475624456930331668127486203405962883524483667371555176322481987954905818891020003049520158225375642859452371309291198240962525065530523340574523320008810929185628890783556467299851153556623635151981529958488201892238083770655753561040965349784989031223829291777662470585529999670467510702734439711837873761573647558191153717610632533661367400583936783547297034126121853500364092248388958699656519140833841338460235295154039715675400381079850956482017229141424525369422919173126539762654395114330801681120759199622248211271971930756182200631795587443983558999981783647138652803332891089708016004844799152361421746501813277108703167922100098889062771327820111396799225650948915693971531364696007567517559097879362016491152206564230844640278023033278028606313270697239470600088785945818779095140156656120691105534288458982304550943800072510353600400059765532918398437860939789675472277909918969417802848050786945479824143758693223336916936019275785507234071164732703419286389178786200718938909308902835956954880591506314307939734433884916461954920734352726368886655020599665660566295068573392140101015528525760734414580179043648175882335480209350740622674946056577955922130862546858170004654211042781671480767537425230892978860883546808340943028172378250335019437824803179829447634490457613804510060785234323852016172774281532667840819827443271372817805616029222411615930702912306795997399169469768330602631191593435405540213278734881144545020377753909376283646717165958122585840412118842018187998432598679414477185732369858280105491949895560618002773719291995512162103276194535728106050842956207653830820711930156214993766400555482582813372417412672303727822078140413458791400022286887834627855501977368889093440153737518811271854312303414904060760027353503493167640229221114419328214588752351776075213473683279254426025454635024495618019729808953969907623613247497940567358107586920260938119811834427807095416701917489468348744999939018509420386331567533389523928275294342068149942597973988038038329298689854902384479638268854843897785687414703826820614501046726670645310134529987143761830465374374769327986524709625225151153059585753085942731049848874942735813122831955621366439974875104464109131848136695301153075054120421509561319120684157305447160227240456252629028457720342840397110034319491086430982825415585666011375295397114115633119426343564341740387656001867996167284746548557417602357763295147096151109679846444364418241134734940931961250123336752939975498391202891570279518780810818302314294332273985848006891386416266531604992942322002673963042382725672163494329098631091314663820246668375594654794178708167575462621391470859918264712848826051317561185001715428203714106583365590169395693973171605113702629297873802590501762540527913896527147971575421911563267789717482887931166465867256959588531140325686833647359757413262281108857953955060192943242422633746477888191841475602075005245515416642573179424609311674363035935188094477966683981091714178198935653224270176062269415247959585903791135699815546839754952338254446232254839014462253622007399033113983868184892955123506984395296994216515522644908686471189822054540794095105973896965826173794741042082017885870803659059688767755829672567868903384974487820998564023184126789888554665645628341725574474071205239442402326162452333630501257145228073496457819905726069806793662428151317623114999905429941578804010732001412490543385317952686614092269095900400669488239629954798238234696903562967823615438095448762201387190103304901700166964234057594759347468643347928707920951550139003989622205026262432749418488279977392254467118086693769401210225654772155929181139172501873098422807035770804305070348997423140115122058219729343916502416970512934054967292796240717695648630089424654428205409566551277327949046638783975600742597391717202008682790463501199311486331399005269392635625533079088229710589195498975114924205649072242723930554980853875024252310488288274961128666017115444562265259960475543179670654458439931000195600287745544109358045173779870830342666947294465255178403143960126079606755183501886615595450241889142307433408028103682197344475482307651879756225301752053443894811981558226096416952374899491267423593618282309741810447722730190841679369170052368611687556094920655406072043256954245112804570945945538883117772004328078352730500666205443750714032766568520391260621383072737311721100744342422111779270975983990374286984236000733220551160109123613516986523064854643637539221517106698847182870478987676899998198633073977278277552426348554973226921284065936746503393328233508979922083544912550348644719733705749828174848906356325551855522783040388918865751705391608677523986142322909634326928904184389452678364513045936348763974790439809155902997975338421707690207992059231840583083305899253065890978676539554164030927017589623502816359280292420252089047073601691388605423016131410376711931745792993103769770935675209972932057273474135161953180818178752630839301797902443420227486300405566460148229626718049021325073818600952608688146764555000423263203431476186218984105648537344540094942042164288571187822703736132958444412047492690364943802734499595982550959555653552713040971772989896155865773339137848183860752595634707700325469956429590474980222946639501217779780007808897191722152041273083976854186436782142019503204145829072504957537280757720937743040646968048127662537142912729905801919360223923254918180471763496965587161549632756300634507100187300881597273557183869402524560215308783569869273205057475256718613276055712545307757083616642094719286329931005765510306503525166647156349814236914379737684682662833650529172756071216132782277917743341908777810413011453215461625489699787373746474184245551575153800686001260478633077049943923446360609070917389903793308512590522804397682927411866685524976295407740025180592408314842025764828452837960496928779102547665927919247394397493446038962563726581617781920051886921528638307996144177878011447650955606332820640745388790093391608558415032763816459501593806972618675254985557384318345041758716622580251958132232964389966052993210267674678221261499912547744013197736483123999409988941326197425184963109069920526755733063914503770674635836507381814518218059148842440502453044090708424380141960528000933957905506966534764713109700753554470928491969439603262952869436966830953790007886414623599931279647407567026868888241701178933700444879734123479679463840518361788646421277811224151609324304519404818827641036916940195984978698827420185810256258868154086564269397860321865463887493235940825917532493373822593291544550071115938333754004921456900976542072591264990371174143378366707659542331434856722600863855167304409426339921320525282045777459270895046554585748167744340025796196883461137655193190786518580135644922113795792562433130783347451253216412951101564452089500607131772288830199721291071976348504887757598572721642100036218420526237972266159463357372111933352331440006725073913597535192527794816155416411528436879276626838205981644128710579234511772244031045015160793923535776576641722956850142908565319994696093157609209697170306511046440739556620083549053917928994369884105665061192165320280041050582784107178824178635984997173804984613431248710293208009161529798347574162024989838368383814603722563434489037021168083764511970556547363578912659193930447768986833290116035753996315597231126440421025907720029516070322278307568632266394577315614422933805326738104073247898825170675629977163633976821831796278101945312867258375662265795175338200290986699144028521452774763475513933506112293319838411213503662180898217252989031534089347675126813213676570396873026706273617402163450729324202837997223216481843341244944883420907086801092264068410545557164460316789193436198207997272939106132349213435453879243498693964168354584328141446293147307698371707477406175259379922459062595092384497624097491204153377568845619626039151740284910734117751861758052666249749919883220343196114318642318734854933636910315367621706216809551177018138877559070771218645582860514212650560521397168282019505421105582275333737384244284898844436147245222092962205360308602245581743010072666534768763615244399703345755967953761328670878421964073387154189551770883831940762227578226028577739447637746610768852368636380306404207860059898235112687592023679039113373127879126934627975516033506139399832985046865303200549483861349186057397796795495461245233997807535803010079896225741088067872777006358859536449618868431853734182541041705799468328876396013899754339932725990725985834774093146772047426996574379925146887475573655091553008662237651806600549366926263015621589486387158919462348995970414207050657740431945430097647507828054978254869829510406767712798775146999246276510823147311675547035013280867289793329696309672980446482282739266850469043928340464739496408579731374780521270016217596318647273301115672029408737022638390728085174230738147166786881194716540990039607651990290239380372461874527137625102169941180727629380252530490753047539529794999545094201586134575291214669425490382565811884392790465066953295116806221421370941693238938626951188689943420459423000311739505429764859989458200705854920804939589802119865710811849024676809439014739032444269690061750721709236454353043554769993639376527477496519531260356673015485087273422053971164622590068506072795621055022403505743750875142650124356605736462710714869818889162835781192742241981710497320080932669265615289707599697687687555241450219805953850970768121017997698363597168687545870220410374601251128322943864995710847455295645841570513087992073736679216293995407747515724647399218615906343283582770219656767429860930947262932733123016738824512472217357024839220435576297105584265172072181075541855191611892588488695656547161629227692471045536251438809194335002880923221642931754488962123575221253418903753447348955819190625641021715739082717815323429053921016072651789166398299369751009501776230060334637876657794573423676124854469901740472258694798828670759606397177078390684043293983748553423854160591244189374967224255617237934051993072935827318176705079965440023794781117215021621719381443670711980762294056749005189511612998307889003517247719710342622978517002026393003341285611446521861798075776170029395816444710318037190952389146657346804071130267406240724209034261911448649751274423045181184288756867803839517469709271480220993079638110177733261651931938878726331330865385761969100655310257213702020513393086786313332895208054549534226311245710574328947630235472143894167500086983427869272638450748710396440386378798229310575480129998702159082883536513225400358188288712053760119848000958599422486518366237716820220675148265281345924638285102065820411345921071321044478787239769826412916165889567716244688518323293307561626476877522088760374903264233575662851226260364922741750559580121958058449279763075654534480080814628370178883956765396722796054314813741652732098353150824767776525853512824841461462285301544199925723557536871542908827604668140464615527353049221821367281214152489127366057373999362369848163697010420823742802413407745428325893899973744364765447004084209910965869024943731791206431182380131752934619325566529708754182002056453416719301902022651327086779108584528786342555186066535648838068977380668465373927422944169829222489086161085844480705874473988868543185962328710522743213376261169120434919612930866420689465284748484307394269559187625913840842693932683512078652466058132748601182042808898594023577702698056480395909814768312806531072294844802038736906847832774459893913548733314348890826411437340345960605824535484644504408131266872701544881902123744603251370161604818252525502795971270283533207267996240220512689198960677687031730574209019382215583631289280258480680703855784186446822917310962534560652821096904410364710790721533387188689092774934307218168199586390469989727481012188766473253713838980975878039957251523578367763334882131696855377431575076727476217398131689831088514363541984485592741588065597766086462907794191041057644928787810237108663598403206605315258207930110610579814839673869103396269669323906339754594409168791793339181983370375434502624274357979156012317649335040122522403117165667748164717892956666251542795830794393451510491113819588618790397174352757184174749196568973808995889049493598629972290060386257915450982818284597286272928964754778522919134932945336156613903687780436014716157344364522166410616907370221701666271969133208067777366341290164050629668982272011022780022722730846924261575672062364969805798015556930262594282336648501783197023227563784156486487109313978237791425614346946841189602051455454706689345804280591164545697294374063890381471448818331487780085103896960792124476788841520314197365361536865968964924524778902328797250626710920230949621216686206990876029483427003051662016469626532442470824767716394905387352897874581844935799255208273107825544221970809585603901515943663830152701144881109996928354208159340406388188130096769265703852948485016859923407262639153302922027693278766304183007704954342551579296424111094800752415804655582962485751288282473934921981167640189335030126208464437518412352750044694010715936776186128576865586984172447845971146255313188055950502723595124877201212917372306006913409232267905025145940890110844604879568398123909201476553715691354947536196271912658153383237756702267663775675506028691547911783125655364273503630291196671242900804905953078499389138635639326071331442342346946429557820154709177993723317616051957299227607508531850825142831862454057968777929576939404955480740729680966192902152497273419903216795755266018174569946151757770029498080025521299911747414617075657484963868508656978059067641308806230888142825842363797333772854911939716222014169056697951997556500719777885790924229174050422742964569640167145187598608906231611677323280552016687629884358590633532745686224615614060912530637585681591737230523924275033421502735622004016375572141942791238111412267696125612882119188867595558012714842259929370065662800885330714893134257856179821453329901215993137360734056564803009569698837744943336691187798467896541717554711439478712938857210549860068926251084878825401413287875124946296294870848249013955289093628233192266399469042505913425411150948074917530275964518083030657731837397105151478512485569493129898645510727921617146815194586606953834966532811549703922416037882870952649774214976680929841318859673676284094128608461213116412745679398873397987778191149867518213516806782301785429974530595105277014909578742485502625302339235309422501503406930918432858398376352213176811217513383023912231447689657308379109691827977524307003090591064453487729409682288420360917701194786661292128856543324648252268735646535433933425622657772773214170934148455189826033652976649268882406075083902643224557112699132467008685097676109262014640417854897508807118543932206666081987682780394632891503843318687885644754601466438961920348331184059046312761073197398045997680331584242492868988145825397833273735265451770602743550848815243333336466605066746405831899426809920532668997005619556257565221517042931786731254855644628555942328389528531510042850263999264274832006020035399454778472759498780770068379937744970432888022393719615028541453152894627550130343403823620883817892856466298783115821018503031256691617466443802524073801190815549792034945245783818552499313784509344112655586535953300849766879904534100604597464224459449036991689450570248168891523028115368223841954091817398241186475617129031449253023929608056281351913943834434055186233085274453325033892028681074865372609141897569027537263182085763829941738853338613834363327254711667774674456083164967458489247456376232035142501576723245931869067493961534509557863282362019482514075656014669120520157346894936842539914928083702673658728695114145796729395758077806543168483885354234105551153845826393684162115204442889898887392981460001633342825722176728711067185448801892997630432296699841526044114219545655227663377210575541958335494195230613791096008207546410167641388183520844301044406919941030976998819747513804395231181260305423454608108990741178687554903627124404916321526379872044128656039323330095343189216325753486209739133386025600568665586097999117103841593004364890063343124093165291466000097238103363718216119674815745315148089278985437977708163775484030641540873915244316755796424339328491215908653229438912319035232122115383251806684869506468391036763860577566606994136296040311846518177523825681260756439601103182301472242002507280517970122974750147368553013091380090199073815104983941243741336487262314899611427444754381482281363159317289184826922638870842703995904005718842384148288468453556261207532559748385924975972002387478288526789105454194650648472879392828195932656864474556461471868956298651227629166593975023827113947934842457131838840745588427771018393338739057374844346943314161887053018688882894386152213306825168951371438330695841188042116523861961777303307893592062232323464552759570616314694966576142864281984256709071266223338907229714071598590072026877507779442590479475622106268720707715725577723056642994176907092698613144873228386456437274387173122008207664332697298793041240942046144170713419145836943667025519804112090934327501581788048799250514003472437275009556714131286075809368310049415239234581518146972683883161626562337930675993504834155280719967638720609642745356513295877875058963944303814175396022259028003170125566386561308506604626496269776540637839951461986615725310398001330871765945214880988793114095572226928404673007643236834422549545514425840617195863980104874131047145822021222365486803553571927268576656387787430496170922458607632886583640374263671926929902651918629403108477262830952866304600938055396691457102931007755045343791039930257107195427662845197819139571708792741062736182133840966656340431432593278291275796608404876295837264204620521433084612197538355877665619310264763545910259747968036784562838801267621678485779712519899655022988339043985269985775233592128880626597602837125696104735955562594092607266502435417143628604822009771331447737901787098713321019874729959626912818283000684395858404167101812971398493848438674549027819605037918146831881409994971402052956301918093865820068544770592142764786038791290777146401812745304168629319887814681132304374819729225980855896294416201524463819717651773734988517286112880015542467692300194823746266399044415253495403097419473038552860094652340414295377201687756350894072852773178555327087900823202439681100915912199693619522915027971234895138336497554603361875601010293950610203804010964121325872202861198203690201186333937257564842015132083076058359347483585818108089344166943619663236461508835338690781592988438590745642523587844054265084130416486469044948606516501550951611013964953842047916506684669292124200746307008739377503137348162404608384153112488101960139792025193675937128589493452881453436230632008906776128150281010926042126306585959638386250073378924340904700426489727036266438258650224104244762120030120442006951032987816103406041583649630137992289082696609987720368188155424585027290266765020322511451429044076136045914043969896195191511333966680383740076143916150339483992676615975661108503631753920970730040098735593642930304564604040682653572639820534855406367901039249411743961826825525209246106199543464243909358338979318753664066458959942511015416171832003716842082568316494080014815582957379650403332587895778587381124774595657295680097781574263934430188059962171920199156100774585738930948651021941730678937115489849451721809886008922571282426927001933284725970836607404194432702436064131493636614946042304359580099118131981155631125090466973947908060929862177189571139082645956375206054298602039997251226571829781893325608188368908017007972648773636716952343745765129276938023013395925725081974208006167734854012060470035939118603837066402729503663844557269829127318284606764395885636992796753292868453161507940515226993525798629826648257076120323665020577222192919497482524952767239939018041544988710884356692920430678215104454261258032249660819910787802909871990906113235839424886460476962138128251441005436599146830210816298172975117283348851616412416291179354958172252960482501945049090295480638621880176395049888674683652554295581178199206129318122303531968980623781957643106894783267104282961125563857306662246300362796503413847166588488396444440625892191432746937381685353110683628577936121806365057440116068547258162980197226754467311472835710767839958345628596086088597192777413004806132509087678375765678946540123144240219963279391683350337395715142969839233116452707115039178427740279717494876682880020778030874263504298935480874737837213654001909307339320700863157309842686860228356457818724423590830010580792111943766292337618244099439011338366533094237494492569906342109058265024164097908087738562329221571984847559402401650927137209872036752978808803569481782818611501019214608771992738787858188058981236814002363397281576980361629608324301300637492127625986599944830902859639377376328808925521034401405956294463444083799912743635687853936787851353474474746622158038962195788126299694155924249778162003269870358129815565667895776182456624332113695317357036033655293804470025430627880790159071577642814109954914112149037053713073622215091098048162763877772794512880055795183132838808867879727122874998801132813633234562813356985473903063127378068523828972125819703890209545937005771002358491225763420734377569716467088312341039304110390511440029740201327862198144683263832124622572586603227469326396633052228933258229889759512568646343917672917157703267153998765008157839118426534927435282518255918895220661429237224162635788626775696831060782521025621483383568847919154008793135355610101464445660947777348330586135284819124157615876181187400632484982109308214109983897642764776878442728896222228190579718340075371360314938688273007407635021159469783375883961272926712265494568766403819223929534936317022066041877408126905842849226873785326853922475269748790680801717516111497674517336675572217668964479002117913739114617826730637276603609682757401642960329019511654875936683628266928081271320214134861627288241792878087240346459233081407514036781445186122047625004760422347231235444349042344814565808323419912381099047269267009431986899703264562272604879038265632437679087657982122192976811423549080897677299347066961441316335492146390401640636908757296431380328780371648404922440675859457407356348108843472148730700014406174564443260969408858915996689798942988006884575156870899503024487520082888634307708304866663662099498265554910765599777734446473073600184620544127388431072966266206692196384583726720431820081956440999159637942953523537359069752927772651526615726459888330847306991768069881153460543541801835329240091902124807084698610567336760288084460706176852332515659169832011166853261424430631710967242989425739034450444683169209093504574190754280295667020613483154116651052236108448719473423608145541178221814428371813834232261625752337674547984233013310015803259434037511606634395750923891237165214051205810949003211199796551591328683571671109050926748481529387111021551281482640014037864308623186769941031115249957760629808737911931513344848375447017453462767366351576638406605881587066275697864236429843648464031021369933469339919276937617555861649345476831324369782398343469364637749189927504546258481327084549485757563836088759974783718007051440108338924930988105060482564693702121336735244303703300897342389747055423778951182074139667239799745648905552175891442475876768797418346019542386172306456991634497948553974330062913861560703770190520144786757287690496233798097059150846576442021324407338788043785045128342087906071739184017659380295208229297754317532406714018740214616219503504500645861369725750729330151059696029471515728375873998243279229866424870953015873259705949793557214271912352808495883537274841255212051935958703206226462131675928118703183066203649074167118206218268243225173103636050394845760909197657423204386027611601511973406606949604918585225318775825608895093276060399081840005720045570933138543507344969055221262628394229180040917975083740793955548647459737357725130772138854411264508183716455538525596288325529634231234870606746535534168053079659701988156191552006674940914051875720953283507679917652410733535191224976097313242493364568651003144891827557063053465590215963057805466456012700317427641653418430229683830185349824186534379141978179254697184982208792515543386569345361164543155813453791063651324282598301365032027536842404930725514385510252438205173238495935888410154893672087066122741722504178587774382283318315732277342212728459519066924257292263701035920361928309304974354598991402706830106875467550772393399621678043836107180456605453134159389165992284277159886327391749003543053571744823676846990787070569126584054366598232956603556913550024889766584519797639264075466942400130880826864301673323943332019202086869604546303334032343865251036658009189399141483998543688123776764209833648143978170877911497054344570513683998098404249657794535760707686485906528801130467582887428431208565710968984998617593016270122531263340711543882059227584074463954718115775050647795250343671184437436198439590888556420239060156793032287445636320829083518567382417455870772714877786255241646878699710263581083867008723854276993821233976821156602993490960660777802275837500890460341907482822683793159560125097649533493726420548210578808436393123836824664363590372793366057507309287516298397385319070165454237673400158108088539186580182509503245838067191286317643208074681331476625962083759455340855891453733218966559509114754858424574562873534259165118454304747385055547666437930532237469897144627745454759187926163082575941206919158716913519754479087314970931095823503917975586502704220956532693219408872462478449117357929781243301373150603903018246061125590222254799699951167186805515543004616901056055927333057346438019696311902712746321989535541793058522687855685450423377716956350332622211340561633177321186722145749417583965722660924783537745595001514652915412098396763653601060529822026084836563026416034618261059611349659895122974235013472733996687007371445213639770881893361051120036548264063735167993036360142224001989118893514066931643679433867648814951263173977978606920605881586324402020460459294399165265496508821834837873910709881302599310794238778212578611125342170706746744324609850316688196915418057282752068179511520461011587612811557008860257757784873791143361935505336826970767925688924909544183577974942059965269729024303324438806037873821091911708507245038022997738256546329114132626839495924908083198528838846527125877461219149065348592472695228678986041926416751399837663760547373026988103237998230449584830698078761241999954133806892344446971919756880010942457076520464883947089190659600503037318017728672769059784312414357171234270296322868717502897042986587818199967573741558232848441902091196167774186828145397064511168557761216500313599603159784868798915235318415504851352824976992137005063492375247189555963877858981601791594072440495425028613979086146328103250040767506134588333248455523864653405925363644087140095179993127995982268009637940785607897016890730420765781677724938621311236077404681884120843798007395851960380520776314272050228701171331580535278499752502195452746222399827157458173948954664622492273654621918546678879298947475997909489493001021627619912604522139608242566249108476462278983395314968271545472552837542268163715030032171222953959738547977285030606615377529626378997147392985496087367156282969699901122458233055888662408312683611653092467050910347490806743692927057437776322645134516738540701169999265188636079361276173340527911198797579062613057104600770882856534281011191998658661909996903682813267940492051933982343270113369628622536640972510724285621743042047657064448415709786010280282018524819983113434413287167187226814020509717821097518841207349405553654640628165106057286461146503400324642540846076960557104015309166029516724674615948540361928407035822819829072740163758729537073686911054654568081838671105039741632283115959898963074685499850504229920983660312301983908810983541745734240052713945158014602094206913448230722856065521275262352449186749182020685030185812658958065052629416908501097419536452660104550898386136408828273175203771655080842650688046846996728048048671284814554119070568276150708739869306776341814195219734547479550197681574494831145207903973554110564798262611733636113379748704604925466823381164356036933267518232576955837484490667703420009268537812238360478558159252448209050049627292780796073874007544153023731936655703529656298045916450334636820788611925120333401329335270852368069416794092452499572118231853527490443583064178783279549839408086541789113521807767855244978310910243029325493861001379170710280917505651406187699834627441448847730207801315292491573170356871420177321452469337607438415384827432710810111315704035737870275732529613207810977201789800003472763425408340615579270347821717430106760187868452094402050550278456255581319685221090644746209519694317082456098318932967466369322248330216231291732464603739464177638290291750956542140956966046179823907176766335465013454047414218653393486560087707393103307175600119646052104250641038418302374356479942696694653869301196241594798492424798220443238870479762113850594631357630958141991725563925458835386398255670607714820861599997607668741321905747276842918031116042815972846410423982066623788324852917091497505940936225735357687335483673980621937120590863531924671484839344288597223392363927948081305137512225646155758759426430044894016450410146674867306320414220795539965295791037040020287876008458232431436616025221728813862282171231801657251683236154233929716791983547929068121689363509106872576922493609458412394395726884468225709957836949762259233050800550059478556202327507648718604287117257109422555066306840548657082161313850770313723625920129011944816567866773248224685470763464641775380900886109154753374881834279881895233865779473981623574642614896482541881945183676341188022961542925449749918863170192672054852717257825527251719761283115832076769590028169238147284948941232438096950690694905310909828870443829000341906292729884547541641618284839376197064210540571293491380508595350173770249695278255301567412788572011534978279392160610241981872900581928371794687517707203289847079041875838426916442952621965244837808198606703460563488370065968248194094860425792718514544693821376768965187285018991750023601926177558522312974764733561465126340950777809269944131147541927540103290555143696661426766192193406525939483268293329475930616223820794508521063918566143950324145385047594091919873086272066363441493511134638472379682142694086710666443738783172644291087543151401936108637436427882717597255681280684842472763847388827647343622202242055862272419507494961679319640680889561248532661402385641956851817330387693135959039773377483266921623345303106488727189080115175949229309536686216927420709034407194862993865581090930489317973718444017410584259500500709057537490973279344031985070948151280296306695950576945996349242199294123987209621375480327260740390226885783643371943684848794074863717238953635436348101414195809674454164555154674818450783190972675721132672721682379563402795194949785707370443941021129634909061245356103824219104392165441425853284561634655247759867976213144825528268641153018194369236447872527755716830234971369383695472022213744345834611065262440327074881402520860391408448180006511173911875227721862492847234913851689439647019405313830386619360472306836894380416755602251161764193479317574273595859567191793655020492489551682391912528972621657144161703949956472940087722767856306819431590603396377988439893728299904101710159360084979921161097696972358209959442045134861061308000802731026344116083930768704246477917784779799895594853350159289948660680546928815795992356108043003139295638348356470327103884390749602304325859792698378291203846190507138318010445153965232706586545824569244025819796101480324566992193691911725799325676309211895481716356173091062440733181414642116871752163366298258070957869359733108402685554414974434449011899327601532584183957120178755190982258600773190815449458541728281138152405355365972254644161443198501983338593931987119426938001050620992111172331121236797685530630725635863549921917209483252885359730508481748677607600166522973880033528352871444129610591173826287045066671683575026561645219033624326609654837022618204335552354473237452564047690402360156337153993910852262703250158467614274261283764741030533177072132755725271988916886230959783869390778909288976145799813794330670132723867330796600237857866494208228737640990274826664933519279310892704125034294872018550905576712007985569540442519636792610914854626202301858382597375687409409069412946080204680402420283762164884215850046219979957952262870124551237317021836932553243405477862876793082238208935931603751413413231878116820348282981979379595352950023313453862444039705552514763977942193074016136029549537181883228755825277909212860991850243500613905951594080068600532380300490476371080471132448084562650629907723975189975751560884935899544775724218912042590948422871449501213658814284831318639469496701758125567014697281228070660093590445206434248794864597163235946997852723656944138934899246298456510948159055745009709559898633409168199554181584431296543268091624999134598115824579882636186809037906949244100952213699125476594603359706243762208088124793042237593734951374547094398896261357312296173999067874121562777132407948588758348216290195301811609118973960743818227108929656300393588091811759921692838796561142955338790624682926816228334468127976207000018696681172031898949397685771941279442547128943061184511179007830581520130097190566903627507741311176114860681548497537175525224739941500877453413357983612552046636398382405687040357170256926525546057434057853296678584234333855965945389074911181349711463793106020968798370705464336425961076021807420010651037149138946143331758233963281092820213721560713582452079601168261320275706722065499745767398678206053212604282783872511858697635890679477858394119447374623384181569362286967390325290485401158232109668865494144337543309588483759597351935793463067929442740069638097653536043364203040351420748632275292938558068232278140550247144074541804655884099048520052084055504397631053666849298682085836784718203734543648568381586813602217772738315778544835830832662084027131187442749637592250697452718643497357380634713316334036490119804989120439836343278798852732821653273432677654212901801781258493432756819121648223509554122024082300631537442226344324287353270950570996500208146278040090681818099295684911070399416176154952175190446420355799090666576535678148405500741512776335882546322716284512079648326734912471241595137570960852104008879213730260777574837667301021665164244357124905994911486909513465277011212580166448921442624326027227185235869014082446208273101750205808839489232173325472174058351830810870839807591039557714664713245275166524356843514195747614087655879071942075112624699345469339417687942567116654929020989232174311639606671993818694378756167636874902597193643854129611131440042360039199274918314071219271000989149404070361269246249493256146002026330557017307454545956256840812002662742428033882592561277364180270438793232042407226405381777316595013075087117129049265863860697143134995987115054557523930406723230264587977690234512939107096499492386835501485595410294221790367653544453557160028001781503235437064289323268781512039821760727666252053337690745151235786315645364349711470480468853361445824865575311490488486526103335495737616575355669385959536264575628942535629496480703431856732043634484490254909697965166778148516592576170339896810445081244042550518749063992267130555365239811443239376728527041399325069193302156704581445597502496398336397384397699040398637777952203538523241438757015395604290616102937503790588939370728410928408932360518887529758416924422024500512860165391149619815164513933906031926156443897506220578543167119199323599411573131444151309160477798074957991348286585198075749228226001595400610931144229937840282513152061290172795337693913773625118938808189578210799883882527932494079867943863123899708241707812619724533131395986125496401671875901886322697664437918043838427249352128503825680778104294005062389415150665445828117577394297402475429745133605910650967249669574820996663763074195339136832609349210489148500433757461394675376099616428462305558964836998556304275365957121149145228281389098009717990578977557957680613572322327023798499406787118644625311518529776967735058334175287204530925517551254243679756404743991921055345355851814323477927262387562663340778903102050689549061277247608482760476075673878709795862764871119941145093105373176884192217550636801114590020955430761938667228977153897610431636864210694176671832643122266276127552784022174851014794284647751813263247955382433600848032687398512355807863962751213084538047382373484132945514588117324446694151424839051272366139340215123457556267199566239679708655203057038828255694045302113054931507267207101247650543625850077349892853822046886167496675322992995820993208263083755043009225167476034723326601390412119644708086741077494286899690617346434214171729645827206776890361369305196513894292705414026902025877891201120489848111449180969342301615138529243223201560104720588686533615303167380812972330497254146988853585819090885330166245876596571740663234523258398395723030026969270708585525754087076423874371065018968818644146827040061749929959583173537492430077280504566107376921136181468011161958859083534398091232307027167023652982977901969636075932128717193167707654756560083724064048114998673897287753589137176363757557704475136595752504257527281693651774333625771354812430357897535381255862270889954946607756071085959884595504025170357679981387699145109478122626896576927735412825248524120558002471193354916462062121048146764267393796884916179519573547674122278791651542307113072318099890057027268621296863316450457058372355947463699151443870455664719861979443201621413003940519783268861494034259530887041400453112121873675163366263021377169117322355312252038565184753189138271063559679949236777880785324891646966022704453818905465192155313237473270886533414478041608652244323200768481166929615214306012072934672393007028588747820647959200399659182578171579849495065878112493496805995232741328219343503381768987356961446781596859348449922400348847810001958000382938909278391111351796406470310882468344893379087118254858307185158965990080205562248762884361773289289966374973539510780731713697171783417719716995257882285515288510955864114022564940377997964861789446949465966070451273962986045352346226855344596177109840934458656153600988117191453610216312583575214628071303623109580657322261257858387345085518576461986896707668393123256599491608060757712760148159136089420590634284250644872130545119699033094543523281505946325662087348663631595810231915905847164531373380249704243969319562290045372777995132500482132208684358201727972142965773954509774241554519939372545209308023675123215484216598599517549961606244212151290983608349297151240154423276765610110840250234008022325782177735878326087880638332733640081731642639814987923403028259688418422982638114902153289929582730092275391389319051669818981996082262707314437765172683234612258634910180147096800615141040991222929586089878856660778194458536155149708965606060848813874034757514320171080369287977489806065810987073867913785704609850300565501996980665806648740298851102310252884332893799942025191919954656272783852338554088840604584665273825068603356249844029130840871058864526818619388946097603190247809079978877381064155566607741238518421761665122446802691372152306681011303979003358950826190521296505851948419184199555406780524966751335429166520674673805578692514499568607050802868508332455822707846397274636771396546176618721037140117800911126146689168134516593065393079995885623354351562075436214728616860876881054311421611673470690596356860388046950280378808524974583691886828898666658575475632463834256144854371544373615605525262037412865569776044525092105059154638283000878831866948891931601775797164262775401824970698921144824405891137580913869925689657254646225158729723656548366387373060186534824250764171568131919690659298051389939020683280759719464480866591084082148862105111731178795323287283970815692569901742114422952500085586281837878050004795196961318737035175394232675238660347585766549059964465580478030551035160903496174723249558646909509594920424406625188036416995134962446216760062166373904998132601257099820402175145014745520940274031643591620435094306637530384623436811114722720811662596459613857616673237036579461060570666786845523783773724241711447905540008595120320675426914653539447526813657941992864100129855317831262922621992339061180825077083110483156492557654260429831980082255071074330750229428341176854848979743862284272427658957682896801986601474922773073120619244777166566395347402053222463199651066985390225948736714156551123040607731737800421972418947066004889986820615653347595810173868180162504891092911255873874208296678178581444267992206043766304555966952924928583709942716517497138885774313726370061229388718028077491000023420541637842899156426398128645952900628871564138395087041120052187635981669788095310001612847242171150412927800228856786049062179461975415160270564519998038726951803125539409276078037637255131700362394388939345758877715403488913079952362122498995357043652018719924729215590722369722477351170663415288533886144979080989162952637664540777764074346342520376400528338134806346858816731754901043097734758143024244717879529301538449931026683001281715650544796803334181814030136841199748058927525209934554362857232781258503924916433860740799174031980582463884977213182506636314715481863577049047847579768132121431068976841489937676261144127309514330228693521033181770076352347062691806907120947331944442893942520131809577048138946256543934431767800319163512640905134495708841862773765011099531566122804753202163478183513681680573419306817957651329433512611377402095173795324865261542276174343079781498173874315028576072269262417460794524622586531037361257381628086249242658367304362116994496002914388395263002470358785339087096199911659662418102333471890214226695934314386408193318482294574091978360916366416310735425759477762950350480095877431811843946494832305532352963564502237205806676564814143011432191542511787230031776709429678760208353307079128874341913955026497894887678235498478435780261777693017789570847226448331719129854205211634765829430294738135537849377714581961553366145418542549488647465221828483897589805910891287866830671519636837682419196548204355062270863268711736802429547423981332597983976268269451871102666031487884504159306515077324823106361657961896496888246398501855969239465444213592387899070306180569221510778786601128582306373206682075976897739723554280084799913388833358023824332329269193938064065149981675735794636183480969569573706841885138087277744602287861500147038889962881731355075379047519772446498121090737281395321936118956681734116151573291061405736066601105700421102085590144554006630417291357846557338866945144603760013280255882770915078015220638634700271196864840590060200990024860914829384271500797794919844149391835017175086683172578318858566383850812557281176875817997502945311767326331221621298919689451377165834424943369101995470261559981081716505358084688451706819700696904363462805174710881394866415332969000644480094687784804068814084635173619631106214176313420971262528645911380353423772416250020439127528535381910568289253654772053924627749572936722769775753244488596308138844002354273014624886429064291197794818468549635775300206814357789666652156293793804912597941533585649763810179302343889762115388559858877077281061023956562085067743207922446297127520897862538386642684050022795889169961407742823803526554429083115297304282866179245538553614360705351272614339766616156130702425140804878915378936397355478297381498682366001133402196960580146611107981286784429750616776194718679411744763504577425993224096114644123004351156666417435974230585749868845081217270813517257774524480375449518597960330254026205514888368003575555494404412756745876905137355739170436107122346577301152482714586286926588105199676945158003114325371958110820218327021989799730466247722417130171414586101266259245359045132622360116979683888359570946949738574946177145537512203449125934657197024565420009008164127695253020156698919478707177749563900728993068150806968726097493707031807030697912480497255989564700526177454032697384349041411630978926383375158338147643461238154745703154090818631086695057655390616658839600605691238622276905837189542862821218024758520417012787074442771014555893833200526284151256375903254304181383694371912740494300917637534098957684742970146625427858603990722166361828350446641858586083678444503625727000378958825589299816687839189811347308952236229911319692993399403824690312802040409868795951833763439153743575345850114860613366440321846642004158282667466621456996118160875967329293262467288391297719232275357859270568045979418325988134365333596443710249464504935775368374234620803107255958379916568990974437151270221987495843070929987612370189002166113784780635404536522944802063259324801196086646692403211516842888104453166038693646859853104609321303820182754193623153815689566688970452857991013937755925334507971764437030917449046177790260843504514081831660455620534032737545792631052189401772940734865358453400790151258198624818225430875434642563382425003348023156019914182757378848237628775768613130393065042010049759677709835522399144450183111866853602847087281920969633659511483388923538402891212883491745860) >(setq *s* (* 24111175737/9314 (cadr *e2329*) (cadr *e2329*))) 7760271406486818269530232833213886664232322405923376103150619226903215930614069531943489553238330332385800231950890047033440942119828335089534461575588743649189679666551254647725845465104616027482769081922732732396247083767521718123833193071062059470897781028461513719299898681118688416927278569657347426759698333740863013275725181399039295240867535897511016330381995952286224898977476794934777588622737237462556750901162963406793824520542616769323712193802126066318528132663283452332581822161262798206752262793825532048353317745360788194195100129025353789079430770802223904770027123239826800547510706333124064018424941062645591356335709328739507098468251865084648997734103578487702314212070231873054292195983109500375466193591164922665755209918440066710594444899354146614740178809647842125684176862138118817367066494869393494274783880447339843717996563382163956150672906821404597658562589543801065495963894323168124620435108355068741788022153704876207355787873171237620360350015436680204756119712795879795153546119920216229966968169313875751596272075936036057732712211528296207977941936242674403926359353205739799122321516745605645457914929244561718303018136673845891670565225776230897091435982922756305510909924437448163616834635070517833292740980239933282113029577370634856566784428734418907793760361976731821796313154035851932101054431032936246524861777259088965968311358436670289117331111854918465949775876650397916771092158893822680675199462397205943003616986123241704328101683120715034481405745739713791737348879413153100237698283681133137806830536364515072505503426009374118648300105501579634951148165835554758767959090427844831065853244142672496237071153726546019075581901998322723828458255091945488085522463696168218667141956572475905777179593401302958053754530872866371479111529922924305830178749459893747990143854898517305450274388722554847748705259981747565696428691310422413593026936386510793843438923774839182467027155591974816649177190786589964679185690271854886801247892797122548740175946185818685282572837061354227733788170305994925600883023944107932153550635809277711240112141232950520376000969819493268541880365501365460835127167901324853966909702273871469435937740222427279055349787187149531680694645206558469108171530344158158805189204777279720790073340967222669454716575804898227658488492217687290790223031050143296759314304429480874056069437564647342242806530286296335134552387986752775017146795145608134073615207271592076707133655141251466168217132460528042535803546925528320041466069299767086431461923883562486792207028049425081588275108338117370273989385439068959849834211878298759480938114801483648669386949818019591805608276239637532922723395436359918151062118035119575469107089064207221862693170614595082776251817709188859628601796169954976795676155837730101845573389319351323048469804054651150114353820506917397377823373980239155377738487968865694856315300754128653917222100145462681890283181113226333941225973189512536802138157940504676909546935850091466682503717404185262897579370867262543348795335078089310062027602244088238465241433429282975916521505038037107465181474814157987892605177957367608194423305050521285811155774524441981899874080604356804768329716223824992455969701041078234667859259793041300032489832009637860016504958362026351284529570439205066047121622344744677536133412908752599280468807405885710008511149626115426955963711376729114576412327910933845873631372874734673489609749203363681459178165722621230083314924956717027375088842659909000065241463670578157449328430257843994357377461284094787039214626643438322977428348339341484988808568022465617589325703151409276694689844827670363543803422922741818895045747374023732504807351395647244057348376111963050141962818265681073957040194984832510142983767140818699782726029473680855201096705579810179851214554819194526227766397433973949809095390861247177120629977434857979274629132198146141826348778459536314304842540871617269211076846387678580562395259833261988985276105335607286442368298761186752599315089462881907731313517587923335778288769309512586182685345766264477475939602206046485077517464939902119046419496999523776226072607515619980083908393544432427185890361784923750422380553260937985800105510954077019984273961811016433672989364727308756467390100698511166701265307964922486602442421615941074313506156851867514448825380070534599300809035003660244933785611590255934821008862146595901542908033608583576443240635895511931531184366783827131353484448626534471261234742940140632387904631206739399447620256786236036601771493056341802174811358583317567874866697289619271809237538043696508284061419496704705891988486335070181772266492320887575661756862436351829026306430737909531116403762579309587725419965405439791344467857619459907338120638292472844845753541961418985669999193416214668987057542040738552144643173413286478802461743959983324635839080081768237781599130623865868699828927548072532513723068356001908798328668410057711055071783428863098812715372715558796654437630731841513775727193839563776437289817487796528850803509142232099447890394373118776125231441058754721253641812003880120458899353222524146580377269728484463029700453650152025079985682036208781546415176172538415748469503386734265845325733267873137452523412184803316516770590224269253946277643355016166799258587358002937994418977482067352766006707152949239290430000133073295581365782805190504513932871884778600685969968857442095104038416933313341032428056279336476633751372026342134675453147727454764850500353316750712811568128103599442811235641085046553961354730012313073146894724446369659049439553047806281014401605141231233021927765026913972148960027537725447210769283737818203002063646174429274074298514887347315920242289138564754656520911300625789942866058085897280216127629964648219745066349779956366610088136358973783238596758595052818911639785146258724668845828953885174700920461296034811157126355141478096605591505395514951265501830586942834514193337969855154655931595697677046707578774471763789580052540642364366658298292961719187560996258363798696521996572504499018782002782149651514208859223473109580104412911990973754012247259499432891848240113977425214435304579056488456252299595773184871850635828720290522974674012271073343733909455907799165670801403655860265020063168519703822716842794706859193207690787201144295103492348883510362535237455380096272619419111814914545308601492133376389640774004341932045214298021239081027589911058405453435584924494103492140536879940700912158480511550485553595359931074683257734903942130851668192000445228874795531114429684325489355810332494356458334248657119675342183624475363308173641497211755526091465334510425898424068854391401526568125589758784023566122496799555261977343601253073914052627156468526909796085280541481912929359250096283472944127501230046546139698387324134615399537735712238277309421112498962620406612938583317724139132336128270519553497660467286831654396420835204910908767993248916022635480831832151597636055173093747911251768905290456724343994937441011916418393503934299829293189961111082376393566260096759381165312077450093723957665657854754102169496867000165524041713343398525556813461177904764705392223866176071638457321924130700074410206280906992805181060254850106776451486194839213976899546267233363413925014837840918474683086944950903741614058533465007828061799719814404774221898105833405327729431873689047330711308225666479284091565380480485154704847106060356892301299914075425263887410480610858858423959832099827449768225781421014784886113665262188085966286508092811444391857058153249325166598769630003506804359163626059696798527033104481198004669104281495460967600807131815377297006046799001913413084062151400760702854995181524025313318338891392316671690696990445890767249938662056327453056799020500967748872152814385824289580954032933543112076566267695900892169546874819373569185970190556476000264827849205753226153385601459139165679522577218087816186833113157621612546342368030148732584592078711409619457179241538011153018288457439404401304920153032876943145060347775993235753831556599230217216506894393567783340359021868297030474026758450856159749535364972864989818713606645211149419375773085377701550207823981641400131405152676294130635593316141166420386279638282409415596988165011236983480673746258294319947477061247230903822153265072269018763251387606213566604528047716605322763427748625894582059015144649771617471055056903973448635935019954257741869328476837521633824820768348502657612769849503110724468012970112022468362199175129940910301662689245321838175210797942295290357400033182676809217798672094213684271420653185681587406790108507229450688534520085823422761703968765098640940488793317533547158262573008227785760958797916978611958624527266701837419791879644199201214582495263295975272156575930974810907035176664304672700535953131261480166202223171991872106543175206231965071984520992736127818187153037349696421045176834904986812835418882459322304885594684161367462932000262352604026282975647089519700632147681271199226875336138754749136505734551532122652671118998566786136989594850784640462318274862024588727203431956248315705793139560589620678584560278982681349309065850901095503786880802650614655888140346216046394445544778820884941431813132474535605415796778871388709302632900807744011412692720299478148615597628048789594735575294657071795943331167228957714852251416944089841239158222089757842102430925382364596617082446933873402694027699547631643864618325089134797741289863726183087742523619604340073567679090105610730699827029199993173143670661304307665200955123734908422607982073894103054227406971048925132650656162498457555957565960033135727389075523586937228541773248338288566612800183460316600933465224918765228939146874776168980678064837077027393102148985912954001471448062214378299247346557792860302876915632045706112245173408813865773413744000717467232011277229087329985262836546228357796417040802588592214419961791564761961960037483774137776905838481460315268301422370816644533366598529955603677967920041988433139819924833447174709297328203125791915516896908521387996128706811641247201948801756010056467259399038320931388558979158409669855876453770258075058950382157655204446145284289374277520075778025999231657207040357151323222362740279004867795175359745758659727288571895054650802241082571180597271717262971218711454633728814301704730019395870688816547044362412104629458646061336886878292754437490589322032368168769762732302635923042993272005615897390467016875698879537935018773325306417841156936216478451547001067177694296409867567950849688436064938314158595146979450088686292335648865537311316593592975276540745706598778431575686021116764021964225726056391734486418629419301779992029667600211090942911178501117984608115633079718085555684631492130262655859110435963758758692600303321381929178923601771276826020933542460010480989476678401305420312427068242017368545701967261109002766966471149023789801652089252276528453510191171442262777633455174185303137713692483038003305733698428955893267455468322349880088629323340341233603842991207134700491128017219361476870987132043009680811265932974612793775769217832769539676459230821487596721499650683053080472134109250646479907674296780878705948701182952977539285616061997152399311658964533269538478033270717512580538133721930549824430617053198682040846893268853649741791392491613230051489600994517214885387149075568597081311185099877790559937987409356910499497564895761361340020919603835890856614502564930191259743436019494138016773506171951430186560946315779389121051815869751177028255301495910723673360283756638768507273399476893304221953220300555322895503749518534315214717517597165162760798538980916256931104348725756013831160813874058791167334708984145780208236685911467000442008202373375359021335139410588282904315201197990132225844634201306336502120822518577795376849046203094010631947995514383138249691359612598719794238379252237644211243185759663866680679179612561132479610600269967856279876752919312738749163464853455717552240111050473464073570813646558636489664886518597689005575574212391410564308677293489006255703251946928144084462566030284266010860160922700899763500770417136945811102859975590538056316837581234291760785319291822407986577794379198729563760743575993608006024643329169957257249686669315377259246424186322257151283086257919371808920457800767375155295935493155212617505782286243191382098616875774725032633571777763452791442897743455442933869180785644844911264502347067627920606544354707117750339404530940412169032303117525967309178910336402038373705826155246861574126494797038959770039332644500755591660993274679130669657444273476100639505012003351532412620389553667744277992708830391695717603694046802864398012465804156599829813152472522175659316872042868817753110199073440591371271844953048843709064293925541532619562550532381127034372193084477619885754852319541518330509424069756010732910537903675522336294010923569928600644315712887121233218709035570506099243057512764900562713276021037211191702671151897982516109364036565783363441904822673327643367128641312848916567788962731326540500710274050501177492331899603894448005084097737484344622521084255526420600275259506110532072086491441203415982464007477684115168489547862048437522200183818430388410676017682167207106015799059401353467849058268123014136082098240693966605461059303623257892495459692487721147832645211993429925260076930286645718680550982320203522034162809311517549443922968950661082509960920435689202717211049604728429152855986162468134638945563026028296694008610956814455438980701031207471084267309564380783155362065642126699190495355614654946670453234464770526278881934278763451914644855131087959963849916913713392169940970309083392606263467811276535926125176265842167129673153591197799789162870695413479982563734609636048149276149706038542193081241471221637085019493909939093888524217601480599408086405951592358155416636284181053387382376978486958570425944563320139264263904337039138142930822170015506214532566246607818576745242038747521848174533315593215258376433502797806261981981109243800321493473693072133264736524529322145453469105818729778903695477998241431825569557454692082810873896245103531184339920006796271598488883330695023792706505817248268016732135108215859948829720694339113302277643485483859242919915490076556387416207857301695137396370691931861473363763397135019287585979662357243106352765039178226646855778050937480193621061137511881057445645788663281106287604540732346105879610985253746907854766769009614989797191201930577170254855100300851132709940776162696634720141451038359039552472071600894328802009002170184025335020901136871673024436378423195183584194533838717109143269682303068988169206570361233461459450760000778192207685705948114721902917212093249574173348860652119243382356380668590054874599263106295360477843681316755502684932672339971035803756123428492679372393429046402183048384909838636016651926495820913012726652669339173965240697508404896341993260623632963972497059654017458490897129184971841095658094436442344689936005325087553166101949404121748623615942027049379544098815289376977524430978184027950428243768971257150968251483443405060272638345703782585976930843518971377690047848944576574731621260103409977083773957963461588605857547341941729884858512189781656142473376391547154084788329726263748307311328381173043746267966311852083395646138377196959087114958707048871135793588690851092108647176700465614051181975853839218243048545535486672355790860070742488962252745442160264567164215204160928450905753763639497039848405821271863788590582840905995299446446504716747967142652765551711452913945209808419934494728051786707206665734102300775331352313345802478662483055732137346282827340756764439536835406650393544091280056740692488825209259738275903340868388457708901605452899375629819130258085794649225468438194366145493588905889877012398035040200096359668736813822554562190593407384911052091288480177219443138984398715266801025735541491605291842395128364329322717847159962226796093347572808070507952631862922034882782179413287401528002939324825423441256023135595076753124054854995025252903034522752388239453985316851746539856273363728993468592747050768337093087729060787618351922673788682283364591133577092986923327819049974891323636864592024406756592510142664373096633850844290225160065571007999982668289829061609820372688631639665106631133364232562454893567118552292046021207219086171006123308241969075199890276494284581702312504953491854352545204123737697134468588213657140760239388286010041826282532433380831929625839913692214769006708631433104772725603646821839096265402607442317669625766176447672083468332099965241856129628295061663441021534342259877619766657751538319861658967407170260865925518826615402384560885520406563406120010399953774195223126134026443733063982640324150365591677138629062412993727177541915588576390519779592556245025852539361267884465953112825213345390803308639689879875674570579930889189167554743647308197748409968667451561060518925456318473428191192822016621738447301035849118776398980836680851232011781296380434031437132779931709051287091317260978597702669220527116831985150321683968139520194467525244295794879440967560878487557173045716396516703831242950609386860744867494109163471589371371138384031642360917134115573633798157936587582328607925355632799404946366803517538534484371686683320294172316412093079385998234334643083961737300657409363257285740855052954342285212640322460964470595347498156316994817427357364611867728550453769394804300563678611333054802702595533601615556353198561167877981068965079204846486157642255838793370750113993416812947168997060201837633186456145042945085514882451140106661290586538273733617335551248980710591998757626976471592548245275292257922090520664332594397963469607283002841469488060030948783345297542302359603595180309442972013320326642484223278126011622085823092735101158712291779154215537430675995118222793752230005340284245314272413134451340308298226023502161029162050216891358096743109171377419980631088977752082013075324072688146295335157534888667689173589104574737475815643155291725284657336754660257121504401601281195312990834222152600908897791732821810534843581261597035098859550541295787091722425108409781442208240771420058227815748924645631715125051333102674435673673161625960553193478107589871750417987062863260892733286990395904542463578759212794518843259985654217089393339901194274069289202217979721198087690079742773097913276147479481122345529672559420331461044193096841359891101953225646491720818216350372975809890555042623321802598200159683422565297379721719437707279647537463700463889179062200285635095074492737777929072237170303488024452211891310515260678293006257859450402725807433606867217042206810792753363912915240583740032317017216356738182558133264170998360856203391950434867257473688723765858280155376937093332137898004133748423712408577899304499334289796798294219785612213853353343498036633337736366647102754138691043469512429602778713876753477566053432703729495630957064883752546126314183577815416720212577971881310695858194629892398632617815356844188218864481480137517819687015337429377628259539936281977367255883394016115652761824715342461631755754239354443473420939998012646762782948036858397160860644686506090408206280885114699756238330339485755644590614652567636635820280570413565168473130240695395787946137310188937831148935951983181313957292797681884763921382404473365423866756589985183932671861852511524674413439079797029145758202630173611581575407923795638952801424862908461667053328789086270697927009653064375422305921453962943607409856416803019293038724056880015183893929430379082479844394046219059155453528279263215725298951014046493196260220922964135067615234202702409022662918350208541840031345975751433680010044455608019674581935382790585519427274363121366601794075433474830586860011336877388706432463842966383534780690256539223702651419174236678604964219199257148545890037286561862196109247825540193179752945091553762770255547684491212005794116158461040758874731516035021999031542468490147897429727988346231178898340288935269769754215026656857610281229273810144598025352761894636118628225386264708087281427029014350942430065508287275873864495486113291257537088698889819533058235586383210944446213376383330581633644625842097987934124003703081998638098684642910347573504810039312046141997476308854170469618941575345596489166218056178722532769645638343552431408995532165030198182736647993818047855025213290174587535108648478440863044213590224287443704136986594057023774666771981397323177939666101013315843119330986802178602768751876246116436870390624303300708408518870499358482453303078565752107764586119040191389148547998515289527464477280168797006280281771116375822503776968347246742491103892707870731228176148306604267953995603888241807936662042916603497311559355243149518588752212373111323981492891733425773605160049497662350042263915296119993381475298020623002782662849866760387100575861082546485973173395875766171919256469055377585585202623695459324608177148621921802195648573521817200501130180606781954591793601351515044696802915321982323310252905865481573716315006843474995880437876292596179677739213611518590787593344704910632407956601240253988395108884855038757385697794868512403958914812005478444716951382580726389441733183146151375772566162516418338286947821665985016437900444480345972668132701079260972794458459116595278613674966201827704542313583284080444520630390827858491126253858627317796076236430234913057199126673407249926587589671856849201658729718008911643478812162991201336599514524953263232271934462038259307847671844878767388128314416384073538186026505777889040846209635340417052300329855439822222471363441339200286110724538250891984931881569701512016579435146659374010494912558515349142073264976633797356834047179370547211314878699779920180103749080679426938530556975018102903797060571184486262157085372560508940508941340102883652095141660483711027503631229926310532823564193363651973094763187374297900147629216411011377722819763981748057598158656499941252743686425308289892600578062122777945932920556316347124616018807699719295139161347879043545208188903322223384714246032861408827252642723346358095217867965751244864122673924344939571605669132223928467112678269632293183810272443799078494521806508000035367448955388368193621926195916442879096783061525394023048181305193530800990583997104943779348838491915208163223453189296045464043510838198123315050839301193112453380848967891841262542362974152912091670667792522892974797558740657090795897011961337302430756918339880232602897353484065818319638395158813423795075805541470002094755004087510680469536338287064316387015394330879506726188229082132825885368228863080500710701339182388193290858255050741874536088614377710081487688332755738783761444633983710764059125679356310221649854660466862570996851029554948015026526311925316386850271664075324838268055770738217799466111579143314971393581137270966049028859127415049838689569472582194043515847614018216514295414183286763846852688604724698866198001786037577134285419238725070996083790863018789199844331972765443877671512724731343314128082033606995461151991361461442379054281349302765751984259675892219577376946854865058070243049238622513622082380912384249062898307151868101596130200088268006171877510940513500522853497135168099741679011597942757448452430170752469742586040151606476576948773066374146597387936098342936013605330099047171982646968347522894319351800386988306509786032889193255855657099443732668612077590504526363037436035698448485790373619561549928057461126525031672858437015080216882712252908924686426074389208358399696419840796662886487724705164800383215912698290655927740973966135613066457819353602579239629968519068680953073563695136879770622051916998694324476234290117583676198634333622054175837690484644463909222811630328445313326585625280582285467006638042126482359683434522933669177477115352981496712852493771575176252731854172822638424694733000527205329904779580968201352732784767586025117516321348318590742874138070351612446546996877103539490625273596014027273273015830074994203371836317793707573136249669245273916570601225488701571494974683836813564701169599522086011865254703265244610006704735479348562112282778903478389868553450781216419040592661203874172628756594040054753392193245088018053704645950474789749778281555262043074927432489246260227654740268992165158417935993735955157816402739591977721941799786701761660198926153477486363174712975131031719581970291236040166497951968061448906799360916200063581971219954744644031204711410355819929772217899851066291989295619997592849420472729480852385058890396882752229757934523274499861944330386965819291860329500759817300282873263409594162182368573843543627436645542169948992897939640660278162873632008486576007086859703736512495182775045031313321543572732859793227261853634678314054152389739778158676037798443165487908500067533428557640955929990243757061481048527189357069524966440553623228705831828222717707395637879356910633861527845273408181554704323872066499453550382020114725069337225604876071605368470305727421533668853944316575300317123640970234547746088594415324706634954155529673244854522905929963171734876426116832620299336436878125325317796871040259456745859018612869335851199455010844178587950562346780393469289645136392086058088259688806027498914239184527814085020223945400906613218737135523901025733833204493455516559054556956607626033495354062193887397674753614207256342195686718764268092623589515546879564827709389248933117126953039001943541469731397110719096207848295297755830813758463460572281273396694978197470607561839880512810719420615426655513210491818520150969416797842045384448786162630067897455797111989383575619797976315739464540212108312982377608131896655838523551183915994570796936520753924058864216002878026988728044046027062862047287287875150750849286925622588663838500651910124270214017173443072389643332040446241881415232807036546949860566228888876737854270253996521584793640292077253601901230725116572413684705186490532559250316987195235768910274254257474922245970036716349646777820146371250337035340360855193700516227472647993035117052543737334180296341007357338363607747717983733641865329893051098770409572266741592203903601967550245896109085563607578138283071642534865517836346352240910030210893480069921544494688683071178062079887292566636574453085069181880554483419728536040455296407440238672902147632727716911458193027090755781985946438621955379158018921298132304035669800514763654621594143256732241943011921998842030583263047791750727970528396734506194352924894672812502708933032429250608641300176843051348780633940177112130242553027882427327763648010127022473043221750176354505509329845531958108713334207354483576463482892408409378516142329055412634731225226273187887176232501338833003103656577971395013070850407789780842312531602904549708692874991249226489762858346404523754758349080256995547336127380173740242379575004092132403588740117568632993477721345121863791638217998940792725079311350522062223695132390333472474419227837327978428285296825992434696945133364825552528590323404190236025327248548913479171292077659634138781523930545003533471099849706239207139171744843073093772306259958543128397571064541977092027676213313270982524876985030111511416816125337520382535163532027940495523122655998343008872707650771613230808048725199451184876525671160158085515356375494517666637668749938036677742274662983640985820558281144364572096402064139955435641219343790890469502205125430177545498010681226741622203883580061333736818666437276803537253954810430872018735999125954840608544798678704677667783746833581831088040071774624426614908537720243331194443219597754797304944421771590259146107850000509879493045582507932855534971936712523773944375013630391611338156210302662735210416730821939386401185243205235063031825123820155134150678515916494107687111952021500290069834359431292717497923431867337523181935820582082443870797772608505108598948888293528673760848375334512156323273320979334423542881096960844061267652541820247932395339818782559846503463738978285873626049495632888225725808568529069142120498375257294736155038276026356147904205067227042506732570168525737921891293470156247652143015832880732065528719257905384388407659111638543639665006056944714794904747007921011284790604475626378803456451562644947114575680754906878928940939076525741091057672168135598459160209614961985320851608915438562717507994985947326592422527405989877805086205194389206827204486881929996016258460169221964930042034691716713770895238096717514083337136219594026223308728212313264956375771092534223084923998466106333300257087891700419447230453717746117828165139692984435951577335159460397716275646168076722671604109343374648097696661003554162379933127833695912415215410500540211845697725609159004445637137519904722609961952923404876520171496832496941401958388470446125618756340788310559199677800192844487139059962778613201892952329336718269776495290237901142008265214483467651032835931131835477139885696502713749105721773188578530826984097899413501485898806605422187283523965370113609377766218644178857429056844797638217322585671982604871006161218745789019773866150960293809279899007645829579067526894179085152332546440054894007079914642384179172976339153926062159462580763405781263123959965188239549830407779579684845749405967723038547740133517889529044208143101738166673087957271139562364894437549428698513432576721709496005042425461096267763430187914463953409127771607668140331478138091054476092889457471090425827559649788893170515770345679841925318213544479587773923503032677381684097279765820395025515563716049428801293261889568246794460880396772373463931480655544469284563955770700138938816127783911263675746443090077888166324188370607770066794681059424411586704306234419914357747651093798782075829441972453177648047804619967261668926561256795743077146951568930650782478860043968949100372142618947220898203515256152530339498898838886719207427573661190229038459279748330161667599816120183694441892646604087132583698798043763555584349372545635399032475722449798617150312335264771702991710394029390044405862780406806670421586861543084823031945052541863415681864792251754805814794809732813096033128883908717861005358934520005388155485933135455324476103569417903632568868978265392847982958324774204584752858368391397979626177259874780940037294080218783819307449731433325467629551820103256052982957179817203127803552919280173530426329616188153577784930884485929417208745845514353348658995201616379766160925929453848348178817051196390809002817586178991066322905551153405143355548382538334120097853450395240890943109011233089703330717773995565953577838758045399742389054910976331693209282381208918732339556168395957133138939978498424275571860730235093232272012172293468945554047030523277416042482301444597880841904057499851948267928692592178663181012758455824768229727632701898589642737302652353743077210955479670413959086495213559213471938300107410877026227569219893012351381637562245315755088475572231314058436648204423793801586126932559347064935536264804644215690695355328539166911666771925822088770996228894934161416526781731514934554036784221004251403555529380588983221210868076215628498223455332982034273117934149191774732005150277204520361395403027328272636357743288160103048047811651037937754578584547744743406291129049783784611449698653051738037961727624708891344453767330578454898632852576971485787835206574049022095037495441146045934709528124744044517793893456283067510683433628465216573802740217402121517730591665205460707540491703545239795345105764546611503983352075396833743955613067822774007159720689755590414314958275591597031839555111558236199091384171097510828139902814847005057273754074924291356686041578438911344807615760116133132800410315371948009699201538978563219739653782097216957240469883155980092053955754292628752064469516723119714866860502038711986468851730816411392023567766657282011665777730375631907531018351208682567705462981268123972170907696775736682854647041320462232513808609249486513066590908787459312278615469736246860354103028439988177452414398563874728305154103522740147554583514700246223684294667895139649907486637142464302158719727911679157491619769991593726034629081842147005483424771268669224118804171745699453057340700644166876672137373985020703046299790316339434505612478233058757915854304572566402176110022421092320559672379440967486109899657337533207414514341627401316601565792758370548666409595549479181608322324665368113960888522630266764104264756789700734881064493058892791081944674428165398095024945938438809959259267495851618528440873921096360794585321252428361362149076728498727925226261798287598029843798504343651795176439678230098990187402427380616293798111943474166237488343402875542937092486699847429396711117040338678924397248518853755149120475015784759627940322260972870815795541833410825382320407606306210546360465858086510830367883572512690317304433807734751844709993395910278893912479674006546366336220340532025428936356775168362446296131659447936703350694068296936825015635405972422070089127002432526587459595151079532384412220296336027768395075328928865078623673808740608310211516861638633706484744145562590669504454353589458714514161709820100075177142500167615297389280755348110586756238203150853819980372404581109708569614136343864371549475962648205083182945163974886200652679588451380634861746717291641639227069631697571960143254561401902991710797965932790399983492434012918918857689546131901149449717708172254684634044960219552229251324506768530048740004477434423009830704186271731871540279951261966771331582024563756627657848240824400379284998801980936291193911101320393165083568800640378754627179021713912639700774870000618148057758239922595365751285183348301826047616841262605728702620742076507043207712162287671112586131193995653863559933697946281487593880394927257229433273879784696265472674312683716776093128681476734105102589813716621575283402926203960371553773216029665553219830281832024406568615054681381156046807790242130022978001102728985622323590663340874951560721113756820460967405989653747041243038269632268134282509911359432963873774150970368111480947279746440101396259748338667673225536276606127516651178489748325794225470319201549408323862770507403594795289607477739070455180289656257723042702616612999718962994111708710711510687934792429093950120542151502366208457249732559536746766914410359608452348040663417554862013322306207069977133155253479797982923997748355052922437987280238989362042302697098946688792636887512028996119696400689342268095125166729993335575795400919061166587315159718023874102469320040519684140591557683478886406516811213953353361309260440996756198689680370591912565160240135797960129387999361686649712763310233140123954194559452336785336881568026679004849689538526669063019966208922002681883761639510605852801777716179047081553817327278197902193330353071223356276153768328871496209953338732672989236043315764435289806381764564525129846316414275404925625414453465472693819971297565194201772768726117631088884774004253880882856440044192626962286040863527763813307716514939292377576306708186260533129601259562064644443424473712065848035649732210999264083042978422553630859699650981011652190064028183967078952441018620654016581164042845338560384836673367783408245067270827898960509524574193946207855880567301964538512497160223083503166959517878146725229248919443662847571272584521039214403240743744339361584058239651163650373969330363834136064153858304114934555000635292851560492262604370483836370385523647298380306497487465073982546746298771362306103702479464124224888229374795778554481125077146861065478729808976028529295311142573064237725351555079798384715694815883963567538560341282034642005114526036927419703479082531810815263120633264370712850933716332218093522298066649419598437557078764433979394422974162413654683477835904393530793104348521860326744709707268432304421306447128974781582488487917230393778782927805157259687696177498879165596385121940887782442791968740935056513727316704354481187278812147106906585760352125585104775963915416044003981427165385253135633182902264180795574627494927239685267568601522269548202804135680500112179587089822571302237782608125269903339684384450141995339686888862222889671760748328289139650580191539230513137977156440072635946587709984053029728274142223670767829696674135450531064155917595544319453871368836263254793870938601368617839103461407900545527769057002342562331636288302370331082653461650367432241976274198212673429306226831329392093459547934030342446363027416334745666504905537684463002141437203423013457087661385976680875339627526814352456937350736764288010953294209947793462453743804806006600617472777825108825026553954735388330570336319083487085197330170243599393129648916302785977205129999680215871454891004497788101543808828731090334877253710225808663606375928019209206774433127693382746266856548665386529366208647072344610475384661563797259198550404404185640851380729241608225277897052405500602500127169899145056203440729287964011637510620705543545795296076750048094137293957188862334130464734736816621953699000595815167863858742134770663943798599495953545466751423767396790283088704281539711889249952162576380599728245245129468724038969946871619641867330343294966028358998535596914795791824194753668934680867938478715657080489231777010005398805815619083428888883634233503365683759950164638968680309282458069089496252051815732224434474577781768773589691272138989447268554305685751728498666173683313463693315641217215978369094115169276215643417496725966304840627525167277722472330138735526856094308338657491088266245069550001692053157346061030066923456370339816795437193158484332879763619206653198903784263150746668542177657180968157246544900414481394209983723972657933815278501955682499847248092516844107802589979526777798744570917418944336409480016788733791931496029044186527885365558597234881939895296716122241117426775721619413820456136666770568282074831645573926586168243514861867170707335416012878275870598823702112173119670375451146411543340556664045598177931861479492392948864967154229948848028801131165307303834956254929952487830157814639775856142556790834739667836271637369886980507510147256371402058026729230057899317192120309934961622493272427267021164345752434909632558190557850171022572509806689248267942837822869599088657854219490018598713749910358504821565570552303057077765802326713803828337686831100201148822956570227869261693647600643276175614273827628305702949218585173673328890903019782686831923468889163332666375852132208598460393126149479320018312909593201312132103484698433386425542101914870889102079863372788511664089454207745660446711683906835630482748197870504458692827241225489551340467063000875720013886802885960290897622122596657078859084513149654675190383593268470642971911623231673343282778047881723451082814260198379192557041898601368822906412252899126566161952764681556049610998206344191768883032804721839449441118640607347807944735481926822647134525312862422394743482128242175059637355930299081879671862394808426022339256313878086086507613261918360523109836044310245251436499321454384354087633854005686971847023671212148711519659063443421310593826544547344834239228162282221946808618318314306410033937738365836566362235077467057238999907625750201763458683238670208251647420878644762290408088771625732908483234576370357441783098445865765553682713912838537772638781132076491748602635333878842733450594214430805026503874080446857815725744428850570173459486480865159013819628900009666155161632856625823664548087277557996695678382896553084213918198536609854157454323993105499976946181559552234646154965063905849666314831882647113924159929079044338854914160728218889009234920547821540181676280541847471646151882952883142675065585840836001011931399509528733938882787092018948626993100793682307390786444992338741568056455380112462217860220508173263272389371192842992249593821145209430113610012659051716185844894155150298975645113747029340232681676610642933808344571895972529609302432709312249442715077246124529301613088151736971951514631963089643448883587780610788967729773910932322028100675158910278726544213418227223819591158985075169612805921169293350212044141433108399068440859823403791096574559050262734867790093819863445191852148421155853861889895888998279290929064556648520590309595811762030661218428824347927667279791891645112135832410108064423305124808647346109146967240614450877022294811538014621332122750786900352976210105454844070545380864107796420874643571468793526750613864170702467535311301161217382946305857076137633546331961841233710785452278322899187192191439553666200880733109495961688437752528345101652083124271015830720841872380414590401138065091390932864768033176836504333647758787221668804738647180171595298581891057796779548599990266219347770197362859707364304739845841267588268718355747998893004912051085987508383907313113489791407406701344860384844607540848680214595898490161405910614958434427852248818025177218335178840232023118502329782935145794286935166405314425248423985435383117841672061022581031421056195100295641365509030564636632894050140450893557447512008394431902269216269005176750933362768645692992132379402688492472800206104906976802569643160832462236691788494537550185790614709443219754825299280604738013333574531004644440735401837025733649875217607078442117350532665308541707228588008358177073097026254362333280078670934458982270134033564182132545729413868688147851317366713769764272093196513246473406680382739345142217100404826169856365140262627071119468712508934531075627014158276551564427935384374606785907582196756846531684761845727922936556253115158225612612743758746095409773959051401591172723244378027451820770246370006406056464955240522307917721651492268661966701155294178872256271018773386950881007885558592981823758197927988122960542084358041816246391485983785402240832906343661742140857764714422070608160725374173088495992603367358701608117974311106003492654972419814944233366467598456018010718311809473359288090463372974085908535878286821363815486566391341277314086880162700170342954455272507051981042859290932722548834735415128855772662762133353781932101950557247151298342185021714175620521932087878833407341434190894392393662900245203467948141598655844325982426288252114648018008641709043985318166222197525879707984584513114287093209613705571402089318004268746149218929159117311640525084356865293130188470411877100872573659234388728767031896360229827827396664798925863910411045064116689454752354227909166800972833533563281092571247441568142924607768968807136684098728334366293975649609667092872036454920021023912516462165494796950744049500790400379338479599105751523577983047400978451074207576175161860474970477547793760862380436867450240758784568301725576736395471106949233332268712674767411327931728605766466770523755448940579985970965351688597425955727928472763021758478069490700770510424442546182838956199376054006671720612887035046933773379740122063221682695972087823406541555156926023926667966450376590937402310885331981936545627388859346449572182076959196635153117316708780130794877657064017050296894987320392367551535765935698083518661042445392847775219402508358672980522043515580980067864532711472899219487068132238457546054864824828481757948516915260912080077586099648704621083796530322612241360232575050239593316308627095533239295823845909978138171899498117161316965763898311262582178114145166961810022892724317635136539929053915099156389067645050502955979078996969085678549359025233764373715116083766001033629898355564638786333293653601867667682815704736240008738720625811785179292362228732316348473035128469993191766730207354385304170074557953726902990006691066361088059852735247489607353677225564937751671743274831018831842785065363070635734748905410024407805505532257115551656785126004504335462011758632390689549406338923050929936970259635794552303275503209419840541881620714665052378393608524436436274534337222862919884694391641226315089188752962889750459547339592638561825483457475024043653395721564758448672102232944058592282217524847356165851030297252809033434147605584194371125066042547343937442482482778060572124270676698929530751655484367694042570701507125012905473758506362501421921224084469993585210339628614816391765833370490987358155611987987098011284692012396615814321425521315952337728494599208700533688996678549448661914252867395925307696596938926836352078535456206859503361517776235701698104119129163040395157096507207928213285542637920721537239196247014461900439536118575114673734252453518666319247201576060994826519532552329883206738233615855279773807777814792915564864446624333683756184162869548810758808493679656948275340753533048697867749082329846871194206341044068745580451364974831782822297611494869617244959814043164186875165765201226717146082847344672856328011899255296694573847720879021380369383540886899561698757580826602991426511952843216547929391336770760861637657099950535435732523402892937794891840574978058377821424406466021918470651501086297145836335089311799665884608656560632602215020154133775376281886287337618469442917546633257739596967071974453315882093652408389311466156767729232943515222356472469325655225568106631667494490719801026247762752269296060302259940021496517383611096127214619148834121335462661884815877565007072386955370634641505897739121491011520087214751388243671429465046941436700353487791927600113802745781872595008229639679375619307645466968880826342781011454749778556834460552294637999660748032052413875061870924850602758004672318185816259768744164548638719694834161826433857088856006247218634965377386454798884730854242933956044219432080284176312562011837534121129839627425101953123657228987484833123506203849927938903053708067454223220887820263331646769914964177322095485215315928280647673986553433370569255342048463447876536791107927870266407711846277914261323328567569389708238333489760666419390593251969999207979462326898693420288264111924759361571603787902994772365891124361468254076911983009597295003794037591912990377008627422382617635423516323955685761232300096381667029936330189561023237661510763795330749967440359377220350816997775998688626886518278227204656597605469261966717544568127901862678532000413190078666516587402837113421108802146612278126190937201863853114714809557136310203357482651043353903428545544188559481765523180524007308017191351696088504076542372565107139690317621689739223503765869646377865625213048635783319973706352051170670563074844135569112623192857474888880998834020282739855226624839554251396253597346488130948061113413373017677156481988566360933851989526326005436115877468293050753037656200931248643825197569355475654527628609223479453079815965072118205788238918244160246099841003050105783941192353307453014983044436529110125147272620274922766673690004695518207987766041434587677271923978708960615983546657875667920468140780921905310000264618641696656996522820406080993549421070616913652674334532494768706062509246785415889799561069159401352572058411418744293330842178844560805103694448596143688136105258822270131861139643719939144251059341283950970972628726947750244759576093503566749658456553124084251560716536724796779853141044514519217073664791142547477629328685390436569375935727504053676889594215895181688894759999360937179372719006542402607617897039295599693994023902437840474686085189600492632055614199947844065127576488458645293928319220978502077369272702357070465786249681834642203643193505679758558369217325001065315206533834948648248067092836816862724870341844338487584602156826955928150909406298690997979509085669143637836556040477611963205105691485636255895652288808757273502964135393275615857691451324189033220160273280692088261054018769107013309670762433410124114539072405985906067509949930606779836047621616422975462692602741920602139917832719273463770160365852814787782489535472373778430166252424371115484323388568111651456040898864146165812195128086222773301886537505978699979300780067260803336690742951158558820521421616422201114085394166670523718913778717294049992415568677836511499973031067587428303404432541673843351891449439201713211611144517178038452949834620076330587370667468938270936710164413873676106346659929257970803660192890972827773756856867578071230485323581947723435915239001133716337402831803965940708715159603492738442726613837648269197775027833728009640794673968029057770656892171954602299493958360390215497229986574869913818859504832977574203940986836731177312268339588822834041860346323610804981682003518452913020235937855524985314029225055788965769724439113596556072055087143423482299543648372415483295497916569994109756155867526974213341672578761925415025743191785356665527786801821431365419077122537275397797775173304145576875237162776284334385325275078466500404792810997744479897073544402940985652999893745174767522829843779190679669333426467050519733612465358529646933651657096420567139939267828912329729768260207393815979215497836322380763991720076294315405695414249571202962385946885187128094449036775585779504351460031605372652626670616602264379782285204329737147280073318145444296492085831606608019278666197514688254443803013369633207846654272672899288847744095945383594284038997990336395149837818987700639010060491185386826749774610879826447193207934505792645795286214891260733902694968066339946032332772647304052403284025038084561367607432223839530926768489448362538702733536361814044166064192323059543415936046855528526164672829229864500683112273662792932325341247545728057565464812760291621852031710848735571766261467821705464984512545727392349066106368367066847446658829172878922867084415079096415158892526170526621733715324483870031597751154438865051717588718068759687785016207439218316166676804540029543381353970139682668812438848381634335137721840670484662764258433036917285723455397299599077362055106064095961568434750570165989136718728259736580702152626394324662461176935848264193618640923098205362070395834677642855801404636507202318095274953455751315632067866294494071899898580220123731082762861634284989940723709554983040588914926250687467762758046287145428456381797419476830237464334729638879156522656009243853985659534591351472082525455177116159061545702975264439247722258798365061643101165006614924956583365603492738003593087645199104135051223160112970085324406736374062409485961728747937879129664315142709285785682979618623217150928256172954202639108558929828526406181754742710252119526601252702107731302481638239261294566408677204995332091070713872287383043932605109274369620333295870229899304947566221872876266223146826501236779032410090053526608911667090721128664986945571355632663776110063123512464101081798305480103387121599719507522255167597815470230808860758606904335085072216601754416907433235945041465018157972099558503153900843638662974968446426458746878629760401540314467320450164547005279778011751654793944539557873951202188533401516094837037250284582919380541539473752030707703257605108450947093950096771971210269359373280699802788779720802161532249435042449756519409693238637594572409868308876898394993673615710890669236260142984438540466397528849149136442910076802332835258962065335798689388007942997005733711446729008536898111390528486840115693582047305291421013880533663662833951579407678289216153363279728480795555176126461676420839989598559567395992453211280389945009399921280302698902985855394860579161748977170067370080534806759800448420299396446256769287604400640334891792569610327229388844040546799430288497961499805022005489824006885626837981654489740129908809992813266813627279077886139389181876638214189577214871598853265689053126852286090266252256968702354573030746760552643724879749445498572015951087667340664452019774793590824391143734431130411618924446805218688583437781392770969061200421357916471022160735055541406339439477850102375883877740383923383533066744010416571163325731421164084216364112922698456735025200523676414777744096557442874555483709196892128925220806024305905611500967233819602849713576719724944777148553528199447683507740447573807818384672336234732333460966294729066881848390956072230473708583823174256611740286709067856121965498284772303018782518570621216738527939809479603037836455744360563685483056762868591096862592976441425337734655466099372641408058499784928940257623578833011681989750555548018529083188629112002298475043843092868151107008663188432588695498163614524425019311465190553312785223915655930103464176799384253245090717243497124563853244721366391383623493941700746438204465132217733091719830270441814130547610942822769669343792991822226602303993379110709359381656335832439691628942182911320648576637926737697093001188914580421405211755221778449948319203378185178138889505304818592289282998117973099805838165249000888580161202215294265149005785883170793938130295084959620825143981803479927455985215148649651618967261264243495565381838950124476548911381325023350821675377299771405672233653614864630527099135613119082757237118528220176717826606557632890264424232654939476572284053307964571219897157203514814966060099081453676153644483600890996946474909162161205856084896600236062102253676790137076600578172955676811230783265455448681509851769393505692873666293585495939308969115598886932086213451892877206851873005779037047719558178588457670876878241933334889747518658749363721715185233659664811794401795340845846281871301211328774265493055970380416203813976835452380197907951325826888741762004185941220929641910872574433225549441174025755415186874311944092909242689446084661958937526914629876243688725974505205807892454872618258884065781313462889710113121974093421848384722532305329845643506425017666466073169949702272855022503445604733130437884001447590222073833044219059426204660013181860054147961096147601545698787093795288792226984291900971945529970896421051842348543961940147458386270412041581537791739024937418259941150939601537415870448215389132142402599029804760679626550092126244809576421954218865525951432500969035916218257545031254570054463266429732605226188156832951333830117661753066368532321121261369835126147542447863876710432909686968908720088784154645175562394198862945555968753154196548003016956723636680717454796569951312590404823974258768319495788118887801430743137105340356635456559543203019686994270470957922159874103707101497637985608885495844899304122381999326961558786063733493479278399101052192473767711495951669596273069627458934361029401911665558372926877053129100162999164123144587081791284383209095713561901989959693179855261146218560854754644187264910157611168103746170183848666465366222454907584103179117081106907697529838772872879893266929820298958886568590642740602932251681153761477451762791814690141097418566337417757701225055325595106344952374552164928159521474582113628353158081090144438075137206585387039769145201599649078302086745526846908727460003583226535210266935400181321048490521935255013507935172263436385509733765050929529214266566968620410240201996419527983108764562753932374885675030568233488139926236660873803710651493731246948897813410717225861955823765135995808353385098438409566332594080838863280767669255251326674418218275094420956358414102298168831879445076192948941808795556693540536049010230775787765342829783174225238852227170605584312071879227116089176111987351052477908588925552041558932968853261917153354830581896502643964694107544146080101419815705315959402721465194371554778633910668594398563743147747635383667248447402423897284560603157166703430887701181428374403987076532472950156306183552004206560790079233635084234762030852079537527753983230303400502185044515817075987870523930101942995212284520879922157977106609866451252751840453343892140600156070594118296468557381672222942672387093247411267527975996444825468076338430403580143482628642019764762229385139515508767816276471968773040736164772601232720888749230173531894283624143794934755743209699646548637674073795636361538067131828401852809448986621183579178217880637005748721983368820415826560733174624693516724992899202933025361279312519652482450092686838334160330353564835328415304928301591015112461767749833705137537786416629568747003306335104141267334186086200668263305849992004524425381927760178228373372751134735743225180249596381067457177374778173923914589239518954080927092407239968131537268967021733409746590434035243481124596044557721606174711682346892142477830898745901577771620781818846162532808724431609227970462645079706968359496784587195589977501611038524044368118990707865036732684972752502116164630549803548473639292830698546157083695866918403498985286811772665480163839264094846255216120311791866399762602958874784912631091041505832802133514319522172297418879411827344975461688952988821635652601295087850346255708430139618012304244733329273920727822078897760780077691661004061039907659823477450117472240937690294647455715335772536158962589145094855241134785779908830318965588036938453665909352175907978562381747531674405367469982467840408505237864316690833100025937922487567365518137288419725128682350729538886639705978466575669360524508596706713035332016585427312467736537808678425533579834832978286484377762360220603008363615797857742888732379171370750622624505852735001239468468044873598773271351303633631066897727826257960699452428007397589210271655988713010738892990199025792866511525136417007993358004233395982300772656322190643611289240867614552563252673186326772732735735960912194269617308597349362855360584631577873688821923469125127358331184988569727333049351101051173025637443045053950428476500582112214156019219542103985127838352718218519728349919176359014180923104676331053549527113597302064910428207574010200759742183235626649860175239089184823863788443285860424942134523894413549986149884690619515523517209585452769231986670086703227378919542215233561851902305778524734027572986455038993773239563327585823022201306776643401267078027223194731409470515634223573368225651568261734941470665175743560858145698221352032501911658612098088527643520790872018590314853422807113591314155187703031781206718896276356244022746845796565429320608553844035334616884096481625185828497195649025230795757816206577457453029087903988610590905231469936687980306100553256634929274502304214130650312130666286392944027124814184220147644849788713001243447887089783370294955793300692146291751962606408106710619396444159891854178593092848451826102442046255843377062676057903334982385175054088766588182207203925258439313812409866859101265289497302821078223766351200508446362070715174971993336108582385047906858137865534029008575842343385618478350939462125557142721714923915107435159962936358183684046531328118865760498530414245984608095693672512743756195161141659846747465930270795673332657661475595979185468487974366985543366395880430476368183756910956797071221021843603628563049815096852107808506375510311391299847281437044116087740143637576356771363702334757533308394474178774303351568360940235029926914440852711752948172246930218229780758501601260760154601137559170326871041521406674274914294865959473457140183047211457422435824956372312455944058119478621542119849959324946170615194081215501234680548876366864488964875336787226335960726400938784195859375991143560069090238365968228651936793741837428356978937457110911577121209304744900327206909481670341763123195319356349668747443767716496556295454902887755980287464803178815755964873679845293499631350275087800366330830121054553864977200133273854629903805821479983788714666219139424559291749925775288050609337106273229439155632267864144650093863581441511072140657134404355417535753696484724426237948507460696701709265108392459583930939466375780921834008715647013020360294422225203218843990982607478984615699363155935127603952851276860713809512456896575456461608635401494644973898212733969739966930277037612056599253792604223886076441795667127695250221346235275555381276831630812566270564018451056057850636216294600001136750577562522371304201178168234562785999510391390272139274209275392410296002501978602534151481598250058284690756160510241059802710255254132419451150178733178916744530264463109594185111042377881290473673913982466814746450728216395885901421470352210196093556601935273786197250398824812840013175700912902751290112883364132076965767335087668896069437405297293469568718735726965527566237438695644536338665855388016455386614525215931513524050016371507097533527636323908142678817119298426231041858356408901716461967385511236493541279732599040271533494731537372122411368982630143806400596566026108709550156796088294926338715702718334825082541262908910601076048350834027909543159695510872022329578416251948967969323226793225688466642616933647766855522890742336548173737099090058706695921858306131106670592422996282360561027344024046345539276944906240554746457349639175845159845420067465446967132863992148560751804169082214801396831787676816609705343128477306579965294418938712483529596511637890876016907739025126128000192792141526352390796439315561394480512228112281662917459620270909012989806142478330405336277057184298722113464262948981386673166765050976364045745133357503711465565706119362709088639329284517691841560623559032162265772705916623918002182213252028183583307372512851496850577459193814428232423085652780300437756474901264128489943273210487097743713061453928140950228310787916714077495430797137756990161691890096899123031042394621917762790130547964050686595255978841903945926866471237365317097094584019533014059311852577114951091227676115035004935899456135340530051906188941592730311834879810004661144925635501444469965290474601412901448904175218398985872748362824790208898165838642719205484118798767567569966920957756942850780617264366700735242897634317599956230955465486849102315485835230816088485956760599378878617062644353226340875501856027500974226300990829826341658510711141013033849079596769021743042758143115935992108169728291123567200721572012002270059693733115138765623024860770962759259250575815152801911833179453101063535647560577283164431780616546125900251776207969994898209880430539020134576116329939374755416931224343915847657412824725221603968743756707369266461979505575248209896058161170570186329652215038818534404387846906554480785869965130778200240883280759479186701272216753455730213776315165004881168928424309536763232957274327402983784190066705727677490396867838842939431976996509670518493939485627879838377483204809297357786893535180181933410406593868361901794685729927781598689454089910114248729410342952882262323915929455349782709792117885405275017334018043713525949898102189547757557184847935671548126710836880847791305447178657652936411243250557204673170825052027568052469471817621598032780949312247950769426741197303168687464748854845856573360329156188349114690668230871573426804015329488908341401422382971681989154528399904687099044361422122368064533550732490071453753520489153769083516480127284394844698326652846476559357842045827178804552695153273868620041788774577282018136374735655100263904617211440634278418718241746284205224655362416771444545044077984165041272353830930179947531871265306013323291374945420543102219147834563377498938649769981554453719237427387577459365646059892226080820342171974399312432801521112496399954310694997166383122226562178979229950150606721232953795143492780443272226825853715101723610989303918575441653003582042165898868163160004777701547803985008389680260549634291901597396303343762596213245891377860615944566355530112492464031978322184640419028790023403737176250570193597787264236998875225795272094417944706695952899785214498501007657734323917376642812808387446596096763389529598043008866045903537632213334080593802131322956167070847185072330871289316365240108444597082840848773058332486423982529303012286814324047206796997427777803902503952285935514185772148989168518601731660713644504526396219472903785313507276098795590462447415286380466402539701873230031471535510336024109585997009668800999308885177629867812404457308982335742086643062441077516438686497423986807439100066626906650409436897117940390042057325002784127707443070552578916701659736076347890464358640384326287504752785909333641986044313578522910196946143697206432472840027722615416400630482251284182048615354408423700461515991757318910296517415051136973807122423064413926927781024494189131673177573010259310729531790649234390634641527210390918011229746642744783526833040403885075489221860124250211089307634550239445986956111161908326506081066338934884321465101125297173364352175490921755840927130269744263533981291019166638218386010805858764180200509452410323271318370269294868413686873497458992447698802507283773183825371327536855668345234917069298111227674085816163727909602911656922266685565623040984645329515311822450809121251802929822358305321819844180025138627673348386994810464398017030196993843156479263785930884098857714521647390751991405067487411266367896264948842556892467196637365895720132597085280960833372078435280984002390894912999636539009856117232026668638055545097606665000159955748701941674807644976702249468803963344966352484159802010800200915551429804183321558543451473049854226123389739108718888276384269813426827979421276711885414542984980334389227088319003372038277747513763628300252318004048737510055914705630825639565160159768976970573721095183576031096150924063137310943589665720004057562299907928888713596681391906055922903517938164162951397108013055857781230301590456222021731903792313382911343885826476255375219994945220918000473732159997502813951799794622347579788766074563169362213786699357752560732659030448842186843949075124096181834144015461607126586323184545951767224832817226381933783002533307552836274752209817444194357725554512728329795227628719176989189634948594689170892752197567342025844209459026673504403567014010665715175511740756006008598385026201071703989968866271310482341196828318013455718410241300192618888853967693425237657142532906660500214532092015001210742230602585079989845808247937988183320340199985291788149568519472758726762442051034970893615866497047789296557699968095815806918754888866698940508427500620285281254286568478690085713618007776143814586439868259534505772054897286976913049574440808376105843451909331209595838209286947317988636060404314490468005204729312572042811260168562339012810013269684438475282371172950448487339966157236942482765689063394217797711490584550133801927844699371776891753614696986422267231946707717041522584747109708867661416395103340926077243282399977022540428533950445647870137702345693566317748123446794425813845672497098518898037942070853578591289266556637410037594588745432103133074848798525912849383378949590640712076523158235550284602167925841475876824737422870123521005183146644323306551732335940018635653798534879683330207185364987237145315645765616057004844228989204705019127706110093942656454516935029209130491283746800643834972135273255162193122030796232716386488545046478458683257169587418932334836099313290947565449444694986861585605933908572135781591720435870930609152609515263629228845234773292374341477667995802816414500680442748666806009689962157482402783118082384982586860766710881040712487483134432905665202949878674586322258066540908862060177318327882209764079523472907792222894962433809799591825196131027762965660487323123677340392047891961819959776766683461734233683676625087067181921931738312192584298463753723163656329400434197562191352702478653192617898930537631528308564086082800334548922857834282815011330403102824662153394986851679079782615707543173503884630727064633097993838096312756162298863145772742224724216924825125311758227118660261869935614615748689052684840102473452964393092955358351073712694232063527390715376391941023943463311125322845948639887219826617676204580690688494560905178985535725589247720485704424257347006517652178164090157536896168369894919591512534298381061836323665575551086522877099740999832955472211736132257260336494887293735973110957845166224657516864048939863675032308197249593828860388810382482455559566996112437599820009502330283133762910050899576953788140903568666979028210061944570121144967668419293869283156261963436114659107869524759324050540008260252806106543414907139566911457788535994524263237298802406319827589826273042106288258978002979913840253892666764225866735048489372566221228315461021336195937361238125939698242718361918135324585162598859887989079552991299975848509704850617741624720773458985584777260538899094660758889330762395732892525566609673880333376116225666742857424752034111571535180896767076148469829556439676906170811289157412241953201446516227714996246617735107377053172323355647443152504797733299110667719494289562519455001873923153157439104386095855749469846019186542879137374088901783423348702523369408809226843429324696778916024436466745306464648449967363306870054731118839130398770403986827428484043216972271743216738419631818747313688065362898685067004045038483859171224744432525850262233627858780583108524184364842269920853899994406949393215809177504314893120679065673742705495871545317595527285242344874826758276735368531215343533299727152034841938736777759373071507009083766601979643373129307800682013417952842386689422165465233289007373597590373921064403122992369781492059342079059937348812233197875963071875209766181603496568589416072328272192537304012649845498845822032028349489902681493137370828794559767084347010845734972761935472207537075784419109654327037514021521321815150593025935535709947840183883661567551879882234928264545120905415839595527633911118295061308630811457058443467979676220151104693920123534657071453592236602819302049408939077181962398391923545349026636404935881552745469756189980636279760982464233208019387325798392886226293782145603601235501247495726009842158571715738115863543418657388925646504701992196558123160521872822804933688018773400204823579966840697465779075503217205265845385829372972133406365024746314484132336193837410268609964258862687754073184594064384790056518670208607070815097930788236471750050945599543165591299309871519297438174575668609636745662366727516223792562864677496489359192171740460699386302514792512166527800701935375342877535615849327233961206356828181661723583907833255755720589766267136632357841576708740221344799148356928763977447026592469227524976279754849285627109451552062749703633268850507550040332973955181685746516661069597172269294571779918759951787736252523131796108277995080355497129269176259760130027425013762245339264113431930045642933566186832808762025275388124297940532472931664225626453913794857194516071538196983971831171828119457461796967795465588638504491903433664790943267627364667801216964796474051375386442908793197120309181290313106812183246676502314324735809695514523151806701107966709734974352317683834891286251552986203876367028550143393679683956147440004038368413418544884007708817958285791757068000294634755049175757649167425928532193955738227962634915755126751289806158888214551126768380670655188477853714844836954592333948615464037698035672786421379777245778076931718024762818527988990991166940148809081763660413590566468790939140411539670194150546422991092246680365999488274832804040031335117705228177277151217856489450523208421173360019405247126236857159625354387772352328143835902599380166850910886441882480547003390326037551998152862147657876992821211479957016438107220250783195592135996855916019563114782596372526845754064006185709919790218512261529169697032130531801128687916850607647162380044905119223002486460146112565426392719744501524347467327643270785192675794909873461513015664176614686079671108116884616096815494949599534507010539091642979717406580923919065663136863861438029163974073287832152379188424620612074831840975982599377070676706031729200087370529895132327345542668163052087071649477632247545340916828054511375871286259070907490750249377032731657197001555431766289918860823721740009603292465801201794495116372686602975029972100864977180727522563600755786688815744548243069936079626123746063925334435991077447109527287373448816856067328461388317365251974441740500757965350199203475610370945227242824178319118504678548965902315031739008402049470853372574428771362909633540788247482974643247410047282937690957640661470173741965455317627269407569254175810909615373148041341984855589055000126266563261854902570642753202954653561335961900219992513899127243947966175259865396950678232890832855683234737011014101290976754980927671135891428574090640745179874520926364073804788623520331211677092995712628810111716574186092168127190018171309063352986423377751202521095771115180744625068179677614799158309326142736101415937277539180374294496950906106120736597012843164980369505236650177005068112158352193731502178032431572105098693783613782604369941952524314075095898569091312543700180640077578957288619479015019956980675964149802954198061414542988222481182757086005712873271080150843247069381115639332723035379053676343496337896654600388451726450576658171116982418437836961201011082283294813332882004484652797256889730257660096468405821708662363377164226579973609002771937452427085090512299078760792056367387153713878016532431178671251859993097685750547130402616881501252596029770723657874867770509911956750426088483908126361026876358082524642413051856206710331502614357579000568925154497959611452022398377913798590600478772287076068569300641796853391922991580177173231513408173609152657482473206229699661046056265072591579161092843002339596117050953889409654763098399175272643428909429222923422910176631242387541677138276537966845672074788858631974664422528227488003788255379832835932933778609933677098176344707486075758747957365211344005191102788067871804895422631254973591588482152665619678790569258485664116621815921400413814047885870869596450477026006056931055781819651099700451882303364340188874565886489204347497296031987489985010869430151828916211710160025065064588474936588951270630912351235121089327810485526366013479173338606379333385038747648368579191069745170094342551028984220006639473984439592944665690497198673510343548540755084410616240129831516373275385635207496211683230631286442973006599690307261318500406522883905287026976032517733383835412473155660912819055508066784799073444861883755505677678901160875156530469795528503026107297524829950338148069510022244552907796290225664706818507309208381155972488196731884934160047208842318188573322606352222434614440846061229588100538336100807255023178581780004756319738852591930936644669494032931877401058167988732088095060544687117073872379645802140242874935655194432281817418588363635448093033882567531517042670741305957055196880517836812503155008027357563589650439689603954351007938343357871529696908061570647000458299362177732158544399875876829886856687162147973456009426435198272270931447341955716433429046244483109126076323187742933899098847040528933166193055581266218792523697070272753286839685114882463812598429454241190658435599082314925467714470216877859980173990341263710424045529952932837299004619559725533107216306772301852593338987821805401296482786011700160187410306887334530308761594307648127327940074390780198904685548450044608660942429136600964714595673590380148741794550422438321567752968314090074377897598507139119426059871984020102395185706673483850694295065844711343626002709078959547632036898559939716413870714881983483528528845282240622924369894513382366484962468371829543327063240934580087906503107955862208289045083932174563165394715620235225188883213592721900727701334029326187428531818643750899639323619465182975380622875409755917838033179167546747472483524572849847457557161564835436078022143956411674605478587227502038358134672950568701448303786311381248974260545854052747518571142241003038071942409903871597912198764848729078220549570074939778090829503138931551606971167754328789186072000386802776334830641832477331162104973625036547760077080893842301799071661032741499632409767406341249841920545942583485076325941305009519421755578103933030920367377501522975633995568461220872215120282140213900108464947989566462230956975852938406884648223630637688021246596880186915561110196052903752996617122787726825190916157877278570842654122475339966020210173350360123955106488205621358357682360776371335012689623681132867827999827994173747232302174308744682047789137611243699528650731348023945538196569214117643144739580977524858012022497934416431039493307048601056024469649880824287144067901342894583138160844966294832490940291266766991916142144159895596326453635001828322962403863174161047901275211936864371362199109312406101774484820128173653187822303098820753284226499232853992939945216171412276268874425570895519026201460894545770376126971488032271121791263867254667663296790791998590991419398662506951312383527160155127383486241892610503825535906120164810160758226619111967989320849642225441222354990297925102427077468245481830350387711344607091040607083256173172119223762646690116320171379994366728638199333265873430245269578596635555842930262496004902076283200786509982278843309884646704519134271972209096674316499828067818544233000507177157022051267128679364742533292194427477449337739342778816222665650604539639099407598189778789044908120048785951930939663803403979795094112977052217511045472243484048270736598155711725008187209577505192368010138003113372517948311491865663224080791414854489346339894027101496690935630235012158416735401095348879783141393221609250896842926179710772804730373707773530810655901833734619531613132945673232490514011899151258671036513175380303323313771155241812206715304149932488820702308214726323202592808248872353200174752411325346379206102769333385124755915640651065775264019356602883884347675190124574247425791610612259078634102743891753008476206565021082072688535332241359537991408627247987656336943244083278191605706582830584479998141591262711486816307340750876145854390672972301185068112648789166720669827998320497983078937109607255661808494719942541060490313647627252426001358924982257680574349638445236201025663882976009886830990865010898287225945605988806715991707556839028778750958983498589328189875833512369298182085848791064760715495835725562338988141308172751340024284247133235607160742891663116350923742002495413160855506737846398814891971802218545421023562114757445853890772863607926707289607492285181449952728673544783146876071701891414956152018486312885012004931843151257892636170466645169695350383215739377641356894272677396649977639135047624604990419456868713528817517177472852533483505267675572007854110526112095726994802893615150037276144749485572227414927662615661966520676921410012186182052701131533994388496363124413448433394367803903285097476357535288993351825064496284933146512128986043168236239071289464510757488688896944626804285873507344945788731416644700405237815319608118086675464973800541899133416180472703229448630893000837348548840977101129584938392651069398901821282112297327700127760952159761550642019915082743309130074999932107768481488395230267602405870612665779465992028796173099455522702853306865150069663330391737093839079043293313226599855010393813155557467323949235358704111643562488857692322609829053713591609920864106637875638071278168561573124511185015500462584813568933880258627807239526419506660326304050568273143536301013263254869777506824295391398888502989486492008145826191123645607937268082665047520439914689892049162993337936267050480612048487326193768991580324202433257788861102609936266796456887245138344708799860460306976758746000701215384829765625247479009305288127374764049871547659739012786482744682251043160742252408790743032912227463681102872670619347030466558351399786471760262354289138875806725665279775850496305010058515622406983829426641677660829388268884967048555561290924082548644948472481905285624700924005684654594907888779345178857415728412555312048577175887196491601663937255553924247415643887394119125904468212701737974975422963303231631124405378169609718456086421441135775212457920068394649960743659472829949359686988903671429795752840271842559262360839008732954986906273083944117900777319807768835863527138216493294051304145296558791888347571653007254649853895834750279072303046038281473317308265641723173857151565899705716207288709079087321133330096535081539559511830727400323789161545821230079575316266607244047039784562053310173055281084860563562245850754409935761567670724162751217945650862986787263205569896921207942116074175040204686619356093023035962164665844442310746692188602863067610160434256633130853817628634129611061175812193346374368158321836421130206086972031386822681839410268778103141211195770604755012794778177014634843284454120790993223291929949556588486823219447619920909602033671393791259351852095210357515748997496506157086263210998587619572084266313944565156800697336355442531247622000684564408287988429472154693772442208437595091801704886960796824720504249975179754460609714119045213454288193374331552951557050373725375876540622016389432730917195604200718819380832958825074936970275406282446585554293604004149181039440892747023051282771908687392681296825501427399270736248722729237921496332637449738211011199850689755109944495861761055667310145438578956175053655406652717937431978365396732581874505611324111341824637215761191713688690321021870565215438909901515471872906275028929164797738138337283593996809439753886414927009676844235138529241092011514967621191894214026313953250954537403319588007173698241350486102998609505097979064532414288824139717154197381278700600446753772396815421132365892469522459632227877964232655981571670168608870766229538254161791640015101876964486200413035896655127825173354870388948582956309764518434807932164173430432003978281803342297216636445173739700649078328844595229679255731869160060424870991297565530956304167284453745875929787415389130883562965395398277285297603770110566117714798372937918351042066301295133923343886839845223794026085365323235401939175700699445116569954705317924679753981127742425053153734328436091265702312985956586382727579589376206369860242649419687818558588616374025855027942418708502681216802019211165843889709018041161507555347316573461620950874998048037000096425304230651728180768002556330841679421877488922109746302017794989890031999399351461292814455933383003889735773437926008957437526102561561483549994682884444456930528229491939108481583003762608012859112344959538533945639400185444731964372776891126726604591145009480418707140498150391778785603906527049137093495745411164002727913562118721777627997740180702048272743474603878549680097772676385832655233871548948100654656112066768681993062209358194446310768981714422685023813539458747845184559304561867815517980098511522900309515628738534629539447163629958004550010590485704111287962713981120091113648775993434442235437724448395972217321427632328291907021896445094872601014439914822498028654251430390220041762766507287565105608282204148622012094229174063980058147316598662085246015604056477507465078502994269491154616389253876059832008004940092183589657922085818510946095761397704607529865122420594886765483690998587113000716822385261326281881801795952007525676390550567461184765873093634809242470732780170701163785614009410864482790842886711109769292906651775236994953194706931881927715608410671254203957283338850975184543500572244967281786868444215921228276686546330981177587591368962914770164778560927268186053572811495775707587277035285440047313586267057669888848196406100450101411574122728576918473083380310180954357376418581529708840943490450092144683166733960465750583542127210781145886166515437010337859272391655733939832070032769941499384439203186006093823349668639398616142093731666974054158483685487938674820692751029944691585223753742672809660196190820017980768882989146767567445988166720201260277111230624094342896102768980047703547104545545610286711723083671050210523104098633008838079579030510715521879831978658881908994943876091686653895533749774819722521430770877878782947545726441329340539461031938926637574549806291500287508675939428430046551414115002658275851058705630607344489810724880301598936432664470490536806179765077565708039954828060983929815818567663180731439812499831739336308497326220372985437151475488623724487743682993681809283573538196642060660910833560505691356179432451146116981332034062209443024947109138147646022664490910038955287196497711552012429864950343434835052329877584503054676632309486180762934599955892044780799474888102917360686910929020550954460119330434509986799378538857081467921138245148521466468410581822822629371543952669678496796127710171834355648286912930839788811414407181556609807627398763040821361316600963119119030492510742798503307936458387790429544200314841569642195509424098010582405970497047740785416444626397588397984136485562592878755148567697278342356811469325876013659960544588920231412117801087807184423502639084969965445156368386489343573165500876806423833717749949493908545084579830111353977066517273445006173647718477901511302176904085940176901161492341892456299820038805044108148276587246140038532077139194844553733525211328875020875875858645143916684849031694444538064722397705955789384877506528170042090110598820950771879560403171899073228981747498256528431263314261954253171919694404251759810517885119668047636803008588448043559103088480986746216969963044503206634800172963085486243046347556143382390410600787514159099969245171552497299670579917096364289270468004801110718698018174385251709409190675914387654335294631509557828061972937958196140556958226848360555654537284733475456870749817833959160822288785809749197758899435108601584163473796010703062566665351432399814437384630061217403378084758666309623061070059240624102468381323467546741863140023323276790251867457686457709937557089536068254054432681075290928259145281694264103991624772883024343265378331019414396110967350891424064941315479081249289754188079422394278273188659561489741354356811137496713352235127664679575240486001292811620550496417187120198500915823385948072516400459247400393810554622602449678543397553382046114977505244151616085489535197474163082701810566791741055125260037790699752672901511802000248459021926338948454589261632345695207417141176908881419962435538511474325103394209830184015516089262247869052026850976268978312365851935535927189953385261258928210062945563034672574810618642608530379581928295494832099230060362791513859278117734025805417096076272759934072108061094702930021741821768179471177081285107518900466736853748430623201152888890130499514174034012682065497680022906020607994530654858868793987742031994977893836732637164034087284119761517831218435353252051007141981254683968183483932821344320278470561958034160250929690965206685711299059796318217065938493100791800242039170157603294780676823374755507925509312408900340267987278222955871061566860758113096809289993746283309849708657587192501891693849182549596395393902353558370110527917121661658581546928682710341364324662869938908368242444195012537577138816916308664554867947500226893119651022282688571420063454510850208179573706916624362949722742966057599605864515104408341158648611462823569464583628096407963458900084896068410899046839466483006426582675208970786635765086805599648593396182240197277564178497361493923666127845257013474123723557401835432589044157482943372708640716359794614939017228317668404148810980021205856274454115485099644000217827665117205722201320562444189671349188906731685068711904269862022385870489265529247494205910701191254184861618121233424234363845939161069819488404367063619684135890642102313497966259839721856586787654267504561115491237670143586391035469029583356661531640293252757656304564024989506609896993090053359051734456532976192760729135805444522208885691152212100478810051628938380698324791245625845998008730965927002387268971292239878791081590878125173660222269699954574985181190029047874463090595353018890354421744953719840890989116295284802727674038272362556208278939078303901704693365861946157571265392431945386035344862298176507508743618242502110395102691960917864586296729292259779056844677725233082196511433339450105480768663295046874866497698246460172833765694034194885121470126390479361560450166158498148259832866791926092360465536222396115882724122522849360215617816509529107063178066883419990628330419141790492355967410254677414846277860232879605376011801037449373149216475842303676733593386866980517955358503575938906949275917892544363199504828586621299189121168327467006567289252905361326298488139385256809872269337474407955545123473962347615126351181335150575441568660807373110989227744916941192590872797535602110185165547669634189187287880949122875274189913087703182284091491408617374209777345779953918356404926366433659972417629664148341814939826094407177889919356175569044008616472423521829670498144918625274174223890599709479329026551825826622226049333223172923009433420657362784971287885092786359967942380169180322975498472845137930079287334981012219235057490703213707901781654977810943149417307385761632363618950583485978517685443012892107643694143700121022400437976928648701485786936668876927594618377506516799844161795445132145565184839915836052941214763579459891698953182803627257627291086020551296697643419878660608597627848214565797346233085346738310414182268964385875709969934840704985309395696915450399302147370904282064959691801067318013662521934851729422306615090691303911516975699220526853930506845744481741726579598372022969340124862115567774691923087680405184395425715996955153534837250098251258511152613019430058794090065903077970361193352209902647386896003149241490756517335465457159029880036539417400743534239988186859116911970370353827494346055796113718055781133588749742326342568273036371665030391853545901817413223646602734627841901083318215179874967695588306910626859132761643837604304589451572169412902725842381525652857092654521969692917375620248950010705318245745325964023014323291764548975390423635599737528653996564560543794108506389902423755827929025874506402257565559483156057910924514367612873323590290487182025147739234028120762663554785436052301217999804492252539368642671763737795524541408629913435497690779224498856020309667055273622838579991977512481185208571867434474702256897743520172630811822103566396762200585866490694122532467925740709810216877352328217599632698567009677577326401199696063835378919817245156535852646780602659205885782703616960455528822972577061400727727872688412310914076193017320008560632337868174457774735926491615899096068342381192330091339039176013173062491107269277245162114841099045571906451620099690556655451530288922415185724109059540323035677572090424897698176371067552741635914126871186096716630984971475359191731950807158319770647916536982147539613327750974024804259405836150827333316152201164707501494908241816760585492003100425162430044048568943535006267456618853511895872565897774570454994813278036049978417567709894811823853799429568079188292798014684179015192891412626438333443950414269376952736312159290403939353657907966782900902518834564896177947882477228063716780188596141284598877330266894746700044565438053026858840576138562831996912946653970252639896420835386343296082885270255483442264833649963122147190571671416767859901008354579610192784401253385229855973721237338333981068359836246682943215211879220726461270037635541895895499961464344769618869047616456650357227385103671854428624084618307922909104992781531976088308492448159272817591704301624011443850720225101347034498699720875482703577146943585633501744733090919021586777773625895269435252775413053118966356080503109049116338596252096341508896408839234500732242289051014376387209731675097817425297573308358608492553138321042738650233992321257471426364644178783562296836762026262327134085286972646355183481779398960345110393347016930734031211656791554299315497116810471997613762919804904747467209247371988556946711424400399505632229511746728573428147505365009457993383058968384352090441788591166147845719901992197052750235671885904498332475390284792725079647658010287897228255274790413353411362848258598497601175279460691315966488925083863297188685411893951001387592746104831451259616033864112862457225762646011541581923979266226597375325435983966936203398690186323066786376627291402307900744682614456057164221617770560623570444080356841166074397135246775482952989750062383755659148597626698798367335257316967448064655366633962287868084784202346499700855776783264155588671571751334073652813227700958860969217468675037732074454148958999172472971147163027830242048424669652776261432181122061065562107449468569328806083144527963794372713758287321211561155276538915789283959571632930187014044072750999496327817818813733096051054138783598010706586117423049409446211419863066138617437410809353532148412787542827911816560517371827876236036315150772127669360959388097602282599708308073557176218425100660057606542728878935066455695750496249206854358662657685201121265493187349187150133186906618013362495749187945337816397460125089971945270330484340971231099224822316967556755449222276183575256230022379647641292010838694462899342252349724328871827017508009192061733425984892136334119020481929947392165485730611948941908371359596721081011351808724910642083004843678302455788290000493419412525793314504607509157219769503858020714384565210249424957949241944371332253491021257876254072240155207707844408983516880014216576670654821912961242992434220524518112037772173037832778824504723048712532753688130170524879899768736426783794774680846056518142073552538310654513346138684635353291254809909947190550520791210159015032341855919639350114728148382535202786790489110966397956320052351772435381426468118643518842721045372008421078157712848741694191070697491133844693674931573827090254921054770986368880421901419228979717788102194603522023589543557564394004576355358850329478145474043182323963565439419011434231853294216021381397100095761961185100241753007490841167348072812982589877469762400566438033235988073329330146402544302620403691025252342789492102079924783698717810068135637362963692143513652652390834731471944915619947464740534450820735218570789698878096030142557310058052224518834497534605975642342392973806968151409512042272790316014661479510773531367102873550313962007882835714302964912262842381212169486524665329860023478010521696425103658404743287699225821866353317975484599179034604758388471388036312608243892514896760185589074420156730606989743232221009432690060753724807417493009142002040332860290228145644851963467302670708536083623818723537593552287296339939970035117187168243493543545556024778223708096240918031433682380164518718395641669311562275281626193737108793995702103316577020631019442599431827919949481345530940969396583224483070679800482042038299013379866431337709823230166066999682682967329922736442555736824531994070835112026720211622076515830877905132850043669645224924783121324591377938753048332350774156148465719030716479682201215375112382320889604672804766926781641565631125928535765389490815839194357829952691284977330115768490581137414759333138294664687853841045633742139409937155163703958641479403356768721773946399094218628974015593117104966404096029428723385378472633123345889338886612635416077004864945481646732694607899686848793395422362980323717684663337411522338939654650965103467221772002402940192214617850550426207684428801038812506196625285071609975791422499764547976316851281683401152512345610710316388745584295969467724412447833694692645587494933966576242426607945635171621016049165265339313845467242552833518060424139574620083543334994501013868740695176986727249020102539076264333346283858632898506674803320915238664652530994223146345430490696463216553936306452463871510996255238069778811360863559602787078373512179511470666445824592828086939159016116567261744700702377396823198664486247084788669014718171693804952486819916459469764392732954747828063796363195280698965208393866536077323008025228304959889424492630319957541992282636793099578970582989892023863326847010625968993215837751508647872531701723912216630684478888146670859127954320686103005458844509255055143193322898890743874813402707057709578328415993276028345915555924712080930417310568512621619481660781855389063770278721770339879670465748425282483649758663164104893727561351378601668878091971636097620581784259560592555730319921672813325141427321763747749193974655964884344839105184867913177845638510735707746922903768551962917767105786204560282707222114097656831486323576725497373957481486110294699569434178086535339683429992661621458589023937584854308998317373866161972105242120026883661019360913893294102201281992224889127713717338446563366735238864251996588405636182191579710462631019216879876533931603250953351185996339831447203128291977191613198176040144806146785860548629531532554177092186796863849099928552249589281647530336143602004185235805224177732361519110150140521641754493106032582001571680349281705125835241762914248176991757967358506724232641633327879201869923169632620469986443917201485236311810711367893040621444029710322455590596106972811509976219898683146181103005106174784051801297400969865608958869471482455591718498394339456559695119615008470392966600130346969134997553186221371399266007916469360616069003292911778544491335722401341660191784560005912751219672824933168061688455420382432027417894975746600402128792106642137863742125323203725483704275331714666811378954534040120388393302339548658417020545580258952825245378485566525853926176094242443774267268241227823362022269990941000094946460824765642712718768037074275747449352848330326872111415888822254243386519350544326746078463779192626817192983623070589884459450389770587095702284984923335863280988425455474527711389129746633972998733300759558539245037015057579035564014917354875124233938097979559197917306052006924503256459368441581953699985408922309361900786789579434815168444684466366197261716635566506005036198416250941312315214935316654075975143729785210564646320249969384881468074411245454874692466692898469836625451891073042131600441069375209061866049822569304865278679737145467134717659683180759750631357607187920355843351506546677054116186523760064782519568842058664330145954728855438097650873609811700228181236562916172406811728403735589790296144492619737548289302690643597129964743689231454802843593670028820073784731551929735544785341238608428766339180663585111952675938518753216422329530484350139080896481823043835388206000677071383584876892373574602716248300446178771007342358836242372653823937355660487425343857598150352822229605711926160303263978360183683666264798580514874175030526602655217726249875225883398074857412846516108238979614200121648721706206055770855433082629453362863970512466763168811684896544224428065509756839530909687490210336113043235392889788505080121469402231224766333989243586253659319593949244065919206324591089813316556597374313668600911627223205057651773311292377566550774158387975715234656540920914179549728143284017339858992083268719972712119587718578063568483681412656804449466919964589822082296683386817985537880193710307250623765543318331349036043887419526915811931496903508582419575532852890646340500693320483071281733238927591621206246255045523534902723105582819146173299980323547176634918329553965187472191148470797926479607588769143162626872092250316110376186726050147614349141040221725314773986870248456103617509412201202101619742941709753912250492409261917885936467326806793255079560329694022672765990935215978672598622393717970769863446027869870261335820494303992100126424253254821224231997944416088742037372266013785778774344563862268439681788614593530334692668595656514423474943367446376047677839935905610689823358173608970740458445672482724240470336482356436211291650358263996599489050982547284819998688196801546655852732108269534681321685827717551726567341644662420706184592492490875944961549887089393104456369111582317722447604636233291036452564922932398381733175579185131834894279687999436205732786719961348898615703747595701064757581363320116363643788549560013456073880592604129347218549361624754100028328075799197964858655540069893482663650919178584379990651885577868705639272243538401997867897182805829307965188519848194920498964337227098812512443056863153343727200482759687790808568237851356932600218222904729641586667829634317066195433058914009944389789118648880380248640926005494802458022113180312350728010715891838156542112189350237863908652261531120876990663698156848652351335356070395172966277068106660178148598263485605583615481397895897293816958308668207014708884731236506694435789617151380682765432682196473772166621596416491884054968224528352018622869612366397001638328219143051599982161766167954531137162601775553959482827376100177368754719134359625994741968640742347966172604184218798019081846452696678044812591915434423831399917074940109702505075709555062961025309940199032861592105033202233355483119569596443757036985286439567411243545092940096950894342949454455388071190805387491689432901555992253557278657946229853358348330556522445627927823915471620493065939087124121370244277023127637074510029132109203922922467447402935960872925550274554993826580241334358153436457440647446454470837736761333407449541134875489853370227052527370953940139617042067430492186783574199948612747841523719598357898757489517939843597085603729644543780602261829730683105890621374554808196050379832408520781707449490441631251405546894432830308137448975310575051669499188593654816764357147260956764295201805122932382957375152010563882283749362642016362463192295017881374344595517752025837546535367521346037672716606331400648433138363597648975137044559735960995813571381989544849794678137960288352392116688502102924954895120214955300991464487998709025146842741168078697820021789175275646080315493277364923920646209429487492251358686007683946424341626470887227206235330636078070534483899571620493486649542732841239034465469475191330073982136236223313036259124465084124464394328132202877794333895434583837711510783535297094052725139230625772620987696808441651200898903287694619608079502599632681792428518415694934290819632396635487308362237412064483981146107734893223314334548759502932244083969207056089596894438195707147186172970636975299117358982260767005904782473561545597540662054142664505396793918833711046396992639051575061042350466034282327904780338294024488192601825829849235666280958412568828597654342962962086839044459252669948276251989832552243397062406303014887520385595842180078875853195499173976685744541448814735713322753044021949715254116349123375336767795974847547673287160661589350356690271853776103375767727390948020103515383434042836184036732124849731416741363195763078875976542106569609311306159303718451293114455986212540673578615743372854518304014873957061159811552007569771641642974157875484981679938305721091284493479219898267548545272366372016442579704655049609044356328361463323199072672127024635168748889343932396472967503557959987664163073889788319827028731758938800107293817265064839324579210098923806050573476613741419396405285996326580550020722292255112602581646143120167071189045436342659582892527345155476536823649655863686785033689300824189251400907207692771289778486661672401561805753948527558400853045796018149086414987179981187777451443242421864288360681331091392437426838210933736733143768515100093075391658275339643977298100519733576185957465461338834631439915491218846840852945199101981925726777659179113619754576259379452848552801644235982333589367562413948612810249616453020118241899062487553587182032715282965947439730354704809474508763261983264097848840563313873681888393512031124329186150607178464503914232249920153769029141117693639684169994491848205261960555734959619052441589724799263167683783394514153275517917204699241187113357434223156050065200285016239590961475745104385590383217222685994765272574938656878487635558227649244553199752893028882824384603859815817485878621734124989860555417080474753668703938361173625431665192168710228326324159969823958996273160380567175591484020920766605588584880646564149273350603112687764958046514925084971634320249708723798335720273720981273282038721158892220512489934724232348494034723453402331952245588832797289809679855724542145594003521352719234366861209101492983802422140526868747741505918765036189168935529993969369345419349577906166666401394139784139144863257595734403206172961777421644447156359095482977380077019845014906479862166458059061276721842052207252254824870482131766119186413511466074804483627499575548832942809437562160592096653318117656818526273406809792580323860335807381569988256580115551968790582360592244010235442535153026585923026909391609982956556255650107066372657791364161932385264167809204745549906007307358075208433559366853740454680169783771848439577761228624546473160896357814563690098662097261894366805280696684518748090562021956010618808666520472454979414845188890225133206270707709247131046543222093421799333824687809990620212531390263292314879255578854608541123229154680993959086987798866190773116475982199981125354035159630614387232409465427560573556234316297045214589221788065192500132904580538345820185262136509605921598140085936893655614508409224347941914000447551464298132476679689601605243631374931450670578927169634901653810420713126198403226557843799456413773342946626213043239821052947274631705147704264593367576514936812520081723428412846557970223169842127229255349179407395172630652492752489055341684201697234188165273742045700790175214222442842046047069938931821253201724296767450897659932885921302426532235725109574077569052504178064373491994959502916706484229939394771658656844004826529619868079195922793766782090476045577344132112916629580182932822361121505274791624408430616902191406182809499796676710081353211565755477293235261777503529801366791986309242623829199741571338776297432218625066224996012148450531229876996463959267264425282654851941379821648395446424075477574149959119061268627141363434005068592407672519774635787249529434023327087917217677047739187921224482427592707977399474503778423093711898632804830514526905497315092498661064460152126978961418218953419325352691271794634586112995443075706829747022609903895060476044555593587928722894533341954399224239238757627350652821262187869119501667507920908332070626056219528656620978566386809551097941203942072642024132980420998568258776577722579769513873518768615093785959222449444049832063756915139713542939134277715049951278292021502570193648026844359937704055085248494777163479615983746266688253963886767442497221153551655767109760912657516229186469696059031036132379741789094170698021184871444832990802474710628218754380357836456278717091546014508387217227508790484606443183760140935839438192130362695611754451513335353268564022227731617114875365423521422544910072000986466238579937354391538085908757967665548543101046917070052236760301704573651508234553331091856937954330680821673776667609821134177126401329211982681511011644157827429690540488050014205243650790931334748977803927372465590390027106683743587032371595790145387430007689855913736210156458474636216581956377900020337179628130109415161657094067702328687805126909669401707012102414026357460115528312250341125381251193720288975688578520160723066035194387059383280554197754123573010426594189876315749482138174611865863026062954063861020509563005149654430227727340211794718113344128728601447172802911698616776686379299907554537812548522732682686442538539383053280254143484891789864790776544613656951811586740823396267344784408142104305187839759644880552713843996699337116897793484762215103965190312583751135486071326139337503829087075380556418812582271107778835075187855611191995140007183716765178395875602990562000562361229377250710838709002260823405357274862599865279616604974373058163113812203670812225314833474557854074560426653289586663979376427487442313300822182298965412706414734711254970162245981664538816852282127272251175684045824292932818780950311367418724915045105995761823631193477618411235219729555140874204773288243766594654484796273764481911246847864447771629952207976280828377608192428505719517862952590798936325274242377385105942022091129479784895281597964148423581236796428706474132060131382634734767851446606524035947949157496303378142850143590981115803813542373191252953821454194260722093565253322493587012133889622905235922416411944491469321591749457130523270053592298139884289237013689350170440109391069668088015021812523926461300784538940485578925347775417548373899332444815032079918552790001252761659819360360875927068109202093050375253498455188124726591933951761710907588701515406318767693188321711150593817509238094150749118790403375727258039120745226910918115315379222240180676786203094506872386960218072540094725037685867852951923674303962264132840368866918370837544321103838426804081059275216647931915139700633057050369181856477115916078637019436692674660387100809537364790014083928531696858133760712227478266908848768317266489360136764107597135460010800016128858877115766877062055173700526833578721868930977223203441090642379792249498131442747690257812868854606127230823650976092079830649897512352326135255300995344313731423257387406251937521972561251594994149310155567112031072598807769313982644808393575942751200996943864419898913107712867806589158682106161600368690434468982672327325956222228658156338346309530875416516959868542022331848967601937738893514121102099566421008522086463429598297842448554746927424031061755687250602309113919435748992832096651897311571302703276216645223309188654220908664980775524464006035182687316535462167453902528751158483730276940286381647802429286429691964592245046251196019182438437926810123408020120623383637325938069167093366307629600281718517754535966872129622581094813410690814281558955626977869881491059700730752264657829543697909467489669769070181731395270160842138373701835732992179873821503294823670798804353730276890249354370059696215457828712475865652331587831481244353253064945058756743755086392534030996106729293498723323723726042620881470624125478543940264458563299977014864908160809224568218977264521540774614659686528402651816225249250683515187962073628099295715314596398399853376507923218926110173486024285210519354839453668796239556496352130522296133422394454952795017555651846153848852644399215096461063286210626104999703521069323368894813053270904948054197634914081860559830916275495980852922812409337879108465571235878757169618709693999646143765932098731659223004943174161603088317407043136295813735654627779720504776884442459537804152590957540105885136817848557374955026998536404666520247864404945365148585225013355863007962798101899891373273696749009888160544089584435943725415910634412497766889338473203772570798678052409824178157313998606198563538661508269440156908413725622406555312497085822228173661263653589180577706173845999992571695680918046558179289151780391091688081589223998681026375685586134659077219477084401669021148511697798742275650891016534497767616145160431430844101630370596710520338019792511035283174949992463521685473243361814255764972798892925331454149153778768344926398974563155638976115131678766387953419092881989898049051953916802740950506162794214052193640339072199885177307000192768990776921369953782413887473681441911963113681767160004917649603645379712167485137575161995597988703211795688518329641699415375642347597001884274543542156727577673417162041613672805646256102443462503029590187910522947850297883160331519458227049027692508732623390805803118750171474257098722375523629664739539075221685573867903625485263140673403925790949918003543124370719711862092293361909404668851659148287228666017090185726095353139046631823481611260716085503611711504654877080817876170061042173163329408765154906842125513037231436312878318953042096939381553860205020465654177051090525078179109157941215417644205860759495663535716568573991310547050926863104244831583372911107428384119627643651060971785099567223802458118978349784714298597768036846339920043860261724693714656214349290334401851204682026349469793728287090976720493135851887050741079037772494400551363719124348802034231507923960648522403792509307309617262478602796679926845913941171147184748281487287183928191079693495603605488695661404997744618867425639261842282199697344715244046290490412772603956470901570107251535907391670761808624028417240390696356657805752749818918940564039688466832188716835226652835474734072867265922040287406210536644617580543295921469980680169634652745822082088777854373132854332883199122236036868462225170556711998817742761100112214922884472915659119917167266496974717972832249053083679395988462268360672523086138065288413752384782787408000786218044876304937320042924199329954280341734744952028876964033123690754849703236917305558713051267750704635455745958730344061165853539443026913514173519250792097918603754940265236814361749513836135523637796755683405430348362634258616156848387388598040186169730608560000449282394101990224525319624634231554896027938141907218040792551994618246644397513280290643542062863525173064699895685370351118620166723655255396327191355992237604765553802633287924238455591087363261787125163652396451914693183862012241731981015605520230186380655243956421990141508039934870089709722789849421916234517260047585091913262168660176691770551891929167700368663617681102418625062973243284017086108595890774462224950341861242607866534869078297744135931196642731240465913240146860766881393285079223373323799727946419711035278737100377894656541464325580492999864612188498332256073650951204820110934467669372673273254869840644786831962178258799805811365619773390943028043787223670917256784196156952916718937172599805174450846213073809646748736889949257131819165596391243683040661194030346634673766085693367602483928131931237383910113489844630710701956346873305530087868986630096081962395201756750984745638156969210728189089271738503449596206003393614439255639288679088396539146004770412974801759088148473302987108507551605922636997645635543788602253719968270991341773647668674910670931138826454560270758667520944764076322732723246506789643733490582684538238353224316067229065641157275408978795165428054862852344269630538443850597912224307141083605264503816416164336157535486200005781621355528318828425127335986207175525859939066760738319339508001291582833581155234061272928177089704953297801909567003368101059777190565579216171471135198053871957225327209481392302223294127038053882817863590448135717043603813308366931820881603414253593787241273103331284771752416818692084678054730587740855025991369578521626084034679701638413007124742630883118826564147355081790077225311985921987724586170833149955461028599787482442758196072613692461264492675068378086032658867057268584982238745657875880443570981187758477303945605284421099171631811093140470034901433929727042279128653517824802478310950034220405138024693692953588027861813140286889557762952592973017661461279216220440506867999563080969733841470412041141126990112334610681751694542662543467772569468404436664492049881851622658750955946247525819316793721155735022028885345015949013990705543929000442242530890985083118181181137524772681676140562383360212909321377379338772068840053838412707897490566941887502682936146209758066461004284167667910439116928934430630146159999555233212859263985774190381733385767217016010828874330415047880126758266958392816592051355573417377186780014180875816892603363034297980311417056207261576455595888149217667350840939450009369972233737756011780877836358775814793451386234851031665092486655231872890264142200002819719406801293244124752819531275646114243155780818751002998794117976435862150771385951335826094668603019408492488517471252579747003541360890693897043388494994050992952060548247272848209215198968708859877984429476141914861395096297972115214328167510050462289015662026938517832148150572181205528902356732885073467364910197638190702283515887985005407974058857522717799275422494438657496452324098789341263543139412443290616011611089402819833615004632394265397697204244594594227811607512454426297884530453240578109575711458564217220019488269980412733284140800367127923996093266679798440289457917920804536877257090284384418510991584260681062141391972525338372879053651620543193866988082591667923936772828484325693486941559179625214959235382022116461183586675108686617781447563601960690830051321392944348109981257748321340383191155331713802543546640197398630295630631370786554026134574621022781491535507530935765798584863623075521103988809785209212718182193672599126283336291615930305990908776240395493645196629750119858236139547648326907977948017944239515329107555849696008378429262313181564799519968912491122864429750639526134058344556190663402872240266267960606948497949133931208342357725738804405389979767441752397135459925448146431390679615728997478835739367792767080120164996088133728070333027329186931873858660559338387422441292623634951073157439804294928224415714024114734111532328904950566244661060712175729255857815524928165557198290912180989431404520393607177388116280536136169721488360496351865830625717535777288288360865599375651914588917724609984056565493028887222898381814107734415254380973421171444420638152479884947935094725122816948611136915385753892612226799105514928291432870864456164707514619377124858664362137586352014237635323406060068433884275398279861117974205036233955167756731277808893766292999996072845478719459669010359125956177626898362763202025698465958791710824086717195672160785801562352308282898520591352591723803419024543994491379631278273178180721657922183302194365267074090178813327483865696568643955338880251485929247705700011051761055695969653877602302496956393231181123683456325725851974897702288898843689818178380906017833881653581983644934808541043468864249599892294050835570409451313167743459229080563066383182725216746103072276096031641866415107604018585014282454222893917709695837754634294174457638095051293675635499140531176591126994615543235965561626629294416769271782998989260783200847113255588834596474098097471986515845639195559508609618231596345978409102823999934381022420241139765616980800723765218244281650793939389771091425850401540958119487933116615829181720540203868993213467244548025801443024131625900034836634151958616860306375161854715073159065994718320074910304689261270581135692065571786724917975803615701819683645466359007920515665324369081960218239262353261544269893945134625732766921471000327108495287393824403306749719943763527758556078282388917866480802682181430164159558772504142229515067083381813586583725614820249515925835358779726881755000524413799981647109248384278501829877628992029568288532505769371835289824669206796891499758519981992953867071975923450155997926194586374541823898019211091513077751760197450310574334484507630706498809387549437233807701858513944563954305816178699728461870329308089234696083318730440118411619576605886766399678681736900394094783003374272715894922098437721539988617867181315908803058239967486667260118930659948807815379012061344451866508681638045321003338133385846997125140520818509539719658147322305882374809007969475921002683209568812887919680132674987921548896785240986696186488552130430473578787018252578936966385603744871727086864163959231948977600732312013253066491957307792818025568008588124619902233184391358836572806728135382214416670276863250748710631703319355984830542688545516421612973800973035328029497229889700291349556000701090293073346990743090844509277747269257611093043365132242722019314836193306306498344528661702871530559309968464797086864634435710153190618588387086031871808117085025384169329347367224113204264608443218911116846967522007327573453782653821957093244589873030853392315759092836294368106582118011497600374440637878386299183039403539741304145327036696217910456118496942372725863016744015229651746423911840041146168157979389097193090374244414751609489325632547712887311983858308440846624598897027003942441490369509004026039848836210445250564002150802143116453015480335695802228299929291395494633463501317988099117285861301066442929124103661174898891467732746433610878691090600085643368640808386251573790612182455145940488345582221344214021750713529592744341081853815481901302533453882263390744364489485093227112623413448615870354267412869484067196585646052364171295042559282850627951664267666387671676922016329372836056504077730871243216189169295396227814403699511631725246362429759320321318184755501234476242652721580664585370438540084832666639922129395212396967609362193609310105803842370396788047509510074628669379319977998600528281314858339133902829244301520587632728188526174382801268048864745126638097550518894404666916003462125115126479979306336862128703285436288902647398518845689643751795058330548543562262122946622764961215960895787923709625165267278900492985158202529230111225848176765722807359929028070347099694269291692811007037517489073830125560231549487230898029244356962368523348946643402478874875540298390593951544787966443346223084091362851324612471913908160682333188386484550723446555829582956343933641965321140329211825541599500399256023235108886404179904243773980940506297031782999709739429434650545333284428817903553236837090614680373221571741520894128849753087252959185708396749099926269103669991542462286333370479116089515250961009627824835923630771021329995163573492618987362976508047320172134757717364391581272473542698540208664904017015702197745871261693230709255646789832059754955654726015657460751169883490680424506630067350379990514195579823336698393060473661631555945988794128474709267553980532634142194920153964822808340716723131929781858738919452839764790814785436561686502623427960421854620496381349761038805211641765938119916098766371375037882596727151682111787736970570583042379217157625064162570512590718574580317480548719906475895839238923200269971173809830459135670414249987239476514820767168665175786200042893876202131407178138180553144447368816438599930983755553766621963161806800155995084504400197607739905059491985881160322574883477738750663475843107018067258805574957577174966885174186985797913779054069884694751665091549103522263685637897542239164435656166969487733963381128918063445643578183309351207856261558692902462074192492349038578407279006732685321601619923538776367467184113595759625046546883797306121518153811401697358536394090098040018161415572496359682709448963596740293871123061693129202866314782687283127026141396143113838198280823059469565392335052996507972197697280745120119534070634255139483471503962506973684760671263171814911482012073807748074812212924671042199273837940730646417669808124136446906891515283214586780489499532639189818629141337987968402889634837966035047201565445682211560999638513829911477679055781208007886361501938232955198162695369827816916536418955759027520510155711141358979665524181970257970865605553084232508145154301333429826085322636730135646823475381538086457584917740868191173554984037583014295602600162019769597648485093186660884727526973140857259644797533892793980954723590085130180855419613858258836854222620408448084706903295251000315279651903477808134780491596151706972422224993234807492830385385142160947469451304845383914591749936517059266047671218744983696613014729954020224399728027746101597679355268679413801328616639408577723478756417579311279609161996894240759208855052600686962601653401992144676811250930939429366675097943755587350429270233277325208522316552365866482658477480753788266794183879956023726918791620150620970115916095617475184366333217777079345091580975065854469194177551492230661552192106069594721190084016933449029099912763554414589218924444270704327054377041423534979912505201875909638644441594144294568508490755184316220413531735096985497611176874031009554178953391729688181724119455619784554313272029100347043151954502646322987223516522397971084047288756105747369079545478717059436435108154322693501363313437578945826391493420505805356031907110669025067970275844360600493929476834863343415293557026268131303944356711420692503764930570675937365952675213257754301824586464616978366050429302101127954600059963123932551894952962422991956763443266022298324026778336002395838487176228891824216816246542051867272476665178058131956568793667165146805541649416916645932633468928696121468023702493569725533992886689388346389554521283149374537348362631741093647289626110211942666843474776251190089072773623767918850923583000922530566693591310615031981597656160505683351180028061736496977248526825218992524169157612434114524258556086446605025734160329295629862332799738326647577800220266717889276047514379683816341380267508892342688387284127676719769363367589994621905566684404407622792555488241877948194468012250855518506211561837517254734627252642388088663443824534569629042358205705906972995792258593379810625577554377670378282542824622402165041724001698824646320866263985512181831583598198437766903295904927197462657977698030753391331144311344358403867130192306607819052133399220798762395471169946950797986803143228990558061190523924293161329951662663000583258193093511110976602176264054629523117531456027895284749256760593732034799386808475355723789505712170533085452006505327343871744000208949308150366208242224923623443074240194556846222431535311706256935754790443931240318420072178234280533871774125951669754783108886705657646502045065380152217051253810583477062168869876216025957042059106139926041334204647533138252996867558690768137111510805058699818234322423161986081536315739711057510089286151977791183476100958607768301328261557235357502995912870151261937114334471678432033463423034360105926752565263101866691582223929338439068940056352617565874617025599243397446557298718315977935030689535526358492070065455319165466124883078136947952919905489694634353232554938453048421411189585673162527671644737714034704850370774324609266083217377876880185242132065721552125045368401164298085996422683485399155421215971217011503996559295658637753744600799636288977071664035002445631721341976812466688384732305805620101037272004352824240732461892856270216916445516432061687083234402974093407469474855948711330810481384819985100836438598842383834701906389506607953995078542920936304267114763427520295311109028066731824105769979409117428321930746461886631228714126481511948962448613275714759478893266031946945578823881192779543728311113918261212503431797068453201694307781229891327159050681743286995613716894205176913029366555869463825388981207456337158749840179868387421196259851762469132285002380440955830623951113610111132154163379574165435237632867995859794017995022566746423315804705197541644198036798475619566162403222041689429054718367313407382872569579735595953747037031948192881956655267711397478219855213913335358706240756018311992893237955933358505891781928551957368983598525987772804568297252991301001246409378480593832581608070218950874499043792991814492837080731155808485668643768938465140271949486226331811750752654630144047850872507824672879186347388058164405781119487769768602088739745673721198578376704838297481793535778981482008016647169782240198846036278545198156715286952543391297274943601534993869231386235168371051329848554924730891069029474188309244029005546075736693457535068771078701191140312162130560864747317630309600983325292553950647796085656480252554464270506290386584043822091865040417714174272302318784912614614515133120206970678130151223499318396948558773286039397571128426216786304382449964431014409190688745974578050736835919401552596741680133631003607547067003533653461358050994234058073791541797991263982258747008393240762549639091158829512072298086640213580099354131352846109466843788472934130197923184506453375924985996781815008520051662540123383246377130503412634660811383485495117250350654931918697291380597794352423706661690483038113463778404888868569064772629873524405274375300715854203814333397983647596820039946583591684576387423396514424047490100894432660276862923142670963246646164076138507193749332132322672683660105209119065335701750209745131152218803384718967570856627103398622338183507277344000566355014559792056715085030923851211415543514315524780666711861443924549907139322945260520300046094219152213183045231734722556786188136918242038174541330134867000251513884715773929522960678727051144060416599778817135837970253525984126779117914080810787870180593979999622048819498197313595951332306293913942085120020048309350938027108040269097298255380640475526356575353070336836864416426270078272645512573896131797272909748135383729738845314193772276854027272538354962120139673448862697627952379590308634003119902470615846016544872806015863886296005826588284375159105720012443549409945224457644021683681632442725805455947114016443321331452828045152601473174629668795244898896440994079326131746502331903420297134161405886103771340767797756272828592652629473425530214019662153738838313262590690972110264897002633723036642233819875810808819325647165935394141828172833885010599909024046929639206846194953093120724276658352645230643502316716245511515484097553857693194692610732926955759326948590770674694191537648079360693292602815484013578529350065696795980475045629998481739444172469995058602695814972154821358699340044513322343614059356464334666054835142416875270433994341327603403178188950059121871362511392103003689363153137655687964670116458701398172459359835283155010609553675534141658050592140136452240585358153888596136764632572770580647883756928436488205961532556032075417428482747317099046464334801103512657790646142694120018985040950469138931585268939252609120314028321127097919560896555592919069015263624788322376389254747890642156115472196361515321529460367857669804278056449114935768843266110681890720966013362773953549334211695413451774404154881226203568780359650075797172751002304320947025498816988176421837530671259625325627333266447092568033356236621523326488223654084640965056001841299891017351272442967319774843287466183638107653541474336017213856367272262161182294324066517291797364203985777806411182908737563011504023913553317980796386090054226590485747951175481341173052703868831574129191993864517261058688625298521009479228357235740288824752288685747783767852399990045436958082269812716385587400259669272795641780708448603874983272870267547020254391393311425482956546997423849300552724234769206102564869745709296225645073597900713592550301217820256735785389060357119787725387797916026776010215160610572582039466364870007654705713928033359751462142786068309971887571657539702910455133787341923864266290319248935795061047728701274306592110493777457773489413201514894558073530076758046058421692864292903168185739521275998096986204637220861565181169235072665220656707526616378730011388050878773770795430710671442520572237531867820219568450430863640015661284294968742116737312653560569247234738618348797271026593243072913230675533881983370319685230104907277600115863933994165054249515690047196514581198595828166230772876057642489139502961292783375613487387684502406983859641914280295522457654736463516464831572978836085446663213459226002865310941003674410094956082981269529462621195645409154148171578998207836812719754707798493038219835228363957676733069063232610553660523370185482816906746209379533292878215721625201394222557109822562898611306199576852046376489398943748308142130837237058382269379274245899016870392681973701021847966981177333842189500144253089743455726366475059461880137459384415388199435090703850718887742215670699210999699629014373164071993129982282943753380960748206632267463722489821146506745281561155082366049869040418777858446792312045375717066111815843142544459921338320366485807519192913111117712796906188604903226775925336568562285928165695538042535370003506504935354390352209698783057881837464587835593289301010740961230572447901923179172067865274401753888627928384470362809425590361869009307452535540105258727068265590750808045013895184651077521947089395691907770085050209253269468997327683146725802837745846112465135739202744994924703700160690400519672305153398692170258621287666683709732418718990108954904721581439257680387791496286114558853664630792753935724850170672864030501026911164062281985872030883174019612046857427729959230500146415489389191763483131516241056122340769172244548459313557759919645061413461768612719167650817921677622754617541452077005679178749278784061051888691579837498704360989214065596347937615101439415322259016325935176164734831710761022845277976512766859056664448704070092813984165965871002679806538989980028958323908589853922998350270465226536466162950621379427668612722395780700910656322018986296179799530738034451380703768742600538585077188756014583281168443100507279041528200262696840646093096299519660500684467239365672024464169216955738859206955871375102990950029606965085047199904478788045999659037054496641107687391619929847987663396041237565959964927964420399741785390478071765263605296379564391460931644782452578547964219768934518625523402820785556682303094712831880646273952720743085415712612315319696060548029957675249954711595108273272342506881718789871899311539368500474684342742671834743375539625174825290794803035432192515444977009538354402235933182248674847664530182401537181258049878274081378736859376547504626061798054052243309859105560137203261161013550130756542364518434979787794823232903406535377365647599821672991654011164018445809219191939390365181270571093476291905163826015644242619816785060113070636801523278468275077513561932146445321602663505498203402818094864673938563949688283704547961437580111739170154073442890350090995425628222347688452813275610842819730086073329582159551585072539453628435767097052429865593846445620846059024411918763669602099372323734926656400308678266078603992329550815875495269736820769963470135677293197522451951987762522737666161146230819056914713554961797710179582072539490550597061447832127033180210317738524851532515869965682139821515200998080664786299717660790707392296645124665865617818683470670710389967126183578639243248544368560226714941222970702212804304822375849685632042090878403529073415313070555940660054828180160643547332476791524850049167740228495737469997411888809285343871098822256786538146404300993062681838575908276828722847850743262091585596717205365866455337473067029394370751357003754885612261335117525804899330897147658154062422084255567108122833418615947043404979475502112617741773555399399799074001508953436491525859869178545400149142812000252823160269574122241420629332013754964993677014736954267633364577440078031503508460839368535117295110504852324998055245264195333813752512340590999408620474714616877330339049982421349473093403196285951035553170759899980651269813065127132947275296770276656285009431209086982457585938201840141106105394263563569717237003047799262847180177844092070275185522428622345132125460813113216312150132726803208040696690910680632218099568279317185182959700362562988999230628231612228782901748135804093618696839038116825480117611054895503243871480766228848689858528073040518880514943471523871181254566325953325201291558323470912510564192436064050531843221346435075405724434344676454867054137130075714614618990733314694651453688969098217823682616357541053535713434629572060562134984948208866729913198978198268445695711654592765309727778200811609255454962187126297038640631232504278158013935585955674318868130675226212578271242804774195834240063242002268075396140981113979056935133674134238981739407139857761582263001502466043414578548163920041848112541447710630224249671718056695569057542089851304050270662556453958326460747223260717728965122060857919889485293450492213245765798653097273687792334332333158161470142879998061750589796586312573320760873743450836439988553609142371754286400126924230639281909376827398163170210044929047279227461921633780697224988364397463049264834199564999941653722397986292454941731627336534490011847231229924204973070177987350709998106876634809718681320463488631608661327787936998812345834502182300401617618720192947632266404489586752678134989623814815332346306243353836030148256043422166671808783306954877861844851841577359114174675355698294708427925002049975825211540160193300923703764140579249410041716896640953148111876771641593569310654983195302183926747793491624193120388614677459449537687303590354975377893872848280337277755904352261886262057353595857376950859090050668738725496258121946715153541037026135321514777947415497830337440281940593914802228879212956930310348496909696562119742678778690576023277962779090183151732183888302288892173727524230622835487592723015733982439891775967925012378466513508835698179181856320249731740749414834792496692035121146213094308974054010364581667083061662332341427924933336203560918352445555262083572225571024337565836561615870115305846769895094895424580151158471618624644608850541906454704182564435319333648930014425605740534995091334996066528266288837776150597875818498279260745347507665760178607117160932883768812851696424620331494290344664052461920505779916964593299595612181036694027421545545175102106578797634392515237559355380046184173345059547990927950378625915386917525643988654504757798311656523030168530491630938493363553299410253630358273392476268719658109265220238226832893034065567030037898617140042598854121087510683660055457241097689416941974855994698173450429251504518458750977900798957887290679737282775008174824344159039385576722976138133292885028265635568431465812069540481806214826603833368577387944112717446066557060752843014750807273251592548574116898997379401647613329162691298139358369298324901970312116008087965628461759204865046769361943221471626214933053327046933551718593325153593791649852713401029583891597708411720993816039616991587243765204382298250024670688164990731888402161631167270027922474958852106929356687504904366773484065586574768995092721226962159741300581847524391342907012649837173229560803497622654464182690917540813059460471935077749996836128049107867820964096063818001170332957491620467263800554409549788394325812791058471439533523592516673796800753247882398809479796912032349849529426953518195293637224909545418594413554038138297265624252757938233774602317743788747756105067346482616514575217090201988112946314259995273839412318332698147823233108450337344170859577296837972101363628479128232241577528622175487386768098601595833950059656771248185074006778341024769176835587996566095318304730136190177061385038509366271162400917594470423499990627300362196628477881395320944876243928195886057327027240140718711382631350486589244396555468350563318890681407780302997914345726505821716665014692560780500176428508873290807241485530791316495810503185362425984937874522742190966586333248827062627423682926901815065937067805578047669667426474536625124356965539182204134920923236394145268759946417756698192325286128405753726493242878891718049001400807701630889340499513815369747388099657190368569050342396536250758876184396243302861362885318806986899992020056495201132769890718613236059598390075107384855345580747235000843278844846942553416849260089951584436849270552226324881449339472871982802213132355842593441306177305241948973581837268620273309635293152122016600053641602892525961140308341442261197820234565689154115460958296323947097055108510567442677865407573573134620587891164703014693606458194568102093492366691132281169131766222657388379166593581730650429764667999331326923425777769879129931374495161305834680638668271525186572349727252318602855481081248460279019817094817747247297708057700177400362279603954875087512017066039957355808056666391198990468681023165979254488425816131854500688165383244124104601620908607590695933059988744282314536642843174956296392575080321783740976491408176039607986576339874090540214804098443696533773620040784976974278408020807520408173284394495094009781234452423955688432676953652838305537903699059452132300228184852041972398741069312010260424452540213292423182516576831245404209309303711786824129930030203729618621124805391320730223032243411176185050954035864043601633017961893522879479635799092346772859412250325629029321175306108705957199867167321878226219161772208820616358789332682676958966913301572689443209208037752460571313640731815677985756130375763615224312056125216011212596389762756096131191835108920064607368614301146977036860959746853427996843416770078591622481799471710732305295356775386921795895504215039052254338846169382307146935353801676865222707670261081513953528067438215148730156916903077628428507809939088880689720161561750891905417279085097565764145062966885612675730236622582317629271001926889644497696235596702768154065795106157941343651201859721175892584994226416934331175282833241121590365541877382725094222158417000593572552911025501355531697547549767783553145776331563190189990135904153435290957905901704368068176810464870473781833191096635800665593096553126340757431689207189632569077473355537576911030276260978027172268714315386769365293367071815098643886283276039745173122126607617242115627001446356192023641641148450831382936261420457590237965542836156571465181902158083933850703681426206156457707635028249638369287910341503749866813323982489881687659569702052787025360258014179937015043841568934815865992937922402551243350837315912196175780140361373465338509273684019593626390066715132077512838625524167811029783522551608117657213906913916290488634580254653231436465067436429327585816751096319694795888596341257981339889514189451906593454160890486285948425793649823805006539738840482704021452053053864590350705494656982013298013047029903726355310124695176504586318237905726169575073331114166641857617111243102997156808516065903617257701038454636304147014687073931854283430644050620524808036136127801960148795148092242486183446195011638748214525156569984801476100054989076645404629363606808673946774914778416720896532708650157064644805945010060619333010709265415617586255205522453566971128327896806813838238822836293867312386031784715277877253370929161388997836507174365873458962531935105575534346560167072878993022806127885589708866165264808874734418051988510932149715728121509532729783953208590065229523184549931036920154132075842930568892248433599038257477102962042622573651531853078943329522181392271563584069285022293601205844716508612813538576155237655154589643099650479585440907069919408453419075971816207615293107584928842894836367590526294856622192185933113888723048337624578407916741690807507167804779800616110163308855126917154685844072280136022422767304391134250932460203918058596188240499038928753670771565990180505690268081803961357809985703630545996048761340038241497253997861786136405328062599861464482171921611926160015159527407198224700038113242347449600009563645335816406786690086747395687880799205846844300341645943758607970437037574043957853240556206415664248067398049054430725240371504138164818482971650541479859616287338923856449573023743865871638164573187158689312948860811423989531350942611375601291205735071302260424118856763919789132762399439586135426611064775736087006733048822775630554973778344532053006301500389761319301732752795917853363465143682983131195952096938589110254696184598085359633930508352048673103511508821617193398677547124981445863285743683696843325911066190706614212035004246462169320465711268179557434758425025888173153688881399292947369462881882486807750244942144657836809113308422024854332551884753058869517063141083542105249420098893590630723082360112384700050757120994714109526737301013513890998278102421264437597618190452707044216471045739819619637225114620913352966342960736811864402646871869429455703582235633134785518254046760008842243045062940528818683925365677790538686550739128508929143674092948523170931020755089025227290957014764628586818068337758188842163387873528759272923544927800130839098696819058460375291368377033154472637232070779719644439664592346395952984941692112793000699029526502122012417886217616115204264010042956451738148553669758518865311413986141468935314213765986697511981457639216489794824321747947143262002725890747828799992729767596771272532120549646189024127525910957607528697100780196504750758911488514327393376479562437271112640042278417747125293194871646204169464563911026472235924165912040511113835096775358942367920243589236370365363796895520100505949361409734912079862882523313316401881904142152304754162966600123348179769946602864700432019632866510568687902829625611285142144591999398237568414704533545976219064091893862234228695267813604889550746278870084116579516204520240044382074711215714281261475855231061228617889976732240964094365887558825341473408696932078311628770795720708249600076658857737035567569209207930879936441538365360946494193228584470519357614776936031210212882287696502567335632106923891596683871526226027439442444516105831957894757637837473040822330783837776319238398121363436188289726355103561224663189276575933524374137280003381066718810335890243567799537701033518440774814930498053024225267942311066988213450761718853315326745892010017217913485475711311542447455950735859133372699136030038273358732329137530372883425204519891370596864098553776038753111543959607340763762195734069656810354649462850127934238529135374631703580601902357610548234736025033944265578599893128101060627304390093604319587394591800962963207503020860663085988100863306785147002712316800832924102859862139117055799200061333739065876560130888803876402201427933355343251665071503276560064872264633173432824056851532873568783842340445612741164437821748171820232487951506212922044559928277439258971940115517998176156704625746512588803822792932017099340154960554942193452297588713325225952087303121089915193980289017154953348556986553725759076377296429646492385967155956596519815357412410886475015436152254908430440374794506310882430109354852483372988081841466657112711063815115373371155460313081389024278430143894618699936476550025403171832032012713285404805265912054808026473753943495678538076661808180955301770810776037329545247205819479051748027333821939421681335670877303404541126485576229413107044285573645243578506911587717759810604898689580940288490160653376163747767714914788883484028132416950270619380538041559869888309595017104737668029631617531756362513589407594145348821551912702021015747096116515903631035062583062871595434359479011357739903695424826991785796011112140276719865525897645503710473771168704531441066164832772376897923855532224398648174545822211295764714209238495105244089824589544351706172172972472066297590140003890558568989860116427406843638142431965297029277667232887581419498551251602278688751576656299783647354276297440692665993204835762820822436239253505890261110173183182229219304613273507669118743151273659751770299591933713567313936441345581644896023729494043968122332193603847618678006767473263013986033520588003892224239287990335896830839337987432057097699700235129271958706216570506082921784566402668399612066777269117831499948327406115129599037451033796944487206552878453949007111934135991264197157909494302357003111672796050621591281261058207780107356954848128982446268113068426616455197562662054175087866128208324409128021450486791654740479820287887442839958077289251780123358819253319677889404135018234533119074460530360331080196899386396286015806432907885276061735570730911526554555666716961487398382381203161724592850851104824932054371097153966589215509918209936119509879641626337622821673104749155660815601628604712301031784087507846265912535445102613039669933382801392523540987979504436059441006093056971536995021008822708601164656571321559003056100836189438583636143367227468894633609519690393639827111248866894643437605351731132010608055067295881075423202892024643107943868678823561463811772610064729378786466664997431989583681099210195530873812888620125711664405399565931997428398694638483476474929290630851589012909809068364825938986543997652960069919884276417020114151533809983518292344124144067409309073609630146165572461884558969215558746634194914560668744374742034076183078729340385270247379856050927354545649940746706233250718062026647202970104124053432112915150131548511446740468072704363485523962841594062875843483762954165486190253667216747429768630773558587754579008921357367661846826686210707092359131005722278638783967790097307566224657443327565746262853800229216422769171144862871186323224600467805380591416441613785199750487686005091615737019084174142319922991570791293278901946203686996134932435854905307056663494087439786607773115113566433558424332152308064289062643441027591142078220897105799485695831357621667268501698761417467035360031885221238767915148940948054291605102606705992912096285213656014506514117067992808198118067503690481844349632349529691392476512011476572060240081010244904630067725260837677376477169556037654797652413525954826238250756236021659303900531874492596834660741098241254741356934050790328119880872248735206659374532688958286727314671129387678330649342578311233332818056344948572334527150348409604220296049900302558820615905950130326159248983172012516529202615434419169438369263177597498320360579163676202835617987935012478658161993940314453939496216070502322778049844743198912768521828737403571740326413919749374574183720694035503794664040426875835002129133021934617540057918089939247108478626214412039443037074979508481042235875980080175789942123606676394392378172469456896466959677995402299698107105205596807561041626877492620564067096737615103501363852942509103715904229406566052926083745437017478934672324627321535576002713001154205242814405546630622020034237550028641257833744588640270171166494552199008977941258889690689812784857214905218487000938685797238076253264975657167290886503964656884502144104347759960486637269731174255784078231881829177790946705894744480807190619800369562439448285809404197831490771744979847250216862439661121957141612595213898408706657436214217898489951259664953707043057755315127028455713766435089828583316866509986604604466089391487497301577943177334674364982842721816397313264174713887734120827178888711766701613436807335145967288482453329392917846005946667812012101998059445349479107051313381366347915941671189993309696699611259567909500216270650512219030853814333004100099243820628931756952328618310608180551074214844152356340107221416901785732977000478238003298204101755355567869394397989527563208967960852507889698685573292936001926801616367971869856369466031969014533865312542120395632429144716127165361225053577251847170794090606554088918477978207820208158965389925718508277143499071976820927187365508077547061400656562352918321150659446606586885237063534139405165366996434432472983177630071917383700159212320743153529035240974697516704707395344109899670781965902521494836451984052281143812278442145620652536827061890980504958344675261606627843846280816784989484549374681431844971553499809887207249329566762445877888761235941771179588450012635649675524083736646071185010048998269916679616398826276289524882419311769727494460604792265070363486846644301328809801023512850410001745863312050211538336153193993586363359182935351068617065128527510084757207918529291899766214306635506955336063500829992382363556765055866100791795388611591264275783921808040711237601922670722196182168121991299317682257538783858458598129686278157023554363106214834705118322356252649463676819489057753137063099115523162120685581845320985770201402354445223418467367429678385091467003967319285553539714389877410061963137121051635182431985632189509243582099146426111090308727458898511700646349758868698211686842581224161449681389598784118680356025023927273459616489496951771882083633349935627132591356199816396982960150184589779699659842950026928547280108352138504544637652019710172121952299081456022970522044490852598921412734992200219800559214400066072897463837764069195654168918489245248641375890834981533144898514427397791266734612224481407097331599241764385512000355834729741962759665826015421154889789839382101432846593165352437311375365062872672860208473576895753485361853381159014478212100481231075702537409546103011041199419688117364738669563110212305455356554827209802124851684087812320459475235426052044591845577479264548740591507828467036148499326482592438418120024027896561759314810215288968579437964437808535497478592044898818508318544082228506828129143528996180406249409412549376197789100510522412831221279691708177102455986129390707453339811969193901172899985227315682338615419684117229172659427992229236579533625031315611526982422176465828653637262225606019097708950664308864485210027438926592235761819459880775249668411693111317447406724927446736386097626048904381639122356997364900929876942219610340227645931494311052996784503362473175787516097332297824327372739663945914758524075129225424998848721601257131908658362907746374653627677325136559798418722303406700439615855660331771125763222455903067849827965280422142430620515180365541852863070583551865330904985340694116524530662814806167006462275713981309475393980806643907085746089192140691400845171534184545924120625125031391979453014538263785721085033952015038477204502665911039651191434298130727619906478529341686904436631262882384159293883362443371329596077072045639169248871525943099841861281413639321543624349391787325280227143426311120188898580928299443110697663538155236395769666840122028701693256979115995281717549039271822132174474984863964515543477643468921226452150292030495539253002255778931859712056936986346606333608775457305874854547257314754612881194791061123218397239252286057479404982567864146055757808201236216728266231057199325322975462543048596893425984802657090513384236239491302892644496694570453650818912764027434963990189484758664075167623118298232292539308131401568290431945841106390169321901389429570427886396988067611594116835045958527867671192843140457273620006719581617316196837643866158363073679066454589194159083014802745442437099666117877274612539688360120102573161568048125319057762602869876241967782852195855211500034531866219015513872439223687227324369631696340789880923088174619604647827101638647206123035327064257817709891318936732754885654070937569847459368299303670303198220879832459960720214796658667841294376622461916701681262141248556856138209148907129441445013256942650307606512247390264324685431062282618801560879543128498102602616467644422229161113126425391570456263409897351247537519938759575471307533720230643289593804221727753861396419106989638726006412359364694328819548280696589914395358254040845642530384363765162868803169812903951331178072041039571565764533847715916381631281940916804467252041132728308724510680703612613699463451764053402062878587281850006968397221401920549485532372119464586226988909874749130213770705655845403123644362774366946314761687602617560921101839208118295269643790597969775062020704394956922721049584779790942687777638309418696215848335210855325408451891071297005333579511010947638614243634133954074726594201282402033744928142945328036778225999833914662157735858576590964910905291908560203590692812882914626911255524573264653242823509778968377195448685444725303609975974946183249489322408344382442850190983902555221547491938103301426168913151280374312843951410109182160988550649782484324837017440312368619457562132636588653452560198456789375529211275303688401697245459180060209809014019450399902047327130731712170408441573088310010142670326438968759217001106117697510330880634601488919480677333467108815206183010186006215580166323297386102557581069203064310759953335324159820606191242872355251803701147939647581894443819341929503787071622537964910657017949805497098548704227313659161582902564113324482532334502037514441732340431274932545867355954066496477127064366311934034895741694746285714846895070661532606557165533866272130440307848978792318699542540419889021449006963211450335799245197336039173536826016159783519323334154692530446144159718279782457829274061375805857412763986061912893291864717228023411064978548560106514013210977701867330922028997617577799599875437224181315691188163196330160420705254031069595646471955493097772565149987963891293504266373573402697216174251380876919928026172941019527425217397999560496146363847616839133805093496685799392498873446239200288740488825153703851629401928116656762724014891009106764646770434240658748558885573362928312198359087130162625850330383465112105599829648259232493737209785778205521065944624817875410106315556660797924822351827289652523285553456569250948830988170751058037153385047673604299371653493747915056912572903448830336530241501363442075572565097680920779811275566733223193514090907610778045785350068645008288232999808726141169472794910334263041317023067908849865282160453531906304795366998508964895392519639201446558022744062622811163538472102188817363900725357821398254388596578178350126575019956754242981739525869908497998351567698744871810065166239086909856213534610705943755871227220506278464561123573327325947161287560599280030571926711322207411597722390127077860805316622913535594852199738997192407971374748973490506996101665244742748651578101171529619171497235930438541390069301111696583941585040575385486127911546731943629423950364413108862757306288131303244418209244962881920375310417560306904367634605231382683882602103908938879353207228073387188624552510268375199964747069032697012972554722753868002445779451059979202142430780262431284904516335687976101857139681673330074162287465316835273507209844927379236237265984604804516206500743154877777151352792520052801939994760899428818028616485345740569890964505620325901928795805970180941399590590727509036656536147779627878500583224669575215134168235443017065421632337258329686155037637229595323358823737832057195941221117808029429085381934421213357142989653160640841454711856286956761531989535831084582069899098160046995916189550398319483148092701659322370328618522227947868876019462849711853256987608318812239292996726753513634028953559699258534504038688166250744536556713197198208218985040167753062514474969279093277315002496660286250710379819310134075395538931417571973394037666023165090853480332859763921096169840073589593827962055559908871996324862452335286909756139218754160554016010704371368943252700534720386321358594133795397349555084597153859242218358765812232897455828435316294550238627698131708136656951159340177797491782664978996771386978097060952823094549657909872198891488012511498643388960962792152147569922694971237795187668930936604659075001955784750168112932846553805152961985994750192395707599951656977176920348573822025389792415471467553462519846946751785461222195374906379385629984036034969552986394885700333983737981852174378293363232461260107427238807544797782036786409597035760534670972257244462402187810956411853237746384242289649727123002884145891484023845587076609739798128181255875098664973724360545346427065935440070597004543688536570869097351157244791393783922425785839102087821703288970752297121164776957430016887318876821740464484379570924426652829725166085175800723399490248207034265249255457057469246527144911106248143980803645870995346177683523963857523467891670569882685778626331964904492748101510936425800619560712393418064637496806772367579806435141640798720781041454351248501783960766654075003632810645651163177020883325718338617304234911593693971966621821391382217104251458370737625277153664015777270224608617161980715629165135396184732136681792837460393035174264111141326306540935679260223860513584228840035099036501251539864781575431776503902663403072481357052957735986345602249207227662760462580405924043127961314246855874368913091720014860500322732744535404356359738229894419981883814467089449292999189869465277926185869909322225377578685619189989210355140627296376653664527425458249590150201013941304588034348453249352859586850565545163596452552070224132719065153067343740751448981511151976904145768228852900702983347580274152338048378563945057305178065793942945916762097058403068084616919270692644861210414512380143452532217061105447549262636863454786920707232247508153367790419493149062901640001940676910284968245551293351612566805459735830090247962122634705595355418639003469318794112686003262310287278736368236370540373497661783834287160637859365199653802761146356323942164600176908366289177686545845019403885921158743231144457460490542689111914903699556614952609207216203643296154001221558306019740526001556786295330566061633381725675661294624444531679937636970793993769807332673115789246056999170834483552407847390714329846110044126118709810842119611275316909419702066517074218828246826595166958605695973634817193552665371186133267533758886405222739596820815863788521845445826748324600573709291583119673392174218561526396528907723504987193230406291429117273985270670858904496856182400092070766293329787167720401956918622671096826617711187003744996839247308512637329227029451981353678809700661621821387229387450980842869934702315392653059307506639730871961770163497960607263608663752841403508583934893761860935467453466767210387831821622248862930919193328090397892136814836064223227012092918215222225711497798259551785621854796091406471717655327343346789412484358728493668649802994375319345232704957455070725839905868444234389900585846668146201718396476759722366524996602768423389426583583208065716213181251503828369904977843941279212174998329807181901973716275249978322972186970025234510965859805316800332587721781452483642564121935323495898799706900796838875144763730118234384276393231867184349676149664241858187880904946758719425962460377247801357188454766215504191402722865875435829048845825224620032038216901061726901385513912687816462663732354280793713359863024108817779951359861742579290718106428089432442614394428986741097612799764047088770131930495604032972359510021263113297457725226127180053133254176629153855816580055652961131131199481461415079901442074552547890972854704950154172267101236373833541979987749209916627916227211470221960285333932914559037733837609112575198884356952179170551759082403087462151468076036276518711544323110285556224798384945241627756056473220988460680852276413762274560391183174248549214080121717653659676278372310406598729656269241824796402923103881129449480628113325840846719511961520515283216636980629311328164971088840097068647181247940391626464065627562700778900323960391650716762318151720754536923631503570962843358551140824167486884072399146411433910464084684442293176456814119021014327281008110542598607737430827802275904998368476286404685061735510217016093980212474799175477927885017164230821340564170590456502894501617844698421984102673983177676104905864151377635458845845144469500121778047049213918226113899941800659957993966883129520659667504070183267896359406433668533707840844339061741899632420498310043292932959192045881229244461847356874394743868213614384907353175431382825171349931586062666436618636761451148327188409432888815416503776862108366104286196473831703969481870701731027624364943924949801533769402274122347606582053516306764633465687230687731624828998761744994541920738334075599718669477515968218084781719479302675530500925429230792459455601943008173843751096585004356223569911339108108248705494402294459005144682686464557521989704909692632571357999696853616877003402231411852364466839484237559214959405258110146681872205329748557768099533198281831960830856777567877505873595475162946672091608686931779769879948783664741049174270283183625317674648614261191665332971566120999820638688403556334860733252596343704197617618622395064986333677863749263071072475589165097477583157113221484311456298345643200573411364822622434262395867046596413833177194863633237651865058931674243267476834616667975378232942432918959772952029583237946494159806326593838689923187329061474087112890930290389800928150396964346600716244401500000757580327676257066669707470955595801694014789230797421828726777217160152657406733794295669540461322699679140018567148309374390982836793167579545961458384338602727948654162963661665629026234438810385894277421644692350565014411266861087080670381047293503537970181625913427625972634769411680486125707790904852576225836123007528362320312416611745719480637138250053744340315340764075848044198609683157224056420919806180388804647820727652406568701949595048395980722511249377963673385348588671683733159946290995551095112584506773956676423744044629334066343124282483792067904230373959411603214360432803639373041031752458623570879375285181840695546939570890053109412431805390362243334108209449997406388042727732182286466937780568077747543122413886588086064554202789617240548290044101936701078814779156272200503141194195649564579581531303129094321775481569128178574772669127216258707132541129129195186606198650866227458972810481411995855930248368367897690663188997449634779844816689126585780946016452575666559513075501630700115824143233514904552794328665075087749077650424433328385087333215298543656078257783872592976775384100899434814616226791256319647381057651616086479414178516546589303225549837925736275786414639444116868538743975416404184947102930874576560793383582269498149590720012173224375361227947461224634439538067926685968130980186069372631155639309338855883129852283708812967814306746937726892731073531694287595225033508452375436011705960593128715842062932453223301977539825216508438169457783066619389533796459966408982364770768396856566149336656436753557179167360771865612469393322998696559649281752488923178673700997564275002523545202754420285231813426406361282188002943178629541305760755136298004677225722698368067083489310144854064662386800615396252335565484898555929598864705153848390623713947636647977229278131275529297826243260316823310340341992778700852022023776695230508938644123472255031319807734291143062567326423536740715608264320136981967738299637156285061827941632054665644878813586725683736664549422259964429051716462795738855760439987078366363595249207598593117817176315766421961538617575097641155887765146570578359686151838134999960440692377676471844124321926370909471378734274562739820850294200191739400728021446258822821209343777386880062172205221632158923391318357016883266917181670403797588772575758583777929126599738798046851760278670187966094229397050055860833119101742215616886606696420918141334869585988115626382453427976388752252706953017148736990363334219630371208529491105782206542740109001285199411992570108128213399803908783821812826559128877172170941374641948025412110625040812353139510134777124799309097718254441968030228830167099987177501958362934009322533627923233415659116240508942337029333329385036149279233714090389039850068240605300469779935270321801454312598177184238464149433012663331328029785392686017294923834309127935293981313324226588209189575727229850653047762926795209545230001467275722124447161603184823882980899211361539873944575283326873569592197035309937798599804157241281865246912331890201622060472637499346882886991041605013689272203235860011233483012018520604347124688553755529867510845542222971752838191762085415276860963368616377636358410523927129809151160502966053213976017880810732198861146529507427680941260908377711686300669456547998248498415738547600685118316566782367734223939594232781750392997458540502170793388850391819952975482564196283435009796720285007802321585112539780271859311393485608414840342317583511818545331240981935219796853819793119421132730753370363215449974083985579588861705352526879440489384462469708225022522111931955453540748099919990731777695725251863361181157393103137370038375282903737918148416311042442173844738666803129806485574059928299184022248067118906707409802323801609424053167243968310579144382175604814994637641970892953318582400398800115297382655522576881214149541782243172564770391153012424814600536887110917277483845054538665197292855323797764794569541942168098062485241266309519195593830973610278447981179974762089886145500581691690338358757741630639475971036093937182896560523121644486491969814759244274985932643701005195108402441713179109517043769291446045519147285871824224074434140912795008333151454603152691150101644297591059098180672719132073991518929255910104516929140965988019052136981229289436840473369397243772706414198302175966515774716988763590410366395337778167825593885572208110697918546168531056395914531067924922972250821681620318862254701440492605265662073308684963587914507080247273066974163517101602254633758956003328722418925599899889455099303967728876492905140278278688701994972015851683574748131872790749541970442169437914825457031722262056885463887322136788631929085029813332294082133002499697293039593667281490832705356348682131036357611648520148915434603511355302790349419507194136312653417269645627923961814607628098908604265061174122305654736456522424121203268590734224235177186563591595152638272946498946102175157775298729712745028697054305506908081144892914143845742253801692971468065430958904458932647073027756186882783530390833077555150315182430308630645080035493667591293722434307090275812231291867738947636372071279892908138397344773114611629533036490051615422503873161161713030803746760282564980307583715848555646887357118439544490399004702961237961044895226596200323917936416870846780990547255651159967946719989753567936538098694100589665363731727970801101600299282040321705472694510896630361548814670848177016213836391098588326582082729111654937267695297836238557737056933609791208752919267682824604215003825666814169428969408859057689899563171444102005355580130947438921346793128613931693271391216788769860783584052395876335187134961118141723197977678241874580899605307345333265105346998350661722521267596640864159447165626376779703891151134964027356368140400949738880331362301951018748637502941217892256454007785152267994371311717610916577416997381569895182227378279186687444995618331173879630139324096235229992355122839494444281862534583174016742569563722781190115222041803630708089218816537018056359575002683028432807784388163540052397134906708994375508012134125935652014020110300496355552985999634380155734934605694138075672707777454260746502322999634373300157349604917494110673655141023605935492352422833385560343997814306304943327672128026625910983474642037148100943288088476042468733847468608428742712123527459853751414555746597953244079753655082528579755952735382911478011725837194367879968006098266958548811967275684371567653207879335645728492139176843690996768974509166757746282710897628947997768225155320173966644314083074547971326756261802748021953914908842536022005223680877726023646074128688061025127646917157129198457239806804090596236264766381584810522216649131571537844807736808017215977641675008457352000822506111766801604929805774320419636530692999862398318028284396496937646228861140670199032849750438368926529126558878715850040873538083341746887281856088040083993452428516591126785178621605469652659485342723805369749435387660765021158457598729779148927363659637690434194405335441828724863748797312359472856512154299573301257352325201784436485090517496471581102813460375428882090029016056952823515135720950059943237345364210843302043403071419584666216578424693053407810880100220318720480321115644296075993915670931195651607932285896899692644522581120782277140222035911932880751930283575726340972813633268080417139195684363929696325204321156403865646606203878313319811045730343921360364396959224407840139600404441338745849016093613765827598649837335824327286277037232421986321321623728508109353037602559545826421479765028961932520718353456571260465764386777788175034192581840114119550029030066070235824853297090300757563842635767495868535955689958570909559760204934808347260520411839752257617855182444354434687907085090916010715452428960072234751018295062855333722623823722553889480823449041318275417374369757066228995380316266217603837590289392770991215542346444048749599999359598401315586548273450991178234819254328763495036253272025294347208495760747022872691207199703954770021227596058969726310698874801004808943850758661569576589855811577675448787252656141930184900023453551518362969524114417034263248942872944780840188816709219720202401128730695351982365298064144108994695288089026935731772959538528185136778690668619013256858575069365617663345601348139634383653388998502502496810528460101079244547632520903420357663995321262380161873003653705778701057815033890680291576305068756908718900757600159108293882899497399398956185094969946994049719946526733029581710204764242777610567875268097355300875110764791778369982170108309850769991922630237783851043162127674308763458361561307979719927248981591822408620274219106442769460987377077245800996891181221487953283522265632883794666947443843004665974228878399464092684363795046347942132221146693695050163020014497430565277297660363336052771818286498909234095210951035397179478493160207445132643677145806065287265866311789428483011155094077564762564691865327871946644890833223715281023379296924162118065530831926716952770249954228682441109327617271923882804730100647762761490770117426915615439287518024182444025404843303342827939149743205200885378044692135406224733869027122954688447355518103635200633026224839030815628461217650063341266904242966156205105201859460981420097111479717909913298924524679778101152893236350194690728808196280622892089191741725449963531693440020452719299183721916405869010084419709667024518648276595048569562568595922504883967700633620371779585565970112052954676101799377197868445176460774102425841330593691927069043666580148962481837554223153750679119999003433232664671588580963719060217950084110801362749715594398010337552413968528606722015409312043501574001448036771456852204098311676993554436679503053673124511904820735638205570193263695041204770163585096766505502447676072754619227123467157806853844468518390145303135437979202121961135577291254134733451165383281695318629376690909447696413312512615687802538844269115173681148995090170775129558478108431266200723295654638419214025410996808968939814885756310184201697578220558209358427241146789722917548218942699327077987235131747835133595715161634941309854981936077328075496898358266950517965583498451898100613619496235561763401086613663490525203404881869761916305097226438930763269130182838843423672722145231028681839499035156315971123599852314272358049249119384558333727276682172434210206195597007967059001126512472147493779651726908813358955252531833816784503413303718629203416968201377256817636301479474391298172158077950060613826575049040968945220134934944827509032228705760280435070896063446104102662994548178708940561340986270419577433304339721185569882804900591619799405402428115201260543703752760502633706343461602379901384200933699945437571631829677070043204997534729050990825919742170184720625019855511070760392093658041586513229225663094628958843591250699301243919804201832936631740804710094348113153819201119743716375184287554677231737868971931529249300156361615280153694917655027043367495275822408962301812089811808165662777899838107091796329896985039212308852619453609626892581743217787241982933106256030022566938149627602016850701240319199260664717557821989637674906325080089858510616258467228913995438003044877068726438087895481406463927539455108885767823852183840857172536809015350559043779108911542053381022889612721066846905765220689603373638053474492186075205201400231340345135487027787256289772801188094232823721352160074827925787168761861291605584395411438374884870938388517508233965318819269276289848606343339978830502723672910162852294091493876436767730728699709321454310711689815766596215054733834879265502724231739466828729325475008040692498654361791133572009486703552576673870942951898440835859910599664783827567305874066338406695756361189660122466907600578019633887397493128119343282712572516199629378587918291090880338570435818931178561054393532627414737893274184713254217303126994968563399544719131743561236502730506334853284911836474169402109235629440643308764782801651137351972955275622512288313696744779629261691157003804190724497216607468632904392078498812915382632196830593126941227896359752566136986620673512632166219364172064814822202814746756451179571378570207880683228724914158613515992058105098193929257240546488733772800434437388044219824530438301029292421336458325898220236558568054285589856673114326930252315834561123517221623109429197974951621892906278348813413336401145343222805556722795619569797896755307589351555957674567434210469455730361671238025839590479532502564507323185021639424678360746258940003278621528484370912117816749300255538133610347991609306331627402992398953809617628190544447014292218286058666281687890898557989115962027724204664505530190265984242450725874793760897512717386877435562093018334614533391119843789814989003131458005164983071449106651758754486105109025561506594652682309528285758348759504873217101150191538283384444438832004294343814783510452760877350332719401701878092532842295003517285790287430758022126441069135301620246912805179279800005671411381173093860133734154683397293806088838376322795560288457319751576654292330456532802006688752002506675319953649610920880859793888427136655396871312006850260956967005970770230479452875822251776013468083240580440740468135779572340483662125163013674141561003735678843977161229796163297231230410969156474415902322953551310554172685142059105605543732364152190438799137690588916044846832751680597249042609468347289515859770557159889839493157731899264110460073326150550046845802734807797716608361179765917227900878417189364790289236586662232099787236131729972409080768617061263264623294141628580348415062466598984275115479250307851634023745832771730276274751173429489508964686970181579118022466437852263717345756114733033214936451634028097473237614665185872066762473149571753725241919525512269833707022818699551042450685776531335596810327120537609603057014132633299543278136601487072988001316648282658530431576628093425282268237968978530062252780078926097916369273041418427763187567129859452658517813050964018122054502665060227044387037393900918379665242520695068183324696573887481008386119878857350426933588496416711263628932771892935798785400477727187380294957230127227231530982007919901230400683984411322405032469430228588400588679179629174895562856315499359499273447718759631263232045366572399295358703361549786381110897487678340183960465768208966072764875131578806525688325895470376313976850057433591790632844020108584504687626358880662546372257071969793330804781964087542734208812333565248202016908308057300276456382651354423534812918940949311441668055207008628353139525194406440269518925666366587777340692392707546307815133857282743419543520405905368086291370693106432847958694237932730398444318036340787125413916175588955754800516693843719909966611635186409255721276981503811385714299304459034229560622175673368265882694130276585778477187313965794749627356271710809608130741017138107575214604174896434766002765257272563128239496874405293442362172410029595149077949414497752008712508093614488676060366839086815923843004935434411569429642396973368316338327420016393686966137499057924706379304496425425786794713585222777651067302537954950108464205192598778904316831726947626545909461998179172350635229042485714234772390887761168473628616595400094608379809773118888809644779764613586630735971848231624596483415403795201421844572573306851766497672545885383021073469219011144340615205700113821631324069570063518438192699869236342952235494230213628135021478899982005247920268920403506629357904551099986363206965823688769035016909523262762254410255825571955201412207386323783459160152470219110922603430413731972693209666785576534858274201748080785293138152723676209814659899047045286916012337717523654633167435239879405879616870333630033441515384065776023406617444975602831676532466290676013452806042528645036730592431420230897718461721500587305431910135567826118696188781868861467013519102620004218763372109793515112529415541481738753167260385960511713761495496956703676283421628406454130296887052756591006436751824419520773288257646793559039132000214395700997123006471637582176446883327763888634865458290609438338215757321578922749187532274135937712150851502408274960553487953655099615714155382198626921664108080113053368448422924399531083007335837500491013946535777576341554701323204011211434417850547666561831673090992043728041325957204144028572570279757689349943991480605337839659027117339000654109019152573744821952760455995729841726113419582658155784111780502006803479631902822075778264191396438627678387447096477906983182559065293495855373068844412899645679839853659663466405740235228349932207983410646319735123624088054828435775189898711382785668455062553090399524154251580692008714900261150241784040731730654617474632549120125497906945414124225612673765069202149950902086241595795189220830654347832038608957760530847346149992695470564904624196459283227186792366905167138294724280573155471277655569766937799145421554002226838240769734800972376734252000827847585556125728607574067564535652101150868693565757919424333777209463592039179829311629256266319747584984866251812603873736886295032136395808608045745258192438047426869250306531317886628131310062424997421630920946857720966559971262078984735042761448704941957796513346785570119992154918093547504999668595178791265744332700679788571543776821512857434417168269605543915796695581916462989862759447881100085758067768497155354575966019993426649122652632716987755975340120705507511850775468169770694675649061956754539850515738031478018210924302212269342598949522486562142937154163381489004962145728667266830688332336661335470084965229956990358982024145767347056884560450561940927704199645190948936626968664671222355515299155200392604900684283351782367787788504100426491173105191346270382459117847817861172032135474691837757431640554276213758435336573292840974253049594927794238483628470489534370857950599100720927762613936389597820040914058336077591467347450521757882671992284200000455438653342633228242250106551297069953411509215123883355598696141382522206746408561310338169954825876583952996771086516114842404847901162191737377532600386737187629124003560895964124701429024791807180597514076079421781834756746875839473998255289773942294437490528067223049255819172312243405582525331890495169207591503173167835514764782324966510567109884428394762652264080787309429926509173765110308688463013467450737428410017175974105490409417859692086756562948155006313200918574310674699993919786479964599466763664461081316262405641705928503378979589279568273969931697077293137591377296521730869976623816516746100102032998273099716276144580194866738646522987446859516577657562119802465933487020314485724570332037199274404154396284412583764480461251735255606312046695534556433391720193755690421749817496060850760672781057645397898021544833796333152459189354219760582869556896155213503273182495642546858291850099558942257497791523927582006528177327831674385239790637955625708173901206158445581676335230507031343980643983006752524205816241386310408682244593728683886376010279399007248125640659527078848504393476628455951340221846773364560876665696629948887189548663618545237600974092221093597075831164380055435269211332553034880227449955765212490877007721427247604231092032810207194718985342259807800025513242335934572040890187877654703842280502847208600208132051918924351048164740347545217423658861011525870138117279370672086146636043861007643906669000033328766588253194735140893392057752452553635012373221456731982421247187449569537029630015793668120362425336740223663330935364416420279779334883939330080737335579217985287472768184870914803396998987751597128819883110366470115214785454697831242935726438695317818327177074217317761807632500466034448291418499214100233582595234923243557158847422612141528948553364592139882055784253159494428235128517814047532019943532966916320681133171729579310777243007597518136679599061714035169268019985503115255958256686093989580327144685575541958570786664639537057546029458508596463661103611769694001080983522137547239329072739108435075074613600693614921715054015149632467939420845364118941842784216739491669917412592166724706253765904896468091597432668646894694619555496822143074306828753504735574025967584668571141441756899224505314893662958338602871819144557821207566990663959095019546354873111552242645069653229379385596522524671300881162182853078387693204280817740053221468399818489671933922564476127447027796374197269179985079830333962586094646279984839681772601073278082338087025746856718335211549456717255691665010255521175212056958523122499683935384405137189456931726215192897149338938160807670629657113896102377571322030409296186431265353698327242996766188828751742806651221813523695915107090277991384501587244346150181527958656386536405503581108454925441688255808389799931469905983831272198137728299147963467832057061193919318308498213742170410479148787693056380856342868603099035810299424665379545044081483349135835640423178105366264898596438215092968625419262277131965530117783616264621437202670769643438738487863111387196301704112795919205153844979319323679638825564010867089605734721127695475914143749575345921126132797682640524496388195024400531718484966353509687698177229407835721954894905371708675874723888083252861249013565370133926788300023379886881387061369847052469608620291400992207957585864232976284030708044473427737532605244420749954828479265385198782297607968142625958527411923690503540701256375682574464035512685865635986961948530634735896430408749890324401183957728813669330331017782377902980538623862950530041916938194141040773029210724942221798967098565725323220344080726006588481527514914937697243543438356531234760302873557433157623650182058787433084214087659372796458523805278669976663242683306801189719979547374020873023414598756257234502474628312939842671077107536403218025038633361697776974070431754048889466424365699648642524306195797730553286085677193780759711204360678562924048256386488393533687797342566167186854771372148478362753352172419079220765965338392508021552016527787862403305697276611732043031713847782281037645514345465378500590786177129432242493602718659379579868426313582012108548531688247554105406445464720144522387526006559559615765071228810038903112822948130904588063157232711384947916940013019785445414571447815331876594037102358646467383507182518146381906239234205131945885626218754321837569968627692821484735669342066036146797352437612117027401262558428242219676113387287368104444712340206452001017987461884125495589218904101029366789359265445264248596497463817630516943045339504408393535239059785700857464656033619441489425734764106190371161857068482377136596705439753132714945059470195536181342272522592153039221527690536319317837257853037298702439564527312497442445259153810888262826688775686338880558695982019703081403076819929577013300851826477185232901110105752305223474536147319511017973641529319355731050251345200939344233371243198729839260078113969802838952866171179840392285541396386974623790539284876724599639672522828755748986221016471593840022140547428705660469299087342346403249579638560101055246860033678754856152113310483767078920982779498483463468260943107538470568244535868688234786354583598687721106185947083002485905182639682812725285719719558015597703789651999888611425007140019195247625276873770946117131861464334043043780254965287165585385759463584062507229005603156740678503315007392385544202412823750820837750995524421569371026944052353400507706425665118797383062479157704844986107938820827049712047200542812266517495749040882973712917467667136953646440948495045859685122949905047458694715512435490969693340924652458800828517149126277542033941100664654521316337608510793537735563039758901146643829034942033102044514546845861629708782533016948669934718001495760352745910617791100598285607219227157930751729397106843094203992247602308457073737926331373549404053580323862177597258977962321454530911467765864580545060232788796476385625143285459613609989616133082059416957614204797671836093134901461942976976065815992412177606038481295884148126858001336519062825021065987613068321353053758668302946910404678286715931286645489589590473459720606612508621540329517798199826569799166995611656194247436129069410060719003843148356346921951146318489066448932007417502387804499337339052815485325237827160865986065217674350366771049025343926082567211562430351099117258081848673276657596642859810659387567671543691667255950947389114718580579668298249396793319405385485524265301495406963989998529007464960897042741567750316924705985837707909540174494255424415110326959815080083241700700423018769759596820509689224246403745645077230735624166063367305051976285331105937927989646731652394676184645284803629503428757133512294994663477237864591365678748822884985355416148286197414107645801764480147241426443372366042952436805558098793487154288221758151500614506533463120275443361368838206707414903080094372367950945830094829530375732808437373457838659624238217821554500241081343466233727944495421144326769983512457052255066985736951474203172034493696075115106447735385579699216565245285552051188529276299087222081790024535219507307583958876613933049135781195375853321789740259133229280864225867198293637404787710152268116286822558345344321372859683397358499114872737648925730684780026687483536775221779218216957016690303677586215615399034067012728083728035367431451504356529623994677756022937491976375121722795273606937503829142080553509418422881195681593191593561105244237953108683111016418940062989073162893327806610667720620887661213120214702597617608977317525930970038275871884395659281064635808570049793656969080488268387800663288572030353313494939779028337539197308532441261503329926090401827867875626945422770570208554621275872774885504623643239416124972464327695321921314549745888115016724714201581620127881328407176991307510314900786579202365780467791434725982766670253807500920035971913792541464426516859649379178641700229980232941783626050205428960187005558819405603404356894832545858896985743122972824206175934749174878437529009367785782154550396159646097204643011714286745784120977745471224113332657253629163551600595305649170660080704568841224025360409250648743340241628063729823465020435581189095619592944662102737754039931524562255047766568538772644506273150591196358325143439412055848092032643132731329638031662571294634301279104715785840631391861076003862050380240855984849878095236259760993766346309810764034064206152563921704657587621674962250873474507625327143688154203771399336363055746591503739611649344698429927519297640759162876508843759060231167643100856938368410764424499915949052121683606296423353652720952928335819510159846331191227670018960473201173078492322602390443834819727375460250625909934267295581574316604214523921623046304759297784723887111541461086401040502930735372587423484610865699704294122245598273553155961185554018578566991791411018733950604056915656287646561313059133395558415248799500519355740311430845145144272349855672046851905405439438806890608680936578782156582412937357456637087387807746770467629930560330094880133417152549135735213763467871701253033758303861679291683155395835246843562268965986080641736526790255864968457346304029005072094945085620599009117093568659638790745015094050385543045014667678377837278695736885828390106567327768646743191245936253125868151401913516231464954165757506563861149512997824969652655620235784278891401288986826158932010398398524289424371011198776767178571270720011276934655426773639685831205015269185987815628309777124231477013836685024001388113205317991523743590109815240171466728480136875829051317007347043371278708716261431556097654769948483795835755033362028604698087424102574459901918753149599027491130655396942483563307103490751990386682051399138970065260677470027433198442834369922490873048069542289591969960170635769469426451349487847091534840476410069665672917965787320782631285205279954285507545492379339437193963005078753590867627714354871213494280821747319959326012057522468585229217129626130714744724905794188737035725811710724869795799220582578885442854581968565453366776271451037428725395414633599688168840428278119795335259150848121843572735094271657640494672726452286523134459267297540661608002795447662122856915337037418078234058591600226728515612922035792695372698099911969571715849805559782297141162893975405441342270528358987383333972479707123549711165976276116040681407722557116095172649392193256150404059518263360696644114655049392788237693856645311241145831502911991601592161007858326732621524538510538395005388953737212686175679005419492131308024962453671417353339213943650363088115187632362068995860665307721279172822261396355753614436309943087146361186557553022719257895569299967439272154988129648527374997553883759324711366979752165605999869898143230846369528306446823351749438894699861730034523296990425341953222440463000000666580502734336327042802339439438652160067544754911838953881812133747169884567153898846987824863278050677070464600917511029239496344240483535608958691280935796196515542621737144618892635315912088071589978467328336854827684275766214571400251401165705832035763319620196582029699711088320033011483028169155937701152305859569723722836730678610704264132966716833423805911779840195827145707020425380876028733348112086411395451575197622596719949858595650000500448162187761464965044702904247394655189922226743134033465544751072785156222574529739266848367665513757032239121120719528167241642028249367364134185015047659155801896219388069619931128646443048169171555453963003116427742417223483286055632064967596294015005301220293832627360654875287144032936783057110911877795302252357410818354837304819033385416455791626172512354095651170969694678555084709654504923222581224189562352414426102860327636466177107340032347421727751643090370960954792606694997916069120895226452302074677193861007129579037321068706946250144815768064922243731377884996966099114078374569547262762021343826645984534251453033173183796106778266319021983334595447425870427768273495776104776741155955282674689877672868544187815752597732089108709691179959281149423762989119984671875318157264835818246623756912922922623254103987086183975114551246016330016475451741821894781710480281640631397220503774212613105610971513626202771527002984011565479415158360759094013193633572079198706514642749002155680595344456900691568938856428704455126749877292444779352970143600769014091478394809619670752091886321239331199475067850490702149805464275896334040709395375997753927726693663573914673012102266336473854674430288808345514158590132187674971302616865955972929197927674175251707531863431753496281468605711750824398572493519109755290846940882006660982853495048773358393906076971870326775883538279830866698356296142942111604916873574407676594971112919210053080897290397894978568283178665431765438676198066001745204650492046540214174962678449123783254132388246558045729247428510970045949459320632195487186443593311190299606856074266156256652049120333663861538963444164357099576049458104267990048371465944142231495755872691875368265298136980243756426794095697003877626417852252014439102658700203674689492669531886805282709556804857729873442963707110120869843660452757196120979874350651365640250619460252340605952056878418203300803992531528442737580658120129484016560541039351133454676388399984069091318219013398485815112665939491756977748119253131666981984232137232099025647275607567673032881279298964681898451769251072324157810851968136367840569028087636610218153403234214124670018504585784000007171098106470066046834961682761053549497566220113710680740237618672496248467398272097106191281424575170475984803992654385799438237147277591585615121989972586544686517920489149090259373294428689659212825266830413979358287251619966963881588952156459778201203962108920729898698617663212217536613847553338640547486660754738375018691049624454704110706929159848214546759651548723016839061904064297038263669488073519594436569025295355768946128065735163534111758815714464776927064889498064867488428918447122560304351995983729223811218399230663358730757199846728833014884296369476792333631135487050170652175813593220694250174167250994902411958383645960546520339378048615521633372813776551956246336958427512402642578110734959636781002853840586729670550360997049540112118651342867941882593156040589872218746933823957297701884100159885292870728881186138385589619590255930645926523780496533148840676934178380922833690430461907111298052730528764188305370655703579775799301610180716221529339609126431094102160823057450726178517402770080000030765297260149458579558497390028056718071730955212178158242215254261107869338433248743758025040891441634220336722908317145738438315489000058860644408161032781090229409441487472373277938379238713337050779407703175659666256186317154433891666573286332863444499544289709823652296444552114367755335443948463565951773070165763940084791242093857527563221579588419697040555961488703563373734144669564641238688805629355068912749439249699108091274182056857594181192958572733736253538918055549623176070304001711645552114385234484853282141726263363310464204714885599507542407762458615393510648416395505570640035708632542036914666351352571735264663872016518049270279142747697601368292959828650939630842297563621458987164017084015378402346159318201071132167400095352272976285174449447738091102898861772366495968479743644622810913457967934728073371252376026481899949618165165671820966410271809720365708798648536850478628870299870493359941312442345979980347893870263846807383482508085638355086261023631928909618417953327507092261723593048371010419895085645999067964062690789112053996962639837213706392395206453354968451431813661004962376362648155582612128159722420517223529554985012618979805056109024908856821763626544674059694929660075302412458091534897232600873186063923514963857035796941836391954482635948793243422663999974449252374266969622150337056492183514017510055258516797542401195221693261155228389546403238590012538126693227578447119219461616577804425197463210224214617455116856298351277684935479838509552935640663134229717919885563566635051919596349248072997498769431806452330628123182072478797986992067827477645696546889483359901507224344346114026410024796152270976113352098582301657507407660544572822480100613671141875807663646017405040789708213220338966645342128344482804424538814859979020948642106756082287392213729402792193249854128671028401518780832742942399494790591344247391682931159019819180394351443741762487345029562575484302708837618925351562328526188758155886635002645097332292903296426559414212041565468782578474913836409691380414453217623395217329297974148285336864282985411668729843467827021795737234501387495649944969916210702855833476552310469704747379288254507839835254961682505653495984988729806081508393731170419533075337940967491768323146760352314848846213931675040200952363722154450570186883245272683637295005211233416743639395342543642747086635739486971890951500750078534349932682146374502253288568213277011273814720146467615310355514283718886706768546634941474953345851239739285060685344497531349053747927447258890799614160094029952007096759062750542357183651808207519326366754576008329063125996661311962806172172373121762579030157103694913989878174104821735342914592102146920232112349698308536574364172919994292287673696403486802347939654403632695309399354478442679265188002751376025986143076641758300990820540068824903261620323689776734131090902647471425548498075010064956500943341995032208281086297014140303908181718004035953351135052728435505779473273752182720626621175030979354510559851764609788890676849816134495708126740702849383121379310031872112538319919962271519515417400093794836842564320788433736646821380984022657864888304906886511203156746349289415004808967020593341736803665781014902948334513025882320618050708905401205894452548558556435201844629140885309518709526750999461454440328689665765997027375389714972908485387319790915658596528646796150061435156749880323483018772885392940419110335622443832926382382499431133384401667276435516923651438461288537969045406949044572226523544114031427632550514192979449795474447370919761537378724922782285228095647188346603820730204037843206437324572596480510643068406024784250228612862090558625086881662150000557523421183869706327696726532280786864785097702945954823332366483848760818125486431317764904670504080212289681869325998460276135832171842212469398293576019328414876168925888195242337505643598886960008340098805881561985926433658607211512262101191241691869178488161674931872288866772258132679943999503974046244492382193762384171025446101438601553617913305229951584360443683739165892589728338761714709965295189220099266312689882039694456839547941897439848671692642092108261753614563808746468409365888323588823135620610999837795355284719744693847171768540373110792550439573392563929772450854168892400400026642073699698414275847050573230376886936606704494249377163694230554913602517309852491883934203007247271429629921824372739026813028891610570485793274384441635511905845997062907512131381117788022556306710549632995878459476827626539922977187785925010216194539829392686759137300404225322969407562083329971880503076514214891665128810327404658636447888553943776807309853663265076215172810451943794930657956441024208417325494899415300584402057431258348325004842264237606230893454726201843510261079687241655748776117436485606130448749390731523181256216459251047802600083740363685959051905242269827518658490170785789886815412516465306354889071722927229747999057151502916576162585496234744407672983784535413370941827174960788629335289980830436577678061526822089007175381361432824258885597022749704942948543131999582680768450906862550848621132529053911928518221246568848407390632708699935374088735767947351606773261714815022235861813514783196795367141334268612562834174050588115947079239703599323067631007201157947497298612768231804966516009520420830213565617835776228439425414249504866089606180605389660448279020041995605565011419426357989515249081155556925487031644461221183957379418929959395378539312939129389868585016348443154687862221549320172750880361395035928898503376611302728523344815390769770240467527579754110261611233752701880035298455679579804724680693016938368642153273788544030648581522627114148119961999627310347099815094369095521364417652899736716352003542213685576136638869273565671009407986457937180241838913045468513934482140889413511725161237153569462423498123106861919137614677010069100942815787919157409512014920124425818051534598395108738005162572925803791245109105683212073146972363782739514947615093316937207430642539234862560154984162805250671045027861770460393271176979716164381395810354698167478264769561983525269892635407994205765582129737855937617000406974115518009401667559904952391455457759857675239648938938250371580661838662945587044882786664374108327701642114494596872242929659913950388808421198874951115228594342718572947127549554971833071441336327354532561093469318416284433505380538457378203979470596962878446285323239262691830108110835938622259322634358726444375714086830368269994314879074084129693751934176293984420139796689055186317511049482371036070630914105850095967268552357199881942971094016744971004838190937882993015676624125932939396354386676202048140699689156038129718338322542278000676541787054783092082869048345269933884319193018117854640181789651922273787321324881429249224835240561213220189521185010955750025566125387168259001255183050738572577631650082044343572209919991128305914363298371239015454353365784144837293931696575437339381938145721426820010641605556577472619738888298115916471218840084428620326120357500512809735447121999445269636412959578266419464909913730894294343989874724577342101064234601568695233046346241645570405306482574869739864069607525733325172862884081935878648236921167970413337748503164367158607802723350139630494115540142956618782437872334557520561017332945985668716081901098041291907173049103265291014070655776880068213480120661612385580536252323811256434666361703644952422798638568282592101000206155769196113224770776906291741867791868263353846704065681669923785589029380516801431860492501075364562597738652978532586473947225454404511368789856653932731058047992476696392546038425178368209996640421716923647725765771535240015245852044440549886687540051300335916002596324043117720949934069393587475571084977053443415689952267448877544444274453765196400899682479851215194503769453523915031814866115735501675259903003875969117037438815386556039141655834433034745906564189834348135068258165447396292292591940068202925564824121493315049929165403399055922839062949577242403680448281998312980360179633585997491771542405132253032731508548181672078139168081802072277030371495350218767484851493226772634249810176385205901833855996370359648113672656018438013240257691374318665760316563531595906985786355346995397551602192327085800931250881571712380177304847521811338853406189699302844388928443272640689008894894977744237316915733456910247983968502149654017335042103890621742783305351141627924760159694626767614334568910743419562269049400230645891696081124188717968737338593068588448548189810957530764762677108440272985234319803974129191470421501120132088392678231305372755005279791808167169196532760330537932497779931225818085258650755348010022290641033557213111743764802713749489683559709957609019914022252978518257943405410617070666211379493234574639163098296623976660729783004990703563888553484357726929077363235585131521414481677517248885373859527237509688681888725284345370471918714840210186520147939436750529128951409157015509748579820225826500671951095205662644368845458192160363224518397359117288616046477988773268097033645040268304202738485213050191043199260041200378759455752588735464521599774869626037805667044864868537008108571075066352050214749496331039989439471174571035796038783091256998254227277976508123831525631491870635161279317434618258257247338927912280155799401536958059147733436182151821092025595257186127495985031588437728027687752468870047069792392915666748524310280747570691811774279945456597029203697769971610661674418318936178849700109217607368723291148572021302910262228256207854700318977841101027539932919201072858710141207562568844125691320523697963656926943501887306129399992385930910819716057163256305493473214468296418379838209672785254307764250944135789945153766589496848638647603809786024764912431982823568012545490999091800397448880273199430277023071943696774570896407601355000478600818946947604335910463233093438713301309300981775717913338927951357982140703498883050400710495902449358139949775482776112339839260881015245291589021265037966025485771502875493759831448512234354230408785765173148703313690298271468130669477165239082591674943714934549959296806071252135118264366639478866608635949874572431836736936659248773751564359326712202157927711027133177000812349669073188423398557837925047600584446619487564484032622517607428790869761188411694496611987993457714969037611613799455858182927950104116139263350053184530271666951157622852086311658016737706864479444646756398715056513042724288045141591074591076863620043667198535562465454882183919670154985638367236617466338486973729174494142525236166933467213036546602397175637465907460962874684816581423362243000500945160257337952730386167337059148327652400587585778980944265955166681177329063558832921990482529631587260088655541882772079846832839047224950283423456587835549553158241296095836661972577791484981298372807681342071709286485011083203802769508892080619047365346640166033665713549574986185463059662645664344341337057673674179616206874658781625138196865029045509264704958936719606399417846456400299273678608094179109177428793117012336960187407085776992244787836231541880275807433007001270274603227672705240560012457714813412128981548194257285396903930228015544927432077964133952391787622639882497409773731881534406733250185423055759061541806864732766159458740862380424902449274447501046932922489527099169820336316719327133881172893519305980886612862670501716122033991102832889509474495599283178351133874694707777385334667525693573527998304387281799502177964462591741205710067837492280129466557319149912947044253452558432006045650601749920517992422027197247251250126901098643736456215434422571452101831188776880686302989713378566330044068099985519391742446633749389470390375245779256699660303265435652072678728835138492561669543896048155005994630144292500354883118973723406626719455081800 >(bye) bash-2.03$