Silnia
0! = 1
1! = 1
2! = 2
3! = 6
4! = 24
5! = 120
6! = 720
7! = 5040
8! = 40320
9! = 362880
10! = 3628800
11! = 39916800
12! = 479001600
13! = 6227020800
14! = 87178291200
15! = 1307674368000
16! = 20922789888000
17! = 355687428096000
18! = 6402373705728000
19! = 121645100408832000
20! = 2432902008176640000
21! = 51090942171709440000
22! = 1124000727777607680000
23! = 25852016738884976640000
24! = 620448401733239439360000
25! = 15511210043330985984000000
26! = 403291461126605635584000000
27! = 10888869450418352160768000000
28! = 304888344611713860501504000000
29! = 8841761993739701954543616000000
30! = 265252859812191058636308480000000
31! = 8222838654177922817725562880000000
32! = 263130836933693530167218012160000000
33! = 8683317618811886495518194401280000000
34! = 295232799039604140847618609643520000000
35! = 10333147966386144929666651337523200000000
36! = 371993326789901217467999448150835200000000
37! = 13763753091226345046315979581580902400000000
38! = 523022617466601111760007224100074291200000000
39! = 20397882081197443358640281739902897356800000000
40! = 815915283247897734345611269596115894272000000000
41! = 33452526613163807108170062053440751665152000000000
42! = 1405006117752879898543142606244511569936384000000000
43! = 60415263063373835637355132068513997507264512000000000
44! = 2658271574788448768043625811014615890319638528000000000
45! = 119622220865480194561963161495657715064383733760000000000
46! = 5502622159812088949850305428800254892961651752960000000000
47! = 258623241511168180642964355153611979969197632389120000000000
48! = 12413915592536072670862289047373375038521486354677760000000000
49! = 608281864034267560872252163321295376887552831379210240000000000
50! = 30414093201713378043612608166064768844377641568960512000000000000
51! = 1551118753287382280224243016469303211063259720016986112000000000000
52! = 80658175170943878571660636856403766975289505440883277824000000000000
53! = 4274883284060025564298013753389399649690343788366813724672000000000000
54! = 230843697339241380472092742683027581083278564571807941132288000000000000
55! = 12696403353658275925965100847566516959580321051449436762275840000000000000
56! = 710998587804863451854045647463724949736497978881168458687447040000000000000
57! = 40526919504877216755680601905432322134980384796226602145184481280000000000000
58! = 2350561331282878571829474910515074683828862318181142924420699914240000000000000
59! = 138683118545689835737939019720389406345902876772687432540821294940160000000000000
60! = 8320987112741390144276341183223364380754172606361245952449277696409600000000000000
61! = 507580213877224798800856812176625227226004528988036003099405939480985600000000000000
62! = 31469973260387937525653122354950764088012280797258232192163168247821107200000000000000
63! = 1982608315404440064116146708361898137544773690227268628106279599612729753600000000000000
64! = 126886932185884164103433389335161480802865516174545192198801894375214704230400000000000000
65! = 8247650592082470666723170306785496252186258551345437492922123134388955774976000000000000000
66! = 544344939077443064003729240247842752644293064388798874532860126869671081148416000000000000000
67! = 36471110918188685288249859096605464427167635314049524593701628500267962436943872000000000000000
68! = 2480035542436830599600990418569171581047399201355367672371710738018221445712183296000000000000000
69! = 171122452428141311372468338881272839092270544893520369393648040923257279754140647424000000000000000
70! = 11978571669969891796072783721689098736458938142546425857555362864628009582789845319680000000000000000
71! = 850478588567862317521167644239926010288584608120796235886430763388588680378079017697280000000000000000
72! = 61234458376886086861524070385274672740778091784697328983823014963978384987221689274204160000000000000000
73! = 4470115461512684340891257138125051110076800700282905015819080092370422104067183317016903680000000000000000
74! = 330788544151938641225953028221253782145683251820934971170611926835411235700971565459250872320000000000000000
75! = 24809140811395398091946477116594033660926243886570122837795894512655842677572867409443815424000000000000000000
76! = 1885494701666050254987932260861146558230394535379329335672487982961844043495537923117729972224000000000000000000
77! = 145183092028285869634070784086308284983740379224208358846781574688061991349156420080065207861248000000000000000000
78! = 11324281178206297831457521158732046228731749579488251990048962825668835325234200766245086213177344000000000000000000
79! = 894618213078297528685144171539831652069808216779571907213868063227837990693501860533361810841010176000000000000000000
80! = 71569457046263802294811533723186532165584657342365752577109445058227039255480148842668944867280814080000000000000000000
81! = 5797126020747367985879734231578109105412357244731625958745865049716390179693892056256184534249745940480000000000000000000
82! = 475364333701284174842138206989404946643813294067993328617160934076743994734899148613007131808479167119360000000000000000000
83! = 39455239697206586511897471180120610571436503407643446275224357528369751562996629334879591940103770870906880000000000000000000
84! = 3314240134565353266999387579130131288000666286242049487118846032383059131291716864129885722968716753156177920000000000000000000
85! = 281710411438055027694947944226061159480056634330574206405101912752560026159795933451040286452340924018275123200000000000000000000
86! = 24227095383672732381765523203441259715284870552429381750838764496720162249742450276789464634901319465571660595200000000000000000000
87! = 2107757298379527717213600518699389595229783738061356212322972511214654115727593174080683423236414793504734471782400000000000000000000
88! = 185482642257398439114796845645546284380220968949399346684421580986889562184028199319100141244804501828416633516851200000000000000000000
89! = 16507955160908461081216919262453619309839666236496541854913520707833171034378509739399912570787600662729080382999756800000000000000000000
90! = 1485715964481761497309522733620825737885569961284688766942216863704985393094065876545992131370884059645617234469978112000000000000000000000
91! = 135200152767840296255166568759495142147586866476906677791741734597153670771559994765685283954750449427751168336768008192000000000000000000000
92! = 12438414054641307255475324325873553077577991715875414356840239582938137710983519518443046123837041347353107486982656753664000000000000000000000
93! = 1156772507081641574759205162306240436214753229576413535186142281213246807121467315215203289516844845303838996289387078090752000000000000000000000
94! = 108736615665674308027365285256786601004186803580182872307497374434045199869417927630229109214583415458560865651202385340530688000000000000000000000
95! = 10329978488239059262599702099394727095397746340117372869212250571234293987594703124871765375385424468563282236864226607350415360000000000000000000000
96! = 991677934870949689209571401541893801158183648651267795444376054838492222809091499987689476037000748982075094738965754305639874560000000000000000000000
97! = 96192759682482119853328425949563698712343813919172976158104477319333745612481875498805879175589072651261284189679678167647067832320000000000000000000000
98! = 9426890448883247745626185743057242473809693764078951663494238777294707070023223798882976159207729119823605850588608460429412647567360000000000000000000000
99! = 933262154439441526816992388562667004907159682643816214685929638952175999932299156089414639761565182862536979208272237582511852109168640000000000000000000000
100! = 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
101! = 9425947759838359420851623124482936749562312794702543768327889353416977599316221476503087861591808346911623490003549599583369706302603264000000000000000000000000
102! = 961446671503512660926865558697259548455355905059659464369444714048531715130254590603314961882364451384985595980362059157503710042865532928000000000000000000000000
103! = 99029007164861804075467152545817733490901658221144924830052805546998766658416222832141441073883538492653516385977292093222882134415149891584000000000000000000000000
104! = 10299016745145627623848583864765044283053772454999072182325491776887871732475287174542709871683888003235965704141638377695179741979175588724736000000000000000000000000
105! = 1081396758240290900504101305800329649720646107774902579144176636573226531909905153326984536526808240339776398934872029657993872907813436816097280000000000000000000000000
106! = 114628056373470835453434738414834942870388487424139673389282723476762012382449946252660360871841673476016298287096435143747350528228224302506311680000000000000000000000000
107! = 12265202031961379393517517010387338887131568154382945052653251412013535324922144249034658613287059061933743916719318560380966506520420000368175349760000000000000000000000000
108! = 1324641819451828974499891837121832599810209360673358065686551152497461815091591578895743130235002378688844343005686404521144382704205360039762937774080000000000000000000000000
109! = 144385958320249358220488210246279753379312820313396029159834075622223337844983482099636001195615259277084033387619818092804737714758384244334160217374720000000000000000000000000
110! = 15882455415227429404253703127090772871724410234473563207581748318444567162948183030959960131517678520479243672638179990208521148623422266876757623911219200000000000000000000000000
111! = 1762952551090244663872161047107075788761409536026565516041574063347346955087248316436555574598462315773196047662837978913145847497199871623320096254145331200000000000000000000000000
112! = 197450685722107402353682037275992488341277868034975337796656295094902858969771811440894224355027779366597957338237853638272334919686385621811850780464277094400000000000000000000000000
113! = 22311927486598136465966070212187151182564399087952213171022161345724023063584214692821047352118139068425569179220877461124773845924561575264739138192463311667200000000000000000000000000
114! = 2543559733472187557120132004189335234812341496026552301496526393412538629248600474981599398141467853800514886431180030568224218435400019580180261753940817530060800000000000000000000000000
115! = 292509369349301569068815180481773552003419272043053514672100535242441942363589054622883930786268803187059211939585703515345785120071002251720730101703194015956992000000000000000000000000000
116! = 33931086844518982011982560935885732032396635556994207701963662088123265314176330336254535971207181169698868584991941607780111073928236261199604691797570505851011072000000000000000000000000000
117! = 3969937160808720895401959629498630647790406360168322301129748464310422041758630649341780708631240196854767624444057168110272995649603642560353748940315749184568295424000000000000000000000000000
118! = 468452584975429065657431236280838416439267950499862031533310318788629800927518416622330123618486343228862579684398745837012213486653229822121742374957258403779058860032000000000000000000000000000
119! = 55745857612076058813234317117419771556272886109483581752463927935846946310374691578057284710599874844234646982443450754604453404911734348832487342619913750049708004343808000000000000000000000000000
120! = 6689502913449127057588118054090372586752746333138029810295671352301633557244962989366874165271984981308157637893214090552534408589408121859898481114389650005964960521256960000000000000000000000000000
121! = 809429852527344373968162284544935082997082306309701607045776233628497660426640521713391773997910182738287074185078904956856663439318382745047716214841147650721760223072092160000000000000000000000000000
122! = 98750442008336013624115798714482080125644041369783596059584700502676714572050143649033796427745042294071023050579626404736512939596842694895821378210620013388054747214795243520000000000000000000000000000
123! = 12146304367025329675766243241881295855454217088483382315328918161829235892362167668831156960612640202170735835221294047782591091570411651472186029519906261646730733907419814952960000000000000000000000000000
124! = 1506141741511140879795014161993280686076322918971939407100785852066825250652908790935063463115967385069171243567440461925041295354731044782551067660468376444194611004520057054167040000000000000000000000000000
125! = 188267717688892609974376770249160085759540364871492425887598231508353156331613598866882932889495923133646405445930057740630161919341380597818883457558547055524326375565007131770880000000000000000000000000000000
126! = 23721732428800468856771473051394170805702085973808045661837377170052497697783313457227249544076486314839447086187187275319400401837013955325179315652376928996065123321190898603130880000000000000000000000000000000
127! = 3012660018457659544809977077527059692324164918673621799053346900596667207618480809067860692097713761984609779945772783965563851033300772326297773087851869982500270661791244122597621760000000000000000000000000000000
128! = 385620482362580421735677065923463640617493109590223590278828403276373402575165543560686168588507361534030051833058916347592172932262498857766114955245039357760034644709279247692495585280000000000000000000000000000000
129! = 49745042224772874403902341504126809639656611137138843145968864022652168932196355119328515747917449637889876686464600208839390308261862352651828829226610077151044469167497022952331930501120000000000000000000000000000000
130! = 6466855489220473672507304395536485253155359447828049608975952322944781961185526165512707047229268452925683969240398027149120740074042105844737747799459310029635780991774612983803150965145600000000000000000000000000000000
131! = 847158069087882051098456875815279568163352087665474498775849754305766436915303927682164623187034167333264599970492141556534816949699515865660644961729169613882287309922474300878212776434073600000000000000000000000000000000
132! = 111824865119600430744996307607616902997562475571842633838412167568361169672820118454045730260688510087990927196104962685462595837360336094267205134948250389032461924909766607715924086489297715200000000000000000000000000000000
133! = 14872707060906857289084508911813048098675809251055070300508818286592035566485075754388082124671571841702793317081960037166525246368924700537538282948117301741317436012998958826217903503076596121600000000000000000000000000000000
134! = 1992942746161518876737324194182948445222558439641379420268181650403332765909000151088003004705990626788174304488982644980314383013435909872030129915047718433336536425741860482713199069412263880294400000000000000000000000000000000
135! = 269047270731805048359538766214698040105045389351586221736204522804449923397715020396880405635308734616403531106012657072342441706813847832724067538531441988500432417475151165166281874370655623839744000000000000000000000000000000000
136! = 36590428819525486576897272205198933454286172951815726156123815101405189582089242773975735166401987907830880230417721361838572072126683305250473185240276110436058808776620558462614334914409164842205184000000000000000000000000000000000
137! = 5012888748274991661034926292112253883237205694398754483388962668892510972746226260034675717797072343372830591567227826571884373881355612819314826377917827129740056802397016509378163883274055583382110208000000000000000000000000000000000
138! = 691778647261948849222819828311491035886734385827028118707676848307166514238979223884785249055995983385450621636277440066920043595627074569065446040152660143904127838730788278294186615891819670506731208704000000000000000000000000000000000
139! = 96157231969410890041971956135297253988256079629956908500367081914696145479218112119985149618783441690577636407442564169301886059792163365100096999581219760002673769583579570682891939608962934200435638009856000000000000000000000000000000000
140! = 13462012475717524605876073858941615558355851148193967190051391468057460367090535696797920946629681836680869097041958983702264048370902871114013579941370766400374327741701139895604871545254810788060989321379840000000000000000000000000000000000
141! = 1898143759076170969428526414110767793728175011895349373797246196996101911759765533248506853474785138972002542682916216702019230820297304827075914771733278062452780211579860725280286887880928321116599494314557440000000000000000000000000000000000
142! = 269536413788816277658850750803729026709400851689139611079208959973446471469886705721287973193419489734024361060974102771686730776482217285444779897586125484868294790044340222989800738079091821598557128192667156480000000000000000000000000000000000
143! = 38543707171800727705215657364933250819444321791546964384326881276202845420193798918144180166658987031965483631719296696351202501036957071818603525354815944336166154976340651887541505545310130488593669331551403376640000000000000000000000000000000000
144! = 5550293832739304789551054660550388117999982337982762871343070903773209740507907044212761943998894132603029642967578724274573160149321818341878907651093495984407926316593053871805976798524658790357488383743402086236160000000000000000000000000000000000
145! = 804792605747199194484902925779806277109997439007500616344745281047115412373646521410850481879839649227439298230298915019813108221651663659572441609408556917739149315905992811411866635786075524601835815642793302504243200000000000000000000000000000000000
146! = 117499720439091082394795827163851716458059626095095089986332811032878850206552392125984170354456588787206137541623641592892713800361142894297576474973649309989915800122274950466132528824767026591868029083847822165619507200000000000000000000000000000000000
147! = 17272458904546389112034986593086202319334765035978978227990923221833190980363201642519673042105118551719302218618675314155228928653088005461743741821126448568517622617974417718521481737240752909004600275325629858346067558400000000000000000000000000000000000
148! = 2556323917872865588581178015776757943261545225324888777742656636831312265093753843092911610231557545654456728355563946494973881440657024808338073789526714388140608147460213822341179297111631430532680840748193219035217998643200000000000000000000000000000000000
149! = 380892263763056972698595524350736933545970238573408427883655838887865527498969322620843829924502074302514052524979028027751108334657896696442372994639480443832950613971571859528835715269633083149369445271480789636247481797836800000000000000000000000000000000000
150! = 57133839564458545904789328652610540031895535786011264182548375833179829124845398393126574488675311145377107878746854204162666250198684504466355949195922066574942592095735778929325357290444962472405416790722118445437122269675520000000000000000000000000000000000000
151! = 8627209774233240431623188626544191544816225903687700891564804750810154197851655157362112747789971982951943289690774984828562603780001360174419748328584232052816331406456102618328128950857189333333217935399039885261005462721003520000000000000000000000000000000000000
152! = 1311335885683452545606724671234717114812066337360530535517850322123143438073451583919041137664075741408695380032997797693941515774560206746511801745944803272028082373781327597985875600530292778666649126180654062559672830333592535040000000000000000000000000000000000000
153! = 200634390509568239477828874698911718566246149616161171934231099284840946025238092339613294062603588435530393145048663047173051913507711632216305667129554900620296603188543122491838966881134795135997316305640071571629943041039657861120000000000000000000000000000000000000
154! = 30897696138473508879585646703632404659201907040888820477871589289865505687886666220300447285640952619071680544337494109264649994680187591361311072737951454695525676891035640863743200899694758450943586711068571022031011228320107310612480000000000000000000000000000000000000
155! = 4789142901463393876335775239063022722176295591337767174070096339929153381622433264146569329274347655956110484372311586936020749175429076661003216274382475477806479918110524333880196139452687559896255940215628508414806740389616633144934400000000000000000000000000000000000000
156! = 747106292628289444708380937293831544659502112248691679154935029028947927533099589206864815366798234329153235562080607562019236871366935959116501738803666174537810867225241796085310597754619259343815926673638047312709851500780194770609766400000000000000000000000000000000000000
157! = 117295687942641442819215807155131552511541831623044593627324799557544824622696635505477776012587322789677057983246655387237020188804608945581290772992175589402436306154362961985393763847475223716979100487761173428095446685622490578985733324800000000000000000000000000000000000000
158! = 18532718694937347965436097530510785296823609396441045793117318330092082290386068409865488609988797000768975161352971551183449189831128213401843942132763743125584936372389347993692214687901085347282697877066265401639080576328353511479745865318400000000000000000000000000000000000000
159! = 2946702272495038326504339507351214862194953894034126281105653614484641084171384877168612688988218723122267050655122476638168421183149385930893186799109435156968004883209906330997062135376272570217948962453536198860613811636208208325279592585625600000000000000000000000000000000000000
160! = 471472363599206132240694321176194377951192623045460204976904578317542573467421580346978030238114995699562728104819596262106947389303901748942909887857509625114880781313585012959529941660203611234871833992565791817698209861793313332044734813700096000000000000000000000000000000000000000
161! = 75907050539472187290751785709367294850142012310319093001281637109124354328254874435863462868336514307629599224875954998199218529677928181579808491945059049643495805791487187086484320607292781408814365272803092482649411787748723446459202305005715456000000000000000000000000000000000000000
162! = 12296942187394494341101789284917501765723005994271693066207625211678145401177289658609880984670515317835995074429904709708273401807824365415928975695099566042246320538220924308010459938381430588227927174194100982189204709615293198326390773410925903872000000000000000000000000000000000000000
163! = 2004401576545302577599591653441552787812849977066285969791842909503537700391898214353410600501293996807267197132074467682448564494675371562796423038301229264886150247730010662205704969956173185881152129393638460096840367667292791327201696065980922331136000000000000000000000000000000000000000
164! = 328721858553429622726333031164414657201307396238870899045862237158580182864271307153959338482212215476391820329660212699921564577126760936298613378281401599441328640627721748601735615072812402484508949220556707455881820297436017777661078154820871262306304000000000000000000000000000000000000000
165! = 54239106661315887749844950142128418438215720379413698342567269131165730172604765680403290849565015553604650354393935095487058155225915554489271207416431263907819225703574088519286376487014046409943976621391856730220500349076942933314077895545443758280540160000000000000000000000000000000000000000
166! = 9003691705778437366474261723593317460743809582982673924866166675773511208652391102946946281027792581898371958829393225850851653767501982045219020431127589808697991466793298694201538496844331704050700119151048217216603057946772526930136930660543663874569666560000000000000000000000000000000000000000
167! = 1503616514864999040201201707840084015944216200358106545452649834854176371844949314192140028931641361177028117124508668717092226179172831001551576411998307498052564574954480881931656928973003394576466919898225052275172710677111011997332867420310791867053134315520000000000000000000000000000000000000000
168! = 252607574497319838753801886917134114678628321660161899636045172255501630469951484784279524860515748677740723676917456344471493998101035608260664837215715659672830848592352788164518364067464570288846442542901808782229015393754650015551921726612213033664926565007360000000000000000000000000000000000000000
169! = 42690680090047052749392518888995665380688186360567361038491634111179775549421800928543239701427161526538182301399050122215682485679075017796052357489455946484708413412107621199803603527401512378815048789750405684196703601544535852628274771797464002689372589486243840000000000000000000000000000000000000000
170! = 7257415615307998967396728211129263114716991681296451376543577798900561843401706157852350749242617459511490991237838520776666022565442753025328900773207510902400430280058295603966612599658257104398558294257568966313439612262571094946806711205568880457193340212661452800000000000000000000000000000000000000000
171! = 1241018070217667823424840524103103992616605577501693185388951803611996075221691752992751978120487585576464959501670387052809889858690710767331242032218484364310473577889968548278290754541561964852153468318044293239598173696899657235903947616152278558180061176365108428800000000000000000000000000000000000000000
172! = 213455108077438865629072570145733886730056159330291227886899710221263324938130981514753340236723864719151973034287306573083301055694802251980973629541579310661401455397074590303866009781148657954570396550703618437210885875866741044575478989978191912006970522334798649753600000000000000000000000000000000000000000
173! = 36927733697396923753829554635211962404299715564140382424433649868278555214296659802052327860953228596413291334931704037143411082635200789592708437910693220744422451783693904122568819692138717826140678603271725989637483256524946200711557865266227200777205900363920166407372800000000000000000000000000000000000000000
174! = 6425425663347064733166342506526881458348150508160426541851455077080468607287618805557105047805861775775912692278116502462953528378524937389131268196460620409529506610362739317326974626432136901748478076969280322196922086635340638923811068556323532935233826663322108954882867200000000000000000000000000000000000000000
175! = 1124449491085736328304109938642204255210926338928074644824004638489082006275333290972493383366025810760784721148670387931016867466241864043097971934380608571667663656813479380532220559625623957805983663469624056384461365161184611811666936997356618263665919666081369067104501760000000000000000000000000000000000000000000
176! = 197903110431089593781523349201027948917123035651341137489024816374078433104458659211158835472420542693898110922165988275858968674058568071585243060450987108613508803599172370973670818494109816573853124770653833923665200268368491678853380911534764814405201861230320955810392309760000000000000000000000000000000000000000000
177! = 35028850546302858099329632808581946958330777310287381335557392498211882659489182680375113878618436056819965633223379924827037455308366548670588021699824718224591058237053509662339734873457437533572003084405728604488740447501223027157048421341653372149720729437766809178439438827520000000000000000000000000000000000000000000
178! = 6235135397241908741680674639927586558582878361231153877729215864681715113389074517106770270394081618113953882713761626619212667044889245663364667862568799843977208366195524719896472807475423880975816549024219691598995799655217698833954618998814300242650289839922492033762220111298560000000000000000000000000000000000000000000
179! = 1116089236106301664760840760547037993986335226660376544113529639778027005296644338562111878400540609642397745005763331164839067401035174973742275547399815172071920297548998924861468632538100874694671162275335324796220248138283968091277876800787759743434401881346126074043437399922442240000000000000000000000000000000000000000000
180! = 200896062499134299656951336898466838917540340798867777940435335160044860953395980941180138112097309735631594101037399609671032132186331495273609598531966730972945653558819806475064353856858157445040809209560358463319644664891114256430017824141796753818192338642302693327818731986039603200000000000000000000000000000000000000000000
181! = 36362187312343308237908191978622497844074801684595067807218795663968119832564672550353604998289613062149318532287769329350456815925726000644523337334285978306103163294146384971986648048091326497552386466930424881860855684345291680413833226169665212441092813294256787492335190489473168179200000000000000000000000000000000000000000000
182! = 6617918090846482099299290940109294607621613906596302340913820810842197809526770404164356109688709577311175972876374017941783140498482132117303247394840048051710775719534642064901569944752621422554534336981337328498675734550843085835317647162879068664278892019554735323605004669084116608614400000000000000000000000000000000000000000000
183! = 1211079010624906224171770242040000913194755344907123328387229208384122199143398983962077168073033852647945203036376445283346314711222230177466494273255728793463071956674839497876987299889729720327479783667584731115257659422804284707863129430806869565563037239578516564219715854442393339376435200000000000000000000000000000000000000000000
184! = 222838537954982745247605724535360168027834983462910692423250174342678484642385413049022198925438228887221917358693265932135721906864890352653834946279054097997205240028170467609365663179710268540256280194835590525207409333795988386246815815268464000063598852082447047816427717217400374445264076800000000000000000000000000000000000000000000
185! = 41225129521671807870807059039041631085149471940638478098301282253395519658841301414069106801206072344136054711358254197445108552770004715240959465061625008129482969405211536507732647688246399679947411836044584247163370726752257851455660925824665840011765787635252703846039127685219069272373854208000000000000000000000000000000000000000000000
186! = 7667874091030956263970112981261743381837801780958756926284038499131566656544482063016853865024329456009306176312635280724790190815220877034818460501462251512083832309369345790438272470013830340470218601504292669972386955175919960370752932203387846242188436500157002915363277749450746884661536882688000000000000000000000000000000000000000000000
187! = 1433892455022788821362411127495946012403668933039287545215115199337602964773818145784151672759549608273740254970462797495535765682446304005511052113773441032759676641852067662811956951892586273667930878481302729284836360617897032589330798322033527247289237625529359545172932939147289667431707397062656000000000000000000000000000000000000000000000
188! = 269571781544284298416133291969237850331889759411386058500441657475469357377477811407420514478795326355463167934447005929160723948299905153036077797389406914158819208668188720608647906955806219449571005154484913105549235796164642126794190084542303122490376673599519594492511392559690457477160990647779328000000000000000000000000000000000000000000000
189! = 50949066711869732400649192182185953712727164528751965056583473262863708544343306356002477236492316681182538739610484120611376826228682073923818703706597906776016830438287668195034454414647375475968919974197648576948805565475117361964101925978495290150681191310309203359084653193781496463183427232430292992000000000000000000000000000000000000000000000
190! = 9680322675255249156123346514615331205418161260462873360750859919944104623425228207640470674933540169424682360525991982916161596983449594045525553704253602287443197783274656957056546338783001340434094795097553229620273057440272298773179365935914105128629426348958748638226084106818484328004851174161755668480000000000000000000000000000000000000000000000
191! = 1848941630973752588819559184291528260234868800748408811903414244709323983074218587659329898912306172360114330860464468736986865023838872462695380757512438036901650776605459478797800350707553256022912105863632666857472153971092009065677258893759594079568220432651120989901182064402330506648926574264895332679680000000000000000000000000000000000000000000000
192! = 354996793146960497053355363383973425965094809743694491885455534984190204750249968830591340591162785093141951525209177997501478084577063512837513105442388103085116949108248219929177667335850225156399124325817472036634653562449665740610033707601842063277098323069015230061026956365247457276593902258859903874498560000000000000000000000000000000000000000000000
193! = 68514381077363375931297585133106871211263298280533036933892918251948709516798243984304128734094417522976396644365371353517785270323373257977640029350380903895427571177891906446331289795819093455185030994882772103070488137552785487937736505567155518212479976352319939401778202578492759254382623135959961447778222080000000000000000000000000000000000000000000000
194! = 13291789929008494930671731515822733014985079866423409165175226140878049646258859332955000974414316999457420949006882042582450342442734412047662165693973895355712948808511029850588270220388904130305896013007257787995674698685240384659920882080028170533221115412350068243944971300227595295350228888376232520868975083520000000000000000000000000000000000000000000000
195! = 2591899036156656511480987645585432937922090573952564787209169097471219681020477569926225190010791814894197085056341998303577816776333210349294122310324909594364025017659650820864712692975836305409649722536415268659156566243621875008684572005605493253978117505408263307569269403544381082593294633233365341569450141286400000000000000000000000000000000000000000000000
196! = 508012211086704676250273578534744855832729752494702698292997143104359057480013603705540137242115195719262628671043031667501252088161309228461647972823682280495348903461291560889483687823263915860291345617137392657194686983749887501702176113098676677779711031060019608283576803094698692188285748113739606947612227692134400000000000000000000000000000000000000000000000
197! = 100078405584080821221303894971344736599047761241456431563720437191558734323562679929991407036696693556694737848195477238497746661367777918006944650646265409257583733981874437495228286501182991424477395086576066353467353335798727837835328694280439305522603073118823862831864630209655642361092292378406702568679608855350476800000000000000000000000000000000000000000000000
198! = 19815524305648002601818171204326257846611456725808373449616646563928629396065410626138298593265945324225558093942704493222553838950820027765375040827960551033001579328411138624055200727234232302046524227142061137986535960488148111891395081467526982493475408477527124840709196781511817187496273890924527108598562553359394406400000000000000000000000000000000000000000000000
199! = 3943289336823952517761816069660925311475679888435866316473712666221797249817016714601521420059923119520886060694598194151288213951213185525309633124764149655567314286353816586186984944719612228107258321201270166459320656137141474266387621212037869516201606287027897843301130159520851620311758504293980894611113948118519486873600000000000000000000000000000000000000000000000
200! = 788657867364790503552363213932185062295135977687173263294742533244359449963403342920304284011984623904177212138919638830257642790242637105061926624952829931113462857270763317237396988943922445621451664240254033291864131227428294853277524242407573903240321257405579568660226031904170324062351700858796178922222789623703897374720000000000000000000000000000000000000000000000000
201! = 158520231340322891214025006000369197521322331515121825922243249182116249442644071926981161086408909404739619639922847404881786200838770058117447251615518816153806034311423426764716794777728411569911784512291060691664690376713087265508782372723922354551304572738521493300705432412738235136532691872618031963366780714364483372318720000000000000000000000000000000000000000000000000
202! = 32021086730745224025233051212074577899307110966054608836293136334787482387414102529250194539454599699757403167264415175786120812569431551739724344826334800863068818930907532206472792545101139137122180471482794259716267456096043627632774039290232315619363523693181341646742497347373123497579603758268842456600089704301625641208381440000000000000000000000000000000000000000000000000
203! = 6500280606341280477122309396051139313559343526109085593767506675961858924645062813437789491509283739050752842954676280684582524951594605003164041999745964575202970242974229037913976886655531244835802635711007234722402293587496856409453129975917160070730795309715812354288726961516744070008659562928575018689818209973230005165301432320000000000000000000000000000000000000000000000000
204! = 1326057243693621217332951116794432419966106079326253461128571361896219220627592813941309056267893882766353579962753961259654835090125299420645464567948176773341405929566742723734451284877728373946503737685045475883370067891849358707528438515087100654429082243182025720274900300149415790281766550837429303812722914834538921053721492193280000000000000000000000000000000000000000000000000
205! = 271841734957192349553254978942858646093051746261881959531357129188724940228656526857968356534918245967102483892364562058229241193475686381232320236429376238534988215561182258365562513399934316659033266225434322556090863917829118535043329895592855634157961859852315272656354561530630237007762142921673007281608197541080478816012905899622400000000000000000000000000000000000000000000000000
206! = 55999397401181624007970525662228881095168659729947683663459568612877337687103244532741481446193158669223111681827099783995223685855991394533857968704451505138207572405603545223305877760386469231760852842439470446554717967072798418218925958492128260636540143129576946167209039675309828823599001441864639500011288693462578636098658615322214400000000000000000000000000000000000000000000000000
207! = 11591875262044596169649898812081378386699912564099170518336130702865608901230371618277486659361983844529184118138209655287011302972190218668508599521821461563608967487959933861224316696399999130974496538384970382436826619184069272571317673407870549951763809627822427856612271212789134566484993298465980376502336759546753777672422333371698380800000000000000000000000000000000000000000000000000
208! = 2411110054505276003287178952912926704433581813332627467813915186196046651455917296601717225147292639662070296572747608299698351018215565483049788700538864005230665237495666243134657872851199819242695279984073839546859936790286408694834076068837074389966872402587064994175352412260139989828878606080923918312486045985724785755863845341313263206400000000000000000000000000000000000000000000000000
209! = 503922001391602684687020401158801681226618598986519140773108273914973750154286714989758900055784161689372691983704250134636955362807053185957405838412622577093209034636594244815143495425900762221723313516671432465293726789169859417220321898386948547503076332140696583782648654162369257874235628670913098927309583611016480222975543676334472010137600000000000000000000000000000000000000000000000000
210! = 105823620292236563784274284243348353057589905787169019562352737522144487532400210147849369011714673954768265316577892528273760626189481169051055226066650741189573897273684791411180134039439160066561895838501000817711682625725670477616267598661259194975646029749546282594356217374097544153589482020891750774735012558313460846824864172030239122128896000000000000000000000000000000000000000000000000000
211! = 22328783881661914958481873975346502495151470121092663127656427617172486869336444341196216861471796204456103981797935323465763492125980526669772652700063306391000092324747490987759008282321662774044560021923711172537165034028116470777032463317525690139861312277154265627409161865934581816407380706408159413469087649804140238680046340298380454769197056000000000000000000000000000000000000000000000000000
212! = 4733702182912325971198157282773458528972111665671644583063162654840567216299326200333597974632020795344694044141162288574741860330707871653991802372413420954892019572846468089404909755852192508097446724647826768577878987213960691804730882223315446309650598202756704313010742315578131345078364709758529795655446581758477730600169824143256656411069775872000000000000000000000000000000000000000000000000000
213! = 1008278564960325431865207501230746666671059784788060296192453645481040817071756480671056368596620429408419831402067567466420016250440776662300253905324058663392000169016297703043245777996517004224756152349987101707088224276573627354407677913566190063955577417187178018671288113218141976501691683178566846474610121914555756617836172542513667815557862260736000000000000000000000000000000000000000000000000000
214! = 215771612901509642419154405263379786667606793944644903385185080132942734853355886863606062879676771893401843920042459437813883477594326205732254335739348553965888036169487708451254596491254638904097816602897239765316879995186756253843243073503164673686493567278056095995655656228682382971362020200213305145566566089714931916216940924097924912529382523797504000000000000000000000000000000000000000000000000000
215! = 46390896773824573120118197131626654133535460698098654227814792228582687993471515675675303519130505957081396442809128779129984947682780134232434682183959939102665927776439857317019738245619747364381030569622906549543129198965152594576297260803180404842596116964782060639065966089166712338842834343045860606296811709288710361986642298681053856193817242616463360000000000000000000000000000000000000000000000000000
216! = 10020433703146107793945530580431357292843659510789309313207995121373860606589847385945865560132189286729581631646771816292076748699480508994205891351735346846175840399711009180476263461053865430706302603038547814701315906976472960428480208333486967446000761264392925098038248675260009865190052218097905890960111329206361438189114736515107632937864524405156085760000000000000000000000000000000000000000000000000000
217! = 2174434113582705391286180135953604532547074113841280120966134941338127751629996882750252826548685075220319214067349484135380654467787270451742678423326570265620157366737288992163349171048688798463267664859364875790185551813894632412980205208366671935782165194373264746274299962531422140746241331327245578338344158437780432087037897823778356347516601795918870609920000000000000000000000000000000000000000000000000000
218! = 474026636761029775300387269637885788095262156817399066370617417211711849855339320439555116187613346398029588666682187541512982673977624958479903896285192317905194305948729000291610119288614158064992350939341542922260450295429029866029684735423934482000512012373371714687797391831850026682680610229339536077759026539436134194974261725583681683758619191510313792962560000000000000000000000000000000000000000000000000000
219! = 103811833450665520790784812050696987592862412343010395535165214369364895118319311176262570445087322861168479918003399071591343205601099865907098953286457117621237553002771651063862616124206500616233324855715797899975038614698957540660500957057841651558112130709768405516627628811175155843507053640225358401029226812136513388699363317902826288743137602940758720658800640000000000000000000000000000000000000000000000000000
220! = 22838603359146414573972658651153337270429730715462287017736347161260276926030248458777765497919211029457065581960747795750095505232241970499561769723020565876672261660609763234049775547325430135571331468257475537994508495233770658945310210552725163342784668756149049213658078338458534285571551800849578848226429898670032945513859929938621783523490272646966918544936140800000000000000000000000000000000000000000000000000000
221! = 5047331342371357620847957561904887536764970488117165430919732722638521200652684909389886175040145637510011493613325262860771106656325475480403151108787545058744569826994757674725000395958920059961264254484902093896786377446663315626913556532152261098755411795108939876218435312799336077111312947987756925458041007606077280958563044516435414158691350254979688998430887116800000000000000000000000000000000000000000000000000000
222! = 1120507558006441391828246578742885033161823448362010725664180664425751706544896049884554730858912331527222551582158208355091185677704255556649499546150835003041294501592836203788950087902880253311400664495648264845086575793159256069174809550137801963923701418514184652520492639441452609118711474453282037451685103688549156372800995882648661943229479756605490957651656939929600000000000000000000000000000000000000000000000000000
223! = 249873185435436430377698987059663362395086628984728391823112288166942630559511819124255704981537449930570629002821280463185334406128048989132838398791636205678208673855202473444935869602342296488442348182529563060454306401874514103425982529680729837954985416328663177512069858595443931833472658803081894351725778122546461871134622081830651613340173985723024483556319497604300800000000000000000000000000000000000000000000000000000
224! = 55971593537537760404604573101364593176499404892579159768377152549395149245330647483833277915864388784447820896631966823753514906972682973565755801329326510071918742943565354051665634790924674413411085992886622125541764634019891159167420086648483483701916733257620551762703648325379440730697875571890344334786574299450407459134155346330065961388198972801957484316615567463363379200000000000000000000000000000000000000000000000000000
225! = 12593608545945996091036028947807033464712366100830310947884859323613908580199395683862487531069487476500759701742192535344540854068853669052295055299098464766181717162302204661624767827958051743017494348399489978246897042654475510812669519495908783832931264982964624146608320873210374164407022003675327475326979217376341678305184952924264841312344768880440433971238502679256760320000000000000000000000000000000000000000000000000000000
226! = 2846155531383795116574142542204389563024994738787650274221978207136743339125063424552922182021704169689171692593735512987866233019560929205818682497596253037157068078680298253527197529118519693921953722738284735083798731639911465443663311406075385146242465886150005057133480517345544561155986972830624009423897303127053219296971799360883854136589917766979538077499901605512027832320000000000000000000000000000000000000000000000000000000
227! = 646077305624121491462330357080396430806673805704796612248389053020040737981389397373513335318926846519441974218777961448245634895440330929720840926954349439434654453860427703550673839109903970520283495061590634864022312082259902655711571689179112428197039756156051147969300077437438615382409042832551650139224687809841080780412598454920634889005911333104355143592477664451230317936640000000000000000000000000000000000000000000000000000000
228! = 147305625682299700053411321414330386223921627700693627592632704088569288259756782601161040452715321006432770121881375210200004756160395451976351731345591672191101215480177516409553635317058105278624636874042664748997087154755257805502238345132837633628925064403579661737000417655736004307189261765821776231743228820643766417934072447721904754693347783947792972739084907494880512489553920000000000000000000000000000000000000000000000000000000
229! = 33732988281246631312231192603881658445278052743458840718712889236282367011484303215665878263671808510473104357910834923135801089160730558502584546478140492931762178344960651257787782487606306108805041844155770227520332958438954037460012581035419818101023839748419742537773095643163544986346340944373186757069199399927422509706902590528316188824776642524044590757250443816327637360107847680000000000000000000000000000000000000000000000000000000
230! = 7758587304686725201813174298892781442413952130995533365303964524344944412641389739603152000644515957408814002319492032321234250506968028455594445689972313374305301019340949789291189972149450405025159624155827152329676580440959428615802893638146558163235483142136540783687811997927615346859658417205832954125915861983307177232587595821512723429698627780530255874167602077755356592824804966400000000000000000000000000000000000000000000000000000000
231! = 1792233667382633521618843263044232513197622942259968207385215805123682159320161029848328112148883186161436034535802659466205111867109614573242316954383604389464524535467759401326264883566523043560811873179996072188155290081861628010250468430411854935707396605833540921031884571521279145124581094374547412403086564118143957940727734634769439112260383017302489106932716079961487372942529947238400000000000000000000000000000000000000000000000000000000
232! = 415798210832770977015571637026261943061848522604312624113370066788694260962277358924812122018540899189453160012306216996159585953169430580992217533416996218355769692228520181107693452987433346106108354577759088747652027298991897698378108675855550345084116012553381493679397220592936761668902813894894999677516082875409398242248834435266509874044408860014177472808390130551065070522666947759308800000000000000000000000000000000000000000000000000000000
233! = 96880983124035637644628191427119032733410705766804841418415225561765762804210624629481224430320029511142586282867348560105183527088477325371186685286160118876894338289245202198092574546071969642723246616617867678202922360665112163722099321474343230404599030924937888027299552398154265468854355637510534924861247309970389790443978423417096800652347264383303351164354900418398161431781398827918950400000000000000000000000000000000000000000000000000000000
234! = 22670150051024339208842996793945853659618105149432332891909162781453188496185286163298606516694886905607365190190959563064612945338703694136857684356961467817193275159683377314353662443780840896397239708288581036699483832395636246310971241224996315914676173236435465798388095261168098119711919219177465172417531870533071210963890951079600651352649259865692984172459046697905169775036847325733034393600000000000000000000000000000000000000000000000000000000
235! = 5327485261990719714078104246577275610010254710116598229598653253641499296603542248375172531423298422817730819694875497320184042154595368122161555823885944937040419662525593668873110674288497610653351331447816543624378700612974517883078241687874134239948900710562334462621202386374503058132301016506704315518119989575271734576514373503706153067872576068437851280527875974007714897133659121547263082496000000000000000000000000000000000000000000000000000000000
236! = 1257286521829809852522432602192237043962420111587517182185282167859393833998435970616540717415898427784984473447990617367563433948484506876830127174437083005141539040356040105854054119132085436114190914221684704295353373344661986220406465038338295680627940567692710933178603763184382721719223039895582218462276317539764129360057392146874652124017927952151332902204578729865820715723543552685154087469056000000000000000000000000000000000000000000000000000000000
237! = 297976905673664935047816526719560179419093566446241572177911873782676338657629325036120150027567927385041320207173776316112533845790828129808740140341588672218544752564381505087410826234304248359063246670539274917998749482684890734236332214086176076308821914543172491163329091874698705047455860455252985775559487256924098658333601938809292553392248924659865897822485158978199509626479821986381518730166272000000000000000000000000000000000000000000000000000000000
238! = 70918503550332254541380333359255322701744268814205494178343025960276968600515779358596595706561166717639834209307358763234783055298217094894480153401298103988013651110322798210803776643764411109457052707588347430483702376879003994748247066952509906161499615661275052896872323866178291801294494788350210614583157967147935480683397261436611627707355244069048083681751467836811483291102197632758801457779572736000000000000000000000000000000000000000000000000000000000
239! = 16949522348529408835389899672862022125716880246595113108623983204506195495523271266704586373868118845515920376024458744413113150216273885679780756662910246853135262615367148772382102617859694255160235597113615035885604868074081954744831049001649867572598408143044737642352485404016611740509384254415700336885374754148356579883331945483350179022057903332502491999938600812997944506573425234229353548409317883904000000000000000000000000000000000000000000000000000000000
240! = 4067885363647058120493575921486885310172051259182827146069755969081486918925585104009100729728348522923820890245870098659147156051905732563147381599098459244752463027688115705371704628286326621238456543307267608612545168337779669138759451760395968217423617954330737034164596496963986817722252221059768080852489940995605579171999666916004042965293896799800598079985264195119506681577622056215044851618236292136960000000000000000000000000000000000000000000000000000000000
241! = 980360372638941007038951797078339359751464353463061342202811188548638347461066010066193275864531994024640834549254693776854464608509281547718518965382728677985343589672835884994580815417004715718468026937051493675623385569404900262441027874255428340399091926993707625233667755768320823071062785275404107485450075779940944580451919726756974354635829128751944137276448671023801110260206915547825809239994946405007360000000000000000000000000000000000000000000000000000000000
242! = 237247210178623723703426334892958125059854373538060844813080307628770480085577974436018772759216742553963081960919635893998780435259246134547881589622620340072453148700826284168688557330915141203869262518766461469500859307795985863510728745569813658376580246332477245306547596895933639183197194036647794011478918338745708588469364573875187793821870649157970481220900578387759868682970073562573845836078777030011781120000000000000000000000000000000000000000000000000000000000
243! = 57651072073405564859932599378988824389544612769748785289578514753791226660795447787952561780489668440613028916503471522241703645767996810695135226278296742637606115134300787052991319431412379312540230792060250137088708811794424564833107085173464718985508999858791970609491066045711874321516918150905413944789377156315207186998055591451670633898714567745386826936678840548225648089961727875705444538167142818292862812160000000000000000000000000000000000000000000000000000000000
244! = 14066861585910957825823554248473273151048885515818703610657157599925059305234089260260425074439479099509579055626847051426975689567391221809612995211904405203575892092769392040929881941264620552259816313262701033449644950077839593819278128782325391432464195965545240828715820115153697334450128028820921002528608026140910553627525564314207634671286354529874385772549637093767058133950661601672128467312782847663458526167040000000000000000000000000000000000000000000000000000000000
245! = 3446381088548184667326770790875951922006976951375582384611003611981639529782351868763804143237672379379846868628577527599609043944010849343355183826916579274876093562728501050027821075609832035303654996749361753195163012769070700485723141551669720900953728011558584003035375928212655846940281367061125645619508966404523085638743763256980870494465156859819224514274661087972929242817912092409671474491631797677547338910924800000000000000000000000000000000000000000000000000000000000
246! = 847809747782853428162385614555484172813716330038393266614306888547483324326458559715895819236467405327442329682630071789503824810226668938465375221421478501619519016431211258306843984600018680684699129200342991286010101141191392319487892821710751341634617090843411664746702478340313338347309216297036908822399205735512679067130965761217294141638428587515529230511566627641340593733206374732779182724941422228676645372087500800000000000000000000000000000000000000000000000000000000000
247! = 209409007702364796756109246795204590684987933519483136853733801471228381108635264249826267351407449115878255431609627732007444728125987227800947679691105189900021197058509180801790464196204614129120684912484718847644494981874273902913509526962555581383750421438322681192435512150057394571785376425368116479132603816671631729581348543020671652984691861116335719936356957027411126652101974558996458133060531290483131406905612697600000000000000000000000000000000000000000000000000000000000
248! = 51933433910186469595515093205210738489877007512831817939725982764864638514941545533956914303149047380737807347039187677537846292575244832494635024563394087095205256870510276838844035120658744304021929858296210274215834755504819927922550362686713784183170104516704024935724007013214233853802773353491292886824885746534564668936174438669126569940203581556851258544216525342797959409721289690631121616999011760039816588912591949004800000000000000000000000000000000000000000000000000000000000
249! = 12931425043636430929283258208097473883979374870695122666991769708451294990220444837955271661484112797803714029412757731706923726851235963291164121116285127686706108960757058932872164745044027331701460534715756358279742854120700162052715040308991732261609356024659302208995277746290344229596890565019331928819396550887106602565107435228612515915110691807655963377509914810356691893020601132967149282632753928249914330639235395302195200000000000000000000000000000000000000000000000000000000000
250! = 3232856260909107732320814552024368470994843717673780666747942427112823747555111209488817915371028199450928507353189432926730931712808990822791030279071281921676527240189264733218041186261006832925365133678939089569935713530175040513178760077247933065402339006164825552248819436572586057399222641254832982204849137721776650641276858807153128978777672951913990844377478702589172973255150283241787320658188482062478582659808848825548800000000000000000000000000000000000000000000000000000000000000
251! = 811446921488186040812524452558116486219705773136118947353733549205318760636332913581693296758128078062183055345650547664609463859915056696520548600046891762340808337287505448037728337751512715064266648553413711482053864096073935168807868779389231199415987090547371213614453678579719100407204882954963078533417133568165939310960491560595435373673195910930411701938747154349882416287042721093688617485205308997682124247612021055212748800000000000000000000000000000000000000000000000000000000000000
252! = 204484624215022882284756162044645354527365854830301974733140854399740327680355894222586710783048275671670129947103938011481584892698594287523178247211816724109883700996451372905507541113381204196195195435460255293477573752210631662539582932406086262252828746817937545830842327002089213302615630504650695790421117659177816706362043873270049714165645369554463748888564282896170368904334765715609531606271737867415895310398229305913612697600000000000000000000000000000000000000000000000000000000000000
253! = 51734609926400789218043308997295274695423561272066399607484636163134302903130041238314437828111213744932542876617296316904840977852744354743364096544589631199800576352102197345093407901685444661637384445171444589249826159309289810622514481898739824349965672944938199095203108731528570965561754517676626034976542767771987626709597099937322577683908278497279328468806763572731103332796695726049211496386749680456221513530752014396144012492800000000000000000000000000000000000000000000000000000000000000
254! = 13140590921305800461383000485312999772637584563104865500301097585436112937395030474531867208340248291212865890660793264493829608374597066104814480522325766324749346393433958125653725607028102944055895649073546925669455844464559611898118678402279915384891280928014302570181589617808257025252685647489863012884041863014084857184237663384079934731712702738308949431076917947473700246530360714416499720082234418835880264436811011656620579173171200000000000000000000000000000000000000000000000000000000000000
255! = 3350850684932979117652665123754814942022584063591740702576779884286208799035732771005626138126763314259280802118502282445926550135522251856727692533193070412811083330325659322041700029792166250734253390513754466045711240338462701034020262992581378423147276636643647155396305352541105541439434840109915068285430675068591638581980604162940383356586739198268782104924614076605793562865241982176207428620969776803149467431386807972438247689158656000000000000000000000000000000000000000000000000000000000000000
256! = 857817775342842654119082271681232625157781520279485619859655650377269452553147589377440291360451408450375885342336584306157196834693696475322289288497426025679637332563368786442675207626794560187968867971521143307702077526646451464709187326100832876325702818980773671781454170250523018608495319068138257481070252817559459476987034665712738139286205234756808218860701203611083152093501947437109101726968262861606263662435022840944191408424615936000000000000000000000000000000000000000000000000000000000000000
257! = 220459168263110562108604143822076784665549850711827804303931502146958249306158930470002154879636011971746602532980502166682399586516279994157828347143838488599666794468785778115767528360086201968307999068680933830079433924348138026430261142807914049215705624478058833647833721754384415782383297000511532172635054974112781085585667909088173701796554745332499712247200209328048370088030000491337039143830843555432809761245800870122657191965126295552000000000000000000000000000000000000000000000000000000000000000
258! = 56878465411882525024019869106095810443711861483651573510414327553915228320989004061260555958946091088710623453508969559004059093321200238492719713563110330058714032972946730753868022316902240107823463759719680928160493952481819610819007374844441824697652051115339179081141100212631179271854890626131975300539844183321097520081102320544748815063511124295784925759777654006636479482711740126764956099108357637301664918401416624491645555527002584252416000000000000000000000000000000000000000000000000000000000000000
259! = 14731522541677573981221146098478814904921372124265757539197310836464044135136152051866483993367037591976051474458823115782051305170190861769614405812845575485206934539993203265251817780077680187926277113767397360393567933692791279202122910084710432596691881238872847382015544955071475431410416672168181602839819643480164257701005501021089943101449381192608295771782412387718848186022340692832123629669064628061131213865966905743336198881493669321375744000000000000000000000000000000000000000000000000000000000000000
260! = 3830195860836169235117497985604491875279556752309096960191300817480651475135399533485285838275429773913773383359294010103333339344249624060099745511339849626153802980398232848965472622820196848860832049579523313702327662760125732592551956622024712475139889122106940319324041688318583612166708334763727216738353107304842707002261430265483385206376839110078156900663427220806900528365808580136352143713956803295894115605151395493267411709188354023557693440000000000000000000000000000000000000000000000000000000000000000
261! = 999681119678240170365666974242772379447964312352674306609929513362450035010339278239659603789887170991494853056775736636970001568849151879686033578459700752426142577883938773579988354556071377552677164940255584876307519980392816206656060678348449956011511060869911423343574880651150322775510875373332803568710161006563946527590233299291163538864355007730398951073154504630601037903476039415587909509342725660228364172944514223742794456098160400148557987840000000000000000000000000000000000000000000000000000000000000000
262! = 261916453355698924635804747251606363415366649836400668331801532500961909172708890898790816192950438799771651500875242998886140411038477792477740797556441597135649355405591958677956948893690700918801417214346963237592570234862917846143887897727293888475015897947916792916016618730601384567183849347813194535002062183719753990228641124414284847182461012025364525181166480213217471930710722326884032291447794122979831413311462726620612147497718024838922192814080000000000000000000000000000000000000000000000000000000000000000
263! = 68884027232548817179216648527172473578241428906973375771263803047752982112422438306381984658745965404339944344730188908707054928103119659421645829757344140046675780471670685132302677559040654341644772727373251331486845971768947393535842517102278292668929181160302116536912370726148164141169352378474870162705542354318295299430132615720956914808987246162670870122646784296076195117776919971970500492650769854343695661700914697101220994791899840532636536710103040000000000000000000000000000000000000000000000000000000000000000
264! = 18185383189392887735313195211173533024655737231440971203613644004606787277679523712884843949908934866745745307008769871898662501019223590087314499055938852972322406044521060874927906875586732746194220000026538351512527336547002111893462424515001469264597303826319758765744865871703115333268709027917365722954263181540029959049555010550332625509572632986945109712378751054164115511093106872600212130059803241546735654689041480034722342625061557900616045691467202560000000000000000000000000000000000000000000000000000000000000000
265! = 4819126545189115249857996730960986251533770366331857368957615661220798628585073783914483646725867739687622506357324016053145562770094251373138342249823796037665437601798081131855895322030484177741468300007032663150819744184955559651767542496475389355118285513974736072922389456001325563316207892398101916582879743108107939148132077795838145760036747741540454073780369029353490610439673321239056214465847859009884948492595992209201420795641312843663252108238808678400000000000000000000000000000000000000000000000000000000000000000
266! = 1281887661020304656462227130435622342907982917444274060142725765884732435203629626521252650029080818756907586691048188270136719696845070865254799038453129746019006402078289581073668155660108791279230567801870688398118051953198178867370166304062453568461463946717279795397355595296352599842111299377895109811046011666756711813403132693692946772169774899249760783625578161808028502376953103449588953047915530496629396299030533927647577931640589216414425060791523108454400000000000000000000000000000000000000000000000000000000000000000
267! = 342264005492421343275414643826311165556431438957621174058107779491223560199369110281174457557764578608094325646509866268126504159057633921023031343266985642187074709354903318146669397561249047271554561603099473802297519871503913757587834403184675102779210873773513705371093943944126144157843716933897994319549285115024042054178636429216016788169329898099686129228029369202743610134646478621040250463793446642600048811841152558681903307748037320782651491231336669957324800000000000000000000000000000000000000000000000000000000000000000
268! = 91726753471968919997811124545451392369123625640642474647572884903647914133430921555354754625480907066969279273264644159857903114627445890834172399995552152106136022107114089263307398546414744668776622509630658979015735325563048887033539620053492927544828514171301673039453176977025806634302116138284662477639208410826443270519874563029892499229380412690715882633111870946335287516085256270438787124296643700216813081573428885726750086476474001969750599649998227548563046400000000000000000000000000000000000000000000000000000000000000000
269! = 24674496683959639479411192502726424547294255297332825680197106039081288901892917898390428994254364001014736124508189279001775937834782944634392375598803528916550589946813690011829690208985566315900911455090647265355232802576460150612022157794389597509558870312080150047612904606819941984627269241198574206484947062512313239769846257455041082292703331013802572428307093284564192341826933936748033736435797155358322718943252370260495773262171506529862911305849523210563459481600000000000000000000000000000000000000000000000000000000000000000
270! = 6662114104669102659441021975736134627769448930279862933653218630551948003511087832565415828448678280273978753617211105330479503215391395051285941411676952807468659285639696303194016356426102905293246092874474761645912856695644240665245982604485191327580894984261640512855484243841384335849362695123615035750935706878324574737858489512861092219029899373726694555642915186832331932293272162921969108837665231946747134114678139970333858780786306763062986052579371266852134060032000000000000000000000000000000000000000000000000000000000000000000
271! = 1805432922365326820708516955424492484125520660105842855020022248879577908951504802625227689509591813954248242230264209544559945371371068058898490122564454210824006666408357698165578432591473887334469691168982660406042384164519589220281661285815486849774422540734904578983836230081015155015177290378499674688503576564025959753959650657985355991357102730279934224579230015631561953651476756151853628495007277857568473345077775931960475729593089132790069220249009613316928330268672000000000000000000000000000000000000000000000000000000000000000000
272! = 491077754883368895232716611875461955682141619548789256565446051695245191234809306314061931546608973395555521886631864996120305141012930512020389313337531545344129813263073293901037333664880897354975755997963283630443528492749328267916611869741812423138642931079894045483603454582036122164128222982951911515272972825415061053077024978972016829649131942636142109085550564251784851393201677673304186950641979577258624749861155053493249398449320244118898827907730614822204505833078784000000000000000000000000000000000000000000000000000000000000000000
273! = 134064227083159708398531635042001113901224662136819467042366772112801937207102940623738907312224249736986657475050499143940843303496530029781566282541146111878947439020819009234983192090512484977908381387443976431111083278520566617141235040439514791516849520184811074417023743100895861350807004874345871843669521581338311667490027819259360594494213020339666795780355304040737264430344058004812043037525260424591604556712095329603657085776664426644459380018810457846461830092430508032000000000000000000000000000000000000000000000000000000000000000000
274! = 36733598220785760101197668001508305208935557425488533969608495558907730794746205730904460603549444427934344148163836765439791065158049228160149161416274034654831598291704408530385394632800420883946896500159649542124436818314635253096698401080427052875616768530638234390264505609645466010121119335570768885165448913286697396892267622477064802891414367573068702043817353307162010453914271893318499792281921356338099648539114120311402041502806052900581870125154065449930541445325959200768000000000000000000000000000000000000000000000000000000000000000000
275! = 10101739510716084027829358700414783932457278292009346841642336278699625968555206575998726665976097217681944640745055110495942542918463537744041019389475359530078689530218712345855983524020115743085396537543903624084220125036524694601592060297117439540794611345925514457322739042652503152783307817281961443420498451153841784145373596181192820795138951082593893062049772159469552874826424770662587442877528372992977403348256383085635561413271664547660014284417367998730898897464638780211200000000000000000000000000000000000000000000000000000000000000000000
276! = 2788080104957639191680903001314480365358208808594579728293284812921096767321237014975648559809402832080216720845635210496880141845495936417355321351495199230301718310340364607456251452629551945091569444362117400247244754510080815710039408642004413313259312731475441990221075975772090870168192957569821358384057572518460332424123112546009218539458350498795914485125737116013596593452093236702874134234197830946061763324118761731635414950062979415154163942499193567649728095700240303338291200000000000000000000000000000000000000000000000000000000000000000000
277! = 772298189073266056095610131364111061204223839980698584737239893179143804547982653148254651067204584486220031674240953307635799291202374387607424014364170186793575971964280996265381652378385888790364736088306519868486796999292385951680916193835222487772829626618697431291238045288869171036589449246840516272383947587613512081482102175244553535429963088166468312379829181135766256386229826566696135182872799172059108440780896999663009941167445297997703412072276618238974682508966564024706662400000000000000000000000000000000000000000000000000000000000000000000
278! = 214698896562367963594579616519222875014774227514634206556952690303801977664339177575214792996682874487169168805438985019522752202954260079754863875993239311928614120206070116961776099361191277083721396632549212523439329565803283294567294701886191851600846636199997885898964176590305629548171866890621663523722737429356556358652024404717985882849529738510278190841592512355743019275371891785541525580838638169832432146537089365906316763644549792843361548556092899870434961737492704798868452147200000000000000000000000000000000000000000000000000000000000000000000
279! = 59900992140900661842887713008863182129122009476582943629389800594760751768350630543484927246074521981920198096717476820446847864624238562251607021402113768028083339537493562632335531721772366306358269660481230294039572948859116039184275221826247526596636211499799410165811005268695270643939950862483444123118643742790479224063914808916318061315018797044367615244804310947252302377828757808166085637053980049383248568883847933087862377056829392203297872047149919063851354324760464638884298149068800000000000000000000000000000000000000000000000000000000000000000000
280! = 16772277799452185316008559642481690996154162653443224216229144166533010495138176552175779628900866154937655467080893509725117402094786797430449965992591855047863335070498197537053948882096262565780315504934744482331080425680552490971597062111349307447058139219943834846427081475234675780303186241495364354473220247981334182737896146496569057168205263172422932268545207065230644665792052186286503978375114413827309599287477421264601465575912229816923404173201977337878379210932930098887603481739264000000000000000000000000000000000000000000000000000000000000000000000
281! = 4713010061646064073798405259537355169919319705617546004760389510795775949133827611161394075721143389537481186249731076232757989988635090077956440443918311268449597154809993507912159635869049780984268656886663199535033599616235249963018774453289155392623337120804217591846009894540943894265195333860197383606974889682754905349348817165535905064265678951450843967461203185329811151087566664346507617923407150285473997399781155375353011826831336578555476572669755631943824558272153357787416578368733184000000000000000000000000000000000000000000000000000000000000000000000
282! = 1329068837384190068811150283189534157917248156984147973342429842044408817655739386347513129353362435849569694522424163497637753176795095401983716205184963777702786397656418169231229017315072038237563761242039022268879475091778340489571294395827541820719781068066789360900574790260546178182785084148575662177166918890536883308516366440681125228122921464309137998824059298263006744606693799345715148254400816380503667266738285815849549335166436915152644393492871088208158525432747246896051475099982757888000000000000000000000000000000000000000000000000000000000000000000000
283! = 376126480979725789473555530142638166690581228426513876455907645298567695396574246336346215607001569345428223549846038269831484149033011998761391686067344749089888550536766341892437811900165386821230544431497043302092891450973270358548676314019194335263698042262901389134862665643734568425728178814046912396138238046021937976310131702712758439558786774399486053667208781408430908723694345214837386955995431035682537836486934885885422461852101646988198363358482517962908862697467470871582567453295120482304000000000000000000000000000000000000000000000000000000000000000000000
284! = 106819920598242124210489770560509239340125068873129940913477771264793225492627085959522325232388445694101615488156274868632141498325375407648235238843125908741528348352441641097452338579646969857229474618545160297794381172076408781827824073181451191214890244002663994514300997042820617432906802783189323120503259605070230385272077403570423396834695443929454039241487293919994378077529194041013817895502702414133840745562289507591459979165996867744648335193809035101466117006080761727529449156735814216974336000000000000000000000000000000000000000000000000000000000000000000000
285! = 30443677370499005399989584609745133211935644628842033160341164810466069265398719498463862691230707022818960414124538337560160327022731991179747043070290883991335579280445867712773916495199386409310400266285370684871398634041776502820929860856713589496243719540759238436575784157203875968378438793208957089343428987445015659802542060017570668097888201519894401183823878767198397752095820301688938100218270188028144612485252509663566094062309107307224775530235575003917843346733017092345893009669707051837685760000000000000000000000000000000000000000000000000000000000000000000000
286! = 8706891727962715544397021198387108098613594363848821483857573135793295809904033776560664729691982208526222678439617964542205853528501349477407654318103192821521975674207518165853340117627024513062774476157616015873220009335948079806785940205020086595925703788657142192860674268960308526956233494857761727552220690409274478703527029165025211075996025634689798738573629327418741757099404606283036296662425273776049359170782217763779902901820404689866285801647374451120503197165642888410925400765536216825578127360000000000000000000000000000000000000000000000000000000000000000000000
287! = 2498877925925299361241945083937100024302101582424611765867123489972675897442457693872910777421598893847025908712170355823613079962679887300015996789295616339776807018497557713599908613758956035249016274657235796555614142679417098904547564838840764853030676987344599809351013515191608547236439013024177615807487338147461775387912257370362235578810859357155972237970631616969178884287529122003231417142116053573726166082014496498204832132822456145991624025072796467471584417586539508973935590019708894228940922552320000000000000000000000000000000000000000000000000000000000000000000000
288! = 719676842666486216037680184173884806999005255738288188569731565112130658463427815835398303897420481427943461709105062477200567029251807542404607075317137505855720421327296621516773680762579338151716687101283909408016873091672124484509698673586140277672834972355244745093091892375183261604094435750963153352556353386468991311718730122664323846697527494860920004535541905687123518674808387136930648136929423429233135831620174991482991654252867370045587719220965382631816312264923378584493449925676161537934985695068160000000000000000000000000000000000000000000000000000000000000000000000
289! = 207986607530614516434889573226252709222712518908365286496652422317405760295930638776430109826354519132675660433931363055910963871453772379754931444766652739192303201763588723618347593740385428725846122572271049818916876323493243976023302916666394540247449307010665731331903556896427962603583291932028351318888786128689538489086713005449989591695585446014805881310771610743578696897019623882572957311572603371048376255338230572538584588079078669943174850854858995580594914244562856410918607028520410684463210865874698240000000000000000000000000000000000000000000000000000000000000000000000
290! = 60316116183878209766117976235613285674586630483425933084029202472047670485819885245164731849642810548475941525840095286214179522721593990128930118982329294365767928511440729849320802184711774330495375545958604447485894133813040753046757845833254416671760299033093062086252031499964109155039154660288221882477747977319966161835146771580496981591719779344293705580123767115637822100135690925946157620356054977604029114048086866036189530542932814283520706747909108718372525130923228359166396038270919098494331151103662489600000000000000000000000000000000000000000000000000000000000000000000000
291! = 17551989809508559041940331084563466131304709470676946527452497919365872111373586606342936968246057869606498984019467728288326241111983851127518664623857824660438467196829252386152353435751126330174154283873953894218395192939594859136606533137477035251482247018630081067099341166489555764116394006143872567801024661400110153094027710529924621643190455789189468323816016230650606231139486059450331867523611998482772472187993278016531153387993448956504525663641550637046404813098659452517421247136837457661850364971165784473600000000000000000000000000000000000000000000000000000000000000000000000
292! = 5125181024376499240246576676692532110340975165437668386016129392454834656521087289052137594727848897925097703333684576660191262404699284529235450070166484800848032421474141696756487203239328888410853050891194537111771396338361698867889107676143294293432816129439983671593007620614950283121987049794010789797899201128832164703456091474737989519811613090443324750554276739349977019492729929359496905316894703556969561878894037180827096789294087095299321493783332786017550205424808560135087004163956537637260306571580409066291200000000000000000000000000000000000000000000000000000000000000000000000
293! = 1501678040142314277392246966270911908329905723473236837102725911989266554360678575692276315255259727092053627076769580961436039884576890367065986870558780046648473499491923517149650750549123364304379943911119999373749019127139977768291508549109985227975815125925915215776751232840180432954742205589645161410784465930747824258112634802098230929304802635499894151912403084629543266711369869302332593257850148142192081630515952893982339359263167518922701197678516506303142210189468908119580492220039265527717269825473059856423321600000000000000000000000000000000000000000000000000000000000000000000000
294! = 441493343801840397553320608083648101048992282701131630108201418124844366982039501253529236685046359765063766360570256802662195726065605767917400139944281333714651208850625514041997320661442269105487703509869279815882211623379153463877703513438335657024889647022219073438364862455013047288694208443355677454770632983639860331885114631816879893215611974836968880662246506881085720413142741574885782417807943553804471999371690150830807771623371250563274152117483852853123809795703858987156664712691544065148877328689079597788456550400000000000000000000000000000000000000000000000000000000000000000000000
295! = 130240536421542917278229579384676189809452723396833830881919418346829088259701652869791124822088676130693811076368225756785347739189353701535633041283562993445822106610934526642389209595125469386118872535411437545685252428896850271843922536464309018822342445871554626664317634424228848950164791490789924849157336730173758797906108816385979568498605532576905819795362719529920287521877108764591305813253343348372319239814648594495088292628894518916165874874657736591671523889732638401211216090244005499218918811963278481347594682368000000000000000000000000000000000000000000000000000000000000000000000000
296! = 38551198780776703514355955497864152183598006125462813941048147830661410124871689249458172947338248134685368078604994824008462930800048695654547380219934646059963343556836619886147206040157138938291186270481785513522834718953467680465801070793435469571413363977980169492638019789571739289248778281273817755350571672131432604180208209650249952275587237642764122659427364980856405106475624194319026520722989631118206494985135983970546134618152777599185098962898690031134771071360860966758519962712225627768799968341130430478888025980928000000000000000000000000000000000000000000000000000000000000000000000000
297! = 11449706037890680943763718782865653198528607819262455740491299905706438807086891707089077365359459696001554319345683462730513490447614462609400571925320589879809113036380476106185720193926670264672482322333090297516281911529179901098342918025650334462709769101460110339313491877502806568906887149538323873339119786623035483441521838266124235825849409579900944429849927399314352316623260385712750876654727920442107329010585387239252201981591374946957974391980910939247027008194175707127280428925531011447333590597315737852229743716335616000000000000000000000000000000000000000000000000000000000000000000000000
298! = 3412012399291422921241588197293964653161525130140211810666407371900518764511893728712545054877118989408463187165013671893693020153389109857601370433745535784183115684841381879643344617790147738872399732055260908659852009635695610527306189571643799669887511192235112881115420579495836357534252370562420514255057696413664574065573507803305022276103124054810481440095278364995676990353731594942399761243108920291747984045154445397297156190514229734193476368810311459895614048441864360723929567819808241411305409998000089879964463627468013568000000000000000000000000000000000000000000000000000000000000000000000000
299! = 1020191707388135453451234870990895431295296013911923331389255804198255110589056224885050971408258577833130492962339087896214213025863343847422809759689915199470751589767573182013360040719254173922847519884523011689295750881072987547664550681921496101296365846478298751453510753269255070902741458798163733762262251227685707645606478833188201660554834092388333950588488231133707420115765746887777528611689567167232647229501179173791849700963754690523849434274283126508788600484117443856454940778122664181980317589402026874109374624612936056832000000000000000000000000000000000000000000000000000000000000000000000000
300! = 306057512216440636035370461297268629388588804173576999416776741259476533176716867465515291422477573349939147888701726368864263907759003154226842927906974559841225476930271954604008012215776252176854255965356903506788725264321896264299365204576448830388909753943489625436053225980776521270822437639449120128678675368305712293681943649956460498166450227716500185176546469340112226034729724066333258583506870150169794168850353752137554910289126407157154830282284937952636580145235233156936482233436799254594095276820608062232812387383880817049600000000000000000000000000000000000000000000000000000000000000000000000000
301! = 92123311177148631446646508850477857445965230056246676824449799119102436486191777107120102718165749578331683514499219637028143436235459949422279721299999342512208868556011858335806411676948651905233131045572427955543406304560890775554108926577511097947061835936990377256252021020213732902517553729474185158732281285860019400398265038636894609948101518542666555738140487271373780036453646943966310833635567915201108044823956479393404027997027048554303603914967766323743610623715805180237881152264476575632822678323003026732076528602548125931929600000000000000000000000000000000000000000000000000000000000000000000000000
302! = 27821239975498886696887245672844312948681499476986496400983839333968935818829916686350271020886056372656168421378764330382499317743108904725528475832599801438687078303915581217413536326438492875380405575762873242574108703977389014217340895826408351580012674452971093931388110348104547336560301226301203917937148948329725858920276041668342172204326658599885299832918427155954881571009001377077825871757941510390734629536834856776808016455102168663399688382320265429770570408362173164431840107983871925841112448853546914073087111637969534031442739200000000000000000000000000000000000000000000000000000000000000000000000000
303! = 8429835712576162669156835438871826823450494341526908409498103318192587553105464755964132119328475080914819031677765592105897293276161998131835128177277739835922184726086421108876301506910863341240262889456150592499954937305148871307854291435401730528743840359250241461210597435475677842977771271569264787134956131343906935252843640625507678177910977555765245849374283428254329116015727417254581239142656277648392592749660961603372828985895957105010105579843040425220482833733738468822847552719113193529857072002624714964145394826304768811527149977600000000000000000000000000000000000000000000000000000000000000000000000000
304! = 2562670056623153451423677973417035354328950279824180156487423408730546616144061285813096164275856424598104985630040740000192777155953247432077878965892432910120344156730272017098395658100902455737039918394669780119986300940765256877587704596362126080738127469212073404208021620384606064265242466557056495289026663928547708316864466750154334166084937176952634738209782162189316051268781134845392696699367508405111348195896932327425340011712370959923072096272284289267026781455056494522145656026610410833076549888797913349100200027196649718704253593190400000000000000000000000000000000000000000000000000000000000000000000000000
305! = 781614367270061802684221781892195783070329835346374947728664139662816717923938692172994330104136209502422020617162425700058797032565740466783753084597192037586704967802732965215010675720775248999797175110374282936595821786933403347664249901890448454625128878109682388283446594217304849600898952299902231063153132498207051036643662358797071920655905838970553595153983559467741395636978246127844772493307090063558961199748564359864728703572273142776536989363046708226443168343792230829254425088116175304088347716083363571475561008294978164204797345923072000000000000000000000000000000000000000000000000000000000000000000000000000
306! = 239173996384638911621371865259011909619520929615990734004971226736821915684725239804936265011865680107741138308851702264217991891965116582835828443886740763501531720147636287355793266770557226193937935583774530578598321466801621424385260469978477227115289436701562810814734657830495283977875079403770082705324858544451357617212960681791904007720707186724989400117118969197128867064915343315120500382951969559449042127123060694118606983293115581689620318745092292717291609513200422633751854076963549643051034401121509252871521668538263318246667987852460032000000000000000000000000000000000000000000000000000000000000000000000000000
307! = 73426416890084145867761162634516656253192925392109155339526166608204328115210648620115433358642763793076529460817472595114923510833290790930599332273229414394970238085324340218228532898561068441538946224218780887629684690308097777286274964283392508724393857067379782920123539953962052181207649376957415390534731573146566788484378929310114530370257106324571745835955523543518562188929010397741993617566254654750855933026779633094412343870986483578713437854743333864208524120552529748561819201627809740416667561144303340631557152241246838701727072270705229824000000000000000000000000000000000000000000000000000000000000000000000000000
308! = 22615336402145916927270438091431130125983421020769619844574059315326933059484879774995553474461971248267571073931781559295396441336653563606624594340154659633650833330279896787214388132756809079993995437059384513389942884614894115404172688999284892687113307976752973139398050305820312071811956008102883940284697324529142570853188710227515275354039188747968097717474301251403717154190135202504534034210406433663263627372248126993079001912263836942243738859260946830176225429130179162557040314101365400048333608832445428914519602890304026320131938259377210785792000000000000000000000000000000000000000000000000000000000000000000000000000
309! = 6988138948263088330526565370252219208928877095417812531973384328436022315380827850473626023608749115714679461844920501822277500373025951154446999651107789826798107499056488107249245933021854005718144590051349814637492351346002281659889360900779031840318012164816668700073997544498476430189894406503791137547971473279505054393635311460302220084398109323122142194699559086683748600644751777573901016571015588001948460858024671240861411590889525615153315307511632570524453657601225361230125457057321908614935085129225637534586557293103944132920768922147558132809728000000000000000000000000000000000000000000000000000000000000000000000000000
310! = 2166323073961557382463235264778187954767951899579521884911749141815166917768056633646824067318712225871550633171925355564906025115638044857878569891843414846307413324707511313247266239236774741772624822915918442537622628917260707314565701879241499870498583771093167297022939238794527693358867266016175252639871156716646566862026946552693688226163413890167864080356863316871962066199873051047909315137014832280604022865987648084667037593175752940697527745328606096862580633856379861981338891687769791670629876390059947635721832760862222681205438365865743021171015680000000000000000000000000000000000000000000000000000000000000000000000000000
10000! = 28462596809170545189064132121198688901480514017027992307941799942744113400037644437729907867577847758158840621423175288300423399401535187390524211613827161748198241998275924182892597878981242531205946599625986706560161572036032397926328736717055741975962099479720346153698119897092611277500484198845410475544642442136573303076703628825803548967461117097369578603670191071512730587281041158640561281165385325968425825995584688146430425589836649317059251717204276597407446133400054194052462303436869154059404066227828248371512038322178644627183822923899638992827221879702459387693803094627332292570555459690027875282242544348021127559019169425429028916907219097083690539873747452483372899521802363282741217040268086769210451555840567172555372015852132829034279989818449313610640381489304499621599999359670892980190336998484404665419236258424947163178961192041233108268651071354516845540936033009607210346944377982349430780626069422302681885227592057029230843126188497606560742586279448827155956831533440534425446648416894580425709461673613187605234982286326452921529423479870603344290737158688499178932580691483168854251956006172372636323974420786924642956012306288720122652952964091508301336630982733806353972901506581822574295475894399765113865541208125788683704239208764484761569001264889271590706306409661628038784044485191643790807186112370622133415415065991843875961023926713276546986163657706626438638029848051952769536195259240930908614471907390768585755934786981720734372093104825475628567777694081564074962275254993384112809289637516990219870492405617531786346939798024619737079041868329931016554150742308393176878366923694849025999607729684293977427536263119825416681531891763234839190821000147178932184227805135181734921901146246875769835373441456013122615221391178759688367364087207937002992038279198038702372078039140312368997608152840306051116709484722224870389199993442071395836983063962232079115624044250808919914319837120445598344047556759489212101498152454543594285414390843564419984224855478532163624030098442855331829253154206551237079705816393460296247697010388742206441536626733715428700789122749340684336442889847100840641600093623935261248037975293343928764398316390312776450722479267851700826669598389526150759007349215197592659192708873202594066382118801988854748266048342256457705743973122259700671936061763513579529821794290797705327283267501488024443528681645026165662837546519006171873442260438919298506071515390031106684727360135816706437861756757439184376479658136100599638689552334648781746143243573224864326798481981458432703035895508420534788493364582482592033288089025782388233265770205248970937047210214248413342465268206806732314214483854074182139621846870108359582946965235632764870475718351616879235068366271743711915723361143070121120767608697851559721846485985918643641716850899625516820910793570231118518174775010804622585521314764897490660752877082897667514951009682329689732000622392888056658036140311285465929084078033974900664953205873164948093883816198658850827382468034897864757116679890423568018303504133875731972630897909435710687797301633918087868474943633533893373586906405848417828065196275826434429258058422212947649402948622670761832988229004072390403733168207417413251656688443079339447019208905620788387585342512820957359307018197708340163817638278562539516825426644614941044711579533262372815468794080423718587423026200264221822694188626212107297776657401018376182280136857586442185863011539843712299107010094061929413223202773193959467006713695377097897778118288242442920864816134179562017471831609687661043140497958198236445807368209404022211181530051433387076607063149616107771117448059552764348333385744040212757031851527298377435921878558552795591028664457917362007221858143309977294778923720717942857756271300923982397921957581197264742642878266682353915687857271620146192244266266708400765665625807109474398740110772811669918806268726626565583345665007890309050656074633078027158530817691223772813510584527326591626219647620571434880215630815259005343721141000303039242866457207328473481712034168186328968865048287367933398443971236735084527340196309427697652684170174990756947982757825835229994315633322107439131550124459005324702680312912392297979030417587823398622373535054642646913502503951009239286585108682088070662734733200354995720397086488066040929854607006339409885836349865466136727880748764700702458790118046518296111277090609016152022111461543158317669957060974618085359390400067892878548827850938637353703904049412684618991272871562655001270833039950257879931705431882752659225814948950746639976007316927310831735883056612614782997663188070063044632429112260691931278881566221591523270457695867512821990938942686601963904489718918597472925310322480210543841044325828472830584297804162405108110326914001900568784396341502696521048920272140232160234898588827371428695339681755106287470907473718188014223487248498558198439094651708364368994306189650243288353279667190184527620551085707626204244509623323204744707831190434499351442625501701771017379551124746159471731862701565571266295855125077711738338208419705893367323724453280456537178514960308802580284067847809414641838659226652806867978843250660537943046250287105104929347267471267499892634627358167146935060495110340755404658170393481046758485625967767959768299409334026387269378365320912287718077451152622642548771835461108886360843272806227776643097283879056728618036048633464893371439415250259459652501520959536157977135595794965729775650902694428088479761276664847003619648906043761934694270444070215317943583831051404915462608728486678750541674146731648999356381312866931427616863537305634586626957894568275065810235950814888778955073939365341937365700848318504475682215444067599203138077073539978036339267334549549296668759922530893898086430606532961793164029612492673080638031873912596151131890359351266480818568366770286537742390746582390910955517179770580797789289752490230737801753142680363914244720257728891784950078117889336629750436804214668197824272980697579391742229456683185815676816288797870624531246651727622758295493421483658868919299587402095696000243560305289829866386892076992834030549710266514322306125231915131843876903823706205399206933943716880466429711476743564486375026847698148853105354063328845062012173302630676481322931561043551941761050712449024873277273112091945865137493190965162497691657553812198566432207978666300398938660238607357858114394715872800893374165033792965832618436073133327526023605115524227228447251463863269369763762510196714380125691227784428426999440829152215904694437282498658085205186576292992775508833128672638418713277780874446643875352644733562441139447628780974650683952982108174967958836452273344694873793471790710064978236466016680572034297929207446822322848665839522211446859572858403863377278030227591530497865873919513650246274195899088374387331594287372029770620207120213038572175933211162413330422773742416353553587977065309647685886077301432778290328894795818404378858567772932094476778669357537460048142376741194182671636870481056911156215614357516290527351224350080604653668917458196549482608612260750293062761478813268955280736149022525819682815051033318132129659664958159030421238775645990973296728066683849166257949747922905361845563741034791430771561168650484292490281102992529678735298767829269040788778480262479222750735948405817439086251877946890045942060168605142772244486272469911146200149880662723538837809380628544384763053235070132028029488392008132135446450056134987017834271106158177289819290656498688081045562233703067254251277277330283498433595772575956224703707793387146593033088629699440318332665797514676502717346298883777397848218700718026741265997158728035440478432478674907127921672898523588486943546692255101337606377915164597254257116968477339951158998349081888281263984400505546210066988792614558214565319696909827253934515760408613476258778165867294410775358824162315779082538054746933540582469717674324523451498483027170396543887737637358191736582454273347490424262946011299881916563713847111849156915054768140411749801454265712394204425441028075806001388198650613759288539038922644322947990286482840099598675963580999112695367601527173086852756572147583507122298296529564917835071750835741362282545055620270969417476799259229774888627411314587676147531456895328093117052696486410187407673296986649236437382565475022816471926815559883196629848307776666840622314315884384910519058281816740764463033300119710293036455866594651869074475250837841987622990415911793682799760654186088721626654886492344391030923256910633775969739051781122764668486791736049404393703339351900609387268397299246478483727274770977466693599784857120156789000241947269220974984127323147401549980920381459821416481176357147801554231599667838534854486406936410556913531335231184053581348940938191821898694825383960989942822027599339635206217705343572073396250574216769465101608495601439303244304271576099527308684609204422226103154229984444802110098161333824827375218998738205315164927134498105950159974800571591912202154487748750103473246190633941303030892399411985006225902184164409988173214324422108554248620896250260604398180189026317781146617454999771440665232863846363847001655618153861098188111181734191305505024860345856755585637511729774299329074944236579668332700918367338977347901759248885660379952771540569083017311723894140326159612292912225191095948743805673381278538616491842786938417556898047100859868372033615175158097022566275200160956192229925401759878522038545913771783976389811198485803291048751666921195104514896677761598249468727420663437593207852618922687285527671324883267794152912839165407968344190239094803676688707838011367042753971396201424784935196735301444404037823526674437556740883025225745273806209980451233188102729012042997989005423126217968135237758041162511459175993279134176507292826762236897291960528289675223521425234217247841869317397460411877634604625637135309801590617736758715336803958559054827361876112151384673432884325090045645358186681905108731791346215730339540580987172013844377099279532797675531099381365840403556795731894141976511436325526270639743146526348120032720096755667701926242585057770617893798231096986788448546659527327061670308918277206432551919393673591346037757083193180845929565158875244597601729455720505595085929175506510115665075521635142318153548176884196032085050871496270494017684183980582594038182593986461260275954247433376226256287153916069025098985070798660621732200163593938611475394561406635675718526617031471453516753007499213865207768523824884600623735896608054951652406480547295869918694358811197833680141488078321213457152360124065922208508912956907835370576734671667863780908811283450395784812212101117250718383359083886187574661201317298217131072944737656265172310694884425498369514147383892477742320940207831200807235326288053906266018186050424938788677872495503255424284226596271050692646071767467502337805671893450110737377034119346113374033865364675136733661394731550211457104671161445253324850197901083431641989998414045044901130163759520675715567509485243580269104077637210998671624254795385312852889930956570729218673523216666097874989635362610529821472569482799996220825775840988458484250391189447608729685184983976367918242266571167166580157914500811657192200233759765317495922397884982814705506190689275625210462185661305800255607974609726715033327032310025274640428755556546883765838802543227403507431684278620637697054791726484378174446361520570933228587284315690756255569305558818822603590006739339952504379887470935079276181116276309771257983975996526612120317495882059435754883862282508401408885720583992400971219212548074097752974278775912566026443482713647231849125180866278708626116699989634812405803684794587364820124653663228889011636572270887757736152003450102268890189101673572058661410011723664762657835396364297819011647056170279631922332294228739309233330748258937626198997596530084135383241125899639629445129082802023225498936627506499530838925632246794695960669046906686292645006219740121782899872979704859021775060092893328957272392019589994471945147360850770400725717439318148461909406269545285030526341000565022226152309364882887122046454267700577148994335147162504252365173710266068647253458120186683273953682547456536553597546685788700056988360286686450740256993087483441094086086303707908295240576731684941855810482475304758923392801571302824106234999945932390521409856559565661346003396150515164758852742214732517999548977992849522746029855666700811871200856155016457400484170210303038996339253337466556817824410737409336919294104632307731994759826307383499600770372410446285414648704116273895649834555162165685114551383822047005483996671706246467566101291382048909121117229386244253158913066987462045587244806052829378148302622164542280421757760762365459828223070815503469404938317755053305094698999476119419231280721807216964378433313606760676965187138394338772485493689061845700572043696666465080734495814495966306246698679832872586300064215220210171813917325275173672262621454945468506006334692713838311715849753092643252486960220059099802663765386225463265168414963306369548086551101256757717890616694758344043486218485369591602172030456183497524162039926441331651884768606830642004858557924473340290142588876403712518642229016333691585063273727199596362912783344786218887871009533753551054688980236378263714926913289564339440899470121452134572117715657591451734895195016800621353927175419843876163543479806920886666227099512371706241924914282576453125769939735341673046864585181979668232015693792684926999983992413571941496882273704022820805171808003400480615261792013978945186295290558440703738300533552421153903385185829366779190610116306233673144419202893857201855569596330833615450290424822309297087124788002017383072060482680156675397593789931793515799958929562156307338416294599900276730832827716595064217966523190439250543226753731811755315476780739470338931185107297724318378972674957455778183345495942317353558291046967315391275975687281861691161083156337232639968881490543943261197182274996791176628553401860198315809629981791107208804992292016062059067271273599461871634945774995805337947187105456452579396024210259136415528398395201773012712514892051061708228008339985665786646920737114269682301770416324829479409558694699089379165191006305185352102345189798127619143061864362703081977124992751056732909481202057747100687703379708934229207183903744167503493818836342229284946790660285674293251642569044363473087656797056595677285291081242733154406580199802711579126254172797452862574865921933293805915239524735518887119860391319654287576290190503964083560246277534314409155642181729459941596061979622633242715863425977947348682074802021538734729707999753332987785531053820162169791880380753006334350766147737135939362651905222242528141084747045295688647757913502160922040348449149950778743107189655725492651282693489515795075486172341394610365176616750329948642244039659511882264981315925080185126386635308622223491094629059317829408195640484702456538305432056506924422671863255307640761872086780391711356363501269525091291020496042823232628996502758951052844368177415730941874894428065427561430975828127698124936993313028946670560414084308942231140912722238148470364341019630413630736771060038159590829746410114421358321042574358350220737173219745089035573187350445827238770728271406162997919629357224104477155051652535867544109395079218369015261138440382680054150924346511711436477899444553993653667727589565713987505542990824585609510036934663100673714708029927656933435500927189854050109917474979991554392031908961967615444686048175400695689471463928245383807010444181045506171305160584355817521032338465829201071030061124283407458607006060194830551364867021020364708470807422704371893706965688795617928713045224516842027402021966415605280335061293558739079393524404092584248380607177444609964035221891022961909032569042381374492494906892314330884224399631396391545854065286326468807581148748371408284176455226386313520264894016262494802388568231599102952620337126449279901938211134518446387544516391239377974190576649911764237637722282802318465738050121277809680315691477264910257503508758792248110223544524410872448565700755187132146592093548504552829170749596775404450779494836371756062326925757412813110241910373338080434325310884694831555729402265394972913817581338619457057799561808755951413644907613109617155928376585840036489374076822257523935988731081689667688287403837192827690431514106997678303819085690713091931340846019511147482766350724676534922040058626677632935516631939622498979912708004465982264899125226813124300528104995058595676527123591494442612554437618645029202881358582871789577224116380815161831603129728796987480139828621645629196153096358337313619724773332353025466571196902611237380629030242904275794549030022660847446513161741691916851746464945459696005330885252792083472495235473110674109099223541055506299687642153951249355986311346661725116890785633328935569150449485189113488301876365100638502565916433021928565596263914382895068324838727165616560111531517055222955765944972454788815532316417453267167978861141165355597588331979638070962998880767303616940317736448140427867784251232449974693421348217179595190698204602997172001174857303889719205597414742453011135869766256607770970225633261701108463784795555258504578058879440756064974127974530918418405207558526462208821483646754652237609210787539190454684852349759986044943322828073120679922402477507514105890774627334319091255451352225329275913842047384603056163154236552935312278389759446515787337343463172280001031380425481404022090580405056003860937403435068863081434683848900708938565050027569059678069404698435184535134141031615133683043714786642925389717165978629010728400758939700388317742648163725113277369926827709465342583596111881955092462062153978121197244762623771534452048069819082524943963962251113831177428978535825590832490480497516047104257569753442551515779815600370847230603484753977513688390404316017486248871339311818523029425425676202485688393970836748788453789172574145155917919035398535077200900594979352939459631213445503368260690059828717723533375221941915547303742062343262892968397015058892191112049249864792053410872349115430987182160055762209075732304626106597744947658346313025598636315029959672352476943975462530206788193304372284800209305354155640664838569378144603138697563459200233462606995955513484754147891180830329816421587452922952678937925647752029052675349356673744293182673374571642465407748267901046778759085408130531447176455869894169668940436489952465247443988349583871206296485413357553813419500498743813369062703973874586604296871595820715766599826607317005624465541763024501349159567288942619746144496908671655859782729228702723774835097362901019130417812735773037781804081589136005207315806941034305003184349342360269244733060013861119781774472669608928321052543116496033420102032603863672532889648333405862204843616575362001468405476649666473566979572953394809138263703324220930839366954980688240491622063147911494642042500022450413425558561937442905257252436320054487441524307305215070491020434076572476865095751174125413729531644521765577235348601821566833352520532830000108344008762266843817023235605645158256954177359197813649975559601912567744942717986360045847405209290089397315276024304951653864431388147876977541478757432610159879709758855625806766197973098472460769484821127948427976536607055051639104415022554420329721292033009353356687294595912327965886376486894188433640548494009574965791657687213927330153555097865114767947399690623184878377515462613823651665956337209345708208301840482797005728071432925727577436229587047361641609731817241594204270366066404089740245521530725227388637241859646455223673260411164598464020010216920823315155388821071527191267876531795071908204525100447821291318544054814494151867114207103693891129125012750853466337717749376016543454696390042711129829255096830420665725364279472200020835313883708781649957189717629338794854271276882652003766325924561614868744897471519366219275665852462114457407010675380427564184440834805203838265052601698584060084788422421887856927897751810442805474427229455167420335686460609977973124950433321425205053675790499520783597650415379001132579536040655172654879022173595444151139429231648950663177813039057462082449171921311864129633704661406456900178942356738775523130952785912774533241855442484484493664210731348819180640189222317302156645813473186449997905781662091469870718039388885781280740226363602294114354869871402143572055947730892808653678920201935102605361567924483276749476117858316071865710310842200560259545115191391309119544447844361032741876102338843391687589233423790859841968266525610628751237572318491474951945985728897934981791761822652480408237128109790772638864286067917082288575852703470839714561619926247844794692794996845945632382702297364173503430783194115698247820013290851202878474805860188960045901745974055630732714487679085288867978809970695240681006625611440014983413580889737246844064948857074167687916413224205373654067330186392497910915474785959163865597507090581175924899502214799250945635582514315814464060134283490422798357939659258985200763845646681640732681928346007767285876284900068874564639274964415904034033672337814491597032941787294155061054129515400159393851663929325677429557549480046658273579653990940233543644649376827272541873627547532976808190325336141086433084237771738995221536763095302045902438694632702895293994483013577589081214884558493819874505920914067209522469096263076941753340983698859363700314973728977996360018626500174929290087931189997822963712306642297996163582572600112288983647651418045975770042120833949364659647336464289044499325396227091907373705772051322815957863227591912786054297862953188615559804728160710864132803585400160055575686855791785977899197902656592621283007225351401525973569300729015392211116868504740402172174442051738000251361000494534119324331668344243125963098812396962202358858395587831685194833126653577353244379935683215269177042249034574534858913812582681366908929476809052635560638119661306063936938411817713545929884317232912236262458868394202889981693561169865429884776513118227662526739978808816010470651542335015671353744817086234314662531190291040152262927104099285072418843329007277794754111637552176563589316326636049381218401837512818884771168975479483767664084842753623074019542183217985496260666590347925816342392670947839907062923166535037285019751324813803837070894638925470887039085723581006130628646664710006104352115778926613432214655311411882596942926284522109026688414975763341554921135581254616558078273470115814006008345762133130389987843270653719956709570847385786092649188858378739239165554263577301292243641604062551736892335636568854365851646207821875741724364525814143487632761341752707376754922276287782264765154315341585713773522730335403376364204258034257264749686217823666951353410677378421131371131987373222891805275062812277716412494412401207125954319991746574745892582613712825555535080404143944557295994554635608487251339462936358940832098964801619583130429720964794128539388996265368928263807677168759588502216464582430940165009688797366157733560316836710386895228270941509545222744002735499253670214715994056544813842186380128799900820933576320736369405991424263718294000613741900579513096298545330748197802568301089672873802234820488862973130369689882640657904781562389778485365025691064231795736025330908763271784911189748432246868086340383964176127605788646574472284824932687443062551220506955168464669477183681911432873544815836350548146411099960143390595799766290646881295025039150923633011076070632863317393378149693380247580035052789782755750928604039420506342939327064636161031822879248152679306862749237275631852225654266008556849497720285909150930495425967473648331437236349555448901598668408362176913559656039519670425368863482369587129462524759031776813184977588276576740482558136502103649585505703259219957675334264223783723586058509403583977103476670644788640831109650302565215607464019652716999732373465237173456595514559493098166644006211599349133180135150528651842178828026343325934755850761168697709125580056185683710540856081249519403148064618719402577663285267019698387567561524696759028106864896869293315954352097687527137201616160931174250199709289684940034696242325688410665113304377412256176258658941236728171145526423894512631717834790276921171452887352955019336759218908006048633737786728180610254782570436788449503518925787499836694785908612975543084122677060954347612133717433156783790162012337237023338316414706428592185977610158232721997915062871868186750981665537745013020880333904353639770263363809098526494532628146558065546504823486429495390613257400496912888340518222933644476683855037967975809619983575807027759535968788226194659612223044549275600274955168583542582295336042834426318478068825395450746691877897765406038432512843812811316856204608617289408229658626174420766920297427930088129519854678713548623236610413216581279267151545961594352593456757445992307889205519540082316409719591250025455237503106735639748835542480449681383030671851931491335789202123605308199952020584503423499932150962634977812456658304680581824563524814625849331926195406884818446445248429486063016169476663242625231476322371109695369483824482316410396224507675405614287468267835723704895606990652792688455844512046654853378534026646645042339638488257719874953611300494215593735545211926186721478265416885604094928290056616883807637656690510740892510549165222968878676968631652514917701499900066637344546120262780701925698706225540928945194718778004306130021828287425867048748480826948573444778244078734102710824870269523830804910960482013901294024631244800159336670212658317677879752965963472576894326540435889267293950687860830626266263287392087327302547910099932113388977807814336728791448768373686467748528777737403547472871644217767820712964506270880978637928144071192505141148004907055608097229299792441471062852247029870699869227676341773513258602908903875707454368077876422385333700692089616351009233587303986543906071880952557553380364725895007306772122528078179471056481171378557451057691044322925429024149433588396093679321361696954251299731031032804436954501929843820842383121265825740594509426942777307124802176915781835720087170538773256017987133005505911377823841791640280841409623820847637393013930778428554545222367559824666250608754284876104145661362227642405914304455580856318180935230407793891614902116292400515074914068443203230365609954878620999194306564455332547135557365318516011700321550690787716752062881527885897149410320986984083048966524351030502444679931779147659103428949129054120361601695671222140806369405940304552186212879933092856231022418446365289097444640151986623183881962444822590783585914043686193019041458962693878907034982169868696934448086213990534591792826654304798207219634134755646525483143771156678459077797196510772468000293581546267646310224279007313631352522067062951125935874473134186492497282784796644585448962932905262058065248588707020879389134476083344653170939242408249328008915731319541348311820927752486880548733943315867562666122179355051190609992911379445634995627391898459029021713155706096267881673302940198464237390445098028030948975981259252055850973537436556825780313681902007151675693827281818824587541710721180806556448039122504537089422695358382192535075692834095639859265599740391316709290043996275976830375217503360879028295673068862263077729733533853682668734519035709709687322323738300494090123239274318759046526327095178406267264828893646896593219169521106361729757074376148061601331104911692271318609404145014842866423634716982892418180484365230538864559809839273836490685480823014267803143937440431807822678779494006206489151248952516543005634448375046751754207043313372486870633237561645232360481932024377596890914783372179553676992603235715185513391098402739063753280702313301755754269396202629423910945323537910125948964941812563672992967084250667599803456273455598559628512281414582556024841783305645240508450065988755987518601335860624932784487772006842296591945516539562982960591610046578907214842054861830418175604559815168088031783080261445994444677918012432146400983610678683412974872596729258786806223080115822026289014364459002301645823666709265571264559925790622304745235625575111770791512002789380975775468546121017307522799241407026308137792971909461413145802081087738121624539858769697371425881836152605069380926917712087321915005831977113322793572385071940612761291872572099404930250277748156614021327434743881966413330052634229082906400927944924808556131183440161804801357032507836323938921567643159620442612809700944107776130638909071294456394056601559246025454204771186140420155233371270501377121034570009578009389265329385720478576508777149663403003562380595757191609382171312222810465858388943507176431939973012661591423837170284400120399485880996231859472474858776584355077006934099220340378772192728370301380838144394114984971730766162961342059105014814283949700695951676939041557902856356911055547312684571497449635320554677940775184056667637222969090346128706829887104278761090090999160443821794511763620835379716161833124364431267855435550800507986124664397724135502128238026726719914989727248512981287283697489276420792868666970177259794407858155909332508554131299946581118527691652464790819119384233275897699573012098103009171001695718791616942270079528915191912521053891838538959315167400505723817401030621004380243011187977704252328073236575129609372456053680037516596164236147709330391224409752871732067976128120428026739256557305675931512645750047875756531854825821411574030473147492511910835615765732002546109686701890307648531373832912682481741181359032826625082549313211431478953352317043989053928534946642886074268371824902498092479487226633686823799580875637040808655649321905489637785549531167397935270799470452399153297534358690514105864096534514182896474439367182852711843560799285895978176543950113088848419163516673213692860830956744502801800373716458009168082972708715609185038654053436660045504985624687376022557041595800250174095361839287643458003670864954057941720085136357127163768323493134230703821274484501440529541695374381945459456533165140990993722722801019654652726227831512103467686166826131471843610025517863247950150022953695466317739589344131481485834694374523981159954666071205997794363440185078360899108948073419633939259318973940943110042116729120199722626609871927014024105805515315100109804996044147291039451030312664114726736839973315035036742741546992633165270432940675237449075056739508929674779115800864399992564817208847429250821546279856079127768611946086210349405535850134472190244543824521089284409498132717010673966471114931896789977661595488186193176900175027901783824624387873831483279500879026433992577026588005849778984624295660321276945810824348129690840972550671054732471317254997191901039553305847040728081693158626093886019147689944137673621432083607375131574376316754666479186753896571555100850626810005119827486807780592667765654100834778571024250133253391587384761024129794736751001163498977803745930025457609870671092153597115178252014281216647543034075128600240297038428615984289816602143429849088917359682192284469123035904329877231843309914187264674607558318725713138832356015809009594182530207799397648462597901883341793830920965841463574411985878296475850943053008148341821747826603773762252997703468752903517310792083220038080809212164346586817989810504274375385786789186350517717501606531826406928883250135919517178537687865881752366421534010961295763074762648070312757365787762352859057153932484576503944390496668087711899192498933896524852395536795827530614167131757915756386606004839994179548705868209201195154952031294562451315422506574858629161606523796643010172693950282294667489681746821163996794950294284013099235901278250437428192557634533217576162292751110598368271567229778620053722932314082887058749444060116236521627717558503013451471452765841864277071769968435499620257547431811994883385806759692359580622165832464092095350648357935817742903018315351290014321495518177456908388719320697769695657771754499149911431368950836160692539606469893374870942933219185601299108564470256257163505508620689240297589684714283678684735455533583477652536156578189996983068654671736445996343136468195427420490472433064675001442697508322369013083895492637066778406531328664886080129513771720847581157719491012345141774941482773580041432667332379617716965698582785832300505265883502247868050648201444570593197343382923860072601696510903258980909912837652275381493529845099414966933862815568031306981064525192703818515872648691762563239441425216118427769145067718411735714396681005615483952443154944864238384298900399826113322468963346522104692545137969276009719645338955332105584245640187448611050959111766828942711640054010503770420346052521318228045892998637903572350665108782350043349942391285236308896510989246641056331584171142885304143772286629832318970869030400301325951476774237516158840915838059151673504519131178193943428482922272304061422582078027829148070426761629302539228321084917759984200595105312164731818409493139800444072847325902609169730998153853939031280878823902948001579008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
20000! = 1819206320230345134827641756866458766071609901478752648918062218634569461038557534453836095827758724739177502384189912041671245383926576865723475464524930275709204625357875789525900491823414542718036070392521085047283383729296861580052404638841199526622379791066223341463393474395925629787482113163418647665455586660436184087223951946276615548561632208981651545091872218436294406051877306392783358445931186417148398260080400146928105895643738692767105374763186090336511780868599512519843617384918221869858019078196339128759665295841157777813491489409939230578103105905988720691493952696699343574983659137962578903705716902337854828253406978492916531166704020223408974723378025728021785188391510797310297013143732956206337141728256129448819212285111707757412048942243223685263626707514121305282315820321283299281396342128857577713702823248976788453610611086876406235690279656009538364835651790933084337403846779999492765339631654736288935199660225186364164501830300710635452054198301551129698382228651679052521947578326174498818999103078230900998230255192521668153855237082223393396256518927523897560451367991707122492644125621656977754935015185136223424536236082049708267282209694029115324122700295906687521246304592598016350798150157118643939826662111851567075749760180575150378322257651547386370349935021174326742470282351069392212973957360132570647293569359766996208379937673704269535226075880983640605703266078224982138479572920849716512893209445040690064801276425917752458927101033924446315450771486685532642303913788919310844577084283964175498228765263621608440412853633906910171930463610385645820744909239703240366376240637621838055888668116641394549104308779104564432699648946388702235680707365441002347274462483335180196181280724089960671217804504348683038846159078256259880584813344270221148603590042452309662537212614046244138953519229573869893074525383446893912315063797938571499477769107817419304469554712634747306148472385039297629612717548806551563829550630930946675684401814618441321646683269427721993158279615035881182670318979008283335789144271032083423544703635466138794697651350314402685288508420397019834284422305272278969418263077061533996322663729398803682706995509520217322001025554892495358317996848086340064596083569840851277518587523966062477539941480837360544238167856816863891124880147978903148708881439895001073586452888924224570307962298699959732760545361441853376861865311472943334632700497459546524530674227010913885146992911476511469328116322844277291429242580226789688280447607592763850985911959762352034962843633682628761799072096874350710765501344796950186605278475260199773684637260318219984313964504098197236766254561576963352225113113860686582041968943358438445817147699481383223388403108694275803764969856335026035998141763771955021534739448155221081816843367878112690394417684364934554237024383467932868994288070739501959598859489422664768319867794244200146319821081274095297964073583557774908763829967444472509287511266025989760063372754036414647780905929771518145840711438775868344972951118873043755134229014440942305929794132943247059183655383860957005976931552955009910617146270900308131292961987706628737539292294513164726272782261649467434486469164184438193102743685176271303080345578147577244822679153608466185148549403170961726229949693155419870367496622944764818038547513177344308839281179313697155652585056983870954326955150272519431702859141648709273119898627462220512226122429308587858249872807205877995641040609646207689348811486627927797149208946180865427363397867065322679887603422518891527755773857337546824775880433525219896277405006722197251134708090440207476590657537722377855025749581125718480792279949990827699398031516660523819630141728849936307718563001020925185801549447529442386753823216643573095907613055140378684121732460851105776453171910915179146879088014743892901557531200026943010780316277121008043268677823177040792493695317178975986609446642073278632102387785193987468472023053569759865392650586235399377255429013141572538378477860078167724394075772574884198675569155221364304721221050265975303104224165477579039179173571096121008398270145669162626875616473358695080183346883622204141103292978624716922383737357829571225194683967490073341622886685418101459192339544211735840172983757718064889007150719331720466640794043048090974943968803649059474968696631935068157436827860838210546123803921506308623361485630469301945487629899739863616549219334994650673550401330151345075665824799994090331936161424877736905043478277717763961497418976202234057616643395598594859473644564953985771620620875545811197801332399244406489063667172132950923874823469967017152578700547993819001041019927889934645252696959839498892202157013705439003350869012841853660334910263512681071257967010460722000465012359520949867280788523637538360908419328210010257605009232300314209577481960992245202867834086028794952868894583400329819783860250441186417541301552881660008680164170950654872791036638446267146773864094451526966332781250141076583444686499433878558018508160604659864075870776909871021229329263538739876718139370016325847398153054561048484763662082654256001200191082613314126038405677762180256725913236219133377507849413721136794741341001534448183309998018715217297881192841912343748670416058241007870678829528482082691122121330712603685821451480221716895318913916202070682419066983900093073086105685322752234759208892423037447915366738976625544089991660964802472361299583287556901526925348721489285931471753590624435823333022537333267963484434134541673989275291046046424782456020187061958717359710213138644204255929484953264789836125656588739758462829812398837202656287595313781131879979400748699779848035035756812980550952397267497904091524828453555589761023887780032139231088497638208764454554433739653605128277824759693719131098124401555934839785787355191033260265943249095282688827636768908819228932665848253354873717500605878412941188537735312514532963900011840221152263049331990362877166364653037991595352861605659774721503482980027689759326229113848950704934520858446425457193454912145363731266721830424433307742075634652721403711162820396238086355160999355618297521289683553771098957696054216889231326934398910226399241785513310860392057647431701947586236354120816584713491942420949564507182024228072027781730507302930117288326738834923052062426377507852420063728820824909125128152264056399383638182576043502233606516831151065668154643896157732561699801416334125007894034611132445538783921186310538638056879951957370230679730454657229846699230040375609587961440796961286950959860365880249622780705715936042983947277962221961292142180211474695218886969112740759327095542805933340674367023630714819186724092174244157929754525159284243966971843642845783953262449989577763155532711768957317631155798292758081115385574493755074486806292167778180758892355433772883494432652681241638095932653545969272292715884721877223094012622290594450583370628695901332937631867986526065616821140496431535144699403370426021757606829546778216452799702542055038988543839005070435529991812858331677744861985963978407500500276635454918291912895782573218669479896619185731053284124083386551756322564558935262035749574917467544014169279363254641891612321062839763730439048454337953490603090034012435782274912013076332269011719025585995708049245709585180161207568839191808590558566008812626393997961967970510567941594854303996306388652876357534633743491184872355865536759120818981291459710177206508248010358067786198617593593452966045129459460942912600450461043147853506788047163425673589425978580875454449321824404839840943289606418291749851556631737784089646786571196224798974938343633419890493699580957611482768392333266715544350530071870411992877005603207723033264737115843248831622367211956133949350265577199677377527656613297632470633133312913134193330584870460779466844582653273225601999387218698584109416979943723102519262274473775669366320971340118833232615660604561294263739222991626884502832399151669581880313249913832191633577328475643106623136626949755611211959024334425260500745987773662887056055248910295832298881355080656168511488729515338144490921248091258025659678098849983305587280625208533887511105737196438266956487359916870932656568298200240796819097129279489829759755442028992072247367086960165545726936301033082069952991123770942764449599461467977126904030266360082979720712223984077667259688280232866771642650969326327994141066410580843128955964680932434037255516248049922845632407645359758012564762587467687435039205482953017271428750529494627304690447968276109715459285231847646297767936509038838133060858300366128938076905669562978172275087713108126774903309591384979082410937679284333445425433786461570806152042853851597283129872231039238649572129377314446606754207604684111732941269804621441022445075290528773881602657022005012573065889697166205060666103808528455298773147134332056497659719195904875301288687580612794307690136324715676543438776399909576076118381158077141018434553356803610365131382470643795659893897982233054027973252857735150989715272693398055467556132869821389154666109525585905351088020956588996127847061039732504967831372994441646179862193957923753978900509348581196275158717134574563299329747349488140210883303761302233712298954266177681915059255397499263310084978202005677122285166547650260714062565299545181904583395623332360010662355449285047220339919237929005483300264328852793314965767223217531808882356858547360454428255823007486579046973545368237064879219425113808647514279310279001951226988293288319415039304086811898197145886376201620707458201828995479202132335958393356949043546013627353984735250816971311237391569558996050479527549133414606961762772963996912088095503651518431209221134227466284098948321651447145834498187675351721523458075560493822946667882516554370468398657015577872918831176343472019802549361140343865060014338774854251438332634954449353092030375750442205120262639582866742701026264666374139225995887092349954381526496144480115009338457333258435908351446960696523361477115361684418690751925223339481380070653233654337047142411613189823412567411474931232284888666959519792327777827465717271290261089392950902170243336490802743752465282222557028216111861024868004740918439682785177466490897096908009219316889447161503317288175563730351421229103443322341173108826763696119488041566315788554832086207122329117328890371406399709654272522367439309143152609424723949948269099288079305141429593086868989129247976753478368656712660640830751342388642404253958629721071655851138129114767497254400933310725635243824187406379772750928760247724383222155709558673562500405464009702630000517152254994653113961575478867222127138465425517270855566122965079642563333511102205134571474841429860123073286871253377684688879251074362844869930053559056082334554078359842584995765236108097092799340727187751634569960583565821918163340867776711345506835147629239639876137404834963434258309510041886085841807031376709869649018681347841349948459384004081975340452938356293965206661182295112734254838843059641967847544916154220858602419811035522235178904566874864010473172750902990483064932368865511652129553886898890620745683136967786211786929896087904759494452048542893191779025975483129219877390756875075825219362910073295570139954015558239378711991047218586773942818105659158459747092958594165401401183290846810674185089614036947715670506743269128048656131009367822786743363878482850788103588540763157041693164996494387026172362408510762693867393093237410924043880429735456979341548864194491676320916157781892680672525576012129908366471598304136931095592748218174749063788808160173249573440396142927500082552708582931718917413334408048955602523617434320432634268145906161606642874225531966037502806159529530215480220245634115994787692904956681208552193880840494141718503148852009043970620226367909085378940196079676208968803571453660180186327779030792340279542341804234216002405741380905463966124975047359421490539286788689754457598698618054950348735591644776504332171093623081337803259521220730692024509354395145114616503929413765007708079686628845872724765437882904719472597772102397661435355265433072392597803274392284518550132545220957223358869428156272346664111287834274155493106751427050464939948758534633340294427763997499140583394506000560717303429628668031054174871153211805405160137720264055344632239282228870044101832520133431037002350794039779908241126875877169249588958770297503590201599890509161369032939302397382532507926625592425809464556126123616165546435270086360011888749661204931192358122603454482736529842652292666391787562919612811814353006624419912010845910384398315643033659569502958486237531484817555418929185536066953317116313990514915052597408779915794854712389100976543400101165239929165303578059270647148250563927861098430975674767169078538968943650242044165163251823675281959824057290931375968421595609465322411264821422305095198115563670427577394179259873432875331690917308194347360621836672207551192536402226262291556380963565451694131627947595254281285507374593971164774833813397283663812164126515210568393841451137852100664963803169144952643782258579220615559636777004148325989351178969093451558638402380976845907052983196143805624702962302538887412699893428409186699261553455212459353778320825306450115943907508548678657137042397142024277889007431926192937997501975331176382929871139758333309361505400051062297127185725989396791343191240818627837028177268734825752347634957480901559397024449745919841688515996872216083964921586435123787798459483562450954068745750428578617743225606257514639804830820895821681245214221367591084257892685768860608439928771770732283473700297494002467723168798245295210332139739406042934154993754781155421665168155364253003032633224898244023708116465002754266214424552184231286920764299812721212978764766200038037861537682633562561393952546035626643119459173456032232531000960425539642742601797469821406570542415685233219349925735119706551632761189576095567473191249739472149423469811938749842602911899216940424406090878870447721842153261435770637160371382082860157511645244303970638650956793450867158332461591631124290307205146721218129259858391941081135112869317989071312848205514736442373877976255916782674749967634948824824882170347280333071035822162138768583351953552200167027627154326714484530368330355923262944067725691045533238166478508174650459248879225774766037238711886204121982602079615508494139815707353332770408729330295386481561721228779170619387943441604080362967537807579205972596930839081919271274196329288236262024434362665043200867209345263546478008722342250003673588666588176177214684321542616533169823534734452992073409772455636079761060476744498048152138269281924420003659256641267283190443054731667489504873224322780925162131734345836391445932372005060924173080094554731482826078271184248594070279690645499623997455977409044183182134260244671743857234132600871590081363336203315462425237473691535928330033570277904031684379920710269104410929483277000668333909314832736752121670520388848751224583470367254117829787778024703644550903560468514668787955255636081481239509531589253248507983470681100309899330930037514000193159328273694291054627444922120722748001617619576668541701247274607203011508105822279022581877127607582733156388164183327173142198331685126722744851523626456305255548222884296349830429541694614145897501428056190553116183368862032851438740092671074547673546184015910077970517145646516161321311164765667854487108951168626633939595027074713572982242412704106018342439568090295518079385232402382691722726847387962189965517280110494836033528206797794082530974778154667420366462286483442844705862082964630723953855608905490739260072416885964860042685890177406496971279086288485310673653310832724610584402122246093033699789595993464550287723208502362437653610318119779920960458407774044871535753341340962352482023881175954039428859907929757728987420840616043760880338884487435619604389065854269669049681498335439199068741461838912266379165112378346474755624962043750595393302652623852970674556413876524986514499425214952492674652586334927606281446019274260401753809438329981976395650796310687913019353915741864087399337271986837760981421128133763961802589032087703958208181984664556497251185263005797456266041289034518439235525169659797207215573123048470174691346755378507897053220857755158575865689630534730674765623203017465902116763509226362350460280093294676079004331935298875371048904492108672019545121012450404546740373837682515058991177183240080739066304823786732619326709360309251344796974740105582581195478448434184558902922250401118767771590368108276523547759215128220723303864308963116810576347816938491528166414578163457414655277892161127961229250482312903681738768733415243425153882530779864420039050299028332300768024835209819825789683431158648253466466248757225606485004574213952597084397305572676875531331044371162497268970947709430726314370227194092721559080759336531369809690818566097975307802534321637866264936443060234779812783064817770629587540502973699507141879655715487180700445065551137221919612176156389669980406673422892404603726015430197028620532470738700033337238782393537741994293719735861672508202885427825668684150329217690502541250084881044540216469715594552282374384316548796499049436145649127439059297830810495627525308865581025134236563272900374564058893522678258802347791246095293603343389640688769879231221964634108730184215614500527765054992545447275689697903378235373227459484979192109009764484179966660255116702286263775566709724133520165355768740485754398245209844522327303065286344341206736721888446406831415885857457566206364947101875087189496136353325709121005362829621814464015088700928789402512896076093120731052031633745559568132507109999365394244890584626273684883122439374678014481626886506247250680146086785305576049689505840133163896730233242753388007953644340655888545657208951875354389309943295373069372122576115333224044732363662295436626526554870290042039093568312962506334092212189182890598378239813217568456840376710621158181762085051039903311456788183538262240185254176740867185156269161302858922771331449397842694824271636891784326607250704789414696637603920279126888527253106127495601986812450138989440637137793008158029226802765553495456616536544760367130907439190089660969469895386491183225737400267918428203365933865133874473038788434472088121582376181602112002946144006168832727951064014589051588908821016339956176133065914815650868660362991364811533934601492919575573146803131584170636583435293551154194927484458305516573306550619650239570880039607848724381878270909258758351509345484023610307928153897773075445332426043650814697017701880853533956202199602089777934746627724664841516716462375987542154266823482626847889501485730920880894902852893489248813859893023660175943803927680901655241100975613546193471522608250419498438789689852363483180906129328196123071841755542390739830186524571471540585317491178305182769546017787559646057704107673342817921958009845481049408036526452240155025994178204118980690211351869028032434887217340921312228223091481685973069791214173911186281058372730871899855387413549895030243081503422817649903234007156710963748396138601546836748090183307428433260568966312049323009694116925868380897638684187049470592255713632372932142342798466281149974575488545608408202352010844850593230790832159435238151508531503418360661764048477197890147783079834963995443623237330400655463709530124317582608499707156429625680140850542595315998071943369468016099558354413273531848821507973560322077163954184189166229630116714756847211297580561372804301232032412069354113769278995371530097285276923420000533976440343452694953400356726194078911019690594067274695855943812882048492637314105981126845479762429966755102966359207526786137891410620297672505428439353350120709779976398725093621946844279039998296566199104512609974566277580054805345966083812445589396441245247656634968977321210395979463007743170277237254276680972923902291637824582795394981484215314718992898194612220361076512169312310948739305083114041129715537472490437234784153815913296024584389695977448187738717801344639642667263340252623606195350227112855311256815973139559522389380551080929130433546900372619682432047876779431481587832876633769594654806868694548464318114126905890736484811550211684838221501054635922355068308169187174234482642406509696808753466679360407730173047398616752354976287494990994243508381461224483568658744807103062777250725623547811899194791110427719997341243158110412392044980866879564146898501415108682884328204616480109493785222827477664080952191381146145019383828245725818878064002361755488748791459118703154992350985577792852325350323512267658085723916399755577004032448929586817822689987478612836984325693941574961246484579360120731555477862629550129578129172524957061972135097342561480250022218566695085387472808920892476586666784737497813397664596323378010739889782324797464894335491825232074433194495490486312246462961326246181266537984807263589140351143665467936240944786200899909932630854856064401400361833362475023325968111889823550632106262686311041397455287064842183654903081461194539066453561860368766721554333571360422476729801705649394021888696418357809476539702155039465811728167630161693859646301784401963143475174636863179753330750520439784195945017095734263625180726063703877146649986642241631247376941685834544478706733361390863130246913243187846103414730587979866144873890062226456199941430697335889061492449788345262420354418300161439957638576766814704531247615596423295502265967342426359284008241399931539764999588337201225365827456629543301764056722730567890112546614376618827837618517633060994357776826855568183953734701326447510081401053774424198903581360444378231861184158379625367723007346129840397106470803100786466604561053979300860924812248353475749958057550807447683352146473710381542987435432042320006775470583519249129802759604279397149868608207272354862583213283814942513354405372210014340966330038537288932589306186072081792543883366747368347611334360078965309922465480630932860702862249665287558863189777355206614531572614155826416402642561299275610858671870507175728256436750389793160019610335503050367038037555438463289852196445538717246649195338957388647732646056977795997574255507003812579259409036970786297818421930322176115498523325598732195729998836145523742434086690563929097397919160826192608879687779516110627962788234173395476416588377599722247669809953928762017999642718207026455581569584239125585759554046250477501414700862855706079265410759063305348714275329053176275134377351225092820711132457600986010288441138292965556458370968812617197622380213227213002913297877659067043243936298710636045809339814882909023348173431212559439645429589520528938815124451750813875656035577971785963872813781798772605541101422279865836866307716577627038461313375585536196649209445256591730778574002433517557679829508886178203436394903001619016453692303098102599049629899557643630082517636790355029550501875414870856121306449291635391209715511457976373471523473324572869624495431759982540460196011667372350083631328455602121772615597162082360732611725900750647784632991810533619849817736270246665188359168523470897930272619357232371265954208660222015619155404734719764715443158281652301096201750705779846857363923172853956961032889897827769584943914820198213364216577633136210267158654824315926792982070149931803379074056311000610275378970252683166538736754807832515352338961643359471091368476040575778313460637019702977087153465405441995156481342656563570853339779475336645378848222034756164107830968161366405762197364065378288121372097848640684976731342408634081843815605207140783752591189637312267869251747860432062131716637969322703106717569262666119968403235328747049549503025492029121762193143907143240020404420074401613521457817589365098866336850912172966779544635026117497302425754322277955587631020532356211543590857122735065668740232083803551568931297172588110167685791251202904602673250882153015399915095357423973827583046324372744636219917471431505168907113638314023658372819533721732563253239893933322207800434873277447168980523674122830195071201591436077421406641637891865996420902520652359405557903000175155828271292391240333181712560352208660801544754126324523268869473317773714031549991849119615569595370198239322595199477106968413268694060538185494901784937605569361308712412078646017276506578134004399391356473650228053280371576727036875705204506817958220098713503630684612955275532499692643363729367751373484566394104358037857526553667212830259428295373088556220667756102923619404700295568776539270387405728225338706033301053931449406143768219036666119492000822247878034959973406762961666655732280198001646920999860833367717206062220906990613425980438907336535873035391937976450745154547548009787183189014305064611318101821752371699500067279602824390737711657662209791793631904191228848298252047371486564089981319657706154974528625332630303337065523234313689529178419174576121685142004133651775643844825102560764351309144194999789350431990469381765428430505854596034364130863835825744663891128445962513106858187498126247324927244207986544738761948366483235049912641295766261574494137891004356089858016335630249174456604336194294455286862830093409410443024738867796298986055894880070346290028698575192858067172109743590083303472275046045645671674342568832391250389022826412856235952262705081772689897141348994941528495441503879750673801201533543347941343127049963925909598967555020496020914436618360084138319295993259777386156904526667243985869541125113385809122271551463776309871824764929280469485108697619982618494012891219484720367500131792273401981523487205512314524482821043586545642881016148400747393543299281950286843435497824275467272685426200148791785411378965604149709842684469487705568681295885608735652122556037967247968040214563747066775952072843408865735234008728565970832131769821638488291960746312039072028617734116633346319922135613102904669282116391713750326528301668418199598571214937903610315154010176110037377778640217336119849252705037004518904450472944899978863606373333182020958698232652966096571590277105277405805053930943505321330301195212634573445519654517492227803672685754005171692719402586726223740945564795239398810768999245820317787672269363212551673788477321608676194768890197515151332627684923899711278466939399126677223544400747238762766152534872199540551962067278717034536826185560487655236418460906826374395902349336507767658019211772182050897325774829560934471765673496623788929372128244214354043762800935738224541841148098580689375303166714215949809916015115444842091282691818163407602336427681270646941115443269716583447750630416276913761455318160048960048036036083855448438966552541281603527372847980244405506343646355067895589520244001894941085149873948168197205992629982355200302115148081353110293922193145711809519265644486711960058989025568294298431099513087358456200757894862395240329280401654544713865870298101753253477365076845944735258339093646312493240901709269053922961581641080365227891356000098533003112168704162832093364727873519361057960447725005049071782924027336875389249668161027593064482707737521121174994709619978328388278938272911444141554733618341553192121821247654348757203176177930932496237442397690623966336376378039685032962164887057540053487440921187071074965177685471001210787311939944173964104757590438512679386704254685631963369465363426879786677470392855110786343168820485406640958820446766261953979816263077887984846981767498197455900079642684584513095030917346545227016275586654356651257848744094458433008456496922363226976635127934495813438085533854540085763927259572953658522760986345677232665151401900718091376596181732270160625677833194753440431147715132051624225170190102012662651252800794374962907147734886081952204596782935460927396751405133542407051260583569573333149129405567931290179534177392363804445650266618160402205695333890974678475717208557009541310476543523118356967579948334584847261613081875853206651853131143784340027435070841156806754837715502732530390398409444856375555845590564417949622215225420407565859850796647966897630190205194329031840637012126260545664499835964686172142773111582880222690895870200516611543845609579006070533990117813383909766130769370184153929461401088465764082094069991805314256845642699867164955116655172647602376142108818390215773278489089764804276218659556331673074995188389629704264449720321767786647094041604441673377305481374762043513882013565431735370054792795836039331292929773502521011292207887700416176408409292759613583390261428382000352754380394326961983483806828152047725277339655838649009454259166815498013399477024397289109966657867077337541880179194803680257658689791975318304211232783067029385827559938615314098824230513149370702769327109251008513134706330875468857856166275877501818106615336256793315867944737299996150452040942942112037167199518961137938393911312212495763331470958102562069621467148276306351850301779310957143542868879103919489510647688907386550146270501422207664076257506896317219309105145170620992684666286631236398034466171788433629313599342994630627552928028103521136360309412630222282521993321094478018999757579560514389502749481372747924937621400726874843160860704520826106972585688365157956850436088636565494834537404999252659828707460104983862677174575871568271321998492323782022734244962658861574818692283254537684665568848972510150887371237490652683977712041854994490772089593357119141698342279832001920990421125896488093959016125156611022421505112251203473774506739490838783494753261354210093806346317120837782795695927863213417654358440470589069717659296578804028781818518179176416113130158441148238834836018383705522970125937320100426203246048741834446403847101972574923605710527905890582273440529836574483322638624991256513174124812352074970150365349696648489520483264432334317006387753995085377988384856352007400223067762832403220657587068221673528997422915330473150856951829482520644009828780646793098065988872362631791966812197707486716893208583960890070880191452517000852003514507597083610588678873004727560708572184952468580628616643351894259085692038234656400852060884077614044610573050282332785017150626493099807188037019823964059016751216149098662408019317523108074194820705547693787902049426430446813490439169565786506136935282918756725069223947497803227554358078311418620950967938924435987469334162822369602675874445169819307828528004591363081420055215705060861327117174341245655920090647702253048877874186310009893887006991321886228212664045978289806907043877619535052540302449188768545096779243163944163483355463976929876130413132194346757013146640943614435679278442743296709121155319601151639201774194888117691551778276127269042678782128724976159083243530672447263260835675706439662141408073628846062538225595513396070741379068229598521872180795945051361581254791800213469047468780899997255802558064952562297105416095065700139593199611692944402192845229782838289460169818926705449661502836170439021688027656097901410599710556233293730648867632184452059431433464260568960588405897381675297546048874704187479659188816239017659332700634004799042116011643186902821210814666450711104340194674154628841156346950083155863362232809890361793824002486092666229391800697656995150902351346287788803118535495107178472844500441533114267967124374549392862635613401021033450109815384573271342386918176392105156108894751929058163547939602878054972825945887646617580037900927609085781193861132496064073218479078496578553541757480762762365282343277055296846084658585600779441486926710995309589446504074039577215816354435761230165392798700368364826950202914177285126454698832426247034211903429667753280068181036603125139623485235744490307551354944822694291281303296400488376839278815840198049281427638324066815638769441385625140989285964663795597988103719521778639169337280689582086707199628374058347944162696546007679264630523050817581130657456609838016563269025027529161839730109729978550352909827222518777622064893333175344382512904105791225638203805810914403800363231162347515277640100534425362005874885198563274635575000853287463576724527662658583346209088011702864578363416630279875527188005836866687323857901068663193265638346917403585895473682724543736161618739611310144292475553574007339545380696054960344424799623015194448326979431492800189945727577836323250304517427093247810203690792417397508826914439844930742787529428130431870065923458278435997189027983140369094767918811063844180043521192571498455514477888859154689896449977354948860966339620558386092696966579406724510283216639319560765618762029137818126885905764577533745950131952840139117079525519373953747014962082994171491613804029034151531610810482130479428444087858211471466823547122224357232394937497633053048486453585383892893637000718662349532910881180849407892959245445476418597637683545587607044071016493579281812796131500594572874179327404170464541463012457285379351284894727732377641978780933299461506251034740132690131237863446467941359013239639897801127586962980771121111780514565913079530234409979531168810949881476072495798251974115556517113900707330130015768963886427819649340155793808683699510358216516990526823342312725419331521997773563138604651694811623978447420851664882729903690654158623195110504769534474248534324056579144990930051775414629878895284518745356784135487122744260303829309281983031795363482733656342290667373582967516356962334729373791411842647729293011362927523498652500638438452165612462187159821437748714652784570368084810467301705838839839660335842402354058562049732229981633562735617745036901810088133819917356683793778921692114721098223083319875003744489182890685568341207748438859963703844812866529899083974745792276757929506931744160930269819976603220973841997446620446654661851287687637907543865518114803778778210559355074991488338580527173186572373862683892256045587255232219122623432296298216857463524499687358535055841223060741514712571044987994128099905052980539560111910131942211793793339110261048158246972770530952043556858051533780913161052971869784655033735381036776116362314921416090971143558606615972623621353926458498615669749271646729630173625585906854226720706812755226743707533577460646922226597778097518338422632051676651105514230691629815307639302810491714321476800534128983316743819819753213297962167907314041770048289533399114279163545157903895806878365916455506876507814131863966128705343138986470310056635843172098124557347282668457810379250877636302874322515685888984349117765550235314210754499679326584424920522288416142724881612256587986201861253621169535544017190037513198070956907170388969172340588630851752631401560390050858537490293867520715561851157668980918534081176480121527581370668648094294398841127582051280446927867663769600828748265866729828113875301645026120178384462024069765465502141546635338377378826677232765918906270983102405221395307414057035326247669725965217784577267722173707263111291290653201554209412950631220788488643971633061496007079613366457739273148394243429105421827288790848582820618366366255289916795287770635979215061926666892678393732647207197907949061444651436605622200520507732736239522922189888313812166763283506013179807134127832368187981532114476558532298913105938974843140833524761135855204722886237367505260834630093574152688318207128307638364946731748391094889982300226413024470280601765876996970566774339357182416964540498867350451432450049406746174366223229350900895349677548663180502248906019457666519360781664935730934331134730564944272687436172099548574811506135258744303710701527336731641519100692867213349660233968366123054160539545360923237607815621708758697604407880695904779005722895374871203208977398883466598209850355288313904975570904207587426129763737880380154319409049105830997103317602009066684795741478556417601838245959298836180260515763191353446333892067341389428181043442032203489255120343608625227745802237584172359121258582660362456528203260450044825220872364105281498081136022749622456545630479433453059877472990478481882673216837160004784868099202934963695971909488561099815680518674700097624197525182436867526119397160010672203706526392474059953167753059440187324043806560342844848305556536669101290316791134615688797199095501040094180542515558179118472038622063436141259361175622939482474935501212702500119718389494332322451688438363425295378326989181437954115400103551270362717929185448443207434365695925338833335519747449593932593597640301940976836220445277358413926178788072125931714485331614640023373928705252351214413172901555054330133409254794408849144851047718266342458527177573695224334684561737306438006282120749885241722333593714334269131351252721589752273473806223591510969626689457916108749024187227100012116162683798051385823175322101561575607893198985583034589678918373710807082088884566226920712867570275446989235210055183432215651354035879600292741086039528725876528474648794512704378636653827608252734074046120426334944035950978225046261472079496407873969269084748800357700782067227624364485272729561684951248271196623718568474976555215016755951539202282291345852624107059997622290808704246786335114392779261360256641430734970168913519401055797788274197221823665620583034124699519183944447974100088682274254098029313623270375449882874069364349429447138089578266799196735620076712576496774910549005777065173427736217729588446146997273888759399931634654320186039870884639706991968669741007838040059896734873336160104205607503329839300743460349831819957002240058536057377072810481039518548438314710445183127081938456623944898790542113228939669890328409959672135371942539205224408124629485365989546540891981626947507315584025674232608847637874378403127392004666690529590612935753794935286579979272824603006446790090048889063261267084987373322526194336760049749764448004618900890181129217731476188604072304298065025871968823229586975137128264818963598912545151610112218526026186568811289870259733765143967723220634481834989010661401299633496636195178017480287629195067875811398060598698998089714014267050429678197548060653436812691120696113619875871816407201834006678630404969636223377420518783729437253329540095879818022319594650269745128691052875544019770589831429392558755868399482047099909662318323555272611462064096049737613508614532526296076799182993960307724054462415305123467980316999045881110574674594533634781007666021223132015876246605488469225994355401097444421171800034435413318963878712854537529160159147089248379270567958494704326396370533264149785720786411398098406971101289132293675355044729537505040928376112266431029385277861253644387133004360009108370660655347134469630927785706978780450638073794476017792293688003824663345194701175285312673666688611863300540655424975785205961252844069399280167422829501953179476418327481236214479584153732479943078457086165822486572877243975466518095777939830784166559996432596851920543647205335961774312110531162057357642044272195435591513195263960110198675772988834356677751702095090212273572414168786093620831494082828828487472414478973130696874111737624209245849725173166992586655927111765957614096679946974210069896410150309296917803541376451075172206114967271920568460413770435586624025923196232601672774970949884685878881764484849140151457901077080831411883233351749506398185870048073068662498532547407326909994378489161339745215992191918913810687435599440483233228953331295365592056889670979841009973079290633674088414970939267338655765128572139008556452385838828737584577714963749354433077633097770950920144931572756699888911560506175018102959381837563857771398461994875680022860283609621170707355167336834049914542221325038988567419819897189736593602711534697370475519227153850466867052541697497693931431825093667997735560594546452691303255256983011372186490037698580956460112250389064789317695039444482253463288824888925311068210059127739025935340833257291938942164055384432908882475151571220450126192964304245228771520482169628923268564043975215596600978004021110054061655334177570135707085896559127733197422028035465780302923797347518066662597674949733123697952280679725786110790224821129331788989022492459642986696712561672645524348545910763529942814802480536588910676540524480766711651492559248162002621959889183898772162160685188593441291728634243521511387377709491251692322334785706809663358189183485427309512043768366387187157466065793613981268271718017672298315477301543766032264610400772829543647422046097013527885630390224801430171159492304780299905437252292017182195172446440802426882935404297085009283932349716711713980900557643899700800174161162924595380093879014383751960096828627141047590396070801972534280481656837915312641828534327653603494833477450899412004950374618225925268931068853978711035100271033601950149489012388046587273902122895817831483066800777078050913272677757385856954724093205612655998223589490135951051595057403466522516437605195272881663336678649398637381518412154476912990856396942464640002223062941960916663310359629380492922113001605457980181158458663938069478298009587326956141221099977902588511007117013414800448845281547929506392611005659497630373731745785493462624382691339755692305912312125281911828696034355034323448891632608536322866331907503103647014514115009870931208488674377088281109691861880440977455737315270959164398524824898361906525629463831764128121446784178756246838378682542051800461223409991709780507201447937473952043606146211908866681184200880119036221970127552624545631386884426055510827819354171442515641776260052161595693991887557204418742216748808473871129879713036418955043786740062989114273495743484578675854118349666981208944788222273627695252828359188864305975365195484838096391730682681773807412030051090831756448377169881597184275796168574687406389430218278677546127400697018851776965448000038502497247261669708559953037137453538132213439376743845591389993420099978214197934184759355745714759765370417678736670814376215347965303714634948974857220051334043051437386597660055321206136823464474402144654015030591125591314843160315727471448809551270247254213938248973008483530603567605492794285410041531790576884983078766461936091004626821060691473417196170992143504634976618091342230231601011863923867078443520785899863746293284486701931740657170441196334849109965837799572674167901390368974521137279618899742238757745365110415749759715636554828036121848524497076301880395147423700100854542284503330805328248039495447075327858104644620959168532126165380435828044172230897693916701504182282252080896159132781610222364767435118120704970029161077342076433651014357470063372443317365475763849276262118293656372765041735447566838843184210371527632912742645689052091147236654697914976521122409689821471638236479755797804749463094323992947218289359951789021415936346235589688608483214711101235096690824293530016232010908941824515919226450575217998507793419104390836831230256110196941560549691782281890257549749347993818278342019454172822708022528285286291047247267293427933998023093835304686985727511845562575657063664447423945562347403245204751238292273117443666318844940601097872642344464161007260993208637653912233468271869353548011579637305922599111288717182232868241531175758271378398201325389638117348348899955299103932395518132056713623075622053490765599210100437512540897377293115250756098353127816166629482949240934718276090431259181838473537574089630034927973320685662914262999962375618398723934019250478943310796024690222941857970172541309730957923650855282019108168878605375438670846273041184637268036262133783632631708553092060050076034036663315010460281784174384400240610590200137140325413663233689012373455688509308830380939229572266603216906876972406943769496874686381033331397239368059934117739576920554269596010588708319536538667729278197890457129209267405443032751272594914566043450249245132061151595404309962684810870495722587738202153510280363455730687133479780662561008520199368749273803203992606722172078397942422425071186369284927526834686023589408865669780736053774681562713930870665073614313464933825244327499336517579312674240824824407506117266531937540682923916842100082341484731290392099507193440175464004736162431205611095426073270025784711566710579203248912126051570110583827312073959836177795899739239263404871562879925401073519806698959581671064740672972994773796209404845154579809620698697732015910098038696866767575826982371643368772679461004014715939625086969605723626716041856805327967635581494688355010593980236904206634862965727820571847074537184232509100128642826079617005491018317092845185805697503643893877647350953026530329770266842012754750882053369471941143378182681673816346794348946758017234930728589402876714367031911875705206173421766860672110821860187688375386292599278786098803286128889722144163307471763155048543994039810428191054279300461704371968176797090435132790003360254878047197488504570631779777896971946796049191774151799394212420956109657856232593849401297825653253378430903433507941416905721803964263361856511380080128242144213413156103524462485113181776347378363541008261930243269696560002608127590470495501624590127605420681743494744923340212501166953464491362418467849901779219648129276690046376388413601722231003436272779689497122883889677795043606711901358235823217725469652122217614576809320226361394104971791051520762993502644596376195925832586683014035226849189006319142155332793642541547350185756015760317130975609600157298126305014016533388789341449340399390331804692977497510119620908980895680052428757793023383256118247749493656601239463899246672013517509361480089514996227760692827919097599121781981935532619507993756425806111405235873307884786938596111065203206743022215799122294833026569170103169386136152104918532338106444632831616837050334247317670444357735345684619016108673816686508381589796832625291049151427371083878867099123738416481981799232883695607371280918646234149795051942078199710740341968747015927788134246182908429446481332774275048389174989169767170521089547524114558220962568864473902707248771534750785831546800331211943430931545038652765994532798015135318161421563250789100545384149639779342812511297554248049882114207180945933204569318935598174503793768424773147471616839309825657230614800921000355230633688954549413574480540788144670143383554356799742084386885730223573929082695652533255000145619291647874450204388976393481802797633606289393465453615059209309168645613394703321638383003762184492275440913622331224129863053964624473692271643059391365776623467577615281688591369673263873451373717224393645047270463940156552721196614821193590050896812014792075863209486402483477403508494582289441645557176176639286907259601276107139218032357285405799370427706076601580551629526496043112321211717039992931497660025781663806112482727296460258040024664609700023805264710778565762250810905507621792286296332770250751837295528724825134647938352799803599561861849290431544493932197528102862809552387190705704196235195452222361489427940451172637295395479238383481281371625122017594483313480297387783147843629983359066954211056090155769165773265421430710228670431602237830197302117018142210355955798941464777089685467331927493612073532585841373913774459731097466993118227054167544237002077414241846234649974852372692509246335021119995017818657866469469143694715756330984106395441590396410421955057206266541686802614211636917721318709540853318891262750690367803766191938568016175937352802348571747798605092491938289269174965527763867663308839285601850877397698530130051193545916672107308196515509384552200992084889057945800220958193437894712628046323440953910024791258610875691220204164529389617534575557221299560037158270424054038784252803770847415750167302184407620296105421545228882524558877624847920551309552751270639996669105120096794306926245257537097925435443762185803907507766544057771986825630886256282426520884730445432583822246570576237893260654241498689959118130443504205195680212565955045282786173506496952412588313763575254364037277013830617394001540375096073710943795080453522206946787541210324286684925799341345883849212414475079698219185984714467765986525846236583324159340914361141524029184818282083426143640082651018347190735035972615197970241711057984579350848923961132230078362620347600161101933966445169263589486198605788258930920392601925536061407540296560365995436057898641876002517340230154861574089263286704271733203335067950376597023774586801836016977398359355330585452208568949340779341393726996953722515233972513550517610937807318270738638751932203688779318708628551012984056253037445496779481168813163008740680437394470017825579634763678721183056626949408513854851158095782313205676043649089886055866529694685515243456780212954639229765739958338381468735551318614172935822532838368645723170761284827944220507826165003426773642320286658116789141113785020002127796378841900998719886558094231698897663175121261662503447410281899198615306316347281062815567120076528236276109229868106508498054808127770741722131759863890978486753861569918869542519117077471419024924478534778459674915802570287525725412409093104120088172175405386531625020339117431923135011609871832554938729763403155145966299306805010838426558946279122403511994278971029232948111858290872451035688488072554354929222930584622796447878933234589134688530849308634929651449624335532970886439291431824188911645270045678933514656928212158214143683239115485582719624374507122857122005687194979081700417971760972029109148762162249748813400596927984552028827787920079517336745659148706031601272046247174641406499200394861955122153393871947240884434971645469531030064312245984249788911394980314088965348486325288059950599739904555383173179023954896792214968312544218731977005192525077252177467613917096479579898313793986759993980661820270160468314696528472482801898059961582527462485201816114041722510781171742369504095714417858166485634187978721584906087226537570922591466832777520322436658164954568038181681061808072599051437880722668836433029401414143377940833492122047469528132519777761777797659458042868650504686751432091701555431556266350838981337955245518079410316660670344181007903213500159190112290074581983809085937158244468691237676803918877183411505758209933394020862484937649001147176074500367055325932628455297524095316104511828776283101031393269860221344363190502798416251665605705919254392709293601607611683338560848840979179762961143517485050337491930274254556913839867019650147382590555968406143085031221826620983897323283687106152585770590021503084422642146771496723739741529655616239103992228725318014965607845919068382909050345474844876616937979359638964158155244863071081056836222874989984412842837661715667762904852153171771800002949971051343051801534642373389768892653358346061264234181351907596097544004223666636412458158060802870738959724125489470601131963428947135461103116508976173861137506495429457437021436765056530998712417140482555452297286502797735545399877982633643551877851903959518678366654086796701308919528143748640133222336271457805418437142050083866905500838688476404738415567541716883626221045316219700614857908620338154947041703889466004475562316056170196659122289175129851750010129031357116616396523027367068080625416073952601347122012945399186227352216671310531071337298356076534480475909948472552344319450574234219570723784680732027435797510740889049192977864050738194178180255340258973043371148206055564673589077196284267819504522864635708447517316875093005384009453776777078700570624801701232558094696173917814874683244947063900354963142046624961130724700554195592262265859181865354662124725357376938081593144113960364486814597256853882835027356328866023968926366352149124761562188686473732782286927533531674765980181671707214368981172938185191083338058893590586726372234550845277168100005252470434128516932507093050905962303538425186658889984414490211394097793596113916742011124473126935817245053176351391863969907919545441004103009507844625691428836550318255079908353011285415385440978534865380191812141139323596006050974782104996108621274119911431683571034721330384290449065022593162304348269059376914826728507475324231613663342454222917949092689248435433299226982352444345028452439486774925748042735813929066874620072497457043156296415228565409965982014364745305210904812657426221929288909948817524795898964587359785574386095767957929477097338359709298628774645773236517164862028963336797853684005341688686013695626121124977368011080723403249058268781116866527770081282676488905179736286338854428202859688003121959488440927813611532001845446128449516940793214735681747740906149922465593823972426292582073888524076611029226290184346926672348314335700195302701879574963488330704820998378841409837891058291896269283599935657732969203342347260068474031855594587363940913745308428713208638844977123198861913598449797744907706218141826023379503930445183580962636745496288774111683402799786022338495342617536436128969800411292386228774939936921471620739070176345544917004997044665896310923788364670897712872065634700036821175043327685328714185034424924375811169550706211675819474106938834494450200373835055283794037997574373384299390385485845548797885253117593785424211824341221590787766916609715952474638390905815287522921419222569158765453325983867470424278989752906829329221675018793493825791571994146721906868087116642452693937897705516451519350193074571756337920898743543126270097411127839503106889696342396655242969206146320137968164069451865853830260065793107674486032505871783062585938701093899774681552272170203065909748166507488851806653925745702625632067805615457290327624437536282154192721000248656016471188329161985693430271836286062013381654392241038151858722809973353310069164395417564898601079492129262486686412007385821513819902249461858188059023413260050297592911594261956536219686545088996062296920858706926967636532068122039898791567577216453698611003620814424556906240227466594964840868680931338329086540033889707208495049029966789784985531338088290901568904095700097342371510021605446593666255517485694179888185922718958012092725134183552657422747350226811405136411249144365852268831086719755593652482714214118483505499328748376212666385511644440359080014368919426576613465240567102898215555617572804104296570355407875872296206976725716654235389096349611911773754979372985870077092739357956596942903263714198738723648046473206315647673731154421394008032870472340044413218976502621554832175395949075436570608624012699446694004465954252979293816392406787495523136284805080944407261003669568237646347012466775220457514272873986207877834014748499034936674902527322298876027364025385859147068476231815779965383092911234030152188527413215037114601545321995279296499720084384076256185940813466627340003239020540107268525367050371140009053684961922770693809231876104213528200078286529244568241512400481626273450844509040729415618691636305399966445953899272391938051896462664798454128798682193495301904436533427763777782889667736443946606438399023763329502338533631488977668125931535801703293085998092108564057630798721321847290975272450745599744801273410251365053720871691826251725553215051222686214104410857940685195296707155338002459211040705522142720063771835198091638471104430272159868168969179256709566618863030518964884585540243888906247223396296610964893558923508960521607343817333990885248662455778084704633407569984715668409904358632242156726789814825426293200477773011936946928160861948159102481164632780082437173201420505945730349215216321017400732942320983951576416710455993209122978810725831468681577383588981548066788334208112696446575556568888506300621043043689110863184393226133185616198190788510809331247726152419437587938833959767560598614714704166779121744861693300550306534257576757100928475567981556633136237223125726457844149725214108639347915365200322690100623210357930167647201941865812406022887254741048227393742790293763342325371424701436645956089773021060121530586080518812733198063400930330952896542361411133133325360791638267837754543680494221883537326730526522303003691329579178305213663947541824827850190669736840869302471755587603619540099256223117352939149459787511374546982125822793682582988967200335554246434638509875446793060279374804485506101926001730678842404836576349497096715094711784678395172969023139802630371968247722415538736500244445814773306122493457209238378762921223390971098202067997092322415488159686331177960578729569351908161283832139029281094834027901595949200846701291714791803272291514206844397913027207747545725151343479807039567122636492577549874101043320986743189726882597660497719706788383706065840510863987554298456213061899632069056477646973123669286216352848820157229078682060194381901584300111385854568722752693141646567603315108463277037865469595605707014097233500081781776906740391941630021853195668025631255995351665495166576330515241487137586447856564364755677456882308474680170768360079778415318285430435084682124354303697820360469140690738880298352666476821214147482189273839983327559941184741315602117841511709728331570404788904958904517374331521202383022942853039882924575079731312849172150504183085288337066201851344629447529395747486770999754208173115422074668864980594112503776160506016632327348001612298855198714344610397522146376467516497540206554123744097346864142469090535286184957274577837078875084550430709810366584778761543224649233128895543132013395590583954849071783018086604608923636079373873308889485286091537776871874008214294089480268208245172516694696222926140974698315080656028245624916234338388359408364933030961765169737933184541722729899493146229633650509737815752077226059049864176180461102435390726854979279758008482637798399495876643641272852408111905121182217892864224015637099704661016452875422405871917737560209382947364971965431182834364148280972353080801854127118275154426570233196444052769319068578791223330341176349953013488550360090331817333437922789096793239335833284284964378835956127484383181041029442526316615571124190617707149493428190116992147485577279341951454313669228801959093238318629484955614963380109880072515521470076502155325274613315802703332122075665074377709948735483817201854449402440689799910985817408358933512637352278165947294569313278696367159818096235219163795565933035596779049763609258422628912163264977667040015837555731696061806955956441941322624067094826975884009657113491125632977195028114783145789459690529936419275694080879672304024164199924778769874468289891803262010490032074846089037738319148875686786591205730979022574107490878635145250056399649966802159390356594160551252218063681912745311237696201241562865113942214726344675627529784429270263930747422012487230493334743992864393831049757090787669629411023944193744656411492156765551316917991960706892635433458651791500824944053652137832995566111757200226342630415365226157762146392719874013722695396340453879298076483827255799984718162955535156577385877772067169027445316421401338307381588112752450854107101766220027029496437331191172828954804487486734833874163808537276673968531186413968572638062469437350219260826925631966085621241635561470282979217660232959088297288282828367772347881648186756523762063302206646324853195423382446797228500527308378414937652274147887139503558556895609084253081542490604571308408659967224889281640635564885145457302810620886121385873046875954989163667686171224420329085503841860858252273610947353952962009020650148086644026324899649051692099286857395624986185611266158007718713411301907814456796606380010702726264162272617149379986211478894611327308013157686646973922250158773381444307929920394705211624568885370141578475916625479572893719821970334061288378486834444916319716546139379258973675463619633996806979695155223506223849967192468214441409191513474655531800391745465571375688186456837303963963806001777013542016894408782385620917015484558824069150048234012003438653381613121963170668120457050770391861534602319379648780711693175148003148167803884149816658215137831352453122774790162998536763922528768624836070589932988706159442511786300333547440720380692463908395183579904601326286716524438136879721502878173688107919816468626691597110356531855760536671617686115422358904786196841286245112922448513412803290850989490494076221674268088043323456901285714731069532691526473150619415782214097060611896563661639611451630548993002277497649952242997567254273545667273491349201430457267603190588933342945448560734352043745670715058881905984604555555621312794217478083989911962840824812467704444539235924686658640185598425970326629073595387459114761257244055584526730161720441300375305126520412513131601946792736031945243557297793081817732401111196134523306268841467893927331582880266017732101072056611327073219614467846122039374671779588584701897523330996832356855510114689785945215963286567122982782603279637479725880465875276940582397369667884814466256753311335863633895609925196870126545469006022717075327202998122529220594486947875297634095581187247128442324431016688569901844478042501124161406460015392746619494306794280564337128059578207997782091928586373903659143670541394312293160711424108384900927462693984692498769441907750323497688493687203913551126921246170246389476423855623500706283359902306178884408205419772809440135482665687125019015854463452577708398424357963797313057274318403977948324933522036175598578155489607497699143236087963682812744187446566934822497044189979471022639411170742335017096615622246794877841979738446211302186790959456682799910662485550506799681188128923752492142127327309070048634588882997509655971588839577014808032012213568813540402630232350491443065902278303352647047749002847035310154025503381018451021379377670780070340816583943063223425138467569457108393642741630337100911073682271243803071247635258166625787832542187847595840072981430421348510169416490574988158197830347683106162966671439219941834982322232607710590355472030230087969124392809018798748788070394283604075234812615814576974224832945182831361815922035270936956025116431759964783398343631743834526812403248399077944841328456112414779562014500438009549100360629474913256175600260563822797273477421832097356191405611358715614531384868414342270009530776757665873159726519920065462432336649965839606440009713355872071459356889563520503637238494347378241200949650272283490909763237170131255080624480518062529506125791543883569969325547766960255092566788059498035525005841972279609774266708737414948402590608932871215853541238644543196680718111885354723779500105797768818495173149717320527210176491678829351296686719394093421644434754843274904102558739362379434565931366726373210458976183170266046791042515491662953849628030567454185766211206034699092328898857107486887895179563133677495504800230026632750529333878131556819750003230674638947281416869553411779971048365398029334775861355717491986434298646066927922822543718852116056046466623333615529712264262463075577815785579996394531684065378879028929438672291418986789988591409019981157523069434535834622163021492939431449152498275638257620756895081630684390196876537622064611866363152359214198938635073726217426386260300305271837936545731622369499397613637447705852599210746773628245597762317091034194925604774101349050811260417342275268462275984406996027610361063773754582817471429570265791327005899166596965793926315651833860006119988931936268890987186972374945416542957536419303530557372741244984331356656022469152453737082828536999448189078506513828845795499203539344327124174329268183218732603879284238662032809892240515445840431229154849252016387779447340092704560907717161513330687463896978395522590814671830903955042132621835760409638803846966251203685374435344276347873668733796978476735064487717777204481596872917607417160969103381666783675394007336503152348168700722785491561470309151763517614269452852480034955235488378853975312105023490554715678256459584476154523367510817624947046266640873446847547046839351887919229791593505796778084581164260249538597608236307259394493746769831499184942478142195291927670617312965489705559409348832811330328449364206119512971408442164601657004535388423698793397082165861488785625067593823460249211107032066929116161380368357535070872239464028894599166220410873549364398162531531866334306883470269832825363397743586727674311535505092989049805424329589553226328282520853964695569672580410486464219802186060554306137823418885986891799833443599412961669637995531173054867584500036695721886920749769266249380022531930973267620795015647773435058884481296124097841241093882879303826309299120414775314521855614156050691656448872821444581491371558782068313265037618316062918043284542972134440415177899834662736371356137585965705416581570952738218947900728179912904102759756576951396253011832870070157306588412601400263507800541653031142381086385555767218435660182167359320359283442306329944221491747760092844249905537046013163339663295727355602280226284237282835704399273253841821464248491506803953883494529277335857195104556209577210546126307171762479110016670214987060754414006541002524325551820919949927861154909044279163179978817527901484240969036959170317445498841405984416265254536537703638275690015974066964338820839198412937976701339346567671697696165252484076612388945108446273803319362382079838934003113626922787871177702267770670371692428856714535975374894526816212680316564297325297486876176889674065575165729618180930775938999315544849730022308764919727853347591262704267041014203049810931566163040007867005877895061942406916344698001713705466604724642719567235723485800730810094353185799957702988507429339151186245202366389861574675879782875887985820603470231748518693435322964186503029209989346519862993266647460948510771023230287082969705988856767799665245253152050469941429451960538767107891725254620560493450131646525675032950546893910299326498897737760555784219834395447352572103515991038976883236412345161999297993646434668365002939069223198421997848160463058828413044400787156872090804081563883153562974868055823472678250288124865117290044570812848685294903030834626208102448507296676231692197237950333836602279521119087612802740199016019746356169275998129256767854161823320572403555792129636428322106157011892166428558908896718178206895771016142750847018030668041905004523533445309344351589463892068825730887626553273139231471650585865157437533444873642170559079528833439169523101299870515763070738750201838950558142818833994894059752886801048175311392760971316553351880023201613575422342540224477862767447757411849648044337760993623970438281880078095155867624494468050041794730601394527297135203934294306777700614419658924418918099640622360353962525574121224570293788464440206861810076121362657258475575449894734713090602045197591428582424993698850534144260289663492336476335364831663110538670422414905289086762099376339329720116751146611076652366146911916862734827768143486938611916832546563296812130357056066119459684942444521296591865612055833842232317844092967393362201450657416448752403265625029481558401079968306183222200434052878535160814695795020191348695954556431512917284613249180173874919194572748152361012547408733011582558990777376590816952468007628720167765637978888220217055719230559275456246459421219926479442989436504205987249660559490285269607230609421106043193664183726667749596367071635003055456669860351690247608944093737425485654405285875699548027667261157678950008163972677074011189523958790915078139031220644846249177411991775358908930096877090787586923928750312443899560625391581504128302866172670788976190624153933718377493767726310995157242138095487061954425208411846387554405953770012303727340474836882448352396008046297661721537794762971736123108242437406646038083909618210331998299845617978275260391963367443732815969273273685850217438384636246939645879303419162553545971732253238213233520931234813649951086456871006916954642238226992547704520042548325762873477806506916559256536425351437516287482097882587648762795434143249466087071585934022887142557438416583554535046476335587959498271671913381881929828114749149004598587167559086992693309068533693534748822685110838567571804881094789408112410633196295686651070623415253631893190727251160924783209234048333818438222949123951819462747327141871760046017303696443546313719891655311612531855662849211713757562580394103808442144883446841266351222205180443696913654740553788553664605762247491999006662296847257805048190406149784832614935800294388153010107024202244209393944915895564846667764140661534988600890479484651885510879168472977396968668807346758191939559839326844133657021455919052452745126692270834686693971741657875323927690297991048166991263296975902031215581220419020647724494977815427884969787505830760513904023080455471749130777023679245790360997888772663020460822633484656286771573848370312458942610145769318211675456255961810131076378305121764782409941723227406480546514366271566102905086913825165622377753224167235497408947385875318190640146218866944848233366828048370322937545723487183303375418415104976980463958408737504564075953258257412418418247823122783946599810490850535889198148880484593351681500841209091556456782341608666648073966281766882621485794316247846697365002994693770794397437354962301495271952280310944897039012633738284584463693540253693653581480420373254051272988061871162546139947848838023898650695770145842009720009073573355350959710084630991594367112406126960269315556449245769597115208749752990680170513154430370191821013650061315207456458490940749815956357138408660669011632437503640575753246146203931440463681397606141245230060554522103360924701487072907559974615845995057946395797534753648639200271626201659804534476713582417464032346817146627567926956159847035829917680212070360398466585975383660974547969059088337886799467504080922139726399111419197294560808768652607690523789351637342761914003321413831866726936287040300131612509873774137978218607598921842698628751724691676920509919382221387293690581545129946746476997289863577748867527551692798785714695196152665442163336467685014720698754785161455945566799135499352338608593597432935985615188507175533278493016620431284624201719554499929757582808848951043634722616852891064149145287117373169963656602318650178730055116999297368013991477875449077319760512252397376080416059072929577601159816649036272098794266576064884410262938848035100653717687954343198121607017253916980060855069710552621015436440108038210332617820632564354713215015215838949081910862668946512672640648162741249309229099723754148083886947120194686918685355644948001746666447544866534021940963594870320946328426977983393337731401208639315608626245952808982210386479640147095457242718814364050486749954474969330628131096104288930170734913395519941076707844878038096187394559025693089526690716825842296266111074327281286973897114485414589241342787404040378684790780899937999871901967712702981696940777925466027765245295318486223357483944399167976548917192440906189295724506041644555115812231393469877818803339940850282939357332726767287546937385693874182193893322504376729718004510930245677875606989549988865646903550799487304122023151623543980105602924748842211870851689935870023163631718081822292987499407753046681739574435372381585533765373616849772870994784297593674021971234029514904949747594846587081842467713488518069954939733788054369045433985076311325221030605225853339642653293629596309720395872973564260370711153535268980694228030641509372224531382230147564960587987514654869995635780606503407340991935945967606217762890133201718812777638443908961995346659840810192116222099975887152096073761779471673216142677229922476728013878994394673144773330157661266214315662774436994101202070238294761096113376524158660136614246096550274939878592039078443849026362507031216186541169091792435726104859779977198395477232729734492746660706986972413564485643965501463826285973768352438174314499658076060729951851621188310615476797544645082073600664616006164505844709536172706366562813319976749875644747884434729928173359820136476455997042159064984740113002577928134827738288881270273759922249259728075846975862324855131237417650958065137901694622647606036366811620434184515583138539053517279359719630066292103497137812916736092636493623442052535684368121444242302755777489465252410402515632520426083225497113181425666869136100211945373263088669250626640951550144528049601180121171217855307761980349383707727179837674431690049609147525952478276049409619799382414587421422648172527489373209829540466248591910235230648828733222481081512784494665908668205198862329445756513458448462237134009437217294254911977505031149453821207685194412217133023650984897707290550501205378418630448697574041282374277066942497572395171927216423445006879084253890022879658019678688342470725604120745883423306397464303391833283624960000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
30000! = 2759537246219384599379942166425462783980762044529330985529635036800075868850360565832972977651204254341650306308369180105720079889211173647623998433383137184967254285857311222411266513704623208566663513843971255845392867767001593521229857671767859088377853025833179203708263155369841605042154936042598909075856430852044551518050502194448043519497955816834830283123674559621734939901731624301201076127184975016435078582758140749216748647309179050590022964374055780248416842708846029319703126114712880745936613672988328046011830192791442058031755785367028960875244284379669425722672437661447890883333680653460187556607310620760624863831955643060449770964294419715973902971319723229304227589444780515214690449430950100540415742367996932424440431797586214739669452308287884619723637082329610767856083429122271762367853165638037792200424897744323469601725987168135183985312129576055394803329361269420158952420732363750350565539555718824295251390720211981861850219790186408414398334712674366220695210737360395998180284449600983365056185334936767602233897332076408280766279313350100807738919044653247478399468118224790726891451537615976475772226646069039773112582261913601947079094800564569740187199237911957973532450123384325709303156034819289852972208081076808918657891225667861778617600382296342453736215067534260599130323659891950344375618821990241869064188779262616618897782064326939394164504330784425477057703856113642494573055800701398998963778523174197971199802001249037862845401178063635289215790294053130363790762505449659923749717341726603207883570408989458595454461800686388080985559933787580708157025423840642139204538772016958960796958234948680981716072726490931388029167387628397174251392411795142081474113071696284333816435410069606648559380559361648810036548685048376296802200885869157913750102085298869283891622993227015769198610551499443896668787522586657638366361861185065868789860262650393693681559020363377099448893771462053316082728402453902883282097471269671927157268145627710601852207513482942097037750095540240118995336906169072282548843691352328081773632006593071031108160921467428980082168422596457430312078666404161659045242247266415626039075905434725695033681187235461441433272106383854253863921330561679790688161084346854227861628470199065806040528878416365147012553488001510947290931349328921338036774993216385381137132198182213822826706462523411701372200962231508830152422410991359005334780791972234455111707614330060647186198186705417071806224684561386445865470294716932664992238954997164980668517505737006150434299401990047422843039374747072802773381568745666324627336927864070406780670472221250161486534876753369449034210816591499706079873555318837759000601217565989591615830088848172766037509272260198212866122962773193040992732475668744290293441563775508225765896179094443465134127259097828816940310527711661703122856916077848492797522352501849699613771129344721487000451117900504500494349754823393926598683738801230822884516230905466215234586470092767967075006718049873843332035209870911769570510201554488746659767340370907522192102092895807808154965844350552675323445758606329395240663588723844072582572320031778556109916134399989631719361246116537770937994210535764127053708470431360308218050214557421716655342719329280026514618978851803167515926270028131927132527415110748252482496668082753626428950993460432257165678631797482334755340819646080918594425560027617623243974643352853639236275249869486113167465238304038661944671638842461233130879726475202620476130723649447508982890926697739262100733274509067594085211947714973215422291475490714916601455749839677025731012969708328677416181824880040728195306146916808977011533263938748090400501428506732032622152245349347098909008871938509618096541446720070078266026253379783424065642817755760294130292731164883321355194077644660177987107292741142416702974557004421915363167190797385176561862204121856517547221477304556927478122535180183286364291033462980899893621900027788623821795890592436107415415305373085880206326669477743466164130977923094852333326319682063089795528774550545505584791628853502429309208124825659949873391297734080143486316644717408772461437969995993835587464337955514558243435657482243716228991540517959712884874727902965789744097366018405325130174626204543754719224173973805234914672668169226668749635597156291025160963857373913185612670898882470532508097415996917818395396029829662032566977197341987430481602278634162890641525874265189583806703824630201662804577242778124075688331933374597736089949258477998952385806671076650244897747606660754747659479608096469466792754887728256064795544622758948349598302469084048767397595801258861751089595262045036818541310761667126275320778503327298374574489336987797983677667493907774661985914885182876149913043326798472889532631816523248356892754275136357341654851840630907499657587091416720515228213584780954574487763071837820166784854744725552714512978440560092178814033869496037535303356045595346377277177015741028136402584921342581495299917608353731999136623192384861471343498386069148680679254115584795198815722864836145042759167289141951990324053676673793510435821860722219436652666000172254940500972611968190253250821417018303478060746861776006128050655579295517099133358731649683823475476934684468514076679976649073433685764375709709622794176256189057638363966446857528130934087922765134298894856716917846359651896153459392531445858811695273947551047244573695114577428142149069509146712150572945627477931220655762221313696187023140684608642699985354793714520286209733420553328173887145025974816839881131240297521051158160567748938789788758802191455026181966011373225632658077328260646368617522211273044340849728191262689904210443050685246518161881354611266819529235483529434559664820320856983086401447007106350786637899904670329501969941534324210415944632660266464710126890340439260493925477373257800886864064766079048739244939764992287363044019376942024124519168603146274184122368178503728613847583022913591636733801767638661942068926255034595860661829001983639193951988578011781357582563594096892210948705220648124681498117639466260804215967227335897324091208237256609968880276645881789856042939488921187481124837310807143899246987582176938447411227997165140375424840996946300964402244009242526058781232284932370012164511231516067396889680176125580418173622376177785996947162482153165293376402302271420347055180335094407447873048686059015160426357880447350679938179199740580090456440213429977642222773094060569567199217828516824001277568454356890787288455562278512474152545148238839139764446839855053352949395051652363529328098463086571991361180883734715062509963494119661604168657243195142281209795853639391331162127257222017387126045704630915314148944244879192223292318051373390846420413066423694128229850953416749768560198103035606997015176797652610446388363526403223111037197720159901992145577044202898053165473361503302108448802593579157450954536592497616371569867181816844046653050574854017025169513119226089778719104160047637648736726327993147684410796366208717313476650003714337566259825501422654938230299980917331590085034007138170874237835271071635943992277598308121453421252376776384649309500993134942184002196806037759858729344038127504045786025509817903804238600858800790156763764485275734428215185111362823330793745547771206452888212147444008759991038667771775718269774221890895879572773716774106962133288736490064511177840954974998606471040305374534594725231213270134997187231427488632090317730111810010480810652455084971202554049671586863726425678898128503276574558351760964654484611660737164742502990345366126536815488223471212607045941742389344186626779728658447604257988064984655557642326458241752935530776596352103967089074369819398440203799593696114867790791311946530092563257032840251597684047607534358897929622425991749525165009478239916042202561210505859915558618533349717811688407377311417027283349800487859035260337831435238430690163301746276913178845343078402141465275336293744443768217157615249358113663127757649580944883286315545169772145205573291876312988939517067504290714508152842442862065995492424044291216038036745275500608507809109504221853305667104371658415174442201910136140122520825895616900052543814764854502151445422324277283111351571232946163407906558917558416730066882161686822334168531646944063567712870201071389740884508726701373359034939613896515662545142457610663248403964843575044099896921525697010610685790729977711241207776818776243600939456518045584414785134879887113116429451133939466907236800167365839661711005112302393659871844095497482017192949256329192117259793916668582476274987463498441803243429741282437915623833584378934785067510573512131379619919114558000121608504816718785985195615280015428914733353645346536743638194128534189666483589138748395287519928691873621777908530106254667991491428112844932153330266102923556133039298453418134600710924911355071983822154150442654455532800945860240243575523175481436145770676875031448526922412435022420228049218576227173768659352816205692361857505610389794412692854743141732031003269115737079232192473214969291861155306317584381440655650366340042885669189015645165901996036099236972419605502542394690593088432855390380812108475610230831010682342177392452613519700855529628610560254533611685422064855169055210868433101695363156895912925788676596821106947472657341361372046326179692815562498280584729011925936915225491569960621408889374016692647292671055384739385971465204147001700848293655167357770636548614594016098550048638216917223701260329366030011089147984705017640597137503114123688287629997150429744575662692569580187592483159213967229923961804306568620474724623109597195965598319735439124367590341139879346584587823300219156653757353929233809531732213144959282416639313991395337222826206119303994947170873990414105559885480293914184762446590390895844772911505986237541950291055518850779435640018165290792689416767943607934824193294085301354655465463266062515413695981709944310811894176914931532531250241486519889513515190368746365154212266832954534163415334943137431151011826501097080819338137621026198467066500482203018146746260316172570429613140622391528174733637508849469363485715563827598231697761689051918780482175981636882228294697450441186152186110899743107624043921251923306925532822246690131830061355676341402128253696011468886689249925118925683684613236638592631824281375238958471522696104420796328692419708142773750053435837660425247690732391747593512345343496002032417154533279243904877446254751989853847289397289422836940841053257165593607400282198117681187170762513159625154774903325173914592298036428472525310403631037807684550987167086158724629077662830798494409073903117355973887186927913065060551614141386038122713835671388628260249603713722461186677216678665968533498698534558678105489444185428397066557023714447042325434790336687777442890975993225288201666041199030760247322754243570419223271678468081262973792999339881578729975763148710256823847647237796047221627688928254546304206407437874000597890056265260148420765439715106346725760531098217621385715712851996685018943429638870424761277267802249299818225060878945849994264756810867569891556615433237740935715452894967506851398893834493126374373306235473744622569532319738741427567294471855973580841769412670448337935229067349892337130363738760177147127387902332293065828548159220457653333705901404830806050001089006807102663201918182006420280131805448022464557828315082835969778760978122234746756619930139181891549100886037666897639420494732724296959439188698165351804529173000599275819023938013628810303744261484259542490884016785478576807798792233765045100637777536569222241152076340251091111013594212631457394776999128210085560606926010838984031818809588854944113226345462798482146994062514651409287551514128254565220434816653736388479544986927868163894980599880131656641227559906513365522735739330564486725879568753401968137382402852592108139725989653856612136409553626538115532921965963501390097089325909877444251612951760113020888129373295950547319888201246177749340916466781234369459508497137444313547268006327918498701048218105399144077820044891656008052884310951562490017969306064809210008985756288997896191318471696128913008671654997688694770046450254730318149222683216984857185192642271675584316728049303448002707931633794637066841812408294360568174096172616810405896026261503681322998358438925009522327597740871535865817334210773930606100529815095736770222673635863599698919395808070281156709976756632100534520844873094840902210495293468481616349779636059739718728410646009855986962404275208171157390869350857908101863745425428846058522605294334725939382024390430125304265154976330234093703281300124510758767551839534039234888236166643830100110437593126998757422681032774414643540123367605482988942784776294889254980279417717385538069507257679524776163859117697135350613077849539980661488080381039653174672571520786567585996993722219893039224432200141775190201905960468017680468262617680969314702889512648874280417123352035427480904750708590616790274703272941102048381605063979777122931667018172536549147668978610939594396736112758798557241881949953753181664416196707496409809484986446952346636125966926993460271307200230698685547488097830375871920810493159684622943770140896189772131540921962247131942664669561134766571879031919541963307182718138591320645612440108688178833166166935006637195303296398745687745372835050820983209694222514735285290318326521213983198762735820868833617702983065714377829008220344522050799855212493924304271465377593310486841655869622933027594847618407294966030049510987948256080169814531156021972482465953507460978348639926716307626330476090516089019776359160754118726034290422470554038254530165173229142577494876503954060925228781356856071780060307805150399720282590270963175428688822023971795915384147745175271962941536850691377479154081931998843326853856300881836057595888773862431060968264468129211952296519341752446661411008215906150636321010699909679394212823880377875714796373569576577896511727870789881261791374172079498694234460975787523399892020532242894091935173833091452257854849191390199427277172030164046405679630844291044534867940076335102569077182642847507957880705020141551327956578983736892278447560367501788004374548560368898337448420921548051117772805611826965200389302255871625744404932119746310259644974622203763934911442710254076002936059614437297294295731643207134892859927571744925909957973279877369935088968166944300647071159848204874476950145941401335305735067306235761964676474443332275160309457486465978046136524535841401777369339142720227497558974896093608437545751852468146922217677615478392618774936019063178932428198439212500601155396847178452216575163209903695161970926264964813519333853867263659969475770131127452585145933021665198253432386350606739358875729457389298569483250975048261638005769893335048412511606462754375687493576968455943615201746171430726332019878603445090326963290404254950304125358328642436030553323845347571426149671533270399060132588042486475337397894960394227675894662890837447542279451007782394225716682807423400913766078884612967209804375724236023029617525218383448565657526159806791583553950282397226366004564279872529611492868363906014376469161160815786103124453897762232189443746726907736077641230258809288286355783979273156381358029047996317146312049414890889840908196289641795437282218275055313069060836787783169555480614681988605073988380827897058467334117147160649939354474763625723637892054689283775683548021716426125392627085206456940242114939664577251141953888593200211438383327344300245712458085091921497899216010164881556671416979927538770985251390937437741987544438193071286435637754439251264447963967088295334532916772985684520380559015745297576651298671287845637949305686558900993807151877131261194533475715837083887522103095921927751608278456109892771166180488857266282486328453316438362648274981995690442731974185679986260138214804516861416164094677781356507324201241846394212270437589845077622597368715489917850590916359522084026173918108029289810167244822325667491430114981909711503263317084902109298255679124059390252956720641418490140163606030037514524568137075529826195267109826685063773819684532340196135098369693670888855237984779679683387012929445853023450426194933139974812805374742531773834214009951590007488158554330686984724973591906495034573276417585711602801158220398748725481198144599922869689714362475960147412656681684261590409911631067324408562990947317471379536681534142962747210687025416603621391861771382201364968414373811666738333307935888760373363512107469396871290425002695732862058532602509622723582681215504099874433552932292452796024972043491472464483345697482318269872713748649634055146188004436380347648225352073166272467032164610081867098577473021897204142156024378134655105207135773410645637940843764162681393318254203312971481073879680796784325990081838163245986240877152674638898570655270729128033312980159634695524522510418489359809957956214964889181981072089019492460775310339528837638843968860284392514870398714367182444678394150595032264716881630211881261548836018381243806497480600976039311539680004947274378461603803327085115428880836358436393217208914661044646023261368624097791976217658049016038333847403443549639678882908802143303865166974362964835720868074600119792306331906630962168626512587528932198025007427493333517988574674170379448447226774355058277478583417074025746275640457936566586350336589958664125830350664468227480398662237658530367973802265608781093201881135569435202428161301957947445005313200464772429749913087135903330390577919078187732331301569512077638983173179757890466564455075054769903348485530855583359386029709001203135284837586115212766098529500418498312492786049068998057708883147136551830812328487350290685900511995115098126959731795823545431178368517761330620714508987580650343415391623796242525831923219746085757127312926911995398724328485577644284400913344593620717215909955973791106520251451657613049233857691383699000297616489834876688711243530051434051886364732028922669249490814716964037273255658535105311976509610286732855752569475995907620483340043041110417830393214415301981391216407329937641672446670291477018755885224453642032252619999952100868942437016632748350756958116405551271814010676815418136086249046045324376489057688205300639366611227445123852123391803936173775968706004999286104619101998929379351808642596155827480200590725351700750260125701557244967506026122102340504851840052032500842860951474603276301206797048630950702383825179889480301744025063799852157852472967582293324390095006915405373410125498744833002531794486848232110427481822008277628368812083921144000652558494610651472965202100144512297459992886612918146257203272990443328929184753429486816003058640696072803486150031481173594942128474682503690020268203055973594382432715576485402381833748705355606513626453045619977768264993024643753114279116974798858499226941623634309627339037345489333028482620901467000755432276596920703402108058527656195683693739015119132321824689773712871771881000848084113783802841558235877688821144900419843352163746487929591251215533217080032244905551100555448047080679821439117988307818235646078767264541516459459725854428438819237338338029360003258215438591446515713071476120671303760860635992385295473818260618969530220660002159649682406215852373864620944461384905312351037426140928838702871178191131753374002300205169495849707322582257458320278242351974186163145808551615193892064014547663080798779518680462327285792753482269888676526424582247248938143875369406346098267526112552994971492256976539995672972302393044002293997797510489362623556669170820904763462038196054408268267917087529025639162105591093304379846869564762213317956738396499708838763349771481968881085126891176224217713321959489482143709246112625350740196991293547847140773397051213473098555778851957506695520357316349559687987711866113588408328710137456950268705780490433407024553627926097975547785670377516546034469766802405552045948830061753002792173856763841883127742160755286343494773061600344068323573084778634676369296824333682641955607228186871229578212479613305121454245306559982729219831038227532374511342033056504293852396991557917650659288718736619503259447282143631326730180722086726669223494435435968625372268645377242597379979269387374781582809242024316711245288463247104525901517704021379158375018126326599172135644059985077340490509480519970499652048441641168880796915260888588391170214934196599198477314111269677619993563978216901847883791527461150500038791708040172670072466005353669729835381090310751848271355883169099547449253456919346841393184497062113165224982678982568714507371035266926121097745623324160543356703259304787979729447512079745972142927998016830786129393447107556232632073286431077467551738535496335049089884265673160065837236807450094394569685772414291808925861581132286389556636543967856899316540847339391522285252832932166172230147466758418613686422506980125096981854662014330718617700050100046813478999664091463670660631052556876432067177766863658672867585447809930136161646273907430969107660070886849923403756877909833953015940561959315480642148784153967923492861922107076212639455932563009810279241325306085076920043870988498271496909016109023309674032026788539471043130869345726458871247504225809171674018356104468442074703216333541604921650186438062346443651716009903345278008452323543279348681779018695005696701155320321689264068253767167489007669357128278434140173615359841618957802152895966957154299963034072410639717973216264805293461110538271280289670921182648552618266707597200181258431217218588162301908621731863248788794936889535069041557793291859563576121861752736898794647135034285952041606793521429547678384352965994137016057386564711632909187962934847602564616560708986296760216059126898882643064851935899412269546866952005902519317988311693265052737870856471432638145638317073344938927004333675858946918228751604101542701789994405940389513584944985801753743151782179114380956926908791444982558655305828139653201172099360496327964684465451976879122067689836568035531332173766048984893836234097505454211213815732936278167878458678004481064729836085053369201153743388421787526764529810624473466196564419624519911774824604945986161846294802621937454935023520384551143629383526329894619888067310553612709102054223338857342547416580928500120810912949320214333162138318780795532319439167569561362441757230861532980183691947233007133522685804529692566001996367271910704163979218653384143648081526571150726390098405121198067222751206346635588402479390687672696369807826000713046194388778739710591636615392805913158913659479381498997840269530431579487453129637395761459867093089587221732517049872479435125362582193572163991463446163307922955662658188163974916496261569542563655687161773332909144760110217022733920430230579159927608552099360452313867675084800424167238207122272905503959936170220143921516970577332545967834467320849863896694411144500084371520913196188903451808202882319928993456721610325881844178445904581960125687695614824123722261275359511637722511149705053818272754320622272640384473759364261333343726715781426613147932356174785767855668481632431626203629208318480116238481681127169957292677709895429059200493171340738391241067296292900721856666796973791847387543288094607162873614562115657952288758448229402843343461748519311147482197293021180769002457405208968766074678418024681923634078887875649673617897857030874488006491612611000558749117913817203491938615035194722708606804085288411419865302054984860366705401360054359327144603752585984061900439347917265097508997175278050755093537874622223319787412699552742654161683046290525439317972079936371679905472449608507532556855870754192049766485095869921289311399175269861857830420969430631947813343131839557786788480901118923913319556690565287537382542801435536619947213755217384669689097874633695614067588229730075794905528732328423750758561031983735896827891483137630931193174992254815237078114910663127333536486007886289547474733370606762858367410943987821873513658934670363955943940676966677808727859186004992463803156001619473922312489887206104441577823572701237195321535646747910474564247897916022556328259190489081576418528073928829518933368916657002127945285781385000102272862234526565094698710646662183041633714931665168849960776250676885875844164067168049408034831748079580825600771971642933404585153110637762303182183809443996840204238055591738337111500459049254855463877996877399900505041613670774047074032756117944961722247608019783670896160519115228091678560150908918027517143972429864186543895907271851099179255981925905884360794264222178497985049008823985759129272136956452492327723654592810246328759236420555723146691712379896904152190835964646391866963591075676038219608980657325481720491014393294778514959193627215054564830057174076554228406525644932084776809569757214894166798476905646596290489685162589335972538504712792718180358226800755176547584194710529336720308626888522672021395734185405111783614895812839947135871017700109974055282097703214267963374252561401495731606746358491573403843320259661409797760614716241404652464282706843636441760657131498490838165513159284274803505302250823136881665890545809780027822081010651507725057227626883182003106196692182790161142486925359320620238913379294382806717323390320340974241256382679277799545124341133492055119309978484612544802768383966638265626371108812508445455347783838203269615994695051169180231569845053398386698354856141960275574918592661477911181199898723791297196020410769345979644008728051735363413998611373645917298130971927828067296675838832687064709135326723487576489135058008869027598448916484226350321140257442019279783187313563115645037217515608718934749803346168790715339429215453492273263475181172058181631059293585187827624269517480560922402852251972194726172308179464022123534375564405741037277030858277115370749032936504725793669894393190873829739974367278697376222279098012898891675851784093265116829279587521550158074462985234710579067825033096370147971653939686196180843960955468488595991812444702218261909872459654277281611127223254124453436775483131278338772532059304966299488818989175770709885688271946348352904092982462171578445176078024656978930266246469733706005639003511517766707242819611134131741504927996474389076694627189456928331593583634523539693752121134742852584157879711422324060790114917217939368427334504059700543554294636869612333914925887943742478021189097827261331060108342136616136048770762744625661520223979198915466500635213267357787139244319853344566755768862996245555011339956340067516937767172775857554664551505128898659282865938057768792893079543488685616148423521222205067945695496210632958014036493347743781550014245515637619019759048706993255776973275952392944380481062822137590338168465081743359056805341534018824849251058124824948037219876751438110114213988781281988254683884402511066902206731573721590484775735351518921687125223944382361763720085946406777676006369719702563663301721514957648870615002975783391671025786690072596927387077516109364345477633302991531498501808162810701445549872920496921766933656105692690109787990295501468048752451404893594044095345826955999879667267878552164963481563431501642685433676848194285010745731700257733768843768469699608175745147358903353575588333111508352778882978285932791518014643581201214527335280909190403555915457775945919488946027965700644216699472190251136837121332226988132069440164589877599140378532109969582282637135393107136862803056023692224811183895882942009971556169624634380456841630542171086884620340369803064520667321234510081752519991430736021759089154739505140994753124779535707417719271094719851330097977152449175800805885455893461460749324179349982330573208926842820295767288852559458925080561352996445224222342137540225118777409218505014846318907813460171293663220927988210455487935727385495159485168196560846910328135705395172740280617389330400117694256763204979590449056531564994182144000790353946057320461519090200290302134434736294590553599549955507372483929497937058329020978125394115455063685181569985703484174135237157504722464652706376389820536784472084125831682938790341247895141151672727484116775162421127605725256363514592363037530427871476280785422663153021642770826649382569229104841190696089169905121216176048160601924130928900658521992894758809960683762097184185731432265517745433665786081083040786593989343878721542770489804439480992390164188750094711443138335987990045105919957281344897496480787142123377672708840151474003564837562002726368508101301049771906830634597161128939181464333840045027612587531067410089271137825718099548653534162885531889204385078973745669838185137100058544954159562661176026985171216313030396784820208340259978074022088037850806775270578245958440508763648862221578230647250732649780980748497062560230587508338961601379240570534493618876652528009881260930064083043787380694860732769596661809147983643568283229748199915323129911796781800605222099503652562333107725047897695987494537409670235444402573505332995458515506300466492705642952696418401529403063137963034641743102864356826962722259486207361721840644460311594561680847980838438097708683379120034286290634109210241436381837109822716920252168173032862139396378403629268827475931865095956016054610045612368159998500522607981825194191667504449585120092441584115198213350673623609093065346633295682100405322276122780676286719772909722668744315549743622107098120430198050945345091009966558993043609026500737985316712599195872422274792574125119871313530497060009720247521500755645262469238603148335907635687489255525818414848728258321530554996063755164776626110425936985311651832354671445003775939498332555880425392910630626936370226948189389863212412070037853301873013898682823149881519776114052536859404999018069456277538891734281324642755503819442753869817505227690332583324432329396406861576164000818143076707031138099160318343212824285141504087028040761368614167581886217448525091546398008169180795200794314907276412022460353677864669368794457977918449959127624393673764961045833487706566055088982052833978637251341102983411381973602960164296750830778973639458153808547420447579992247073781981324465298481215584812572110765992354386576867923942165095011493374982470889753948701631693891919331902833644967029606472878519547712235856647293098458333889027820379414490980108007305754622509849251261483634712815954299707663243194999155236784703261625570529477833484304247544727078725545857483181748846598428044333476317366583518494210726314203824314048684630874933555740442910178863815680419191103468445583067970018166938192813336518238381382985813817887441090414537594415262758948378469761375058929399226925003142855622353965065654759229551392015442680883091447408062639527131010882739640958534909970369958121212051751861365390425390977405141564545677001283129175612804100839420687230295967322810608840814480599385473132723340502046855432860619752484420157909017604601097374771522688338578193024531607985697261849417390202179698410913079789370901879494684158776399903442725053675489744723795863844104556914621343289102147659263700784445652183472406825225126582788405103602861992688926930928721679012916115029677504981270232539020119201670393695703566072315996099569598299404492058530442668750872828677511774070013077064900569191127878188760939704902825128023774668236474813808584822943585174548504982253707361586066114723799505503825998014875102939164339658578267902043226779708433462783491895954620955794345322053979211309094252962474863493830405354986889750396122392365432164978887472031863135391711850467309939702585573185129025811667204061696787784561083585429255550377622495421590247810452787588559106157609084047058310947621532417880715244565791227249649850183190649582111126919895071214333992636715538078270016263093365706751754338894605465049443552618875802308346713847139580209047907374031477527921477218968802737711071512672785937053155394063138472845360734661014620566749699959610546456720325747008737569748877573220494494188124900659245044646526532618463236680360590082076622053195291721278093015470926736485600367038430330852074572247846446160130750787138630788409660876254557284197115302817137335478010635991740831443115010112142107568300849468544040819320451469038192348845842173080111708840898614365811151975546170015653613277083005707757824426344629378195702795398804224006939629408425403943866813215187053883602773193666412429047480682917665809296259133533216573066569427778481866455940293836512026939535104104583207280322943188036533504980470901519020217325504855457213787014763984831212855981831555130037387117469756732821810245693235220821606258252836497037291124245633425044775809947957867688452077478306795118546474632736929022853091588931651897099222452485406097926805053086620561287753939469542010424290052534421090784991700149897870564979744878904465211051144709571787549710111540442601979343737134476260952792027826183509687141633947595938553164948979069169828248046429779458604563349537267825400708804300564817566744964501523715134377571371896238245852513640208638132642647859405722315997044952235488005544805539843879632747218297881041258120999173356383499932374197355243243185723044688739667746891668771835748001966643195851240258278546713130440373039958379386051214425440745832300139726938493436389393742311440334629564200218014947820632881319201406104516646317739454184623468626567631978825679227144983926608438947813884833259136274422620598898869968334451610152671898544630306302989131231337757421975534974206337980007217728187261405106016678858647692044744268970028978680190075061187893941030748571543523308976996596634364945692526464052066684129656838834382787158085764579506354947166999515819226618162610274511680826020769075719338786471669244390190963643524190008087571759444780549895609171173981155220358935976481712991113549976217853766710427753937765185282142353750073809844802799913337797640983827595050734161213869399407254855943402243287813661920021906455652943532051180969604772864272929244607697386248627259099419018619115513394480221710408186442586781449552370448328522957630679276000352866762630219215246873855010694786025872471765328587346851148136974023165442067940537031222371070455315022663069654266588864293355555737796229129255302204504387627402583858392061732642267010977919651077426876630953531742623591504785024069353238664086100535428919496140736477426023691625757844384724892488018236313782199864455416384179910240561427500503458968984265517378397002809686211166411633366321201154915765801011650996276615793344795550553409071079013871351086904929157430178315096635985935809256135967415019486663221984461899407534343722685164081950887987732915776820145590816236892300289755936188458915730098413870604589631780278394458026658042611499452014620047860068976623953642542835989391736361042374261911676639238523673315791854845166351802492471092061438063769878959403646335991502360951963307745003210931817514077362626733326631035456000229144483170563638387023880950611427998211968171346406214719926562489701640625274655100369777572218779929105843249760756744780199494729951703856485990502292209745604382501210345767784309307928316321660110943234549147589827552616803071969067709101696924122249497308744142588803951505163635895184007669498184852327914377085701496078465325069775767248003657865184307900134490993345524685637699636342470370788101590881713107623839734680398785947576572133764179393179452353413743488469543441709844227107224818270609839645031740351496694486207766638724627739295575919643900064146791296939101314338806407297657084596676275956638902494068316859582289282950462328646858217057683761294367461486851109184752101166831173551375159211018036025314125624284922411534564665535870313034831128759660456722903415076454419141810720132285825017543445358030078617297273699068680606665871841486205524804806439473524621777714872786019779647290218794940541698355659963865664142684073717311875616188818179751005455041549789947206922154893604476034468261937771471342635016321908741360919312425689246433700212499927651640890731198313475428379442534097319066116790868367206567827556876863593340507580361250590136726033221754712162518062661618146233055832116324094143317180406576819411332059354163322874513288540508800605968722762072856171965926005818546701565061440582522052576941132717641465246372106683108069455043109318239568101095317132826434489618963538264857650872007084019033468037566428371696745572913812484487531295943734309512927454684372565215187231419651421477535027175791172057976375861646644290240280667474452790970626404307162834692218485235385415226833737229171428186359744050575638350890195438507168073903603293776244881032784099626075908459322416934448076642961410789394043669969728642413298564358395224036145027731462156527664475399840392107084007413176304974948932506769017139423239413733933733911250451410422301399391245527669508240743379374168219821955635230732458993930776272469418351797331418612695336285016017976852710577194345436273383241443211087395544182917728999235937856166139520237997914183395571789834790030685861765259007593160049056621436457153339950028837594307817572967084362668607881279772290881212746038794017119034943462215238639059120723556052121231265192401268726363870351228479307112805137047223043209065205489364942294063747577022957444053616715156570941264686202891876944876166419554118548515340153064020563222601076883726057176352143782850005050791766058084876984856361228248103837078172259987764293715168443743187595405000564510643283319806602093017983168003954923975330054455468328390583535775336357191140087585821459774017500501368579621021805708585425717420300216667445353228014747826046300881765740157518913279182459505413105462171119956653900434920119404860091259924193719561440099337905217370977300697074744785978661177885451745999565793802855259229814021138750683072208740526449603556662312485509251956720156697963884710204948617040935064341980126271335415779268646474318943097199327323298449805827793640103289341482907714373187689522824036320257458955694596509424316802922727590901573280141863393679105900027389607555038985587198480992248429632908674058501421146543130473266048756245133261965754597568774962141135807811265751539225961490602592087722648062908017962199441957531984337527803291897194860575237385857939086916829871857657655998312073540350662528884249170049091740650222698078837619520587944686268541031690932296140324603689918830281210481244907838739200608047568303099315950591858339453513342115997208031290587455543435244893898240503833864996418302258899746287820949117074086311691019196505754073407748480281658517510442517230042930687283694291049161351467660029534193243547039335754633554880119422950586978671937001283327725130163444245803163002752959880240759630423820959427705350832383266578902174766409886504087084623011822010259159528017630247549377189698653619587916971814606595082042568419468195770004540314451839827107684331397405927845903077688708457005505412560759602979204862478250325187995310874410623989894183958129444091346778567874604899111610103402384821568563818400565958328946472268302376234715456995669012121517504706918373403722349994844502050132302802903826933302882919017549087193584369584647572576296660288925299292994766575412835444321800643963773814786039284535758698900238962117952249022488478333006010070241249541893018741655273854119158585343263973502250621437159370520787501447964074716990498779087822989672141252175085335597064256765892870829964826700313964895317459159523123478083433477997877690836182270058468224309478352421351456562801010055011744520426904515303102213043685128128894452343648320567709305060493515670098008525798967157464849881585080254770343932478013643628122257372070589505362186269683046161760830301966231505572440988954292917725479331138879512345479975678870014257652569425190749359870653174795875853965304499168928765522977578657292338942107621999898567213846113724350945989295553771121494637126712495766546687047003656755033119128225669916367497847469214252162291695731857659319039501182891533378789193884295008065447796523811346239196543140030954628667672709086981745754666292519554480015528862728103085766206716571250752419396906459974587586797145018210088497013758882916968624594981187672486155833880523514874995243382007729588538133914569701143356485769996316901436798855196272616540133388903228202309791482254610230608459927108351575900355252743662551541385329080838880864066429364561902452534927622460249057905579492425209435877804330280829725464731114199424914385081177514346752029148733044787258976796500211258924179928145880445234823722428191847457100342515784368794779519471177727881420221573843300797243327227427119477435084595595540256425465568135273430131662953774650949579565001607465763273922715497125987530055343647068344864949695277406040369063006127394159835246089580088336542372265776746119601651447614369400398195277696085254510788385366540445229412811732378793656397252181474701716462450304940890214887021753945400652423729600427455684035419477235334439986667529512498706486503943333688988419114039924292668989810386424934450175304244696090386316193143518367030841594222477210149755176978673728807040529782019315875389768067727396617402842101154814650035333029078653715094609788688245898318951125645622827534356344836858636730761641692429685750974122136033850886667968747164798363101989049818803984499343954678789842741360935540045199635314553589849665728764158884284726449339006267494677238095233211815133608432126971219882782010503805284486480870651466196616625193238642814127397783843907826254213124066404565214985098617090647564316101974529318929440187833208211145311176089622813996547411737489999366934666306137992499620819233267947269601277298952591891993409276585944081361493986111841370354008428925191762970657985393915272130094697270964536187404313025028263848724047647797827563406324472594860986515947597583278385992985678794403458467540916698715229012013614286726214297845855272647667042868672629326951020205738268814869050919229858650698465272637360153155060853971499928897759191617872921185565544064757221837862697019293012917906970371305045677449951082897972101854664759959746850223477263736988443078355947667345895968397714971479166818743803085740183706586628996430228807856585861274542969882521273584280213604781176989846739878145855121549581456788143718645729352352043554859973541277195898363287650526645091656025266038249074401428850247028113249264128543295611950417783304607090570685064648697424646582994000804639604188054460458187963653231187100866335835086192881187353708762111432153243413555486687509462045207248329395292683963508992032057922139713283408413122843143206942434171691823203494372950938152005329238650177666354169563865497717703132787831638034709915841384083992564355622871698748442529594682407884623983860291424093607716190034388553009874541537978289461434344008111521657928034141066143710449306531031190853065982031439445934322523637773581717884260744853063443373266567994436389657765290792671343381334335610490679265879369900565641409630733137683212045503690853213899207463967598646926556825556347792754591228072768138678765359349384737250355944952534042220306680515170310860894109083687962317268577535804607284684925182978814151886261343357032560134934115263688958737280221664689170239748669642378295907097532679326147627988713895601491298393410386685043625636832206087921502155801300983967441704863290987634291429858110863837967553288592585307907305987816937936250695140246591250031176936038285396097674364007748511804019693898273845301040953675088129886268757291196937886948685120777049543922990791196230035122762442572132049455285411672262131470723823926750711412480340118179798050776822428751445134893061844071872956803067330898227130833816778760043670977942519844020908793974826841197078911640537386208557718569224770596236927760062335591653032046833504312492928762918046538450166203017589196090510722274974294784689031290785302572468985681554358447306007012214561059050526530935429523696190922083977145851713971308422692167488091589867417285155152405782311430126500062280380908804631571147672870765818349089009341310819754566443986849064208415495520839083198704295206459402407160006852377469841662795846461222832122637444565551397301808489938070709125095066361607211947441285914601312454383114355665540496282350717736158801628763805112089306051231456838273919361480576211984316674792215319577102310078724404804192508275396921736113090961615497958039088438132812933410628028753091773893162541296255030469220896745445613057290706624954381249682028789624763254856238332480427051841790998554890818244124475254863108097025648856591155122612413358157741095540506791688726990709660340138605721705608100534335408359729530502282285854113883778820626771352864473491407877648593155149509685463678319971950982155659665820345850240470641327858743890688903505723946511251563052293915778026304281790699898847410306657730550744836576241368035274284092509799246868921443536849597961159836251521093336381629615584452002876952995053266592704279202011804544985815624521265629833204534352682760177250185398107276418909785962106257217527179570250628272696778145528650841513174261846003146085802234980734320775504407335229220195863406047117334789852801930733715964667468350402185100901354196461079632807415723456011429655828729361299357961405005019778465937175953087916443773473658980692730558357970966287863819778121758737741662644019636794261970451275203783854087131157228071931078578180857335739865162678719161795821306894273398699789603964510230438180328887843622285009074837566156909042900854897694187728854470640838147940645964041647367239868767650912838568101529220835905107936623966662394895210068778212095984567095745727790928102395318373172638277835313012135511541580692393633702068318142238723583660775440428402735226531435043795761723761243808411108108977500994621022906264353734853417791953526846098488817854571395623370989654661783479877789077132464325648789860463306938365698856318509870904871153036826710526813037625144546318842111326248172141375268165595647160543877908546577081135774654905608978158738783686113247578546408880408068620599019131327371378154518205435967708111562997746014197773568160365459298016337224447189988468709901425153122365427901015937578229997703521950231653805181093161325408143079423647098282285941228632669085465144541915993164711252146232902073232780473287772071146309582681808103736492630165064777027832622756805831556692365916317338439672896976280829969002234798637876470408934480652746921595837901182856713347039399553971831283264585028576304901542007011095134095508240402690002279509555873371507247266707972401550189438830234244874463302832982212094069845366629835278399642253985883400070115537094901072608499347470555233411565473431997859520317858328552675317141227249960885631269971066516260028962997069574094308757945384501650640012798639219708598647223149898365203672538623207914140676557571829074765379105979705237167665448469529913759113975753413746846870405298695147982754817629703421833833692261469951577016613178764746198087255556355637709732835602425634433113878415891861114348336135520280656996745854202758658077856339653365186065777171763759329476425221709518541807218358413974968470000382738136656930571368810231277276453173900768768110920677512539868625513773791989239736812690843508302026911596831926504662757519233741071722799104533625856981522246653587001260937937572795653106639817913175310376769329952795077669769450815366030652703602753892160848604165309934709754085882416822007438837807367824458938402492437808599436567990620528451900746809576922484979539008346170287567649634204941485731121020030571675056978252148978930248379460097628240973631343605808530593540778152642722545644065888559984096201239447783644706501971129756265147716086801981829000758412159896178106867727781480679402724917142203908381197412008417722779800559163123402750968239508480675984143394138372398650960820750788832671947771047778570890938575655252112389305998722813610506187669840906978032415912074836819530104958867555138283050339356368719907301472961910661668004488187294887341822346614396845133770913356917251871771119773993145630954719915989529178240227022246490406373928160440202936479402876215284499060869649683964720287958720714310444676296020480478130207788939134683098190908158014585553567607527162783508526920199156159686506518547571532299588981480622478381303593634882477196427424442544242952583661053190440068310038992177012695599141542773700359727960705665916526260485837401198871922756815069168864675027569740503524647271021860725058037397251073179982651313929845663685793977314216175622564632752467180408898686235828465574272133149888389761127281774527136629688405123194579963123739018458227217447597666716851407801710728915891438986072364087666560303131126460159103673825549893363576261966893581585137997131667778881850630632780887618948570294046569858708602196905152703466911288505521017813234031752999557749766760780514380505835668175780349437373089136926448024911014024414511890523121147295714459409283660935835253930238338312148508146655068482273480251816512457469251617559373612503621276930035443418425317544244566686413434672281096242363290464377508156310145235223298080694537778715146518290539392674514010861372829332134165027587589936463736154604389066041661314359446857226272980025089532089406422701316442106151293601287883051714155165478556647923344853407993932799001197268753201374671232120669103791902684366726077475449646065093880921716246648221840519571058783973344427161539094458892442275855688913121352445588052119609535132107134761597007535131508352037173492855220928265342066864067429291164593772773104719364746295709194960046732460440397375915175708073002803807275735367319384200183170013004431073339948651218650367795024990209700568152650488997074849006635363066716376608234184766711324553143772636612088286246358967590558526526346834713507179539806811641994569424124370606269356710430919969539815085174692539683766011996072167941584202429625135756086394461416689225236883578799597332547981029017651705470225304554966145666096170770249418965538092810014028589439704615497242731167142634589837912299374348038118750136003185105458487671568680441894727218172582030500398118328541561576181236948123266658011827599710632675816481573764593729894171588894976744827377719605050315085746183032256301921223868294256752139443018596668336898460799989301274748511633307843874113842698310475102130304349812626670766158832581744696270537237479810462531545150024632611058568174585735117944230886234572612648352927141552448529703280640470355749003507944061195759956456864961138883847790168863169524474085105489466780637424839221926144619478899163706028639113842539879110319516170271386889576566230241966849321961395002063686935552694076408346164758040111860715776470842210074759950677141500706311059535562477829523562417426173854284278148099367837126904410796780344783319719274576167413067870765780022962006075120241458207199499747742287260656727997262907739989377367352662643964444499217245714250016707047706300471245821125573467590405862226321117643312671363227869942796740516927045630982877738199501765078729609354055261377688803521487523588516144996426909491102475391270100914842472381358059701351136650566726110090791041044355671768400664969535621676552582430322398910377068958571710271765054459797206398308103268762259003130270065677522473964133328104704750482227822673712328708266842408154061663424251882389174386831702877109405201964039435789234310916389453924797753206971413489593725144323333884919000536752144621335846607345231584248445279647938876660557537889595474138571890596447322846805111274654041087439282197694218727884244294067351136760321387867402976294851374916227695536736570088143556638044187502662111917564819733186095102065271948621277988920110006857793913997011127932240534445050508359897489303619254349570975722672562859693274807010727904196123054914600857289523893588789842834882553970575476793895543899266361865056420262594589776986250983661522327604424224929672181535649772016023002317187650363109357573130456602604882053209689224368395026115783001523912514131838173870100410639789304135147622745923179892291849270515380616560071680270545049915394588803525245211914763922652787955027198214699475161174571193814447257901208591884789173820471264473173263468433924172610383723861272465802764064796348039124544189089106140216712445852819143676078563037601479790682007360853720993383520963791070710607020149986023837627202712849388361421594275203433472739337548507044864546851467448592085292830873209822657897587453688875619363942546175251367857885654700571117477791099194627607604046762309531427389746367163874992514269469913618990975435419383542196024754298826994648784178992258244860929561342443933062684932101456387786862100507712461599035177816119029516536067183486032121972125671232668068640346105837186699670523921881746036459219572895804074038435966375801650313532550173835837363877029207201353880134264983784662569070339498806676550150379371272847854962597184662431751870185545177715488554285277196874289433089603227523257060662725204386126863286622636348106147992490480651175146220829534605392598210398531314922680040810294190592522959848508366325283772349749786258351300822268770989215918657373684786486157256910543912675892868668757877518117025347252572992264072841426391684939377154174303087324878800958996968232812592441578966611839381564546608247609142209657236384081900349881967807611254001439631560664887937906095407097026859922479521881477238178907981499479985642595968810165905415466949099474824458107988466199130202667961704144498655730960396886855580289684919261286634326410698458421949152387929084474035263004627469190815336291264596508998299255723565616631872100243595353261151574669327312672549396413053808929483393725357914875062220468646898754873358604855543002727991716324108807820075198284030848568012531294120486903922745062721156088376078303259979865177064210134198212010274599808311285433139566864313339495082498281292318561474840149861363591058186119951346177044294215202691316470144167156818105069436733518358434124810474525889957272136474371857838917932860653520439122472486305256066945108720903542487076090571289186755693108967982164065689046599052104190657332332285787487445892615862615099097692679702155792486780638821553038458941317551139155347530838227780077440250855076683877097595176117551638507737535135343587394914241351328233482244892642907880268249009368301266302043950768688952374689249754617020152042421597299070116918677314828728447015265303054856738179257409913192855584753541395759968349863041058929621201304144071273516936134866427385452736359420985569419846028079934555590116328930340202550784249719606396930217126579966114691110686668599815990381622365019205677085387335937067951127468581751015723402079855039401326105991153107676154474907284318564633606167849428190800761776794877030931586702537250100798767057349824648585483854701984653712165137134693449241335486049173967973508529830017312757510851589621948616095222660917560346204668288109834765239379424670518525396366954635273294503135160446905971218803382616643138065892011264701521308708916460580455167103392951182309479890751697461308173952380287295047128596729164060066934917112031944383182291786033182775369569468449536498502642614499628766925457021487032048374490126217605729003296897811297819687303553519238098119769626540097208580725996042820729505662390490419194822747979527931378244767637999877067145099519274861161522103725465789495034484529088530337833505793152429969454913070739506510510834019220696092442934130204772019754973895798986779748552824028936058206642709350034312222109040207923971540393835409701732747897104750317341650740522312106650314643404373619944295608001873465655381726139557864749312970076505168484252552813318529675488931030370918576594466158666787120684154906176459006337700878864707094701335237252859892502310305289829946034017104225572882209582013825599231969915915324977483515892231482924085512015071324004355856722433017121071767527197628912756777674229869619512605693034897062703264720394161688545321676966438237716015407737778937989133063813530541748155783536155254043975792649373497762358248404785284471910766282518463931234302798260528297587057223098356920729428515324325963411661564796496688649277487844927095217490478282771816700360821867612675597113453131173790125575006223155988257600290321530965084162844523118148326236232454567885369350032035720971247697122937963755790374766898988424035702165787702761123972993358004465110375902160658893562797190889554524447384959707086992761241725253500565204558847217287875019854390947757882948657228287343015966006013457074723006427608724133984038505893795337253265086078824104676764120946933270658141496450404543448187116997690495758965735090897150128133727227678404976436918790021150547899486455469215178971164754969647561442652506470069774098929726623000050402080444038385691232027570409467068654822390294214382573528656035382145673768481926121722903949116333742343298435523433215528375203836771605742491507382222921210391798611901541341740260038157017998698361145337310792377831114491947815368056889146703896548803569564852850149806321240057867768072589430567451168492996685324494836078837130936569540678642136049057941422554833123480273414928425195583002215426624549744904391500597624276861834871953799240301698516730113083760666131685146762861858716168665143484003227637626613034725032616548707726165892549388276664406630058243285011517932329115396850551897554108932082955430437523403142868016895719165900056547765037395640725741066887053739203174500733288800008024032261829288483703169623383850819664153433345097169968766179445405717514465874911105031326574783842780063099797238772710220664477546430576808585723563648215520379249117072560891711362990051968047437042627691952067164754092710585696717549712236616887290440140721858824965513760345092661788727113595657714786116150790433572379501210511680929209657113901933753028897585383887829554113753786974838802847564643202207582860095848325164754009944046199569775235634522713060424629721615918498029059336466631768611905424187195505795371409833083586537338895423492219638311123047536355328239437083181237871404601358082550339667453579167344845533357475459087177418018361841744151304762131889371699017270045965882389298101849727102860253661374730469814181734531146085183858062609664923957631424658635693100160272957433203829344805635096422544398323328852856071275390378696547335582772551949204553364939270535231782443501112491842181170924544062982020583334870396495145295016542991528448731051199243579741850215920027442458567939769674536988440093139252001934451421041952218773377826492546979162673505274649565487768118363094232401332956323319141084143122587845131890398088808268434401004647501556009887752494670943431253275014577611399365899932192095391342893788887944665845424608996892476233630791276140568192052105864201810417923435111984233569260414280580798152296538349102923595269744042402660969317000673615517348624493332012920828483666379742707858002281460445401901639096797937587474873510294251331633811529186737672624726896456280222952708052063245163508040798397331165087270476961141756163970253666818368418830474346870697614031182797242275713093164581830860648151968103220545369300134243406749539684487220977007291553257621258322076401003428657268085739937187533795307721517686980450362300235805826575341448322411689007733258577525110515410332906773970362207388601750343394314200404464107643047766401592448159025726891208230980860069813994382825456007480334633433019053212439941492833942976996046213059890581392536320269154091377423022858353048571401606868662752578387455028317662453490434540135775445648620677055787918341893929611856949153868000709490334673682643593973812746410009817882663293135478135320794935924840884260512736144193799782647197422431017100698530608455745458300814287390436860194038972955196210980955636410427098977148917605975826341516690769918017847528612230258445458317175853189210295221023922652484333621635568633452642411957582296863666360554944111480618736721223222201309092114193191902272472272290184666900291366080961195838811351226350862344284789001122251537880027641795682399873516119340680801268591655418687482002205916176390138599743108789163477476771376513202425221090705471904631348309020688829619013848427237684412227473846627941978768651071901138206670779114200427703359652449686547053468758362349461380916409538691560928833095158078267863216731653032606356261679390455651713716216589413264551470846453363655828572935371032621811252576626348394641628733748202332738793754270456233541246601658348523285761775508054347284587163399896948614348151059901742178684229606410480739485620195952256195182956595345306047783500345588487207698997396167615641045988960204974497085623262923460978307907723910326047825596427545348279980353177988815927152594814969698697586542529820930212855150846965352136612495182763243846967040324284258211525766848958651919335489218658377131308569691428942847103239324459727440038514214980108810367810173486236907529496514263164738978341733898387807396022851977154639675434480519704226610604596362977657267238518687086652729560352347632741712142138911942348654051026074489766738258420042968573777017221780421748608645159860278601561117648170594536986222702387711431925530767937953932388886336013298962075353769233692648653419117893923950441207152591959841489734041309801045468969443706219061720351678142521691830595036365045398875558568539182541654293441282838649732909526762357640160033316592430089783176132228404651045059800278564357062370549716072686648704071934336436173779951615479733648019063620780338426339507011501714551785063708096898646430063602145219867202065930229183494188754299893417651299980674929421534837367320356272838407731802805496840714678333615174717268762351177254913193653660726590500185352888348407749460541469415140208996200205903358386977273276458949801698877079108111050461847143371482791490646835912174310620186417987898937111620320470125391856397712080842025067311661098323965868907521362555158100662673153344859816095397851904772588339979597123303426253544343348206644499434654347970768572602938711403239215583902293669975378431051724490105581633991079768819915243430963491442299323684465878192476876018436294824249649025935517097313851892988994948812039339034271393547724060770903719020689580036886043188148767306425179329697865384320733704078676490527345857573599994987488175301657640475320181582887134686734111554967891164356863479483970477101790868328788171655845091790520376772116968932870253592499749521323709193929648853600357424792967280726109980774598029634938639298464215540608812432510210546789974533988649503414651815754730334804177986511570119371037348396689061765850393531274247605826679531071760808621751274853426007350435217989903062577982243892681098935876536673788675944455325713498676605977383838068476764701711507276397842719816187410508115992695105149894743962378694757266308287887793747466795807293888679199652136819074523324833344120670054286776164718855442355241855373691929247413663261618161441221537742262022516376494622768061250227984981119486683105746625438191147967922793614464497962565321633728244662741480508298683152857222257434779012420713015011925210560896015291314674187202859741898613157151759277959844405110977747059405392576131576733272711043176900610380023128533085391845528165574101061187494085532030013185798909305733151847674078074659894443852655940238476844439760953597723675699561197582074594097228424734131388417742020560242555778370063466609660812127744410826471901688395603579707566105638692054279652699075100414790942745838848260111137723133512609192017471003099158360684179816358719393754867213926768756578173878544645247151773968374396780149972426356479712281577971822766669969496346471222834246720059958252636108954219742881282299062675104638727016794229931487505597892693269407055334232586238954994355754911829045085203630624577483488145306605673989915802677681384837914895723286785742841521061813485249422993637402376631713009815209055713970672278692298312401200441764598383691621863420449274107848798229253160586188772508078556108666566352681746132520548230708241927899489317711411257643373312415555034092949451579275419891120922730638483778581713515447410369364857021717996696092112953234985704034478033460846597067359489340967367389545347574768382499880618893331789879517102108998373153928087960157220940253569383111592355403569357906040304617816682864049614490678586961189028366735038247909742441077573833772165215984332037279888213032943427969251367146279685032333564740492857059487734074183101411881625596483271087009269167293887148641633311589865975696745734579149463786768235365586035295237282606887417697417401684735189952316640243568076109308684489800630833789037635603534075735671367957327015226944292418809080442954281066157612062549665808155217626945870167825647832717465635751242406123381923092699090076979028233785615369031326538949707081685252472844359378026095486084805143273965956366462001459065015092979234955670840904152041493913931385976351000143018519702693065368894237526428768257820896090560836613348250390180582332733164923251810618173772393316002792088606952877760791418312702293049941736670110102135168407702369972668880069144449001043386846518860629344711326173646026644706923406736924652274861981477441140756478999793995529990496597146139831954209555460760206005427059434922235386484619702808285168610979871071149126180288306815977899458023727469158874250665832777045086155506023462886659508810671851949595959125440119129335920586651440179942913319487034232736716049203071281273590270921712599324755669417358140823709787927871390779132848149458099622276496098990384676031263619037593700063214721959336645829316029882403750712406560728534114959544556611589219329521043679828054259203957846709070836738926968403728474455199352944276326582806273837944425517299990944615803661186017559304734312427663734613175927198242296416125148370294980618906010083268951285922623763531190037223518601155090565879621696830738175804598786522495713494700339738818377611017187912267969713210948104640354409383461033339597333404634323963243165821147158784810126373302137389323149458451063859129582296464182600477028562438961361190142695651798632555724020898709199966625379152565616990187252543958918281337063241028933107794175225451619355782173706501044396179471636678934179529099636070000695042750352345386086670040736818952942865383102417905750804619395100930920087486902967417190892252417059411696326687633681323365725608472849408862802717316173475675857733484084308912521808326899410634229992548890923010355240173917995257799257475656701052868479394040005750367211665549009822591480493776506007684609197330672228950801013922562588420787604708063315850353225798619039885343201370215012158942385330578732333284057184374766253972982216957103190970502346739562346602977513479958129498494612707210261961452220040884349085222475996050367489233674441020454959096224005675338268411246258222816603584136379120142552430194233511138900081530988456833861804126651686577015737486922856092519286000363670642476444231907186859367693130627140252557078753013315112430346029713082151311090606182605172908335452850556965459312073932696709080775638645503042703816634329828276877122759192872655808692255966946799596378018298026554118806564701985293279894902519631895806375221277783957138710671280555979309638769016053724885263501450980309090856144370788264892865754439078741853218792829215492421379891737003964433515715615495181534573238930677713863270173646915262353790458721272241366136624654289354544934388415032340739232459911758397794337647969616432145625441335676613048601410436821501350977597876655087620116752426981825194721070305786297975271977769168145183204075263748064160279297184992192154491294062241900655345212923375509079690463926802403826587434077954754591733916963213058738781529648984590505644358877912035735479202390534306635574828699910422691734582248809648541651697501239204240916976648998915242787390050566250502433836909875570949714375775494557255766549447814130243025351792347229014699943772161743257636827443156709690889199611114523192988860132157975547777693247916060238842099945204307809396660190938365317621452997663427123194815182347024133089063670454033557723815987066151330618010985084479418167630672306253370040673964711484326950983286184561493316617220193090204141671209178584412694360425568237096084083887993031294994841212574166649927748662241407836108584208071470898635387546502620847087261267867256864985741325467789217889778287059582935715816055713931931771108311003553493041426371411890611961771029370096337625347660840576865978928429298497816950591319457844029210797187930702405161764529313270281830093500527832773136996124777903309130809096699976954918797269907042252877153251707329564946075085149153446429016376804177557276167755814133753303154900149165181630150086763119175503769942146072716016489213153510841596617534569847997489711244779192803780862578603270290613965413881321648026352295634126468538189536826500053007339666143419250147514333789119267650032109465376801466674231719503900163911540104864680258579399002479186681644696627047391816116071124613934197283914916065477610994871753580605901139038517175945727176021245237337984089719076967638545793934959304983461607514666705423465440856249562216529984564326944721901523972491115777747021360345442571529151310781879581288802942900236176360008246762506270134995449838405536342158766068919236181027937548274330564064984756384143677885087111262725451043853337383821237970678884008832232251944967520923469091983544860204223377948682472846030132745724803234246409134004413939430371376937697421919262393132282333319348564449061707060777321001425424402380965891373550117720345256471220331838659788083150937467403446316356504011585859016984133251645760079671036831083865941784289208980971932634020486837836897457447333691031336318509778551007953374178207329205781082266971055746387391739625301459463801269902974447019163652448721751168743314232526683588811632914228903177415634076803374449932576750028886167289918250269700746681720443455268254303675838801662631152768650291014716140772063373260679419068506646381662365691525218630658026274203359988292359550701394835300595579127656244951177863108489960006414534109570189751040496461656420221356199346717292510884388366157484647007961805446809821587864600026358228270716575669173128500973695080438904824754547317287954308719919288335583736651320481687881801498284136202026311594884819834100034672476232694567411665124379579688133342241465958023998307713603588046073592399090176830470725279848255612771397380615100618737178397106574475082446452182795210684075636716915218006370984272387668423001702455623037652359045135717321597656056564535467028668881392605072041986974827353675894238014788169322235001792439325633856968980234617894487852190902065202641164022897241826396037868530043362233615934611835995094010264236790637621643781809536958536101356625871937929607843488917076706772265572091295039766582150351316334627155524158405699957465990535283723481606365310640154814573853488629050504897317700842546252684164835014666021149393469995106837768410217321250834186674881277937793125187135756618315855819392959347232926126262740249149680534706330318394940812248924371280911764518705755137941256625860328908200132407930657156287956847014125611986805720354798229233827781033932299761147029930913044563799100272840813584935740766795992872879493557688630924419892428766461782768937878352856280279021697084665077167905286083532485000344374465240540195260609154940941761024932868854651371672002832939345909003395064989141767528411440006737704165461896527780375043363576759719108017724451470769497668183936219015087250154832169278540212626144371015936853851550008470857825011452823603674605821556345768621877730946583172958358590490460502699288129156556834638063012448669096602665935453434707328813584070669221204891434237108101800282688905928201314865386298610566117076661004784354250262153498954489764349480578298660836934993094100900068701743495477047168293307943002961129954839471192805384794404801424101141265698889944055430978481412748624790190951017650722470639702017606107760530061188000577765669087383740897077180877160014915069540754669281264947943330878011558214869941010717663399342282741390132732167866540497555985649108985901356347971065800546507382769237966044359564988943233654152204852822433987761610949487326901704992809780083825965885651331940170092610713640628148798455617046459257718467997782821724044468520473122698308547152023395120534442478497976399469555585254926749274716781077689530760915762927922245249024712973775699402668545969692828306094773754275159648010606316768312868905512990767724420539840364352990590380076629507050106452688610160558111504383288190368818461596598467866554257912880487091150821522845068388497632144672986165500944124861778864328711802053964220603898621959705129937116448276067937920911746583284910984217251378738629810355840942663651109418068588149978759913135424443461912379319584923758816442372461321381375894923857780917193365109991778465414838370027771487258372864719573543870367598887446122942993636209143939717066915024332444242954596128269947567777691236431339757898520979701630553860332997394565917113815665714977883891927964632697287730089608491443976287753173237429284917333497099454931631945184025409357778699769781923636505211788101705341812948914871275908589767366150738758971503074212107088029087277607643171829416084815863418756673578123902379303268979708683231147163932184801145217946641104052512761236672284310587030434159220647546510254531857717786999127521730017275869168904261533243080219017611220052801551402222380062822557982360625284486984893528829301315642785600426370411854958140027052465230849094741081041920905447216465977576308866633643591108699583970891273335714498156573966338153737108569641898584998964353060599400150939176020621750073080706873934812337638069626058926551958151689133364618327207732132423717506436707682515113627973784488673603858092806211743589812289590401323780608341175663411401751212730200110388690641258181073434862223888282303582492737275018253885031452560689914856932563350342487489151179523510474031076890303757982171713757877445594467293184020856888385891804767795538615693474640699508183473044297205247733031853609751458417823732942079541616425567070534483204739014890133455013409929717273322661919898373365363700017215954541955801913454748887524824300789492449529186779916155531829303913743743416106254775562101294555909677342753142281023106779525065453338985980701935236057993734373876321499179225655636067023947478628829579789132523472174312697813620547673358762746932053087991451470584141833649408882188938719990179777562701258609080273910207924394872270739856053725335877190887367748996035520582827185068817385849642552920125313584100653863871291655268788462918188085687436983698214868623000167509020643876768271422284593028368700641141313426039976048947098202556305398033950212548027102901202244797587967966316063651350746779307525654015025392310927839845454677305764678747330039316229044148491198861443764662934424322094803632610479277668667339093739260093305509476737505346804819408113446127911931146903774332107487945917780528115915256411772888709894264662858950209189473905329050784745048004162256448117380038792596414964700563105864999382439118273145656309258117989076394838942409361826085829471890252254851088327612523382049460034023397186498236088760643763993466001684216707587149446312903468076340547992000166293248725401639811155226096624673420903177821013636410580205783868602763557774732561864179323959718097182029213858309568225234870337164037196358411943210381478180960399282519464626372115179234060308748483041678699768346433385003010442981440868438163294556378736543880061101721386455946278671028344169042041876923118652640212056900089974005549037251445687095324014110043033125077067401584544562346974533577430850532292152800895194349932867374754945107774479015940704106625784644571249115540342793790998613977267790388111655581032844638182912173376138360004428096278458521979435731432363809873030025192446313210025409249570688954998419931598403169729212948830288729812353340569989273900402453572173813745654833920866451818067197423716364362555812150851567040641209377911989058609936060519729893045137163479240042151830842582365940706824458250331831114659586059152853452810575442220330338431452925990836622860418629977400455148146691066471657075047179803560480651523791077643439279034375491776028236963345998205914395099344819471413542399520871341278182772306877796518416351199875651780352913962776651086401695997911344749946291772200142563239645795648534507716812129650705638380181951801799936679908005072682102503159445396915340778142043398184307275318564979084693953790466621242971640975860256090465090142027389828991350587107938072359288284132685677225649391750876880466283784710552444725695975961125269801421168019379699501118300815596276954204495068008486698203008235097975927126707449595430621900831377462425000372832168336245289436154495728598223805734198988197275143414746167669511345348133506870907537198006394274088481060796823781270373635521133526420425657091423722516660755116116171272907246339926237942311800844746019701238944999480476767427480073585157503444954644751542234390373613423604332758339526811943005732360492088477752400377997534100173258802781767590312619808236135329915661726758962045052372582618530870087603050700853682875936562036575379723958014339753615080007155136273073363211432708218894058648502613314869603688783337780255911244036152556144301343210076140618299072024381598274731394983454942786413564070546015440280219620609429472206863126800000373055559639409104778734054248461787537303473115336820224600718081531418037999703225295422796669573575335800570770169450028437798144612393269536658849161731969132175596193912236462038256223784048988234547401736388012252819526717292332464358005571598350288228996063867000617698620901588986147133532342250304580148346739328677758966322133203821988422413902674497750493194750019236720266075981155307962113652041704112927281543015116923048242851557642993689679770696822155232755767832990235622933011606957404207971238201220706375635255594211278486315773960416081762922122791553990231802165679015941177371124686005765106163741616167433134574322523140175571922916491507532118991746512004742352709873475300747207350691612595723403744147197317240891878184485728002326565686354971488628939469057756157632238359893323266170407982444869853959603128867414976403067100764029820357120232589739875210314239930347830378938084806741142843720310976271779011023352510150031692569160469825103921333132992101744473626774442673649689210588345188769392886588266832143118557849425278609822849219211620889619521577719314185352909713400216944919854715108378656706851376682091807912073166442442833462678052396836131636683028123910510431373069436262530814363519442452093288021397731096361435966487860599658317602029267091521078630176481400790141660837044118876666118504336407557353110058495257546238469419105869885007578329673078705095982833838480702005868025088607879432960984820875444682537278501857678985350382390069105275048792983831399150401101963591920279706435271743588635325646614430021996345537716794639176126481810435263834556722327620511426106405202330295523740952786486740068273563581808731328985323517161879411657779711544902550902562900959834025978615603957236122076858717532643704645353915944587248656865174613039884629571608763680981595930900835196053029648073347921586673726297280511485909651880775643770806819413140387425575333427604214400552452766453776818281733297438611850961735851998905154097147863259406262106992581406076589195580994481924381771416647035589288269994134077284946240539935477609954621757736408921630048424114142935593975134379670353224638163488320010862084479137466123464671241647477562820675048818968398482715807392690362604785825740348330466496800588037687963074594778034206395204732952409168343332385713771458046941427766481097013105938897756936954801038076777319390453690253451649931294000675211592210299330722520073933448459955205210169330840145665015447104150902522427827438353389192072294326050023253018469134215290639270186358499116497812298029519162736868808151702754775298433599193220947872488608202225431663855556975805934156805765622206156411361328355728042294019268116467675456954650149231820420063967053504444992335316483664717552310459252472384583836149378780277600456988754786631389302733162279729505128802651543932038925147614449163265722232450921462270577884174555783940150590785424373103842785486031730926799508826444136494898691511415267626670336536881713190242416758980375552503609735374009033071894232054983520576944854392669933317875782880067961231717647704141798391747272432869552967799067095094689021265304223638700909140604293879758076502736837963171760174906794624249115388991940371562913718850540687685879952772042044176229280985760252649774294237066028633684355136586069900110004302114835986477715696060617556584960104973389581191750030016382156845980438975731626667489194138523885285051184851341210530112627765308319391503277447504566680680656035773601626109897368211665706486369642856266029863456204679946734132150754056989596264577647191122340133974382632037673371628938058142850882729915067778122009124923172275910761602386295939718410722463293371993196494881470187475031298685344344196332746956295624216614010571248604859305346632087280382141247972219797850428004992171217965875008356165840587638566652006485076311779455833090758070393850911564387559366524137126511305181425441593379885844590883846147233598134692068621366828885455982582265464263289662041933550896906297271185615980947446152091077048352959473707694533507609312448780298395436740967722558545980675738380760874743970056853765916530640386286633139692769899967141699648282220006205444080299223211284007176362209521276460029201728265635313345212459067852282660615010518562841634786846696577689276934569357366035445675632487775689919786441998247000911769708643826813782379203756555610215049926970063805119776695099640675040906879139201726466841185638465496793370818370379029198024243455816400959416226289780095416121705475496021006875455313522210465806994221242178095786549275987980433021725854954047544368173296497608263149501071001217030488109183370330583347885224739564926349450505668719330320669982952159382661063354671591024210783024469499916815044168966809195017503444057319426923313399392626020260396960227742319606361939131362785978393759146418370503564099032136332741196531521366423763813760711383890703529957190208776491268823119285574742574265261130414294684898299477821434645304769257325221351552854595328668967627365460161869517601812730961665085440525817720403843187474655269390478108779314064301891917456606081644439630613930907501205607327438937089879680860004609782657518257345844801440877202670403118016741694470073168962719067805235566648234755458602045281708030043718536612135855346531460592261514926167536833099489360305122633448696963948151021843516260279566208728086370204277719266049731590941572632235658298322018094479748529805004110059762666552578285353831427303859568278172988343748498301469880773650957595820533685141563367144495467087138708840449985460582046200614615810566180504303879515914323048371087969634713803794902593177713307157265302612028545482254701851856606572100586813018452541711899898123351384932830442241974231527711408028192787177813398950661756257117611709150134198008233651886042996875734337255336500932887079017485354921939227149980720697184895976264867008051114430319066188923262993806957416675065845969003021053848885891607146749570715623866479954015407747038163567891604898057814604309266092794967835545599374727846576842731697228011306761923024553686065605840082434609685142154024657140020821138382657961063692071083264036328321729114019889273422879060113609548772954399302656094170970503323941068055978013191550524103937609077009985578300920749766702907092425257399042730305398451852733564587964299559016895006387185837670882864842958798446991503818756400763509984872632550555102848905159058398045281880199017429617340434192454607705416688433257206783935617973304496018651449399391525799366276369680124599296674502868788225829981253929363694060810306216269115296387539532624851032570773528515457927072020833925016585555102399301244117858670920799280971441725713606656295818677909331750100149928934269466582790646992939047856200819690704288629954935870705552471834958409060297788490685407077110144948294813169769762459022011745387728091622124081017417164579930807600158755007944283100640147903858474555398581491554643509761501852986791753174079826620497247792802854761836457139348469657625000259064073534900511116871898965260702810415421320825661874223529013501247876481213398976339729351736226348072205748970811978005046589962395471834043243998504971806216199984274910082693369166180123692081265106541692782005677667102938392813009204959078061187919238225284341440373370075011393543760206341024330706563126473865785655458135284092773408651536672475265654880734690001519644979444549626179223663981666289861083328454872053143571892205445051236884724152665071665997710533998362803236352789860090431362314889060202478380817621588109611938019154593950375584726744797574293827591026713645598250841019243826976683290600132386467018053285532567881380256021907348524003558117822373387815764957297774907403860335971078893412115180850449581593528294741307953188080976067467881584405139045168822139073170658307593552674232380266528110325814289717782184860630879649147743218731305371057044360419489969469853553741163892457746931440465429288855050238712362378713153481187800931124300385392164121259423221402168841507353243816218503951329576276799335007437105696361430149305202225563202129847998681399416448545776573011410099879722966192634924037185485351669522739136820957946764386903206772659292116183445716756223437596426087467416582673633668347571572871869495254200683005797759122290134810772989684906786545880088794035589892194528657225103188342050565336696080223626981470810119356075106270486754254200573933976770244055792937334787126457860937540951141901031374294930163113653781844152798832672379037144585133291043160426430758794108854362736575672663224170336345916288576704456603653462131207031276857016851995142702780346087244005984135461033440199386513939029745495443737799030353371029384449744599970413023451887395726261938726178231625299515371643088755402495277404460593738623371274035932852692938595307011147113148631792865021743728814486691734207796705538316894371692359255967067135031661933430573038565340535256719774074538371640611614420186079265273626198524537733472767275377323843948607816483832715973347189350307978369518342487452495769455319164380217955358246742246612013521139909213788272605757942712473089253384561466625556775642661824193459619464589953406092274244818553237351102989709592554732251322949781785742453341635306061538030078964758216604685870456563720973084396628016030674817162551268344454521782815486021332257338136218150205650361668420882870526383514503156294117810918600300669450664599228713624303126441909950540225548650058196573002758620595884947794548636402963631988353265278123040383313183541150032556912527159838960758673135683665349188671156374480418426172147749320449174018098964214504511230177269171906599884643151634467966734048763708098179224193791421624401214680535602124705516827328862690393497077833130690508621860105750648205580722080467571413604178786619480745377618632030880884264475134273273164279112838127551781324058742739878129453388907618187440289333228253985175639205430768021237930245389871659750840836929324125020159048229093496277070623011368961794475620032767454394438886885501255142249812184705817263905606353398639484459402666550178569207036339186953306559436608810105864197055544697105372259334126748279907647670073350844788151043503995209953723335316816749954867931761635059375986584813391571697347179754459096467059250949319713575413779341735500331968426431183959274171779689653499409153601889062177590976780156306154045730054480244789523866376024850426220986692186288256094022314071655782624488754452298360869672005404403687304618641075459820071983701299155197472388306412067664169399186917701301225499369702444671240329644376646640953121240680562777627552960388822134942640686161408782359905452134773697872253162370139936212716282576301015122701669416598472014652007284817614165100163209744784659203513791331731161333931257196060884989092052517330146776841106227543079115484641997515542420614670053513408559239311119567738446939009518575444120566535935522632125774332070729066231154206470845957108496218340910340978895199465553162120125832741641653101106249017213188960956323719370414052290730539941219385469645636850898780542479601417475681602981553970695551265584659001809412616579352023178185662543298233293056294209758225639195702758559708896300978376094046668805388192103259485372571280677581661791751059409351540733075678289958288799346451538942590521989179909906485971174096899675789225550362541138755529590908072176256234460529035997599837512022016877773105561231210003952914207068875421500573166841366470869978130068523622605631133817021883045544902968439198962510563885075092508443594647498615136632170272401507486669140540141315497347987695498467480864345040705063754882205445263737898828053471313368978287032649033957430710895533228808946907386243427667313744023578858925915687195010116654239490445107311045527529987903697061763694727510334800340600986424946524655562106079455051689423515822139118583584603889202788665408495044539467109845355057576559518818783453768938974807761089643490173241176310458367134475056673390126443802170173576628600661364484263002134702732252858781280409050314812872603362785585398276598436204438633247449419045649507445610946210708054297229831276444778184917434946422326068626962967878695181120525125437147812150648154580585867981800069574235339963482187808896481523330906831696972600940847249954107068146888718138212012061339308553634787008741627220602503873524568596159854818954975134517899730431209013088765999758075232574984791192468270354512060901389266048444094693150108879654562122249148366017277131921188600665196819414839943665103474682244441719964285325921825439725958297789616721730231246024065127339261248390222225664954147419934672115098209328137115723825551444132786651441189152728265049275479567930494093724620427118327450258630054495250039625797539088169980104068807850678549414649881858872614005844764611092562567724526124534194192319071630292117212578151510679149202543541583791970547930913171137788437911016104928715991267434060090130876662643238723609508354269254333888170596468341388080252036955780147118969457108273710804830202133963555633075722117183451382395391860938238926964858938856364979346644560080903095709512843934235121024088060890195617132357554433443564515275119890875352256979370495673655073445493741521769829361394430065947971378520231232651349762999355960118745998548374540736857757456410802963566741294280985001772310189103305617734684826616741146745721569978723545830537074281581073969138405639802098172884467985109140131488007125074256815514040395281970762532045472769975262921424220180817831143019768087838010289329360323988458249249571118509320090706911793400225190153246589689789786503598677618806025688759588405468460528431105232699246970608357081739573995357365301425499409488843631228950945553405006523629313449184215392127397937638339168407889429438092295014207917929418388498958596823181484213637508960999266103850899553559778880068629668427845682740930632704149410666669808399665820988291861461551932007700551946510874627294260927143077133844040676849671358048571706710298081044607992123068464525731374161474660158472204579687441312945386299520530744510172798766702816135567517562393750626443438786427356560841053455539585781968297286392775534379529781921697185714780093333412210085968490415294197753445148577687807181858996420826173558234058521449588727552322637552401265168921269594476836442920251625051282351017654741622913098174149156008590477137107432703384969286780965045513485821069306494142829151002657624300224063573225725531553868363533455233168201634650398797261409048465534999031260638550708138676915065333803208064703122745016533120464673785042898083005263492032897780616580511847050669910286608656031140895668681192346087976393360296850477436333322227705915740239426074200525082300260349709536257562082362720113433015255107710101452434797786202216523452357679419922560932771668539730260255432874196978923521434073861855106932143032472726437039294972648310875324574189534768579828223407066602884461015435513177368562524186581247977162668619221629703811901713022736996190549142982603867835195294102553186382020135662955800492737062073046287665553685834712095661846469813714173076831251511106521401785245256808803041321550527634873817362247640557506063498844638795184400335599423479152140064525342800169171421818548503032422939655254748846126267838891159674034467353341467305347214045143500918677288751826575510560338998239592521732947312935226560472893849782450188490834909288369258514459117610687357704114042372221729835473811902858155288530413856104649195231377371254387827851925105058120277771323257771610970629534375233205912299206610475675506546149263592404332023771564403511743759151113251682340803598639704693406373129709329945903877913507098987965260347507560623873208388623528840665706803052063633611623354684744746405147181817090489619166713135371707731573326672707530355112865438323923673579076917445840601022502976572241613450802158799005255725652310699994205484950488508114106705786598842937981003226971659652482577479434318780899064593958741182827809500176410432616018355498188170247515632473377488702292990106358215766852659017998904304612361096503965457868760361504158430860131661624058613140228809662313232862119792434941064154617643160286170058854058299757888528514706449426341580137687729427091853362293952478610554709917149735793656442175446562806206822387020964584336710269551774299720754132487072043834611872517695108884160216262076675715104417826956608232655920994063738074936288831768501335676911017627552944360027759659209152781587585289649646699736464229394145308706171331506396667093174343986152877206409007473699899766144283020922163907059033065134079469491998388224120626543980950894614951759000394186213586459391054650247150897332247770605052445706178780720093138873761842337012896955460750013016109585925543899920575400340715280850794030071274933141536398972219284919761827110224447507729060433318547147724598867663040682344451637900432249202448416609452898003903203129616055321401903182289839431939769073807391182599890176043645504106160907558414877042360484951904675658929504464579962063904754447010296551890804009900224741515990551172960772441515557781281467183046295309607957788536739571696415142926066070077784826750063923922756045993041249225481980190112256947429205285100758997656037465704166265989641223923802380078803410036822318535720262010762509381027150279519876733651166092856601282096718652333956364700983673134222641073527367567902518482838021541444687524732031971287711103530591743422685494567043411989272745347081815535338375340093264837297378354601678341623980245136165775279530166457607438289066137067361707285328119558165414350860561012481575441955565753384265530621109406910360077188439672248233009400652451601406877251871539349487997772466806921032782174380776616187691289641163408941901010174497830425124865152364579426953169197907949153284726526503410059098687916527024299283497373750239151890618634114676165709251456685400769584225363418838941275970446568158382789179704998434903474830304176190051670877057306163251073575278250799365556752342816061771336920037968739597347908144615950060009018640684623029788652023782038797841889082855212700546472491706198612693016716070311916152483853730569818296890880971723462682136664375628362724185526921575480388539464481069043901850127030341761336903842237633289550887888834142837579463503252559881262838785052146135448162721574472874578885463258268264396171344099023563448047354309664142676407934897064431360322285030778188787255970323616918121052071258268147731226050598648480427960740798569648913083101304342188137123254873971497221653703084061119860881254078189908753406911250435091195242497811610073554865920587119354643767056240608547069740037614530701070307573819577181863956617427529931630052012347590614066777731913936033366382151832469225664673219860493924244186967361060507562270377273105663348650170623750075423830748791494979887163648775860724700497884920015024910530251620331420768957554526536201462784394366334097811797286935451003288371268117393603985656179216730940910097174917760731666960337395009077296650120198803263423699146137535391331428026224792608694916388279707109796351093016353038334211401356384669426277210204498392526150363807598835549477536813748247870687129677799301611312165290130368957139395713507054774188180384931624408454081742027081649312961009374394386989870215524683993218724009121761187550709849272956421053484661290736479694017966799634160955028205593895244450115447237540742938676823988967216674102399001796747621679585443254833529131057802924262414729431114309419421479184691116968251839571182461435554435016002446983534326499277684430284962674606377163269730130557308449488785342619791225672670637315562878207700036832509614416575815506100518138453739266962176186933271423080152435380720304286532046211522334311149330604731607984124238515898640018167681346625266956936932859960154086461641625900298855888519914397442025677308588104103778643031103039515881664939518294244613481821289512408801137907817413514944544576647840512247245481737351362178022179767150544521410115493460214672937268825633525801093676086614563920902182584666061446737800948069543578373422402809906646667489440324991388773529078473576820792462964522361150332767779425543160625605334359272054071714684960844103378180564752492231904799651119852517973848180597809796494409766087319070360807544483458011268084065067565006722228982778039201096727322702535213605623661635795610243829962667050429159360031074582794197404552121690151272820344523199631636100717486587793628599654508391767343906365143502514440859223617725615670615735502323651970237129837926601236528654887640823333443098932013895683021293984798043107283235921380507298386944600936768560724933827532877695109196641342163825765660738698520150864478249768029927258585987331974079008789327161691906300084754676033950352025390261946888080343532093884844435675585584814911375582912192963283090858160403424109771626650789194178395277845665369580491924615229922518616162019730469689215218766809407034487448285139814701124619890863721262973662421081839316551253956161984039544159906041495082777581812951090253170900701949335444019932194819453649333329919153544723181968431537943274642634091148887774835981969784450457016373041403517852820012885337809438678826845391346232238953392401568399814669893679873206638466058346374682036005055070031988347963260621614974673412196638610588814997985049144819396429598614915434700720741906577575640172227452240740326023612572763025343473608821458369009043629040741408735351670323433429063233991796278333291941081306443841248380822347795955754121166357931627260243357439269297838484376117148877706677451104890234188167938267695847274587107047330473136334867256076025260459004570352779973157338275912495201161268323103912178471145950545500383852104623815124968764872728566158249881536846014477784707900599955142150578190785316504186753084732452523247757150147434506172548807746948042297368380115017056535719403550206934573968124088883607978260590701382755882367657554447642568481485810338909940901742709859930517987176235720193680583593641173288691001287872305212197316921276749140020933596009318910499913992788290414700825213568924385754659701805950378061213950224458200021701137825212089584391171765390796965299196381010279251175291808324879063504675451891227679040681398801427271206860575062714915013852923604697826559088712873908211084049524353962768413720171640426117615604583875180116670968193655613383478281988376415541487779085461901173492344295631380016982844313461984026641014343365356818241769753705119168217377438890448885877158650433052400186261713574880901703777953597905732528821999506667942783095896008739860914537449123748333835158696730213136534765687364787998187301432632020780296303170711681172475107761822020441125893683461328135379227893458218317922624284297458774013018661123189714388455271525359024741970586323242685891702668561642762885616616353932147411057940611519657876166147341553247780534280683907726666182655013861380631147820323359178433635786416783419673520043527616889728939066845183721685848121048445663382683025981969399957858636619439382901139872494457859693417424035461798216313579194118363218097735990080450782487715453622191102409176198649207525255823801416538595261306075470508770507398358672376126133369880359539729363295716072299309595571558588165723518823009128211622918642342013464333110236314134620750235744899118221004404663059728026045057737105731215124576075769828540583020370088181708779963229397019222635531237196189967724998772021186377089633947796572008599066593757984417881195491135702235472879115664680994787885416033609898004522711572878299918375216583049437598915264249884046834866668453782571488034825774926047845368487859193960348620019841495401649400472317547880798411120463260793845864303016860041834196104418307724212388694084033125493312597688755481544286461124938952587794556045189921448136293012126410265974607662754016241833887485350477487714342671357234408138935552436900164317775177038894531960873779960406877766821361520475147626416398867866008577091175605818476050919818353666175799345285427937473898667994664501117896326816545125048193028997561177946051468574649229179476154616029566933182735001177315118060595293262779164125010832617475033440975261042364337460942999951039602481934803801913250304038453887419917862548328607308900586636972310951323070844829272119572160805609092860244196706161296448942300608895704243661879064560186408149654165439800078755043385864819540164173080382412198504048034479871448375199771515977501644064834409894435887507427228162798349759421315961781362045730150772800807109356234170410472422694572708748236084730639525165184913889497745146379213561610861102984892836267849708956048198728204824068294997541262259769173232539030942789581571709604082619644982700749179749555477705812770658589677219402207081876329582205484904290294685678091947020761258323290034964636067976091376595035845547942610262824971338382505957614946024138852629606599191286903926473483806705435546329839778005071508227679367387175645333394357535188406428602218305670849978453648288274411292874201478704784492481182925952795033504733411243952225934739210340412005992244026386809106570497907593599847596547207412527215414172671855311220387828131175985283437620047589786103993879613183020536496230449591045632418644449552660662269750593341304684800416976292881665180780316530491237962132194127510697486648902275139902599250853189489354642779810532235851566133952381116946693187855272508912724885034389682342061537458127961386958328890377960659272472585232804622303190885733729071691856472867497819903454549719328200320403347490165038735338443069660646460547513772918500011095410677187045850227674317944404887261126630665797809289803693418432570594100714687993549832637401723000813590303142710332968732247524852708875228777567582363797853668071477439641015329523437060332146555475621753393951792169846393643557845229234687815389708457756221482942168637625461175594529258536848869022056692187899088860002271441401834240788894638812577930124754161152967820548455959602380829442182321172626199790353176888775032817029182893231372131893120140087112527269939739628854913655960240860641062471617761978320465052341241523904889855452678955539031069820707955880104759994134387550041019587018719117674411659587686944589002031374872700172582601131881742190956425238086118976093647657584472867049751368378596261507558396044307085119271997369914099570654215897069637706342355736705047066782561965673997651032610820852236747104268163433820898268777486876209122438616639717578480317601153776255866748015950790258175685237319770884814952572764834645775469087149100990314773240282623433345951681152640831869351400748023960206816611840974982128061377922001003166545157333083689502733471200152761373218721355421914662915247491262346706782879276463115110276971499118848692425732403124626721383720741655561546417787116970663447671526588412171614584240573683261778366151229451149103763929824126931041715209526597409659150717915450684523653767846054586230969005161490459643924765633911893509153567212221062243135802184564495983311806708961094920377377947231303063760428504510730791420721451472907526187389282223246450608282627165463201036833576409899959879075005138628096664766904281812308289685872364834335560778062555402083698257108447381186204533475910218748078982201447244415450453890882968517413742968631443839191505958152847179765524077674786671229269723903796838448851115005297211036515107985481435768458945361112597776941145394970263473074894035972262053570694768944125916650192518775081803588540507340854090966199176678794939784137650698027721568676736657039687424212565832868862023039929982001669610747788233090851099468253845078650923002911443606269978338075505883174081052189584360238386948492383311287174231857438165507018900524868244795112128651739019494529279482276302806185377118039323848078056059730981520275338207034920570311906186666054208044503056600198482505171371455637662755571683618397065490500629131746922361421662100675360311958660581562755863376075239003062141436836472609600610532724874662861345274721258474500692397288271757153584820616158317973564318395321964006276194847081586893815302457696049205578785287021588379284823093286168116724284068600750851467555588724569240768855515464179304471366701118062472743401965387315383583628532097490965508675758149399850370569326394360745482858751189773752388277465331637506943995641591917141984105179667603881499947768918188740452656819488152579147001694210842988135279974531939566361339179392469742130019277462758030024528064152081255009219806422573656860808882142140545277282966057344037995965489190466673930715068191322821815749296868255127539499457318619458386577673753442839525793895519833033324583893282481021344476615435747369721768746986018183518203154680709950401733622322293089371973322982991986732037499848060625183335693907901798617734925325951347586451575264756407087303919317589329642526579479075929356402939047773108497442036928879941957454748618211410938505767055009248994072976666433427371205595021134775911072251197445591112457298228101407246248649529994687958286260553256658185577920424860250818837862739303525136180839734377565016691448583799350298307978338764036880588595564786762137745693167727500639995512126343902258094227921736234787278547262191419392493413502364368053994035385126156914931194470069473454613028726836221794647542950899743938190007297671361661990342454209424357575570982484035158388871186004211199516540063134344282899054638312779032136166136938571158774470811197445252256561192678685632773229314026982448874217365104045987110782317470401028546862623513944443157478283421313226395936470108548614899438378428203629751753710206492119389497213311884759213450048652450666985234192144603509714115906949017358461769265213181669745658186583418323397428042441134659997108274717060300991682499056715938100409018061147764735178084181146796573565067780316131568311215656240205702937849575336339188585577413063111746476637348972031750598653814188911218644513516741844977321501033767854548122872488568689050409345398798997933030072176450482738388328780597571827461205791304421096184975393891847682846929469870098606589067475550164622280463160140566421181338112587257622784274732537180621695820992648311043933260156367903718300555335156564708354835090186997415731392721945899210106792241849220308284495443217093041641022998223067569299356806438465385774998674086669702041776711144751848569395172156520808052075790688934815387438624157030533549820777289408911491098056969583902031840259025910990218672924777198382666857397041131860758231781703505947135550787679793244219690866736001201374946591101752619153198204451744472545062907517896014434957056463202679872396848430409078566389105428168819636392193300552063072836628458716653086989049217534022873410720208701638538566670196796368419979497487282462156043727241989905855799207401367508105319325418041620136867127847977563169207815510432679989700331082248807921786260596608523894028175595655771000619205434265654027377029155626983252228946868436329455820816368324757981451880355877261601030252816298592823203327552503640227320924533555112770124719636877088917746951083352245466574467090473833110279004173126760948374614932202657791130873646538667783496116555196731270783463504392309012838730412735393649108138976859343324124569011278569225447726679369112142940336549581440875563395126819637557851970686505276520120785451606761024617175811975711735261685750515327956432364122592160318360738738549051691026835942956067924728714691174848473019422031151504513895929986212104063774196262653155238352219897062543796438297105771904359135904891083555452993443947553530184411884204799573850546162299616364872707474787072304618634153934653108360374257030491436969606463428587219497597007061601310185424172834582712597084162176193532510930564764756616280525593324915250740287820886494755143049913087291886512007403628609512526759949012227461095759983511471654170320073148790057738726216464987792221847662159820581932811381484244879303164861935227116443196476021437983361763386878171071330653827459874449278757749872428462653652305542476189425034084164910028252958371453075301537354756225814123069328085509592849013508639010660972292222214948173551018393854381770836119132409102736315745050984851750968933091964140050183100048308192101892419370172363558418496129094906181001946597417377712182449428203018149118908493710185557638271323116166154458176296960308171214423582118923276947290921505322042422541298163795427906052343794700258315681316838118379918678553630206063434474651121153711119036208339389365335472141018623302437663658104709054320490189181487339214729826066835837672049688100168408474347489703263501235673127650137912948504894587435037415744638678725164306514003095509145029061174208723701938913556931333725924652312488553146924759556045539908779571271038920369379384399226275809025810057074240882223697618322034007917699963844421114824476140411345590096545302240636377177187020358290303577276552322411454265182323794687185542074942022572266238370649012950413555989200718138365268683487097988644450658655181102491544545655042894667308802486563503778421424153005375584405596513291902302149845732903316701278638793581511177000236705781774659900564257925220959731403438340289827164715993443926003423394689057228702562373943457863087275863650819958255969762610914264517450971690855704016426257358314813664509857741415941316506128290611552276572088864088294053905547171732130263209749414669478625938708017562390064926056124056813410191671060764992770440267519764430639548489279262469728859167482294099806971062488069955917017177878610021596386778571854421530952314677584556101650369463348474437652986953294371782897732886620895393559913536745002378907107397623289330221020008637244254508818159417215831571008758688520134266731034388898776868430480925832465313433176860929624653011076627911512058846327191974265140054931635236810755219406792827757210626548006040197167789900943507990592696506513283997782321381240894429143168541984993168115285260800792413823169371882231051804024841938989833960652897051636467905557095565172761454445790417607331018135829897872568406944853233635371185772392451628592045564519227659306413721480278380881944769468709202961802139865880316717447765494758026725836681096869514455422541531667394878746835641804573829085813263746735476908575580541784339422862041959644795941308244098945400850648489081300388274612469186645875349411184108880263452786303336857661919069281591754354396601781947029122923556800479458515197142415737631078120466021355632883402746280536061536130214727672414352613883760168595497353655129862015548514838676853597174457366553025714435547168860134584506385115302761022384095650567743310346728437202934783107669319111788895980849725588720202551604578515451480175783843594978389555156508646634910071245536780497749735758360995656338768589738669901942679411158287255977963916180304218277847572280864132898230730059819320645099908971587650476165682204322695567194189487114714357543757177010177338378845374547428783436064507954173716820240603308588336862363678877246462282210693590507549209888250214358810775151395795071244868312324031645771302243770983831098326324093837607742513965021413766127093040332255115267166457119589304659292237802161811278512299745584721413077592771482070791136759621503851182734228195584983704927377119805618944043699293996788339209258903008175843923343147510457629824910950407592394366405319350407850063954198864766814533709525103269478298655339522636599821444352862621013335628919927569126285544910236191621081179819957541356303776993632332504216130373677013127080310420452083177106127834192744404709103368691192974925509382905831579762820631682611824464819558558241201740571264016642212709072086295903265781709129936433620146998826074724933660747588736388246708320552535353779752391961756074526759778577727779828634978756728129280688479272960000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
40000! = 2091692422212132363320455256764327026488373544387534341830741967982111505751217119995973082785361065166789606205119781016319696676957581942997960330630801513429863514028055719214604951981209395152310820912618659035454248057916120247113319519403183805976996755886244525394343474744428152291012215876121149773541800767571165833124465347361694727934296870115841274848932494037001286694767974004634204973971602786439107331371187066281455156561556186904736420441461580499411235636960476704640175898738174625705802427232806282563056864623573371009055276850232848458310267768728953128288390562928394253308190863656763405968632203206277892875870903126752225976855862695941332517471799141749887293750723535286401115948811769665518406310569322684538795876157123192485365616496825629677822385727423110770332677338312378944629014680848309451567432227789070000591024489171142206216229050069184693361578622431254269308910080396001571505891722801966151102002834387284354089359814869141067610902242457712053965956065153868811440606359305837784462530705806319504693132316824636671682983334415784793487429668393784900235881627003799952620954422395772354312366854927065770673580138754057426368245202547432822277418587901750649588707382443767123660947113446975885790035927572994765556075398836300123535550595070717527863320628678558186247298822112423162534328065668086145651930418339617149761914083839357326116618397988486646499081937021827006743106286079679635898244687073492252630173587218842484396573610997532883133279279457697480945949299581057391073017416863560200423540882673503099956244578641099192587493131631297229473201324292882824090951979702135258237933633854413379287525033369689414630526046740509578410216328539918065940850362499350136207143416802956128742033114218472219940330553039785771977704966120155640303729771032749494575600654944373391158908853311303183949875426249148432886851117781154141872538459122706367431279156825858429217116145769692708638026571009402271886633930800364121200302445776599805793173654462440557385110429283885624881831768453021489106953194294993032007437997491004324237279392198494485983370395341613847574411394992033212312541754070184070691955812553658468153682254728607557772685141428132190291033455298338262810516689174685247078362794668001502312268288358593623011201374625449679920356698174627751183648251452353914746325422365630179039668605201977324207113673070481263543748931818550744156157055798239593504003176933334876595277069210067861398291912116777110771005910223394339787850831769613846207534797781421991360136492088082276814193162266230112077286205711160623477175457122656858260011667205653491124729499078611178826047366774107877330970389059529855971793547348296418554403668750512207467345063550031569688643125303603676678411360320650593002807662022376877049579697019961503441848484279138345739632151054726354183068420217992553804776250413019957518643044083576368401448537044318474012722160013939361401659741624580882833056958992628804470810980513984913499976947386343506810892147889490882513514748595990466824286616809604711391920286985697613753961293842811080240655966307119236300195476506174471780145148117226921049319312507028634824403396958525697991536650997385055510447093397783647364097152475943591177254789641158951115398151970794466024316979466244964327435937193693626243894551919959440177711851891917343377617007135424932656611592438402574347638886978260357585813114581863908656379155922602114906191195510774147165299560931815108589457157638099887042774024557486733781276242241123493274417030876943310969060121194442493677982064246765055475150751373556820072267525009288273173882731929481852028227609692674350631494874488901747590667359939633290734997446447369208477533234119762659259549008513088106692051539748931958160838090822280107805766989116845888796944896988145909310510512937763747048823139744447966391730155639430020062266060669542452840992292611217015860023360853184111258508095147315729712090323085558911105268605505454591831858392377039412805066200739715323276557921570145745470791998543684375291638714948753610561757472332404421667789699380638156836068050012569295760217999268643367060213449502201416546254756575814127078555986312239428421121313143327638093671104426086801462211388750527256291987452407318063790268786957553529876828584837160117257676312470903865116038478704944084353091358447839286902016111824877343639292586825886045158319450028827451741728550768172063666147339978322909771953729647486715151703272302185132440871467514067160931037114136649302651444161589346597260783178306385828799922946389734848932791907790564447687964632465991121730923686916621432305771589373246644520692399796656541798381817141415200942023778724028010311478862222847657378597287474121840702606031919784395588895700546451257152867487167152275040548497057126412461818573906005025677012573092420551469645066438245551652997750713190081644290229085737121083375603603762064882720225278117550320047252075343981855069131530284251740111936589161036262577695564549296731465420035863679488477057693489634718492796955871698704956444385371639490599842758806240166161652726465865589405481383259465116598223614183005522430590027321263533401651555657207078408926796850218990408016457321023632040559030551056872491721763542986038507730507494682725911483535364143943357697951612757780213871852095621765014146825354911985297316544223335896099270503349168696439389348060059877642246874492842420504649798040843583245963833943593200988190224545859327697149341515464183526650794623570744059112145214831376401619310681171903579967160200922322734046218790238291167749270664670439491542787007648228491253421982382836270737959807577666280688639401182920401097576621796865325185463582633117972471995098568888295527737922987479619980427750215192795556390955225775919774444466619831049431447373454943361367768186286743603278067346289343215265650630829015721375215222712610651672521441726666291801812820141207473168470886280370628935925092010269141292037871440825176100081164948285304410008477738831120829879548416201513473983024712593494922219476199194624591639536524292580390406858843517878528086897061818777649728598053640765941854830970241546032317113695332443791833166231399167893939673983108407129716152761743592462290879869333286060862172980646917804941886475454155227351521923791065117026292903160132474417619645213044793243168696507471984704689155348270246928638480593042115235383701131154872773234964444428982277149539215808231381169237192883775502474793082367495067546400303250918555067793236393800437721956299163926556435312561280736909828264686725989494176421148055678077780602513724107416498839447831086736161264653198291500478392617664407107029738322689809940527426508095029557326814734573208912298154044423700529800065575535885854573202454028423436197810805947199677768614222245844932164454019291137692141242069920006817768608352713385206706479064626664894364070507685749154439227331264620194688514029949067523237370789486655405448925745874646599071566268655952422999544629756438203206349812165611281378560369015767077439881854194164890236123987882565251865059649684040287970156218620793151692833662603712536906676260130568330083306540254593264169106073413254185898339865150573999900811701594545291316225135555214763673351260055876062044030823692824290058329295796879560006975655143144562454843937568253202080791589787665698531287350309035936779994064491063200994716305352165489316402795961373997860060567028521845950771703193897878208540706803196981377498004312391325470092447099139337472293939412886807912415504874651420362256678523790405460435170913475898431412071076119475942769757840846539182415667919018884440220446044453771734793380760735380702277328932289462055629464605715728294552688460086318737229952117735921781921271890943641719437722364525505375514133272714375911945865530364308188045735715083952601438323641504676704163710478272874881317712806049897332831726950627635099356200610018303787016948282846452714118925255057772168523050782351623406178385156423148260341834332119260691317217430351491900294151403817173212571448114769190336679401328855343239268250621645017193402580406234007171139688586534104867254432188315212586739694726037060104667037983016028044798536745497758019637412411636954941573128444809352314803630004064588996463494096555995710492397999694782161945167053873412496465113037344573412033080991200026222775800674525939585522067165185262905055292988298503148542182514721293252781248656738948715834096170528163513469768313420814839285561733302331230487862963225382525330332847551404594205817146696537313329873104637465020490673389533533144195245615705111232982679350482715749857638843419245702434314313888244259611974181984660437144600545141415179590797742311061128649003422312480909645803492530748675281459057657284043233422422891963491362975489006904586690601443401474020949506178312126508439002792764270684993714748908776089391689438509848416697968177279821271134005313656240457166669876453894770101408288803281409775460161741279822806968679718914777696324290430923769557270352787615723336077461134659720436417920293752094605445723303585412718997125355207015383405402290198439448163931071251290584141279783390598141827131603850198246636083473064046335369363397096171465539012020595581089726448104771565021774760050205946445772281717234175138293718919910597573989990168880126631760234997265599464496444912860417023937629413071811264521799548109051742323769677403012263591282823273379146456909676717210948760792378611096990794215866182108159227180875181103701507391397685638645818814936921607378002224116486983718962550362710979798236100496018659999113531101879224179432701731684486615116299406135256067914907640615960783101555673985115832711960327730564403514539961785347214053737625393474247224284230497018823916996348385980086957875957559042498077534349513473435069481843047200779220395490981695798714962344032324727306406339924676379995149067735899875750515772090767121820084348010194373694356509710650385419842642541666709191152696760900454806994812140947588726975414494028323278750415255406876540325863962707227896002706808985893687914390316387751094850371633127002842264875649476680594094448779642141289383607857415136237820326709509639058216103400490199930686451685650133202607949029788507057169460245779515219936844811314929592274239173124524280236091650978250485732043668828950209854845524999764665016254599846723816062026022742440224077695889031451884686407712385119237992988550190240469072329216316472152372167668907058871077067901141756971912502833927351686094173245000677080672804799324758940975475700234846927134079277354546377782588797603870409823956871524865435918313944834283994982339099589167856415368170782648633458815865659208411327397464795676889989418830967160547449468705708567642513052192270127250869215316096337428785280100738962459251781229268487978342845255081110762242697648648123281291094209656542046971768475857849732314774578624564044482924402694745608592678961053319924229300730238124949749141137567795918183863091217567420774986110740421523957348889634236072549330279340222858815684196199953362695765084814299082838430882479413537315515123137244381006123529848203149077371883338434669674316712961051933303649813967352772888329058406346108316122835380217511536573454287850602101398486241657972594147936848548225164943099787731326784040628613029067745711206051658244161296194149542756755504496584881065866878966433908947133527248715165532942252043730742878745731333885937391357075801530785645702199788734177784348263856002754632386915536451146360920729079344594753620870771537535166079037287077278647985427065655343392110614820123461133138377217338118984325243564152180346714849787486600447988520515373980184349484482642905841711194115180355663653934884163908802692867734842017661683860941144025373868067443816602743584712227785375653688118786042824228407896112249042547172137057564162272164568878602824948806267689742716840488939422030478296372117819190513138591891358731321121334917466160645442499452401772580647235566908992018468822739502446456447775906168246835909146009454152451436731598145030951271295369288014897159345912235337749945509913245177101097070232444082165971312343576528194199950421187079038442347022616910946529879429844073124618169219003996094571604349133412735296010617829762773814274524802251569171029370296899794696511521898519338842978335530601005492538867985201365488066856652712272155953899658981147942249738017826422471795799757345953100553534605592095747302036373117960397127550340622930655799576335792572521808418255437089644215699911005527880962120228762606948667591107467532490082725030776476177035564609314041363173730018291034730783351813990191560205618649738914169055754824659588597989494868725330340672431189611236235278008368847539368044102858093446945146520526108856437019780397480228723741276031281692895375691552169941204056869736289218914658521345745695080765482694473620502111035509128894932418845497301527941900109868175755285765153241282950371153293327619417893758693117762564626990823782985178317376635213121860205808311722488386943312775901109253070114559809228592989824175267220379970396347875576371066237948229665651265026709622400147360001135369448548916361646607285395245353607553257455353138986232573641904018572225896460326642140338242864890943589622925057841555590616837942014789041919988582824942679721595101906337770841561287257227525078589822356741494738611587629019413155936987015645915564417800747964859005240689846765147969579125355974102475844544103648641274337353843851711321881119289926505691431295668406095130181240004033321322673503863911105489176289508450545622046459360574919909585476006978846331009784973559153072272184443218136684710158096716919386677522534253422862125909112836127176520193328850962040821709625274821686041602621867365107884651213631081973017660631409751464565483798752499815146492726471504016738184238093664739228361687788610622730373173976867000538574995061637745285260949020784541600127227112299408931394210523182171683077603737130948816819199992062841108871894555222010078162500667561373284023059288212399325033137047382103499990136300731198931053856437780285647332915815926915953867177890689405255634804219792732175831473439595289303349323213475318122242527285815085038044045017739996767166787208310799245924859442303373671083642091470188153641275908435655249687139579563577490382024167094294947085732406993164316279932851368122037802079668531524902521770448621190943979042386036845244110344726800515018098534609139762640156569193331150460323315970428158616181683471000258091190260298602645023853361648284717495173011754055552603036051144153304816784670000633666487873500047223778228441747623774818835522073910997247359026856215464921335081562909341922379792924362771122755403906627295053945277920061362245497370570593923300315580486942937192722812117969024382159484668516452766649471906185713205527546239721731858212884052196468088257271937735801291922823991772278874364401206482973698472061870216722398942929095212024616559781563433727843777046208818772949740464557926039846901287670509398230213478551878380859646080369331325230511669283047360951027031570693685101275886276937319149922493098998858812121211854741114901444514189952340153969740253510396635066083863666309140011433929639393280951879846090677925410812260960972709812575640503545063890604895645441732348561517355829378454146001783650554984368478845512852144532285230841793744072291508924034372029892312494881119963295731865277059004987941885574067758650301544888016536560500804899365400656288977351353460889151943126889286096646935431287168088072667082748434564942667582843995230257743512211259795784181896084953413241366876178980031279777407204531140154894170214411892179310516781994053465580782474862223502580778720270674848520204153535654222269731358358744157210500595934305253160576928381491205932894592393694441882343095426007402752314056734446405385773734075881013350131405223770811340003632958830049294202138008676268491654059952947212788732503987201395264066731031724569502666608445818916827355714111980165110062011077934385505109602276273401892304856785394423616058171209475526466850102686248914071771507318436336593237209324971167482998658076005103906395408005535010649660521570607880780414853832449443075958522958611341685058282223980734916215403470975841073595614835154837388186324147992556848315945342629077422012320870407028251373147784858751908925923049774524977760481210369336311383536648409707341273800718417801271533607553555071963788064492611005165990066190678098009719534521059096882230770788896589741446669679408978205764958068090388488683629942423740552004728616979839056860799750908892547260717961892613923111423892700761773013059223092466522966544365325174240901108146095890826066597658701341119294816874913717834924772143596010967611421340666476547313495957335127999674247631721470232718607535701490630392065855453458479860558614723845478711181120211951233975264986786598491501508861440029091966543390989054909369303311970489218597707701304641118819036109567039036350411465122159689817503588327747668850795014474024426492303149958966857444958564973884513765627083128860970977991541371753574003180829484732536530827742407585216218883142890263188379896676151568121733302458853443467765009732056292009390612692312892128760606635452271025220702225041604053836123632630690160821900772562411172063637432611901085301518483964184076648197694134067436062534850564962637045503683928926975728706425065840116413628996974655450811145941502566247000569398838954771474480755599940672198742811204802192367627193364750413200633965435332698914603334598459114343249885761283874086194829549155438930464615707667000565541258551502015920825655355271134792967701443809363031553911207351250311017679400043276951704373766675074119060349344826059191818486631459685366249991496793544243649132707048424934542137158034542735411111911551907026691453676898920911013764806959484752282235038220663411445648821911512744590418042853394691070120762301820650839899885492835743031463852827837115766653818764798279956513151607396646767150118363640575245425808468731766180006640962615827482259743228407789410813077042665079457715464086115278558414480304207550266819575159611791204635000399666155737486193283019320961517249086986700409574512310677577448093560216660550711564787124239289702871417703812586880442048090653353984469364472431241249896045342711662617789054495107749437835311400482264276975716915418018052300338415512712694401441779755034798947106277321519957804049446252493336664853926686516275128830889211853572098927583538305655899883812444169529679713568329085267236765459609579509561961642575123919705771195089710772063024017552647422245045800740257338523672872953977459268864391274165559985012767243598797414836422691336386798381615893450678184739401949127250365989898272947114839942036405754240671219998640450934815119065712953862582027659437021281388450896523409033401451425246422898311631705730967688559477312802363850698441279785343470953278918415954723532048174207508990155857886653048694301623537022569676536761535709472145216725254880561841662930273322866276055416148742157667993511569458791909349703240350573508174751008615069145317533886841738249961138373950887070587212644138773454657787695078567765810567132871874263665269436880137688468053708014361604092087495371920307762804863219945012247815583624162551475746700871309775539414240922900338783433692773779009076215680651312393087284231885863562800703417867258196281724635527433969547321623239549436323628457775639927478659981455787972831619682620179993036637463255768222005376656879581885362624796813870334719450379823459195917201150987298576715862753110697469966439261059085471398863014854281270825238660871229575884321867541155206824734731927700275651812017899319574379446596703478134814432390467830559998499268499224479676069745686106494647556342526428636676471776063028366169739692209137229881039794129048330927227395906419981793775302391450577004394919103633466810677714153794017508858213748814115053077130199992422290550135993073874317456714457271610974476982912857814395406174162394869658375801448880741140918702546875609111243855910939320540267951163316002028231176654535642311354026558229771144389378527719666596823057040727608355592870224122949485713683731628377333379338181466600477747006680104832694320160147500689554904036844842539137843909264004484572804433139192243792981407746616320486441509518849539863676036620328415583619941851473297169333536265280331986889837427837698692419995529375954112999880954707644243200956038748988281888186135039293440012012131342859282641176650877403958508672122147826956376227442479762466500522741256864616512379317194218402294626800138901988679581394781821833482571576896097469459444710285470254451338177465412314146810703986803633159141518377029566671998982628118529399591168977520812463725506877513259864505662354143833665481038450217190532511298406519548968693613965008125232735070041568177146715714057920524637950584242700150388416609506982802739119588046229006988134340473351033555028149796713932681078246525462951658873335670108067169831199419631906376981851349452633597391439812960649143200392783969798374166670255771185122359341691183496988977535205434045858670861483204908093253836766931899379748360031387765175223852435248215886037293475531186258834019131031378185094574111109236967419444597694083598503929799665863923036302240558579603553957365070718344321849086291373823646391640329065999706539481796668240705144754245848551199426593485411349873747911320661324612179990327239027734215450511252207137622914888239788212768704046263934270852989748340744933812904023074453773205859604508497314406005902072432513575386577211614913315511529002876021107625163971992547198045842342507811838168181934930545520792839409792441919930144036089209374500385505176250081218997573886378417160670317730309271548095333835205677640502587348472327046372809725285024982232096941325258708216436562575277865574560565553355005525071620564609269541771688728050286546013558077915905033507533762801657356167145639955027836359098893403609587332511500750698804647113154444487016525910495906683973568118400920829473415312688170183914534788627522420804181242279397488387173816888411975470812272907509758214838246481494161363403779686025834155828202498571314641960109282128653348261646417410357308543306809051611476991691980525491617527168483875782091590442277749879403465545358890192753025755639438469486877547069722275220027186992064959640242123928418492845644662164926555616804262077351029722797052308001198099114523644646639294686393580360188844221158483363981796476675473457101467425129876527366315671094956519880728536076781379524628204173315889908865240058533842452964362413437386404133423980436221788770497572675423111668772979795912782275651757519401066108222728115411801533551774124656988433905653534781976067328810032788885106900757254825748722725437221787662779761928614089400863026245184732857419338727994484565462208937111394168460707940378039267468824113910712036544818828883310751579509171978519205846263068682606911857441916973281694225330937505624120885178959007829108671330227958124175103825007693284286988865569378681522198216301439880888063341419630745023514537456104764839991923715538121435214641732821252719482409471353072986733206329195545296763964374897933971498341955580367870822268475285193522973658685821485533414993459697043308233728085613284899177361545562879859330331054136866269238403524189354054252658077767788225461824636777603197240597514759476720640619494387482809176541910909950920672536079288643219570536332758405366822472467639188207027712828750171803473243193604274504130355172739871319996235397522598938606074027420396893593906044997778421975519131430213591007561743710242829889118532762801975003013841461550399197871299235650556114104562415420271914748756215397092959718366670865951151506068757863079582246225915703108009527764377564614220762998584345067525428391381756015460676853544960767398500126857159669724059419365102599462734689587019750243804425467931449088241652978363850477632775941742658927582565185347580392148613320022957502142722419098742199498021367399117378808491747147240430500696290050848430588706602767245501064085228845982271453812762223103827068798313468511667443362983698555413290554666535181841252537751234322338373629200997347055654081059226237661177805845494348114089605820183099079400056131705247404700226040066608530725791000468673476923534848607250668631679206656595073230855024906161851843863151444649757237817052025170674859862727025797125115913330110417575415852441444449158717960796772866525664557572323043725839266295520699508076750684643095274340740081713295058673567034155590014185421871295281830457084446421680854443629140202508395623687984689766525845676452877127261141690437543416156057826514596701560939044198451079934771001348991451529726701474736104897091949011517315895288046575811883044596023098178524843583255180040353379805632426903076360112437136231067684195861221688531014217759263532681206173929151147903156481467671146364407277672445993721565329448630575855951997772837785614985019960703246119387291602536916770226771701600653589825954011251940017740543006047863312972833851846398222434136342118360218716826074475750127908921668498004724677805986626652813923385848667463615524676643606611152809546627585587106923504753078573865778230824340687303253484345856981339218430463416541728352696073546617806437964539277404001794050964292122660913781631565216900276528950087179223286772778716058805857248361496638845715626120874664680719320482082534991335319123300444353469081484529057054850580026972275902494797982141058266695723472512666029094100542858959461783352340735020665766296923144461609142503749554164460921496925923800569304003986550119783335002975318625143757032346816183326304512144420154802561584264094521078266303708101286637824552644374656150833935332261052070165065800812054095550655803113360114657722479664894297703824903059302958134873562598437316549351313865404779715688500716852534151176587041840141393843482523946016758942728811949332468913105536380340066920193371770131621935520852157376901970472590402920137000928444141449158583301453654247982276913255340974311793705558593976724847626620359961630642967758380287705321863855928248658943421281805044846208655159616414604766614749007407419091098215016810592671693477764629109253707416241278363084353989188503062080372314295090709211684251986381890891824104482714216354471266362984764054827835079137067655372566327517906786783582331201297882806468948203549300098566599188617625910016952767421502280937665375821267025493623611798727671923824794694148114563140429216357442483999214589479901469170150334489239395838302801781002870542613273104129976722166878946093231329740219405177903359364585857249138232586685496037317705572847769609513722007107656138684213014476520353639376168430397009329202454593133200258325843319353289135495616249530759639805117859358361290496575565808820597157729002292194923110561536751583880952819610364532967743324857294923270865920849470032375734214204632338911092401968976588609646619315980863583560778543413585508795001584515559810502147045403508904082822730807938764013756191052392278666179495153365709486697327965130079774924466138221699761091069054262707917372922525172815052370105521648081796178232888193133473540994548103743496819286229363433681027412521372402020612017393137246947898116335586095517163486057492422075102376288622336474416453286643711639981267601750379001882681734531477864056202841702352133598427682280002366133628529390155356174305877539686008763124501158083530014887123995557242506375653642686791568700483309929690374199966828804492627881726644555919467493784969066800839570897384481870054466898040842261692524278166651859904235712136152799995377410083609974903177839896046117879782140574092465042234171165254373236378301051947316733326225329570791695031265002415407510677550350438163465794327448722343201867073045126885522252302894660573794864078865783349336022436153334887293046402320293195517171365329730475786306147941239083221502080936700952587225763152214996033318379284321026011652240082302093766143161126170205027054760352261998472194923888353035242996633850310174299395416673771898913269074707026440387381668632152930964386735155918266781442762916572524612722995728543125517491746297712371220035807486627652250364092388650500944320307484626587161581025590465668853509107246616268085433658670970756505689998192723995966553810045357102899173934907595624270869993058844370954243804491244034218502728708132779087686939184702010727807108818123401427102237043196760629531573241979602243833843279410987666153725650213572853238335213071107396334475666974496269026756373767585595878864264452201276286526586097372403643083150353738689638843960645957544917216289776133003819603221214274563114332616617538262734368438492730997568114020878580035788146976820157050803430432175777369765572439093422855634474904569089145441910777950859844788471233520439290889798024270066247572855050980921350282130766005524743839777987635422792601900946464283045463720071459770962808918297360733650692412312117935863438190726210777664323527330219814588001571329732144409339518497168124049404407606901786784618817726292892711675151610975060765292593204001888494808991836209167090654092327281494851299153248295134125325227032702253354903657684572477372906451735786637654083127300506227459956734347998261291864460050792878391567112169031341625783404991851059517972603867721514805238115679134181429472298538251526621378948453626719575122825309722104649020320714612824299043999950835360191271894734261887451550543133737989311806309398987155453183965545318705841543318145601353058293481900717242590023722701741871748454499081594711427771351903478914353098215082162632436301138965164213840538737028391573717247591875667229907479562906725873104700919860658665088258313603280364065209523698668663707203326416163692314674250861568991511255300095030141830777837338186376626686328489362998316278076420096501182777191276817451077067479440163544780436524425099121337283514795625130003673380645272591013767329074799197030238585061185738592299039541220829594256502197540963173961852087266523934735924124342660003957018128265391877887928158498901827167196998989582011592582722729416819182616922988771054450040256001082533337908033444721627746284818254649961773811969279412157099822336855359848847030026453970263019102571365819976048961443416681195646211389292973234595170328688192592578548997500132883452430866593164668547983569652179786809974570013199596422471421866973700407893272407121716298546230410942584852468150993797408209630965122964132507482221902377726807619511220536736690887421150931371213777035411938326901674918600803817963878120210913329988851249406350468378222039982008711757445389360871528652703498994189839169237922322169254719636108957474212244962689659851362038645667478633488892664362140740638075865663357476450980121662801344174463941339954317964299039199144435724492882104091073963945994048686851703344346395249100081646604120802820309360783772257680448636691865090878249120698688081650316645533233059165729437272806177014322353559306396840701292833148139807406185418090230960402670805033441803202045146273487741869009354681356807699916356840878485074308255548604672426411950696286903666465223799361270778123074936587800600988505390675621552965400482610021106066013441955983118623461895608832901973638487500903656114000868603828813679863572156321410833418515792433476006001439881978158348883239094785329370981295962034675501624338149685213598019887067840429846049304113463516085820498423200000235401483317207415256583147750262587316371050059434907676472927779387028521029936711280074498398147646647925751961775642733845267689815169509974138677418441622583561101420100814537764478156258163396426200158087704190320292032068849657662074406932564415254224158237945964540745520053855215096350990798476306110841701827260343044809201027373857190668343618958161832854300035691885612598451852155165092747321024004641145916319133892941395837052199491660429873358534329885723969475838943887439394064812948106531501927042316216298384065535491316107365605962836491922918568782738012314351892568003852341504249752450145258857191326671385909676210497949350893511247758537849814995855537850278455951885816337792219581717042896702371602008820124907185873842566332159242915187360478124336222574703160411744176350838037071883876241752894439535024769416527598305050229035344737491303434669809058964431018182573284348506912834700895997738008604426733607591728119668693434594826237939446466446360831966217675724899280919561220838994248671724028805846936235286734467314461347503765723294165068764836023476325119116959773284809175494750836932744606314886642872196811144436596026419645495054231070297757491738639443568604771868515416246603811846333642098073345015476019983417315460787193534430239530739204350570022471192623991174553520756710170962415071801744916522825565268199505303408568589984416598449955884134341262496600971717893944280613858032413099776560821089321606958594741699040700033257742866816515125581337327370657704632175414120132682557578876239993037187028699012579864801267680593768929248216957606553333372918819643318085592407163461841151927780666678639687985325618663509308400962288595845450211350155773139000336459389990141820704477315538711756885803193794395376593688728978746475415293684248650232241496521557593780649849520489057905949926958689362684554525023438179033336605392211430071695573375072870118094737671070953678357683021145882721776992655737630939724778004900295000914365658552556717462575231840472573267579257223617354720507039250487336877963544387884343652003932662659854643309593250543581920162744431897687567549515034582158191842900967359139136823460586256174913473873810254516740856740268425547195449663202392493330617064553073853085742813988374919605069675013968952698143187805602970052926059405050459821502655422230626821056885824016754866674359772458195155419065350380643277959151387979104833859831583463742245773902700133410250991751247564842582490346795910488732513348079549940979114884270606478882478548167190106274552335810339306864386912059692352806158774584578037736327612652464582180334800693415404191822216163747813965589188920338213670559933432785714571022745632369322701457931218173270766097222467815091042941767202893501190055854686810762075995333549813122395779844299970715662950515745674517444164692864062083935171465016712278146432139468680909092804203633494739067719706974007854738839431016965639400112761661041041456725086721900030628859778322305854382596541264684050946390864228310706646573480283922646674854957307864838337464673782174754692601534065987674115332076280302428995322255259238075834851552727858626928852734746042497757873605701117460052059996123577399393530119618739698988194668979018183988140582180758908700680358204358100556354535604937416606732353994826601180841459075514502861396096074334259071789420854905428235747357245017513413317706460046238887348547260093559364367779633715520548194776896490205433147304169985098389675741744124835427223833901262796980914453718851207019428857537109764196952679865620832067416057809593087177985230437010906315479693356279788708946763963091862790678777747101023064072618286600622686428104677948930370567362667280913470344872812094591863800477613525579852605499648950657269362079098696165725151197402087577669453739352424841981740683733117379547373002840605229869122029361662976085062751683371083716627704139025114562607246079988660344184889085472079245158200501719938820616100208805037892874027706582785992065207825589272161146045303207265953896582249885236195497582562709956680842691109568264783601315706601725315456122509987769434156778650371974788527163438207216336366527287569750454688503068176455287350946926388627088413223989253777681271642349368332220805598072698929240184086601199627342036277051913038380440248290725754057017226743843336902233569499571704942377736120059204521768079725108451690020303188151512791418993051907575801645851019746628764652930828262577751352159716401243861197539106878602302226250692442378610171790025887417203102041037769910128803430823552481375028372464745041663806597881295799573302005031889701043321747150322416241809653836825790686870412579904210666931211061874506511379392322413642247231626479045047245570371424629143396863901122580475052573691669680206590691351502072083537841548688438376362217523161581553113056409702844353288143253910032183833500609605544202348925122849809586448032303225799401239864519546037546839183231271159822322018412939125505783595210315083405914912493275235370386791423747191024066538478027194950787466084508867441388348343698914918120201389881515301417738305039805861725195291452123026304057483967105139259679129309329964055322078402060446087863695170127454774527342771668818019412877523791642779993830850868644713988845770172145345897047446265397828791671352045362446075794152761843440640032940199131839446967873398130683682331607490886302892226324157498766494260829308759802832843148208911167802185711073273341726099289661999232846474880884823925319959517949454780117554128246766045435079097833544533659950413663874317734061764426841228377551161169240587979413151578440181771079899867280383001376235202919051921745642013381884144706285975602183830629598570997375584034787916143792869720303278750578177537979583071443592981341079340220440295446932593716992138270068350008263834723792139726649784283460037022954508469913123737873761961081926553446660625136889984222053858190261443916795379802247155983314639506369398957977408031906885447334517723547422761918772361151694382129331644231978908731395728816406946189798435892935918699574801885805121321054074919287187366091385880173807119665442813374966697945661880706397231959259085451983176283801837554290502677105892840029773271185645696618434961229060215540389912428659911992675766570942724540689181296349475703126642770690273479689279578432139718060075327088559795958554857872631391081455089474535859221148710239830859732788324430743810618864032713740606846147092720276266799765671120708952350871911171347837832040685722924437244984857897242267898835257277645481325680795956472571700288201567819875077729534410277524750012152109962514394248930582880815882624237653046665208098657531988060231916963566901634609567424097764188556372659574870299827300360025758405227539871363875169066780595239590045095524821958312239648907688002124039612492705739036292774068869427290944163243368772659675062033762205204093172085822780220922331767163685990434272738455701289534416823200257450753204944649039653059819897479838833360777703051507673257148863455072653275970817205853419774720654437261648314039730876208992012961530503264656732356617037285014738393838942754435849923974938657981202772881492728743230808461298809766329937251039079460695082332852287767556478897235294314680675502227438706448468850866975869553853930339417399222312419213982778270844618236887418013247082473809522669360119575961551447902186745071672248696531445909468928777238703628521558994172102768326096990424513109892970860702303632490014359438143530365336242685366842291218268476463473637820047938829373596591896635870927128997992068747501948603495219081721830788741471316945013438505157074841853270726532570711401206727543773024030811037849221972165055320018328845969074455054557392362578654708824032510114998889609245663592843059282823009617696520919011597314171444678845092268779709552390210327519397417354007449244671653468288091378326324739897669884623845941203645813189998029288359592152769498584650953485166881449270139542195648640679592720255897849662495128346705209294714996732966476804754871230342479085575919004923904042581633149010677238830567284194907182793930306254463489031308550035267460061831501951729936728567270505722867513559294408196071787294629663470669860739884239957587566219953390883472251334857730805497503441132030494453676835164529093041492462675439840445621949951212570325150240117676709695535010259746768661080467334743070492606969788971007967448993507041395352438243913734608763038411653756323176951964694415753715219970390918451416237290456720935390365854912572412567825519342187674683880041860851110788646743117393246583548297257927976181692843774326783891574840864475504608519694067112880408307745023991825198026357943031979815306740817445331351344469557556802913046304791580476056354841464088484794682344151213934357163580154147569811653312233668091789529303073683518958006839821359861277499973332548114741137829733304782652427437331647253203232804973180598635143725314338557660044783570085730435644086143975633610945944844855467037074524671272041891391227709279453555639889964680438430966035378820059085251885648027445324765627018025977370738770254103931087779331871710361141751232643951752970195635331350476665165279427577227436119426698973995942855634312381745103332208477210629998549304821950651973061398548078471474120050608242448490523310130826810881970776325717353034563180514513298493683968433934261587057355927734058072997262504191947827318064581240989503852027999637125499848688471634197664034767350788397652329089173776863187450838457501566881166232624810967878564107286930574005902131542116326007272621376462919907354784810755801776077463360567438098513826810260110316593445640360296408637327007904434041875063188553213001045612568836916954369481645641752048230644221985895058416172413568155224828300526278406703504855965945027153987409736261149919011043088532885032458367763896262787848666245628698042728460372877548260885253569300011694752376478065465963723826318192446560743333780963640434565670940572571874825071762002968837916587200074169157094347261031975536015813054293058470438561748157603098542645171751228350269661211699865747679486741843047736129061508708072712472281030592278775086536039262936216460885198479181833387211810436127651224185897539117119652283334171461977211268555948690777408608085880410867945728424467538370059161051710125357187393226314630985768869353143490212003658972220428530708084779256263297175271434712386909386032854831914258569791854678373940216593184147754837730153617022323544041204111824455455125387998833151604836144077945675563154584973087658889488026678809526710472124116489561540148386749759779206882219339780917844976009773122124997572749605922032755702189525102025592090434166669368673818483611951903322605752065514906869143749283955043239881596674489099862946682248408140394707851981975012461055461971063898415456539297953878983857065080761164788869930304882853223490180896658808102519018794336764082692989520650080185646295094853914879851479766561064175421922794752569255727560025851677769885109628630131256119374177991985901476546528506344643275062223611192153269947691971649945461186558581895776338503690897152299977744905616857065553696524597718221980720248487871988007856225137886349136781280982852647941758120600630271020678772018164116002414246157622975896450392375875912733593665432504699342525387724020930084271843650270710690483890943188178755138521571271719833365755243344863459257590647175196116693954389169404404966259472494498694543237183260338746984315233477224821671870999576593918266676327220100565120909779322712417645229926242783423115327150046847005698540235107306902379809535235270459677490946864628374526229993061701615315690839956636966104042598830562483823544573753878460983538299794804636410421512547758913896055024370937779319083993227703452007301196582715896165138433332808661058834310989825566583561730830769977893946129159459802048811171557776143911806270697368787370888328933744018049806103191388497005635697141603785388257743238697567915354939862444826285247555811888128828654073054991073037510824474588984990526447560745802593291810139807509557295564806488713565001677761980494831588376320686897348616016486486679079237343469287257040792974805176559870700766422235912968817061235856426156175858429750497592527012536736811781157553274700368918335494710453055593356533798337742552166957469353793464136975986379173282188439881675976246317314800241062655570731939016925072427668333979122877438404449508247693139319193422671148672248808840475741879281417983967129126600334510001400355378861152092303407411399478275162605980339336008020879152925443182244762217344053133134829957850203325455802231033653820740411575488018668819278374236051368749032930408965010375769460251636359027104063051817045343132723973047235159524963447359009085262441356489050242821884951628028852159611977402101423536317479969427409755773187369456848209842086002667913677868999986591592916572506505515595237628516088594010020318069212545624735511197720154286832207533159486904573993454525498379819925707200004517804930946715002280675630991571531910131622622836855452737231024561264683318298329873009029121416700173682564575543907957072651995202422812799298986742644434222343872797944550163406858927432249706032816515744308725123337539055067595089464777274018035789545542869862753303418462075891435265279152901381897874754405615227691789434475177014331630924818323968910924851421753346345387675540728542512548156969353282149436104556075114855558827213064891083066546653702558903047814811689959913949384168881958981879074344326513851809208312006596432394000445634809805167727508018461037455444812234267958540063236265304156675829142953620386253492457554668001728589279767861420026664079741998639558211165106476240756246912017212673304395955030556368533245839124227932059638122441810987732231847711371602881920896589299730627682412987173804736110417161290121159084510099796515168484259354999731834010512649236890346894471497008817199810514927159336431171425608512317205757836712249391561117528934670556840817227807089298298944006883769997829220579056254645185991520458106770151092686669039393003295616714283586198436742468892216149248020686174020676594167962012781624554748189487674206647720175384386334117683713436171799440444500561547341157413752452568323637106623563710862459843523819312206265964615435441546879203152140011241553357964553128441006614085425694055786509382446362794605119173148137515626787489260599038726680858395713823216924236815623855250501335585131353677723806686017134578844351727219291069495853460402098403393328209661533683354098025239689271468341617573070115853886917439485803820615118081732210913813839188355302104234794264205974714236038960265322597189444020273672331768674497355128743972558574984412536516288846691842780324765092031535332181135842235986646385824301747915436473382834714220709531844223536190869775755389193908535961233483847331670044812251041742248100428218965232144088483343417708993934405177018200699532920452613092370182459486040378337272371814276511075291440192441338353658719020899327088123313189352545474794270741439177974020275924106299682723561339144896641165423485823418003178514559566802452223395847440890018025083753624083021483848996780483337386790610452757158756738862329623248931211014143061079767549487177492084131677151317996918361061729516260489375968936690920211121855167018630373780380905498887250619887842380844086799610293079541211924407298174722560429232380869747141178002614375875080001084040744747559329902199485921061995411998737831890435573151580228111346076724293740729360176910304317234206349309196720726397323867004855798394093634190831472510747783567568642231321681885295635202768134671645698680901023106798804787539276720256525586155618584452868998228183773636004968749915255942467908571403469887673202165724714305694897881341282944396898251515444751440794205798976961216498450380287834261061274591673463886106296162368610922717943671122736746176429007116855411815437585841520065959332149557240511230201847051462179166779978295007272389397640247687141685300415784797111197321755778634934818463746161950633045069343994589383689321952836856417101054793887025520068643205365583389310575312079543198839026535806704893268526815807044453275254385934418955309318340393536895970129368282704120231189898426230617514845103595908268628879459333124081205620291614773650787422162947515161967831119118869676945348283925082922932648790546232419423807053955140675786343275887825850295921253115853787243051794164093717911420962207268466465475115825763366670732436644928930708019074882991277085442119015657286900616044513461564973423918126834642817608701857699823601341014980375592747595372285560262187333165049533272642447728674662643247724922413707321393727975744024627016040748388809560118175042309246662908741235534857823479854989209729314114620780454992790737257109543807299765781624092803227259950486359094051926496335609948575755106170300330034920328215997052650019141864364961279077979836446618254954453161479287764173884422543996911018427397720142491927710970132450320526434352494613975198756403641131471804226625497562324850207006496600378431553472639340053037210743931945942624607084929047674970597505164394147477706946583248284369857935037153671552082929757580541655303119149477384387851813241391253702954517617585610929276453683089568131361495147744242614425380077407767060106058726740576627771621253103553916443621683054996898168417775853198156322568346906306381472181328121801206747323238339522156743212335657745615007474840401497215172143990417757078854967857504885010435188965229228329521756512754491854100832150614097771733775919641248183995809440273425834937277083119019246944615567007658055815804260548826383627360483379893537150980145256490708541369935311306405111040440467862960610694196666407306144925281760236328402306029496902290191058962629575797508471106515339024956344254868861655961372339905956790293821124786706173775314544629984015574677323774782319333672529836258666223896928035594511713119501798787458798450388276361006395697698406545534074491861284151432105478138071281869739880124805041833181964775277490738187203656226071097675419719053460911482891309802952804409479123780647260150923518748416950489326373865436432546793374199320841963786891352034206895885711432798155642903568364213192964063743402631457705314521712994898176625623505490218076463355142379791077181621822637269150095966597803567133190150119862191799324184849838316459521440241952626840270241990123732818509892119878998123022906779028440302261007233389299738088762624172799987189707291122111614478215558962934626456212520657128569158252146689978227380488164290871946740753087193239683986143803196916688873567447089060286040583420210473413997092452351589971572165664220473301475195699896831161652175852649690685323935526974566545686163344323218537284523749645703778758363610098799671968459498355036072555090413642201339295643444284099278292985413867561933975512018436333877176215187578065575494404407625222246441406343848458283341086917004544292561560078076854592744096131515113809512656339379153636839848384961290290545447404581946549456609308376229001180148196446624838450285385230022193756861795768083263791933931134847223798847910838461534104652714977288314903692303345175967260374732750975347138985267366439428657249054529378069934190270367770532205124434207850991313032202429799743869892674296749785135861101529990619803826440950989304070144034335384951557138127198176010860455354147809189652014334097710094896059100832070885553254180888220895150164922889085931193456410299973986799778981244537208320670282924555665433190795707497345573916696429371958453681522416730905315250605504131409129082849947552693749444266777959956741717374668799498036346030932066655925295815958688641937541800519916036509333906317080974743588426527867585763314286912347492906281977146548891899306401393803292784870114436840038181823340250765906518863486121706964320595600224114517866294746036529673529995040739877569362137906198814135320566683726064822183925776552700083585821487757789933793766776037152231659406240573822718219121876397926375582575834101005320585564755168513192057063450423577549285067492094369366989728157034622019944790199739261181881200442275672085286651140072769787863325435333009544737215976072064159772294632612228554569440777731211948325459370641640371408919529235170741384813135290720319042737492339107491462673277575095455036927384556520396680897282900566920080770934512405072914209481742886497275562742998882292925025200657477347991646917260833523005724830896298172183251416144137799584040989359317551499189803148400445612080913698919769683252253410533683184281194693559152892974412588011667794430788637803253127695238018111391043141444845900777028426304769158069325902737399189304070781346882008922651374108669529240615286290890701699332311222569518814600402662940782299967071592031754556504187106506680819645056905532441547611453604586157062189264983056770056363305765526668878025429184253538173641645671714884268759474441577551091343744725610596231842269479648665301981198368990690951064613209691797101780715621861537226700448568754741677254468680867834221102360459522517497238875916450563595738646121168312730551512477569322819009748475593857855201142126653712561823356375870018717407500285648020560904746401272678879253774130625241899815865216813502013847709074445745430007061580342443388232686257040715981996306109633988368553717471683102825436820627050499503465807372248499846996644459408850977174467914233559962482363797667950605083042675466578352136160362575570840096348028075396760567878759266938201186748266111937721722216332739749060047607959522464771750782343090125314473951788570582491246381864228816574906123722689549426272617635034629463606797120847941993426990774684297550511262878589916516716230474814082821509880734796337912187085572005770965282375670751847060884279185909082823226698555521807612618766092363473863253728882659003565616761138237923642856604097796895847208630712272655462218218637898795211531537412380949027652066117364207231227232142142017963760792618704119990960514955665007720765668992812171505797876129239302489942454377866386399049332726988517430876464352199280363176255364907140423897239887500761542712764302681479861177121648675152824332516704233426014823960261332385212574646908995198027278307697089382468803359666338173415343595022957682201728180048907763344464069805449076255071779823626429156240961796259426211410205737567896497114297423923918464512017162973810124548130429435403107613429294557216376204239033653694828474919284062114832791971274515768228759869254756513253042379722641970074015509611711713695648720346005254442211140853359189250267186425562658289286351864131233876741973760673889862861518747927364209485101493506807803241907813281806471005393410365286398958108899067851415581306359046965343249787646109306538581056999228499007790660895777993580960375755278980473593634576025482386955721455627417779231901683639056044502149120825737043628795096846985401784239729794111806180428145578815497739733858002550836844810223342586812914068980902098514378833432023521605683412891453722681710954213689238254471865484503029111880862188930695996082092842718025999622141624251595834045419684873175532255212425669952072035163372864363519166364054771563197472253077871778714442971875043373731467713690381284326637511826103488112141737483830279604992171740133056095079794987400094925719505796961269893142582819856110918856426076585983786287400347908494679268674100698863879355162584091226813608106952120871776044369413139021875080138316509369816855820834855349822137077439264486405338918284772841218857995073881721015331300315119781856717808386574816958250520996644702887683094287420431947670322924797084388700292040186785013228958418399054446864204789077806391917137294280932756572032337185272707524084301858004297444514350219840933218282798250429867178090934400759441504653989557372468044609002883747553998027954702795089530079908588945248036205823817600239452291744857452735525287446368543777874209808890079296477894747480092883188985336649425028018583986789771426843038285616937701276969758643294219905752648377501806082638246911192183351816335122037883971783009518392371263680765314168353499381276956648905274082433431253348487109229038170286464538217181174707110829230590736435250723086207652850712185018649614775938159095666604328165132775846341728941517416386488127018761059181767703908734431583647582139934587887761643890611220074204340475988863947649442111061563503178084831592360480183921286298605929707789704045847079652731011254756703961587627813816596834305256926408142555058866178001153051081308770112025294140036175152873313241475132980089543645487493090512619123248196009656614265374053515140017883790662677047701206772227078440538266375488793751670206400997892068357600176179352432584778732560684638094605353107373438613166957176464844842167241760653692135477536439665232297066290912277443752867927922082960014427414491044186307062177151222642354439660187737088778694287594097475820080943189262165099991764535610922432821391689119581310201310237062966079610522751379330516850991377484406703845494482592502580027117051207155015652131990215954380052255168878493608913305967624615977288483981107701513576828724113549738435304558127170831585164115574856134246409076045068850237377219053657655733720163762823910002369853522303405589690155281003617956915106688739088052408158855243952581185364989489708658045071334702127323601655600455036466716263163773457569830044509191148295253266805608487590297209405720417049937220204081820453398318652685114978044988592000819600257219735361820159622442497776371816589873886481500092465072012181343237590466268826475456426354444879038242573580821461271767986572208957321571549410919865745688297004070551185071698989395359976048531785700676871731353397831675715251624323290678241541074450833201672322848123250697527328382322801182619381258426977431136115846684792627517525869834168600046950260895415868115512393337818798997759087609640682210691396029949090104831510737091246738798619246335658813956314689552534740359726316827305276729117350447770608934352334581504577332890660954166388949365548735338363501835024701572708831135599119091522197317536006514703113402856915626736203214937370880300630813144645016876292401328784245868577947549953648639024946627252613615701340792018678924672776107790098987698261759938639241011708031627242497564142637591351323944738928349662376796723835724855862975243208102460013209636786228321260183882647651969532476502501441816028411571172557411247926564373538575258262159279983642458978907569879097067741557924950021497475827426103914570642875843190311936756620246437030904655945667382647819533801640260855449655979776303137281628496855339559048646327552659131142563387261891360955471500332258896894459871904221669650818516212948192718187892175067634220125159795984947879107206564865932489056588372065235924947562716846069887344948388376362940849996327873386817771682987820425052241617932778158660863643359192329820941389482086122431406086889753742276155765177414140640885029988703802579232304868828032086984957862550813220012206442205176342586239714585030213688683309770631059916029267653732932385024637242858607835063671661935339952384928481018176851859376128632532326965579156497583497095646794624276451705128837301505802446735414228013251652999987495773095872408391883875620213688777184267912899190259661169854841266292837956579140652364302211723078214710251107120747857719944447398811769132453599049607414627529900411686228513382271217333630608385850860519989337555681108575164117029714318252770386132250473231523112749505927125881616866536337350484151189733599818556636412076278389580087345468753094393368076690007294637192633091514084243609286919496021658398753678167894450022077380128846833274849667852724516772895160384740417499304358801780793386641089585242057888167092235284781008367706932715740774450912912244206229434405110767092066906759682249728290362218744656932366567797636300134304965583546756240221684227419468572200297497814998978456190221624421069000348060527467990454765750149255833004538685066856319926193493575313534761502954828570717898709421935415568211432632023302696105336710365802230044520305015722586321751356152764506781546669420909706519722552251350698038979833946841856594183267941333938359224409412483426358227765320120378831386975622844492638230416971330395936105892052998339616100467172565453145995772165063488535443286957921558911304344514086755783290039518578159418591553011719150366457308929832711837943506078661656304891420494092690157231368989707987480203691056031511965750008367687504924672465589297695796450797380079102630741463271099029694524962062246664748058789313620428464803012669208659286226674134721396499265510616722156068389822754956467627687741539582266819040581998805649349081421359164750416778129324575063213766777041070821910772896407548051276408962496966313230125851599404551676902171320347349333920328841941474846733038747093467117596597914344958128550131329458881525912272798308520240587926940906281693283669302999793181307973596529274684204081714482897227203578257238789681342494087136853268829301518615785867350607750710881220430960903341702050037500498661020198554656661273293904821118104245810456920173682981987705500353583926925187067522826189810282104721726847768571546573604987778300983914811486766938908768675155651363718377657806386963788071836165790406466888602177729319869089318460910279210120238050713119409674955705062942770522515655006857571272622784039045826467229077771950311034518410641570073218147671008529175320970823850962198037168514945062667547063888046077210970280280966147727383747706474298592736268829417937677003375487691642470722261963263482505498469984429259317774829230055879708980274356432656415265240753517576737944327116424583641903487969039779316946152778032912940972055780850599177578109380791145945854033057004959099302914352831707028943526258361057880403767448200001139509501397227566879249772231724365386335636418065188001980130424017116765921627504554792594196350206094533932835026501541057945987496746356807139664051654672797807148154811349433185259526622211079751417008998309721823704110217567828023600487611369322570678854844826310461951758992211031671873716136408474343079043357796228282964027788191314930237953701657527207121951892649700037371211096919007472649735997426884926396421708368694162364376223563301237248233835008054963826876947549256440223258649716953023460504332609598051915031676001826282134347560759716651387204505157873538738831596377439632250606457066324024173799668266642346509376858264709970439769171413275342764248695356299177383864106627214392024534597474550387339286244655029398169818581896826161914835223034239560646224038490716223974815564381883179003980072084562147029818378866291496633422566631105764249894875416050427261013127839950878066949227821044034313419294536262798295820195106949138313483539928276656516433052138083374222043954785510658754632581881034213018650752493213505697786673532945218197839525190354809400980490716554539111573494553822770305177736655859161064979562717189553933292862628132114282841317290132417254311341383458144684261015353707370555390726828469546847358514637956228280374950591000287940918522500549237725910698962297816405261461643474916043251195099242959851205070041929714636938506763179332157566538111417942954234958505360565103535678472059335771600508113841781296356939096839343431725472132982684111528609790911313415465893081026491161966099357554599640962909225109405849690022679833595651129341816367753885239973861027859989088795866522806472649898517683313362172393828560744685127581623780451249191593131822938367091111511700535701664869516268730961579172060467782992937320108748913171869433935893390988368066893090547676007622822544169560046232579388363956303930758527903432219519299435651912696307677133034873459958601071207399975423463441884042715179461662967007821300446135567315708802683444527264040204560437014281657568250269478429267799526122754544672892330406572176793331145225592743586031360811437257431834979651435048024513864689289757912295171091702847247197197167632287406339029971040230594174603296967965637047330625016078297508756162633299992728200769381545777693803813800818489695267020327816636505868652067545146438105027839693039022288327294533202858662917193829424003342331470083492538738937210742762976667315214163420612156596697730091465235000891724211216564308318207561013490359475431966850791771628865198740307035878973105416045613412113615115950991492852661416787604741784328736888104765046203929358258799566558363181586215183402814682795988364678243676275223243661706082274439195069864414062979384494559633970672063114280003229914804804750045339524724122865248872233989180930173068155554904858296360680147904466138765558647044211155773030564099146885758056212662811037639290787182678195209188523709459567404716974123422717189117595063751605196465541294534891417132285307939657666317659111664865783488136993983552163629172995623667474004082163420738474399747599826643031761739647772545276286773201074060203757873479261751515023936867669332786380324216256881324477644485240010235124930640227668701294730351167606465916016344649969852302779424137372843109562222730541383446726800328892368498346089518292699264540371345954137731238044180231809189430651911538456967237604528960083321860631195166353595306661905032880532025425341031939979532551765621915099518662136295124782464819560776146318006540235911493229320560512033631555608325229345082982686431790243709829761504806006467210459449509732923133215269412481315335774849959828450554399471499624250435973657665667377003592402931429605283266446126845286699773341888144033044538634882895449765964903967157201200908835511738213519066637485210507049749294816550597897749717684854367031831758909124923905192911239268083055556578367554087272714647363044578734049354893248981162775250605073992656243668063051110395039529857107156677408631853560509854121685056407003651026102286804774219072816753614505685174105874880829959250403402255227646471585922038039309722958076872942722340124306857029623931862452461535500370629605013082143053622516192739987536493556938455592068544366773884620007198193423165452276618729463475863300592128526241191307925772047682506117935540886860641601911423665875858505382998326368689987585185144679668795277453904632591944186841579305041074095074019265144730434784178884598083282344088876057429844795753751142714568276045188581151239182343916506758175185902048576431787585191247658039601312101760987354844214458655044251819476584176781752299091438434323027786221942102468066413655678648145831975885451930343035451891544547078403329482106270458499317676524630023806087781853559143993747126518195283809053239928037404909599681040221559771296428502850262092314422209680518716253570980016103702595822868231316496370694296423960593937297139600356412395270726653210393918399720994737922987784409048104394592060290680358597832075938996720664990903456241832820896499886252890704162727552256497717395386047233807392174461979462433981137134123865709312064403404424402188357335008487366049864177523793228402042250615501781555698943346296457724867136583370314503451107158666500632174408144656924960962006966442718997538493885236773028570274464958257455467011882840190191475892964208307903150167287566803672994960409563507998606856331998789924775893603537143319712110420836826638277174678734023483531933348922483422286065010800119327769653455494556757890728971406187230364600908367957096202321680155498906315783363524809401595741148889816003629304206811265813340106855495791660767030873352177481027695468112088162447477909879412266595971245836238107181760861979594827833894135188545206260441004541024808775676937505421527160831437729525599560999715551870360158238344922177459950010246469679010487896841781270796591307734040941107018087595089754255475327111643189358968743687745222228384651739927248106321909398353214538416222673070614606687586628115429487467266710914156951811853895919545912539829123356531410783086121380968519954203022470409474735483404209926549928715310915148385997729365161066144634847222681410015276197956821606364760664279545563910917380649278590959478027207139287652346014553553589117561257406959257175993811022251581313568988805389796545293755094906866091699894401745007612529897230229261081894575245072529403869135513624001037379780042299693378881991222281545049683942367530358451227608595366809834920875850552338169600138336074046619875900691464199028445960696587596896905599679651062398690044394142362792530034320515658079181995089383818883531004434948164409058203225468511242196398070051574778912770415958901455011811161673560216796775719170563866574320316877136280424675790992130395715242638151243472686415735670310774351103675094206954421018920587295364417501735031133518203850824513152125349753656399051186222012068173091470601888215713604940094410683324493993285958764918672992950107373578389501204529909196399887018635805073550626260250232766952705145137574046275082999119255900429031054162024317155314230730561321983018614089062277985336464615488041012462303793341901057287763375063132986351903471952479697116123581750290758446425648877913052679225461834770273820508122634323714847109228420241633444824085270483287287855953901139701393643967782933403881569930472078307882398451002805544904793168589676552546592639549588745117646332403765267226533174570184529165730570611850847649340407626249579909702779789023526158202484626590341408616383920593549433459304112398605337026219735931706085382521075408181411997954374598343677965121886461531930992802756897923059286103175688570966696427648401014574099971365598806257049342953922870371496886016571489234226225744560497350014866203722491921799404241750759076732273747744533051102006468189487309452055109696014897725084899274555505827341640556800865077026170853697993744599148468116956026941860191972106571655454410854134857332628551853856705990473697261783017127636689747416407533899960441899917848961189645638382120971178501291085113308098176779037980378272846684155989277812126209465946168536629984672896039184448948961258669280621395632400048598172387037897486813024308419958587574121075910811883195057790095326315017127858547172727668734916931601903040505122080073200625463245136141812447032356880495921553837389549975131013471060446445072107542147489445547429974243963450728590142176480438249799400940320034240999092399319492099030116292825389193322899964537949326102166878602691248003951473402381888792389926927089197464939202368049621775056496787621728602973619369114116089416776748223538043875642395786739528806527741173992378166765794387653437791419623189663309046663394772573983562873211844605230130109061646708623616978130026140375806674127257202576217340600929923624619244579449594181054788075114145089730871447691037833377152530777277820101174541558871546373054078780267795928970642406502288162700554637495758592113207265122613384405475170214604654815355756999218187387811620223970987491210293349795974280192431502943059030801020152886640375331527032839125903139294970189214423269203859590789044440044665916194691688392153023988220265491458236582817996554406080660947036879057829019174924327458816933894863050073231199264780921688785107307406106627474600315803882828659388196334472500716233388622895817103800188659819792249220813329638805315433103197976418167908374959814653556834035595583148954973405365571737938505141389602344443148605144432114930394705993408726024545659436213999179694216766081090352586730701271780738131564029536633844768497555950462763515980479285945103939616266391520046988664050503330708382396212495025483764562808464677580186211329065798658875301717149320216893845295790248269562322544889377848196691615000161634821140789065401869379898814405297159484688371108110498604748473269449593067157452526321627945436243580359620889593554069040260912725702520365319901829573464958306619673497379849475558286407315819268987826818952265703611496177180086655849879010270916577078586360898670572159680053140686220972855293197808432787676744494573867984569822543172903926005639920395486980372023632168405158776263453925456313662120309649530220398918827109973006296565963912044778358448425531675036959838315615610407323015872158128499170430008009285668581354839722324339913788461155112519670356551448739123855429928760777581042434714252165663976472270560846413141467702462539154058230906333843183382583997827165047095958722953215632202010212604747553563182172075900560758075351845730744370286774335105815540516574473906401464311639837626130117282046249709590028497022943996802693768577479294481928373992112929146936942512407660604584827952477506559255919643821723578859624135959210332978066064886060265553993165043128485884632420358268657372029967161484250001765065176238145932459887761662594450977301766376488892373433894809286857973554426576458870052764249214215958702408514609790374881087138050482794616728704228098587357333074904150052979068509715009926186441884963979772255032122256407139841926527590957648661999814970230388765630985537434054395764408210399569865600458785310758100525077133672602795093679152238554420348299854875074977494850816841810203318013136838526971367398807539173913323205357944095465464710108567485338618522456138461976428506730233315093622260351083157089736545210199696156478798131159808626493180563003171404565762791556582457716918256433496620529288855511246691433249203252926821958534689162203355890253967971825274693911634170028406087221422743469631623128800032732805457000043227080254393229745142228561421177732349597895191261500578817915871002156612553438053277958730522435570936221109309297750568078814087839839918399745576646721242379969753279805466570886225185497649513708627111356925880573847243792895970287945494902250364447626946341389502038908730708014457494241515132342206883094268890449095749478760816389633162778987775860007410060360300198361764902849831303343294798677138481481892657264417329554645432453986301135143658733673806487959316655114155470588559488886421546365897736747420418329233403808012510373987634284283871516575251415109427564895593238513520731920884991334689825415230965486551618237377495978508451090195184180900468297640303724756580948653330569786358582432343836467065584708384135984862847897381450035709445630010998368407238604751814976625816177077381396483397927222725261674658764827470483200422474940867501931979095860299922938388251862027002331593268001061857769114272128511431227237870598505849606960278820058970621169899356366520806745345130719860980969042609884197283386623986960673360553949408951774049952821007028698145418308196967416397962136562976446941776887996016642383408416465728362758467814259015457861260012801556943288790132678805125141811007251681813702131944467196222613028830001109259830578186949092621357557708467195727084551046570635047312192715092751579326388150767445629206022943340988630296688936056848468110601170710111430804884641709754031512732973379924269398429507440808398365690520460975639388440773882078926377325500337257635963506947831878127713607974043624398203947182649063866609978148703962214524188398213994827320115200097947125824111249558502655646301274951203506529907377296171690239674273899334532800316254718795635930141686251630784934909922286237453931452134169953902622722381682553239954411639920992048309405665605954340750996218743739931763242071105074225803364289971929122532026519315409190687627247681717005001967328335378225801410418853692795543494975773759567769864080196028511629042589666386896391832284900280214580016845590315589426509231709268652430922117459114316817070530890229506902509654409913425212017204164371939408030105788707710194097707739846654316572954610937315948217525176664364348015497012326654807424736145805846746237768295203195441385271388323300534552797788927526569852438841035473747995976419585564250203233947413671544717295642817841176310699779566074423755948496592751478880523275240047530739927922916318119397477350497363140688286749749935202627993266482471501481705506044092935427507026832656048467059847478560934408527327040168475865289925197079025475949775889686029932172220184261204024344392643223922476329766684697742492859574711529231489433831563427292039323278880088391529499379778440225548544316659917564262733901730698417918689537772587791108803965747603927785562073773013249811288515717305112219341261410894933997757291247699226454781386904887066524587550126868730379086279459713429668479973350101011553220862887911650694472287965969175694463924852488153738087862704543110705980534541295122177366212936130859912410224245250761835354161449359038965682291719172621097912689010819776880456000909986675254561091929692559806654098654431029357727394732400727641893848238451666335444465304263588504563675933859347168089518077022282554625691662417243568557763704037350649634280925838958550970258785220342872817852406975633695428452066054797883550666658083861559514962110356401646417529098446806892550477489300210824433479158374372748219212049353194844970105561465347682831088708516523428504760187856160582085966421543533315685510958876770339566291526697290966088201530696395382403382503314738958854957510991426105573006827565074413390019982571022841116073054262767527726945726076514813495494142115755942775448298927301713638760220703923322794067781478880898183397109089515151074931125288815271753606091417427529468542810539934543903621985488357300169727704426875383454117340367215005730753590431528087950257844083334579246379705539088976768950871911112175708259116681960274650412225836306203669749176809945751714971496261490806686775288560801721689235682548690555770630495320397054980807237113887930344208898497277478914557401110263083753857912596327372948766034635644023671556526109334998624235066737002493974724223630928353474693139390539228088350690789100211644119456013707862778014233201851136729995730830818361712739062140339772594641569603427748637726758607004601075314805803449625249770075354452825895281699772319372645899292349012941731178295712615802677317314092369545387452136097199106021110708960634547707189931596300044801774137002801623431419013695915240583958377781345517340031762783731236855801239621387554081604782022233267803222814181296564632136511915461291699285446974461822142773021548889358413675027103200821853126997832005739966791941635477289850499273191998533466087706533451529401271810795992064993379703738032632664272076217655558115264705814860740947691099324042025172010522048634846738488440930943956016122657395008159543602787505337445592834650241967417974172929272709535945585694446762285235724978928551617420025423211094526255732833185676084853953087470117107768166058028562035886360951928248340451331552814212363439679583094876225859719304703813036688495738259030463938624592154328460057185968808103677901850012998314079511790113031001846973833743192896230937157945433144476892648797920116117362705024902188261206017630504103758279487116082635013294335364903312898148426050170755523839235588162295623823886231214269395886520475886813602590063051995469382363289837644804101782253134932882228301202007073260778446449766751414213824899080505877391262434894444490364995484943667184852431489173521809952302021465301802899505888301429674344893387785505410280175109735684561895634933103048024397487423582113534654331762462960864230041212901101634141996210363445970995943872079745543898668446570830864703486436111186105400111398234828048183810519918266232805987903631571873109169742876131374506768581141115410184089076519155640591937366608869601547058919209116435576233889837603851270545748064276510086449478913760205013173525269036582503841541034054120016450873901742235886301907275365105857457201168927103628719292449086481271350489175881630092960472278673837465429931613919166259559527683758496236278567233824417091999520850996074010848602549215340400106008208105751115044516281479035228156920784560926250915526377369688827374395125654926701338747236461356198724612216563755509641660917840851299051255339327487304422718654258885429843662190114453434808984815648594936164098744179897545154187351457652114270045140048007629968351042448455536963642314802981519950742195779689282100097048723460088208295666497602289569550536460334109963098593357127247515794958524312352273344255884151261592645225743663424897146575407445746592490532084230030798480583331128745900084884974040669976156133225716789388916772575293366800032569413347256362208383263023532899740983920304871452182747464980282897944349119503689611242395022372319509451754123728925281570297916582804505518105790938321663349624024702706221090693374393611563003197100429889080988820804262817829776396140342193205458664928615046048395908114078719832491582951301562207073638622195617711586650282432027929207944530104735374051363712142274648118161519919582789120866580065901633789631737917956237283042236028695815948032629765506630658176014645739709568870294579196170122687972245318138859850871344321066629692836435252987996371866125055430806280505399737589406198967857596014444618649989034344160582198871060036115949925377735672971785320709858743801421770877073382064658543693996341175930670630218086409927621547935863434329883922683909810615113147676589789393109022457726629424342751983787244203116445005946944128703851914025119765003781522246295278699135529265422161723551792204126891703964322419451542082619316064407016625832253080461390290101224460861849370111117702171695950760553906415456508657786639831604139756401612313693111463687117483003731667840937443184217341471291466674687692369539619875674518394652323884869835648063513502942090721379553448650598847362526681053315430952780925568154825811088316663761611294294595882472838733613054194865461312587064341904290085551609336687943943273888353476599985159572283841942187208063852182279929358428034165878396217370383009379662694723196889944827825798925433947440740689738968255450247682389285018215235398660606833311359712358716851917254147609229534273948520371966995059771776470021940924170890753134097553809858904608919809404424939097777033547122249381285989728908592699856655766416272787897914054582314191488712846297406494726651262592477547038530077170821801172516543469983981522318503701147228656791683752792347868349443723523297527564873908971635914697511851549241550522848662208434212378542944102413971515804710764074004553393927547865282282605721554975649225942015596364702137584007029960374337536739413216869413799748437871994882905736365500113651030207616784387086813828569042130334613180507272584907026236799189592930804195428640383234646384874435533257703887999544839803951826851403074915045136571614651092118429393520187544265389379756877506431509075276580499781522098572591241793216755554499627774335945988611982171985495504387837544632386810194031588770028153020927884792568876224049516250254961145253676883583458575278769048112864252148641276962073284090456787420699059364677228962790238200590031968962925131485653065783351724652231461362102533781427521354390729644928319034403433823960072807467308204382007422162693869809033891878915529134538701488616654322601002975920073117301248788801600077805566586938548749657739435652930538396014276299013589789260072435170569450321654563427526072369391490818500730516711154068591143809601589058303090576658524377224491650796813968956057449212294929336802452673927172807008720844633625826755935700866410506511566474342776319751499128170508746407799100833756598523290010641021063098951406500745527509095882746776739956994054396023940403632579157775119469420975299963248266341175830227178591742073711673145004947524085803394799046972211815492068520217652406465133732436573489133497945373913653007749499301414603768908305954267835850881370204382504732968708585000839896476862127759410305804850760941655899004782078030074928608359244176460417495227073525890389819530454402397393544274402262561233812356156744539237753703915961231627777781892870056522510074250805965979487022615517516639259565329211411432629442975750763563515353464360757127204929666167126128108262351669120426893192618738064927671287704850361955066144802453622861117179171515600677954610614719698405825688882272772716693438076922734171754963408123898882185144359595877888637340563444240670545710785826288044427509498640858471632240731735768556461449805948042109580541860157540446156400513940416607718586091897276384454454988972417707894143607841303977958891406427574685773494664141089690361541625698466246425623940245833180305538225040525514467685517045686124893226586277276000418416452713738654504818095892843826880816365067121009225517488102378736081372931354223032520506789582977233751164555698719562546113591233506137793154819927184148563049705064961387330187123299338642100816771997427427178649006803322295745756999772261581707893415979548537715883070691293374444836383852181499140784655480948137899553793125215679860622094701984369350467719623017192130154893436383360959659719315398935880876466908420676515588959322886606211140318932458715431805317684930225235414356065356845440770643329395065375522739705361267409593422287495672633379174996113179558240280698634030980639994749569402608515133953496145763772300860361629949614653663785776452076528240567264238453665467656775132032924247347294438362852060743956458959419794958432660370713148666974512422411000965016864094424348519965890745393010276239831731195684364333706161189478202563961149127282977927852284038163115938506109739302491421392768025446357740550001810653645237237931253601820330303979697303000136446230547712331829820069801642061250662752306951431664810757854050484524032841310479371275787311921785846101999083454749658046674475000309247655539330281847756028349433538756413683639238056453732541567210370384755125102067489739379323933977442342568269396937694615837266979732663291572826612280381246753353331802219304171475227432384342471139270489523948256973510096161213598814941819888672711724504757324358250661072248797115325195996367383860173629980256388746774605835537745942254037560146404150751859852030217279206773002181671783630841724581380585820657691979787569353630584327534529200640232538718046206179971284277596977032994428181242380566872236678475834531740515385404422857446419355263997883198226711921345489507161051794920698212698537981726615925251272841465172683254365683862400525911770840102378729808342855377286702143153528337691358339750352576863869206588495115844475519717176065053311431341088598802318262044180494488320541689943449209834183159705493197937568565007931607974500022038157734617187147820372738519799197853669329346987885296196297970391993271893997443786784735789691689152329837956338482758500661056779390672181493869319252892677326479563583151715751753914070783901567036959402230282997516264319366377877240642318273369188511151705829991476029839397653749313680511649202283550367568249932319945460458841728593744584387459197817285728918610738359017142478777215962358620388757755738088250878726936157123621910608106472292625994501134532768281532206331407999020045274880645814432580026605001425580288876309951582666526686166241615424194151769900037216788153420158951533060792682250177321510398640655932053871627449503825234890960151514500316085253489439699183769621798421963115093992623334037560132222439024277266398415992674719774704424476395142986539095036141713203503938853703493012048084587091280572630549652913133031061862343712328401576208552749948061774194639887992259763284590059745354161922823183914422322267812183013465968140523458642837927813651903505951408061238912200926346944038183012359405306534864613904238891842087051004219101919684889286791292076235338987684050977816644774879972545588248903713868210497632859540315468169326179305375664644389146474244907503196598460168780003019368597131487023407229584625992516845108381017076421224031252344244880344603390868692737968535843689437256757532827183021269209463302854392355265327218675615778126249014581140083065922549786468349152836156085541537739725431897902145124124426024211974988592969133896304088775979065527429958240194637945932571399525524905130338226140161250924170473751207122348315566393334010343975863947199625344913674573409760014571835240818012045487636766365357286050391611346564092671000676496817064762030534018659956572361068785392802272458084232409833134896151793870339313873127062799992067613763921785302746995501021581438784692660455279338532790547815664137264142035447936291990115027465080346300004721477279660618034314028004813480642235224893436737134628949074662443649180646340605859190140655408879008342704522709115796994408646545675061374864799181875038818813270754423088108885054157873049938126773401413966582265434176337807211659993731724870687290933725737301321374264187172377045068842237103843163390084327985748894704381401909699675215057670828295220351411870900363428789740910420632851013470984676499406887315456589117517667786836500868701075990277210413415101108115323628911362646791533938468120275079387790430446636062367422668986154764961617230333979808596038477717097918744568304520475297000702853353337139296244863820912433123401381233368153156046454902759649821154198555955322807721562273326323492325877351374548679671981023527880108528169781864018743067828339300237192367209478199665569329564998804803583871499504077045462641789260952259688114577013560340437110048393356185537458058744780791130995043356413345279193057270949640966248351087972959780643717854465558277076396543824056332278815219469715431718737502322546304575756636762550644400964044923786640369888807384261575617930723336052302079709910649508095449308549844679599667508393101462641772360423735632686996339562687095043519876872588047888752504362961582716594138921841753893496940818513248520237203065539524732640105331691136157112219411898542399916660769886877558335328864209210526711998533211394740889910813615903946357551686926268482136061925750469325353614684237697515482644985114092990938989967487537600534728386363927778121796224636156327728399869867495230361249001677510227157956611918639905974780621448778571547345933026380489371911848526888272288901564774298218770510904306776288143377832897108363619872759786837554785698526163033791406988797644776000828996329024385318826299411517557162193018232746072579173702221148188948662243198334268232863720137283839308142322442426961847102461560323812070977079387984138134998441430534909324664759565759363663056354220765692324014587719744257319668203873981215390844853593819205142961086562414513248211243991715460609497154670133165651111084964257884808859852502736114487090310546935406796462150118110023677052721698600218709557548756429339665627760051825480391333477701334032592231366923053719888761892668604342319831673304069331364973346805653679583862013625362267212165386177079332503534335165532361669060558557530537418040331618187655944459453342451832308105927143325242320357054770338238175503691931324439149791785645641224097939037316744685485180595142712345676705440149621073702059578483345957752438526354621850898082590593046811585359179889185671677036991641625824216736633326699788075926486384559266830955257351077943268152635846316881034212501488003428319046181482549524415057634742308017502096642222026645844500467372117043715220558481714122976344628011200203404223941186438981412000861882895891264900792003671307126897154316167552883637794454450110357430423402999438492304887765621437531936437503214382508002746924817653831943574470699172639460082253668309931325856373564181296727380437844559886895633299966207702761143675672980346118582668498749107337514866700228961552479747436478823366512450127074071758235752291526659935396050871946934620127962365641355243473280669054890649152101721599413007373215843651696690671366056777512311778738310324674602230727131413109122770991951350316130134696447942029100346843994177603668786261861497185495609633162224859839985455799008894620374880914873666052915684758880448427280081847492569034369625910510224602618822889642953132700193137527950225265188497144408645943632588846367388682982885181516648127775412752322118115107478574494959873111328662852552189671776813490697211220792582281013346256054353175724101362505288317791322071090365158283119551541541146697152047167156811480328665790901850537700189876220302646014884930279299978502187316087210455469518004253432077934692912103317796011560229993237638441402737073909569283685643904025366301183344986837126298073312555770611340783303440259670598558240351473491149483838496486903899206564264242027110916750178494723214216772877606591358508031526251022190277821135094044502153189259125550687202864500840893350708495075325271409892836731356510670124325408220864237919390664845652337410388740004456707714778734670478566571805629220843280527653060892803158631990188271974202457998356543800805954598658026561590138507758307823515639027628278972497961140734922036776140314763046075985100626221550495447351139141537914279596397433035295709907600734895497384139482033317667625815823534551470885692895295657933179420324056245880333612230697497444857358354261497003467400199703020798672615422183158461933091306615297675325506875812641548937683536386033073775209203180332721025201458707559816290728431313720040600495837055527532869784134936258698038758682867218753857079383899049445946018421946523370606458824802467562479269664455956216678161967349188292683633720066690187251250721860589809781428513142713093350011874786159696509590456228563598730160710671036983507626216621810583789172637339817647363407962985558852584335430196834573531180393800923076132951156018670987063002410993893328687353642001080864161147306545711921614806845010286585474703005781653213618784191235874094642289204041061861576311864222153176601648183756887293550534727042323318038695215073306014288743059869938756197825543438706808200232782532016474088984326333601030735702838616399007572975902473841582888157420888461199062451096253768932185128703363663399789219403253519567456864864558633578842520681261049149851167429298611803013006720083912036538280146923730255553386878556324734382363372565871466493773077592461671208605708088241339028578318570150966917573059678717448798415962991087513665026126240831935770382705867344830000929976072121710550967194861921347094369736543174201914595134280877979014121689213003392390483481054183252230175058020461172900886336347454705260135114666088281180658139203759696477224339831930345116045258962538158273987145633794111116481829512806590121794604533629089721213673753177538259483023605960156372019993340971729334606952160448527751854507689995247102247554821958621112295153988986544803796096145755593562656548660747066996542853121311515524228869718376547822225083571673665814882741606463037356934283306108051617281454041248281942574835872213525738994021233013942276102708233871681368531093009805087603197901420736876645470651732407716144445974884388811875832337745559252453061110560140840884489150739551299266996083576130291621003144793893045764795129292833531323303629292072511905659518728528791434890953275625229067603657708005652564809040149005193930935353101981770211923059625852750050718428079933467233510672834958628457116319027944139123988286951088072247182511063984223923505572452051337660331606003211251076712210561165343031619956211704054873128624998332969047698312476409223757745087888513193274292519742743442868120004748279186742167009393453541109051289049058037431852729508154464600611131640681252449036549173295563704365977236378450648601445904200509812679029654809785058956362888529359513783401983141337579287544004959345811355075564660704639096255688591564197966480621487718731877310299013308165964944833162173862221766563954159683954885541754983713985307865577605296786262684413508871963618745064687947082496418929623917937778122551060647777718638491690724914269848823402555039057307620702733271640134963297713570507240740245588754174352595335603853383943364483423296983454281531862032176260387767226623849985805066079151134472514518439336228631579320219478738647688001230273455266846823678331909219399770114725238329899999478045059502415986090279752771160854653114002795872363570143354567598389703590965397534218688772449454253908447057505698623675017127931157841852273087187896320484217613997602144014413918260691190211040378592160579224415597611591207820604495944639966214453648742350446034855274094847586977822448052576733845242960665162678725238707396527804076589496311781105254697934062732073977409472327046187358706125230107879079977175276167192646507300301809989639735535863361460728490875970572520449363447931373449982478265415634938370008624761047163470425471090930034422547781388967888621181776078779896675041489602581632366689449139428965349700493637443597927979874851009510401230464596144306855113212792486845674912867860636332955725262950450597610478731649730417277680587057529089842504750238478969489465070728014826962764093826386146147554646564071146832213124928348680529301148052761090224971080410927840376109658366950387748585011944387538315019456193055428022417349726596923998072254128622578884084504040069084296913407656218392785770042058159920279491301535107058439683311198212059222644186892136098319908454833652364091662896444741072270738593637303690912536555212161404459734502519700287351694317402133483814773860679290829596076437937015655603955253987511548624198947524769978476733806005340022636062503060072303064580861552758260596932881879388040575001955386577788855672418836783856440271104525979178972894957107736734651461467406276391638800503641542114427784867124968662048173838615721290576744940764444351574005403858667157579486882384774354049145003233031238484185419840275576540056942115280270335341883696646305931450782829167635492869751054104535336782531712839040945398844361623355278571568455202383930355896817060171776385244152128620059785594347451215581537114783719491346814293262049218507969473861329867689554178544480764693469077570388266818543566796950561582855019243564896504188565640265791065251905208008998155343147633955300165309964788214811641735577833914939076925571110498180673900525033441913848045468950429230978491924854503496570853442815594045409159133073316147226084753185056252809792028723169459693285768196600419558621897542710968998882864037915871164715432151893085153347151064899725218648885979994011450433336117879415954941735503351870571810942164018747910187727305153937872446561512789715118795004364204554680061956776839650626191546213441782522642390147840596830779705476608441714551279103828725674015116714501678495216937998854515299957321508125436639081752833123981714582642203481030477712342017906453545251959830819915699382422936534223788490906925668662849753146352384417521504778394376274607070488362914023256133221172217792995337976605784084684492263372150180982839188780555554588181897740546620766738960345714029626326028072049314939916333803562343894985406150029502616814658526313738816222709287592473593554939281736218688894404196616765971476415202889725557873488779223104722080359358286797295114150229244135241071653919057395387527647648166408698370882357543459693407782353058775707578639451663135861995378612872469560849400852453443256397854767898863217307279286285198483707398111737391508875132470336064553292026165459843163405218862980711885921881239341066191805399267893026054495887670518181235834667083724412806734854503514843850896101865650046466642112677441559388428651944766798499365731852448704740467699685255738887876889799522534203942372839430475242268777668976909210742203991277340112107304745027742202775376123031585562436998609856466458980880046077785038512355708087336406139529967355804118748468160601065618173768554954717867674581346462734799791206559736719464036983438446823399902018252928723634785724651590137667328665633612781610787287023809689869034842965251908960806110601900505367194612064056868129110131188309274334883561373448036162376470854174937695468992264440547283215015545807123989258615025471109699708430949265106059375582468723274227754738926919237914774230816103597821608070557269962657214524974559997605781132105918797957818891231376177616167640118461398189750370622033951674196939043986116142627125458243755128258285199474015616027828409741794114611385602716127335882031049841846321637362848022919646066077915277422981000247725511329121543640337933520371226082585781653046047404973321879214809311209241399675347172572990983866178318688463826988084595195645918650173253136666128361043375173234888550059897392827718919609814466256406847438558427779223546233541380424013161581470170565504981541051695308494586224023807478249725467553527026025160893998546113175060785076494366350069539898582594617919293197817253146654519258774097850842089079256190301243965194331150473430902550752291597379790030329373495952552319023456053835990282251666245540720611576282190489999383706708839997246165998779552988265773510837911503100471244255709326519942723487042705379299569474517364665582791053129459510464668390447196543528683527265088783205854530141435407550841148548281816791559146821956836887300731245068127993954232426056769762097274587126174869775378459748739100415834732427660237204193588475024020015603314709956611150765221333027146111145077194935355355550450808104860584940751603331963727817896686190162999072297904788299428520914787052475748410190711859212248269327693099856780001515602221412558225374766162092026664741695610185701253325708765825849996580224017206626175147835224887545009660674711601170578550543577226137576532749079421024486880544978678542522350607455774579373901802417202065969063811195238283828894817942024800698897540640243686968747732056806739919548483271833117521893735800741614470413039470642519794027712634626444601652270040119282677006527454230897548851346931252222821874069920072690308502671595837602538099128279428506942281415002854736419877862627336712460286363807038904006030946837034423719041906180020064488206019631465279872828083173208341439475527144359669465127761943182034039448841955861754202129988575608665921528515893351448696274875463778590621581180548058564594672017699896522222241821226419334014941099954320762905501995610565545435889385470761840173975631606316376665607825876064408302991614121777021943966614111723639005904534129872500874927537576835922746194579227800066259550437273202700342140074717228202489807620652236645151224299229141287585991246192125561222268189574552894163664476114604016171078613222942949345528325347094841711271269593890386784568347520048999496909884940380806511654482147522568680832413348724070363463921301284798889478947784964127395477788105023196774394060091904790653491617961288605916958832962278732581875075878536762427140434028489611554567255564361817565887948912974846530022490124434219461226623131612920736488890673588663325133384944463352335958695650905698052226634365973860869327019384381295878725901161396086820055955646973429380295099939216717611997558137719941581063978940409607862853712244799656104745511178704092432186572871453205351902893796329778501972414289903833957803715079036169101291967762263047962389127828131623308719063733108275768654935524052645724592689764541549694642043595646221209753577747793503769805852244912719390463217342414157042278326384439902568734310168198658583556356984678838500281657827382019567785951171897619662461076625658823683804687910879783555645230232795170819288296013103027508478805528560812060150556406399602226344763645668238991772900459821912497333325718669606871288318782730213842820522603180155483147606437566971540320194583261979797651514767653605203869790849062697704945095088188186364993663045541245757280883194335640650824711483536720150933094929035481517988556801030438780152148906514063151549901408665879433053661658272176061962283100787234282888253622977680712077520122363227976060451831457010023831625634195648979808243689809057655458455801329511495287702934582106203328605084079952454314204603213935892656085187788028420748337398876211485134224756852161724082599847112043361362044980193825200823575073458802715090454711209503306814354582748973474495296853232397712995545135813808580722476095459405010400934482730704588460302630930313638495170352000773592218851921759717437387327318712506826989838857721147103965777698185641864703538781751795768756016490642213500194944792913648891894926054978992543046962072821811579253411488102051172043879971697829454193425620244934291377942847429067056598805993701409340583389959199321376904570385568437384299966031968260016481699300633238402122830634426568534858246682020357659928412966158682529443448889193855642988739541761584348258707541480529331179539170752194699302436736485961512038665829469764535709460654080423440893510733228464400069763315646124798984076031421972161446414694305675511268946896865015927388142448603457444051571471114246159027873762177151039433012606250944741938286286252645265157528479848096723499411744335464915338143218709197508356556346841732443213388426832483659522000669369667033466835283901431720900281348675227198035592848205621186176246626943407027067471021690098299314301595537588993316495951122783963441961106818463200105101229519595013970958480295905072447133710644598522600906056082892100666416911789107784605723332378922513331208332329783189068477562119437124813204668277556684543416783401929809053726184030757567782025645013456209670962260427785580462250533413306507288906061221643492704400990834857818977332405271638464054311830037376379627833389208163418346685694599452459290800328409411611553002463872208927791081022234724140491006854362174321772201887681839443790364558477093105617996646004584087208243431829763641381294637843714964438631334915594517307017515960683960662787759807806687086302900028025696780039228679839781892744502651922012744324030154730460950108429492575739362070099748853431168360707789256786372743122168199080939363002938011211402451747504823529097872686810705660418438389016582255778204885279426777066740541611787192415039423362209739313513996102947591266737209876507107542254220662186958985613840001416916498579751920126096852428627574143543893583366737972069338535347232180032798418485150109211908143355594591773123590875183629235063456051689335211545801560822304348108092516235881781023669144534976301227511449022454713470474774239085780960552747287209183508604708737132337038598811758447975891117847321313488474059081604738777863133582252531339595006812873581307074902816462515405164013014155186934568673076792179183536545153031591027793041842408511307706702481458552402647779595647449477660024258420544869731516246219125651141954925583667414028589204552487280070467330108494777933395720116730522170661519940384027892271537432074204072002526151936758357876334943314477033325510189740183047411912772090335781601435266716244340896233780422980262148936495575008672848149372807616083418316353153134856822483470213440171781276664150744674833318337356335252826676257554161304685907153490783675244432941305431794896118986026037589345406841248969602315923129249328945672389778879931442750668486305681042275854352025936431035475878620367454887505899391035127873717367959279025502124322970527240183889500726096012197461539425007271707825101295656662288122542901124854411185583328291255551607895643092265756104749386113935962172138586455092686832695306366856451102817542711587324949836320066858756637595501891284994033885719787657639099874140208562024094740101046147077157712201113434241160194858193546130942877177773075323707225775676354607123210817371610475008388375183988633155033581269166275449822906713654199063064729906996226546434213864287973836400434199488013686689748132974519971772632518063616664151682254593565806906967056980423108903378287503257138109277965547742325638338318401227659187828496670913983611392355888276718571936326027605412898651220039316086541139539492762867782099167353187020487400117694554265914702123733334901665003404447570586091273846914701798666128495678788062002097462711361803433196503172924403034425300929188400004916216595440216543973451114227818938042283350908851435440412387901345186677105735586266488336810889829071453310806132579648553974104512889996367375649244398272039283471728115297879029965852995801387330873638587211793495148281853552886940269873895293966418503444382365369028662637945827737019570377433072996984214840082850979558140441191944829335246915385867015510472704640623896504585928982477635351473709430417374884573817566782835906326597313815076578724181707399986373741343276513587423408010451343871723515194921939255659125266982265643993124179162469580975591199517382015134551792306549125815636103852637015498838881729328480636858833661578456419832595713241097513682576562069793413415625829498476272320169900821739641973319060172013789530849283988850030679349119012716812269846118162084927299192023606435138995413528681396874445351231285789676514768359014656185960847857319195632194004952694604419987020828172660963723785031984903315157131875984243840010000270269390799978292849577256108597233762909342198232082767293466267504686849670868525056797154131158594311637100341484960212444246368555401254514108543750338109765674162660480709576549783944737599476932557119105276231583428742183518838668821686042623843907753442055027760101657179411623028442494167828319838590770267351273995844838771444159614369268955510193548749981802279053692206299411304072018287585737244585423376083528232989108073072593927152739221172478349772092010524272458941388476108875376078936733587477554399418461246077859508575647536059779329577466270538110471007258147453001719677626381050030231579776211327587485423977991437669817020139644182520736462840611303867949450487597297123786846565948191399903238505854590833160772979209939213355718872507761512513047107015680707235381658389820108465161188502464733416241293309767634028860982506094159146727495043850739078142301285736713425831141672204686872375715956335389836085477368799102909585804834805488211058256741589471229968983302980387911790893868257480143812919636537337315272582054762597316096360898309815379877817852698908975665435116153874553690181002485032805037255678545886461766268683138822972939449326003603402109756446819393467998070369603892968589980122423630608356613492259059173396703029906505548634594071141516984250658563184398415435291117414051501411244541046200026624558006673362907764117347112944152873734982442820552100581374508738911068237413457506187644431779774959157279293113551144546228046098266441400818770146176905070766936351735801420355012047722040446341634809249883792447489595786238458256374190179340738540748281388991351838605507087181795397232393053105661463000377962997108190316963431379883731259364957679412352527236091244907577940884869425316043120409643735982720410711891102415763589152324918211241215175196744797422550819697769808516984666925165329818939401383083874786444467587188226401090411300582047718581851879879607292961613143887761967708981118196459537976225832478235749810725251050207165208968217695304174507723272896648170512543959799930743048766916836117975884728938769182517285836274276086618747627709344610852016762976514858051682278590993338195743983196080733972942534319629588557707116806404662112409204301539988404997099338609605623498796456721212933802447630249353787958374062226635097768488840755109941928302635484473686287081054312942973731194987665145896176897590990300351335023793070471703491829081631944270023220679629432523293599449487290144540614284705334918574260658855708182231753251406379699415266729907908437006475053362730273235583065355111827045611893946192393136427558020276508524265134371273597451830020912656841656565179245090105692982178172462423654711079810417013361641995853032774234905120499007824941463777470222175029371340735246024567972735727677386503071769231653854544062677478422650366416001908393931971629110537161383835097449789436887251853340146744233697929709337296475778934375583453705022736004345757443107673333240325933353793736732164772897046447012367146991878593434363725711457012046446746671317997501411472177491184395518774859942561310433797877454471624787993243647877171729395919452648204952113615802423749590690948288575232362548710501109535899988308352683522043587089233977450635935538676685575511490794995233736859299688429693312630170609607047774091368937078912939383646848930754381151346208044820107507766378175491744076363888651746857279665901556815395327393229857390794024817658247785544635461007934087290756408479330395118872052902010788117288524597357369127531329391235140844268951879185429716465435562784958245908404239464858996114436009051096973329294259395862481802291261662941080390069008583034266138618897266381758739306902030454865207734065482875789092014996873632937793587425169775990331379575502966169320797727254271248521579317917450488809523861090070508188214460239302014394423290410793479396065992567530400825543979338780343309366569493663421484932461036070270875673442010685439327238749323894895268462005472479303258395432466103652980979934148083869546908578202304004572736920045468027153831322535240489147359731500694226762884859991243069246279274982099806582786365857249234930891036569447153091567741791075166616872757626502063724379601637739405033187781066079300528362718342868290756407992949512943034557438659797182064938768140561520483564103849694140174816560550580431923018079125377088205826665880281382485363572806518144904712463220886014391786788793027116694893841768454896120656881415156375639396704762179239171562513955292675226461827452560724234457170060866053106632373832407733982737616561677943288469884559254600178743548530737641961266271142497602224349118124904001974438521603201269712109573350438263169500222428953880681675901930687378984731526568284514726920640936078096440651379472942707585736016134706797903084788956573964973605258223831297420676853996237191678607637456867635188882295018822697419129539598449699703029699330930084401726869127330005605629464390535118669667867110879621517725625503486826251293067487180075883995214910351554876141187700871252094114148520046734057745396201264239779838820839787237055373405487410091588955746992615632587302371585194372545789547644792521176167888737035773225846036887402881549297930210737546512976062149148864893543413908262548372792809522801534528825476166974403048363790019599816124571367936783222914916292503542813936711791024247395464226723880042852847812454999284848431558794487823842493375676918864025701272928279563215402689130243928251169217049051210412077979030116962654407576076109223018613983739770428128382236526226068675851375136412243025295117417896889850378801643045801559198250960150846201373357774205365753896980250063601554367529942440911721381056970030377675316180982782178848773004463978227949462294631053214016792856570790677778185944548561610638949330965889863128360422546509906762028545244204720586363118142204185219940800056004438609090488803282648500134811849519535645587686750835794113528692522126621301809362264484235690104758084294952042331816228008553988476439693398406538559379101004299321917544009935398639659527659875895944144995805277210370662306120055024306355003670714133198850883011970564822602209424600011580704215994731810755478911831160965458537790556490589719533012273182899982089674889023118166822059963733224185331322983183641827167379619296943929889860371328317840266374240042946342230941482625398221493998823285546849218208483286696336427190375568980343924755129725607556419070569833815048125411553623596712046840618747641416871001238723261643006463772116580446012475814416243779430928237945506998510587018445865078086582478841120120171461571531489485640501827409889563384012119554392860200283546822831170602400286774531454880271522189587592004500899666059345617395436698398978266385746792012507837262745484060000604869081233649326626782783043987268632440427886340130979816713880705922033690989853944269209164356781854568203631726688271979375965442674011138731005269945794025760057342160316199410127029639072310373268752238500159890828740488515737456173027890777490431332741669206084808559517206587750431848900292040839224201083628046409789585406962924006545128262862257003571511260149906370613690259069724553247540645081060363925101486530320244344448344477925716042624176200201009680119910101781295014196112176013292071941812052711014016416305755041395489247371416729622047193778317394440139548717092559783874581776312300289992429466436798631796855477559153395455161622390058516487026468140268171596649647359658910816582468313141156305239484104509846989503767179382387402239993619264529793204412450371782450419085593347978812425631528606411015011432352460143042973322288531167112168038969869679980883714408840587947516405696188174686912590932372881891609850190795983355320884392815155468546690965450422162058692561251286080539694540811385486723075721769918072373417090495282257054704977285752043537103138637745890627178732373391282200896550688081949762199645641404066637807607001761613751662118508601581250223232261636140504893816774670968930117990577407463271811382803809630520834080108895635640769339655296048800969151583173834117226221994234967919995254697738042441167844429801412952907697935485595384512488340295575019440309759415845189157541326036172298183226639929484471214488271816664922981998613229040007765969572677484232552585127031037551049538102091861237154428683842460789484231422668706160554638177120183610751720856252808161524284148283494791547029780304382034219474857551396927297080595666904256338016048321675109507030883835267371511751049204579801136041190551067928735307681024513157310659340094183852119447852292098408639287365628302135535541855586370493299550640065158576156793531346222294215185458929699593831188129323687683282147231557967733553836960145525542711942811135040172306972815767216914673496036304426058521129689729988640339179098370876955952427771127810857377671899177711228955562849759220362657441762943559509883957983716062811570139015259670613985118423664719173643529695032019948677665525976937555235930245980986379226659093442770406876432010714175655810431092048584318602774318008041781424398002058632750372129476620973502439075643415674505254841032501817887567620463259593613300190644889240714317046433082750990881220398812838670519466683083441410822042533176742077386624380359663618131663153652750068228552737690110652093527363053094691322638981649315329311494319807564142106502057544945975991109976361392748454562284165440667185973777420115988542051781055217368420088696050373644532302336243731730585067078621470010485025214848746126526310838823912142917020114257299654344718311593376553433907157951932342900199687541601482499542128942081412190263194990304835172818328027374540315380274411882823482371941364931028742385916897390557651526100724511141073619190653931364500355852420885188591525680079654620061291987404861125761129253584319526344060066781309489394809979438245976208195472903988123500593457124928031037005425353904150179437180745649422292144071125639297397520561860781123476060723522065533187197204845281266471722773391603176540665367984625043362831121774301959546912073521018356266845353582352206762452539528777180681569915669998195206169702670582174391663435670926883445319864301983936407448767195068497955734391317361301572147630413423203487145277469649681439191498041202997848417100465254290240551546126879807774320635847701167339100704877702754054799324744757908899373680121933138496635648437568385311537348897369654145592580372417229388138058637864452093881712961747709498333789566458020750192123415523050506144181835161656766160052820808451869401139283423604833484460387259608443265920435502851588602025049751473909640437646422807192082288271381437371873297963671950275145131445121161795778102222123953989749244527070319169723525040814760125112336566295697779563446890050407069830130665838660111122502343598116211407796393972874742845616839551124746257774904137622777297428996138690876274136918220871807877668720497911037012673623317304371375510173993299344008623688251146269153313982747704527405191930147638257102801716681492458434425031746045506316196342954164707339586038064097277022890217376459181274789835781988646489653976931457540755837302372458965631916960126722079506693910087407669716508699353095540880503747563690932193334566618648010089667080168558021829699462178133566802559675767998515914921501969718278321874542672955596996887636141167633747270912563158251507452255496116146794461089040675573077658945242050918404031081776330651887344177458413853617491200995545638788759151329188206667968177081599122780030199585110263912215238811818945358346202858710934322135012860016816224991958976122736302488598177070998037406933922701257592964105802506088584418901030646696994753016522363291653155548362048562716195887999241007010036734690897278831481026813564304202374436164473171117640743268122286342994620345599890630115983857043763112322483045706327389452545823296599985020310038145560065362182758252037351721406284807865752025430949930663545578421661944025030559636145971181876528821494445877090656653837692102485555667664581256802976947872360817995908125154945869973271437251464092597584484091791582114474650921352183935065412703737753374217350398506046942169968040745075919465352114423230749848447244612660425239683717748222494667582420116905469239885712982590174279814453181573430020150196574134737709356018360955906688074450902291569721784091307086239843180784834411586187660363936406962204763212205541206319706061401437028883295599513403486555659399943096302790935707645857300479455668434517255988005287743801324096027466448095174318471520172922604315198919085570629334122237696763170456956251364056708658756637751058625017583336283776388278078841496166642296770460181969057140421108715131889550342861760187712137204359147542643977198929282077325617515194014571717062990281657621937087825106411424300911308916135650762719051763117935919673615524823556832078695476137399213717595646140814616079797367590598240769831260234137863700712241330352528836088767191591333508601854209340671061760532237957086280972550995484746802297597118166701869160365416249023624692212927927340818825171368911712876283161046890973889037485643340710242493993174513768376618552070308680079960353983285488285202177101580673288601663031048207291579106418926215354188737416066631077447036127619817063347317961222874693359537445818061689654648029098164854524931156717235785706523266756301356387012567813761770893098043876217475910154758759022141714093145509028504440605315920919445599341395060835674153886466070078237924447760381876536529890232723202392070889590875993152968452659204911776967871194803060951992931200640479192736002329901938119010906475351371984651574780275545823717498779299950468528471064708241430683434753880281131141248502407204807237385085869903118893773184996457563645769018858001765110772249528028228466361993693782573459042606929309605179794254753415996148066175057379353022419409343452157723426598799450120314174218574969668428537728948077716001452513129601575819988684082610022176778876378891733151307551773453085150802361530406857872750111802240400303960328704852983043454051958182234891792100303573565256197057469953709893369965900727521120174279497446126858426571384925637969056294598731251599780250265819745297763238326454339239137375696837141584871797475942837478394042363978349909404371390223644822757323921710726380674939286443189028548612162330138939458768253554910056042387646026575450605122660919696019940584124491016123021990885030684895426046763943325748906698228463461676721296775545466163232137700458616377951003296318123289568584694920227384761263054682280288812340486068149286847027898311615480369198644988990378609604219106660537768976097099848341125091164959807826496793566141453989185538930373165899241085139590094923869908909854472161713046492402402965287323872272996468298423307410762215658910680021543162207314787649934107300221159094331906649890600841819873489212003803708922838891170510328856477662139212711979809371485635476003917762112760677315984435391527930777506741705413964961647711656704798257094916841872201872226425033174921181432278824389196998452645932006419703555179967095647155130976464212705407608762859222284071487165136551568135406781598917425675541550511761025633559886732091637860378969774655614057035152768453754466575351638073486754391279172170685302758905872438498390599299064148173943361700426120315239747338455976133533426425134040279216537808533846153732141637929189699461746352947304921623084326022229859703501484141718679673560671719279008109990389020802243953560895254142069490725083417571339811655559763666981764954025030978390049768424754090515311471754858092917497887618418911746268964583141692122151836485079303762449183132945233474538937717680649421328371645506542973153903566396527017974472364783550302866648404388705089831653418145097098422097351367788500200139521600514106751204434451767996616863865345953312407420370723776047528146898603458609392452653474488895108237507223668388043162450061405668271311961625932162140267105802514879052125698280558586843108761673732921768292690786378472419690774472632743360287307777830175878951609201071941384212804485768065412284954620294792740920426018621036200980666109325906310413041731835889446266970469073769352494942813972370959072992175621231604485350124641642204672934075008224840141596327079516292688330293464219371065735019707502220159491797505230140513470071287390584261525887901559236634277374447436788628924956943067268862903208675663603766515614893051710253944888469806983053416164896025999652003761566851767579876782091469159475230062763467633384125396743869772545626034637849779269265735504460079548246801649040387647590899166138335443399036533585640613000650329025259515917627008574160794137625000495292103872272323406271794068563157564879643699323634130671563609360104749309637298035727875586008215618648956058856476366201988620735695092551177876337599943904247096197940417661793022744383024377108163545164788450486614692382235422650841061173356749718260361435186933590701297220814632966515670482437139183117081268097139545377232017477948759329673694309678341053644828402269609131332908278039947176608244907655554838682030860095044398933935762133893925332438607879269240574615390632932698337546498267726112418506635460435169215268769949792440032118008255178284119838846870677244197680760202054380070704903434953479737906000852189664557033574544312919732830531810092417141323752146138464585365642199914468453977195550428119981297224350173440854452172490323310075641922004377007671467881976178121756297292039018536355706853247333232269328152104259346476260121393912487019783800641203995700925202906289391078931251302370812350909306846677701168448130281581882970165930007687592901352998482913722289670137008150211500352652132118088938803825063109564385265318179652083481280947223469495157712855072499151728100963919593602901712589757825247414031435206457727672775025961159835726972759952754956349108806086289426276319823121383262961677624304462894618556895332458685983115379916620854545392935107149043953761183571040271118047988145352324449021993495076869505467906439403972355778416564847665824655622352145709093099206594842085076850000157021822806570504188188830421321922804775239745531125068712145913486302679966546602661672055537646234988057870553814665713968864777792698239135433576513956850320348506815796609749022808494444905140331397596060288142314172073190879283950576216805798316576545669155522322500271723497494936068189254134450454268194479247021391361141936755844688145867070806243388060480804874396780117199988485885853704774768617965171504693169292093003156688939010869385378028281683536501716740830012978656820482010904552024654815268996172388145344849778003816534475303323235273926792366443569791428495123382754971654953609321767347770451916999360528842017227737501546631215218230673698187672021681127170348226099612643697245769293143307948555665578583485606664968448814243443129797516879528992499417569651892736922844224227139392219535734976115615058683733403193012156246858188334411453389895308950345287241552987766899628783006556742432434182586812053790505456704532095857557394571221224126011117662152184810619801532281097822287960612434470645636205235532369131581476461229461903540239840544249995311185340514583308304230750249246706176943765157537510321998742016782685864083003071617276884469695366756123031334109576723641772421192243630013034300720122033803452683283585796213612871629088395007337625366295716324495985972600214441265332194519845191936556510000392605656917075057911843214919274913734399609350808331547497364017317368899301164219473673837005660523795509179405342631781212905065936797673604116673716774987771630320738425411009025602350013493638022941237647079327553202752431200271496109664406692753683392492393961031485172988266512046598774295880563499903275098591302732365049549282062222259440759065491973964741577326073212154207099167256531216492622327727022558515646114147483320190387279489176646519406939941290173894662277274401321323543171568712608047666184441069828693677478791831709976516884547189260603469942930204541708349665425415979350931324139906759669150759990247526514427997839174466834858310039608192289250720681334228899241999004898043069157087879148729638282202192936933810313484599994286870256128589092719166729852323205746018255544001355765423722480734603889192083250947143442918383990305313122946464410689831254154124494124702144467295921798416432752582255480139171993060319550851802266765265163406250658617348157329678359426581918748431803092298746497129146505367560699641049365306414097906304614429126457239028840719247594340211814696102970083898391589416161245965976185912394674160865905769108294169274100284837525717368012405583984852100472448188072637165648599011600995269109925077425436920690658907439668740630927703718965849391460027891651736953506924925618640617697858538652631025456736243346002288701616801910529083390268438549277996409558623429230810074265230670538141351860517340261064770069593068726661037337374759240893592082879284075331149470275078012590079890572927010317633941181070801220446845027635516484601475545508483771829380112116910543159168922236567984257549264742732404914035615455227269790391643370025738502854112592087160964531119027341595354914065901436916556979336635674592417668545463955889907103887003501210669348606144251509900864065160028184517424795996500672899117198920918997088457334686824228127054371718771092510876438563872108071911061374557854103176515795810713095753239025071309906057590393856088919069538479093592908291742008918515319826270592141490487898230007966221629664600245929157990107821357942758132813677183511015240463943423522011894541026547553421759080829958741454630426024247100486494917622351233383932490380656356342293559548795927272858122256659760701253323683113323141676216117288167381232921338834973496186037836518216163901544160568344325330016440157185314815451164365692992661365154854832165522230243961623346415136190391503491452879553548255449868188060442090979273088730739208573881075002820173715367022913002244557521532360710181796483327077942802084571472750645319720795386115147017734628846894596853780005338203228408915475437450750094563138408863176320451936401437873072034327767317652870199020019959803074419304100549643436218228521006463328324372268941328466753586088867601315750666860141001816779549315988239360178522625328186144786653288166050121715508078790629511942791823583763753422783172163086728558249925103032476442683877012046370433240197259576904722027996319810430713468443271938442632522888973699070481569933336448456452777306666372081195633208463485978804726807037733996222940432252370810926226392967338674023493891627655963270336627614043819782862994333737565169747579642594197313150836114824628496471447501221235378246427440755994988791284316876846558508570674925674285902195327985047681790766744921670308732651475897879354271866090973391630583925897973371204876741622791573091121805800503007291348792317954027695064206428264320680349011363378590211548320664337884859590123301380144835456945660767809156746529019299234779590914062766817855542781211811985452157966074116614901356176945301973294148865777540532376921312575772025824266168797009087775454827557858011989409504893685587028515341834281455079973755979912682122896071326790904632220622586802782006223206736340619364900173686262291474580463582725626105744227357798005449971602045788706183164964001703593724661509565975613212103132482712379844601523292117267413262784089840091269777621393944107518180120768491614127606730945352824863264442162423568537333435808657272959645873884840332597904011280018138551484812433167538597639780371215682596341646090954980545973762133153329824295092179773905203736242834587017205116240772442947885283966002068105431180057621093731828882596730341761723095904944788942160477837644762539113312093761967416889620309615144070941119013287807528471114874944835940190824649609276824871663878783704827697219899701637279628371376812020683393218734397318084525319442907551076211911346463772577491984649183199879609070046448478720063291425338797678185769485749276386064708639520933457692494102141772592009279465191405633896195722784697406016875262773243786084304934013804193234437599153376200991628499826087509591663162513142270725123806898569661808606538847944550223966280969760933462853324592727456449813305187028007452766068675637173238552113249496862729364983495125523096400253052391974474105149140153002627574985203209652022145484955841960234152273172274159647408449336466336006757104667086813458858876625677045837713532499946788756570572099031813598200698108366278230914635933866845101630043076485591445737438152871965890853261856659163248695657096800060819359468228983097721220900066593269490024941884221695160572955722291932583296992059746323112326589094702529373855799498089857593860088849339758417810945290335994370153901971743796456344352114706570621208515868206452949329617739759592286837995635487516234424281673757521839097893016363632629439381359331011570148842344913456934816283334326648989043936046385807080341724533395790645090714139412096814267578440659583147311464855726941284568775172045557140543944400201576338269259087284095640796506408883800460711272240668849668559407836189418996166362733803204220408156493873795570825035309771155078207405653535391147084163220458827173814860489998974063183164094285166543859569517956424656073918871709115563163628371450091359924595988378150014851692741946888946968665954073714712024832366957014664468317362705425900131167736093721232370061954815778201085428431644563315857680037842230371044530478431319810546971930361143957246016522937246691923243882314226451688129719952861581982526098543911846385510199780433055200182587105088420951891678682570034593790593070088567723247428153204035911776475778622935403940053351772518727898451121582620196221734280009836751254355466262663742423511915414155413778145277977758841683882877295678014303471173169046645252512916793833040683170173355573684818868089836111504565219531520433490665289628779191801506533111405514250375669355797312502777750150932424489436912177676633626709332560938051422758122883691475018705233066737934596246747336820991054306982662799649194088417981717348702092285419608821134079906186650655402001239505899698011806125368949450522322480280990510935491836681049105153947087439568844547303970416317061445521690679738177802203980251465648124353637131643353604924129164875615608834134205861183494772228193181535650718686380598392545449531663803280248695830416847320968227936130402074351069260744100209907297614773739100085924486977011898935368126542875754865484770377785221985073171171383293620409171413743777310193491471486555807412882656921143334017860210823931702423824570356447969458198640001889383824673613873287762538075424045632928227272192960873977734311861524089803436750785961040973201933177002477275205057520776980029982275363142398650873545953313114241077876075092392097864397981692126180687173351907113761766467052030314897495118545153811492070353576133522003415984953506777197485909301327323013823918776434718548814675354721693470069342314349109606302067798429542237211709919304369768587846011239890352374677791326551881129674829259809845012546519762013637865471990271098244191228924440430806319251008035564418705730941161140588656240183763229103983804385592689448308466759304971667197964020261853114484468858594864145580971646279528202640300993869669632474664579337833999202415678034019501054881075559924646845497217206242123378518929017387601294350165355293620379744358124532630792774395207809148026270023185306753704403972862932671294892955584308620176479586908916959004897563631253305669961069406990365448347716649479983059737251996893844913920832280161510454713680426420622571392971304272502808364981803615487631406281622657571411481848733705758027013567644733503410025714828604085900105327808793222812899852220637036225018318725851935775414696466657385000200680279167573402134603744309288083419348027809108461425276885889959229955989919528906540429505552068456402600963830260718396794783938654040147811245249969188153210594908054864678245538365136280707449751176774386915837297945513562578595819235440894647012003934585420649540825856260374247840322831534790789032516782260710988263425376251900653990508931177372407202315056981369702530853171485587880130405524869924064951937307003785465098028164014974646958139558379965808237187219094747549919913675267744798949863608964800975963956746787591261472254836599524853828035247411088905474525290427272127778485445498735067456794678651232548367876544647107983762617258440314538105201276766469675007680070656586609417489399305783199888854918513978940825178443448074124215703772488560834671229695344121360487494567369177304726580180971457745511041995694109340960072474378861028183008810817635832111118832398425667949233751991373736085150451395877698107347775544021664877237949386481264421227311259036369963250136176256939831039418184980110249434909754604272696024059638286009230899010027898675008445977681428108440097377698722848869892363090635151021455871643972570788361405923031172805332474511501548217848427342629456734895237859996220604129510079055870468906378892417902157966654060899616504111470930303400882020545373061451558362698137540721297929435713591283572249070055105413673166369379647537458620313387498711349453950997448920413631424743771544471790502567489518150611411435862030160679893663739216071713421233482779172049415087978625272673797806423837128344815114082598087446149355144325469954185060219072747000406580483764548881724181746113986493060411166152952701273383030835307475513154201892477173836644540695042467776041657239971151431929626722340116053936036863862135195314061505382069276243359114058650853995976598507438592037913712815372618115556904184401599440135598812839866949237518082636246665846684676081181639969181020273214637321701535979109364489621530690037284867441813257520931753626605635458288952650294112403036744445584815929551958914517896136083832009212834585173409715542816695541162271635173034732736476169940772353532445352051277396615535894485209459469459375215128373085445151239597691124821223647222975570743972859764158497379623227982562609541757099574474186332014837842815290802385535499170187374328594670501059830265439619554413499230676352696465326633488970991072268997529679177023330370905449689261210146373545658906734201066985402149552998922337132906726202200749693184446449747984627845199868321553318785539339959484009368956868014113086005228834677049994637835417875470815528447285265903084461820372797578437951688101447050065764140266053475339768147097025234110529957385275554513863753026160674167798331647235902560349732460463781526334679986577103607719631336215131294305448713182059917948016191038898521298889787593596988486901677314445077458860302113419334086120906184669013784466952088868255943754430498668178428628468415582623635904793988596962647839216444763324135612234873464084810072791300743298231433080770038987338820146994101622047935627618854373349944259368741616866890708422555937296068270605158953603104584119913786543003607728090508127593624949691433742019492675884712600444445011459201046050430536991977871168113251762505082164331794109404507609591657395550002495750870509101861067106700734361182265873053277235798344238263581141277632810864591727178954251407218846140198636050501584266783959213171122771204055772430064580551522954678586988943488030360923710195860237704217245587684320181294458294665381156266851670985811085129386056881987392664655320392336853391998506263444720373237066402700252051864433128354382934334637313195894822094511282444202477488364270685163964075881901856735420519138488661736616548563899683571240603688219079918818839238864288438940317095743578807054459215837232823928935612139124968461802660174690085018253536685515450750046680442142542273545133071840582240605557015981436351913915256339059350383708940176521566112106226358783025706901177368211422784212867487844358771067837249380332517327603832097691582793633805661369298366310989174516496184228783009335403615677661246079370122120511549866592717080879551853541500671514502321487330718645211741713400966355927300301317233243332578975901196708068463825769632758398132137941053057460809574970898109734107110738111991485892722424215763103725388126355097815362206605348838296612876863489801577446480308969376957668250412671446425936339185196116733679601749312484184174374551360260885355982424502400782252220495729771785328180754801423349477920457789160140795715207276136267594387384916306449879034869347290045280398311660734932107354777390578397157873442782801078725506135860587751995075423671274697494332430362336104960386099602756299119296167609182060711825017759673008562862517949331151142377744873974649189433162346249650967601783448681615901598985311560005214290230139256991582717644600377258596549053976557629697321105536610797859077654929891754334725657815115787739220628103476764832983498559457397761902532506745437622803158623601331867360344099731554298172867461826395895490535443365016759446785325424334237907353437545227595985504973256881495186407052466452751186085436895378565569989608326108633846198944089582953315650541724512135810213954768997942406565639896048605672504336651242128471828721951725361294069176916101793229145498468325037040216305228185781033480565106687937019444647254985172310832497719119084196803424537975797730371528899324415130044585097942726326384117852904354797634598736191663066273551774664360239391531309326080490005876605833976191790906578776278670559452392443616253596333903942015362792320004507847350547595711016851630055206361367021405837274711100243413254711124775611710426455164812548263361814031934687843314538715094837457984974347428222466324424862319985464286922859460058354636594766504791344498153265345600261296809213733169649021300080290012289380769081056995014526832969724853110649302700052328440318630728239977480133716346877109920019513044371877337257795532813943205422739246488163618553267734535337971379263160806067009189685214503280444758755553494203115978290583415013317757584494562267022574324581175486004762385399496502810524018109069509293319104086798992310507491289911824483526486413840286857107950658584481407324862828539449461444599258800308423883372847874075019032725969804670278183553720567983964686342367674774263680868198537244305165558784413153200251395687330396159877702605007285413618996728025666988861578367201933736254810896627816483260472750148042962216390298049881891868690176771007314998333785450847413261288309209168979940505712482057942753264098549148522374721616837116233359050596329841827767773270435771297073554842505876271746923102093199231100535244013832927105474027399835741285533351150082703032497039455794832983822764506698878456037654457729059967147503522066749298473968099920010301740646603373689708466878484763997286944576382990305495306982510275192561868320782446600367761912558041715360344337353696943363878299888855660049623155733498230725256742951118899255829983706429495313637548845537407549668571391068599327653931134538620818237954459150041717854612488474317400456248896141689930478027926398882754289814319162622330423750452986943567290606108299967532950022313959342369436060802749111185778215258063255240043316344120290566880136782240644247241639896620935509723981277514179846293095912014280564151324967167225712539758954053986259144964394253261333931549252737482919669259882016662799159348487802629108774466914317047312162376722954458247775434383424892417353848411746497132010354183456055042766094019923339315944938182431022911926031208935806540849496849941507321708567941800377242728965376355407528886794914341107773540932838390790965487585796283996873913006523609223737637253673752691310356089440289619836443722354894120944724623314667705114620829167029885021869745510553927859888608789845507720230802478371782497056549715489500624935105382652304122438687694488292582652642751727566866854766564858373354393829434393358156867456976097237878786721406154890278375199131160267412639072564892027751113705418919560725327585289701158937522719962395079635196848026863580377301312911794105423504909840201880330153214993112349263142822580686279480638021386967451290751617621390909537472308868186559862648484978223020714769503047756231835884191959926235682034691763278548732722499466108730466735055732795751149904662888369788485502270726869209269119629297585025021986615971913276839894896035622714509804266389507673964971059308124311299350420249763996336609728635292351586487465717070493567411349407507263840387348328138437308853243139901848725317169813034601929191286731633185292086325879497831748542667221523153301869032697021721951351548593524483524170699701507437212285658026852920021352446580180786355992193285304645614931002609694200314344987228091566690922797887619769325544920109098416053037204409447732085827155020266902228220512025344184376667505720326129892239793516647035556754287567442840223899667158225701374970243088108310707529937180121831165103676786610451230178899143997975863113525547981956980270423036133328970878587112515826957568160791994616558369312308929695368340282393010555288907458490076850818709662044509927606839051214199042163995834516615453658536246064837376402122457475287638325758989543877155268452119185687004418280373573990197483669169244294522759925361809813492287259947876499566826145381076896146431359940669836733551242936540657521680445192884248621383492118564744074482681997899487228798887567198297429132134263299521114809959349454542288349077809189095665334491033981983452026809559249015268261793368808463617063682575012073564721723438138564796641406715220934817683075426497276790835251530320286873456773961470429631911514223429313048603198487836890295968588882901401845597661793605959197146166371266239028846442869046350392303268196536108723074427233843154825758516015783195055620753006307202598293034934982027785688049541726957910466133865481202341331862102841563781690428847107494605586418465175816186630006772097252495239841133371123994304906772919626539632250094599072358717447467923631244499026814491744109642084038610644380844860508450850055754154899338068346510763476619059785586209674762617005145288680128395364340522062055535467746510042476982578474345360977799343216286173968243406876817646633251558329668178870733059594388480963875249801973792235824170263381040737131512049268422807723086451449343949877659586926244413441853527472679682638419348225547802650342177343915658276794545118112276411214811807955393143767170551745075105074863345315236430940994544450286237674163747087940683160621408150552651339030942390832304781041690217483940097415972570832870911535413679103871122956528374415956930216275747672001480320035505645613278068486220023390725339337554788205434170377844554129199638075614062542128564023893862678647439970258686235540685473318670866636329795929727623021754680072578357636812630504336562476459940797529187619950648310758960094556712270982920502234161305035601015056830637112883271232571820607749058918434601583025387550321501191365620184036713775151072130872245648644487236593534890353397373113182819129669125392264853611611257227887070085169380539696650219763574648163603428871649007571833991218408312286784125890756431785965298634945430227185302012595018629589215232653519570104859920409915369171829540037210952574778633390499930739209944922626920155032790936372903767795984484304172323164500718418422606274062009640079048328992070975561736601622122527646231932871650391338144747969765022506533680948791936365998854492694888679435288130303280894060353940888216970789046099680121235117402002721572148755602052009746054065893482068016844181624412868236850256913930855517752381775912648377360980969010854867309859756127639517339101244980308267064449226490151281121816429326262887145710628171729729269800449308785578322254159367000910802458279431752089404098338716807197297196115765994760867787730627763650997992408267087977038454526478500468530885780224906474995240180941801147229584589222380794966146235451788471630495436209527668080933731484003934063595267932583585154604755781377740214448255328896725812587916214451136949240008586435896229646520135208194029562198757097699471428619268498614276967737009316840833570711880426795929241756722325144668486530013707052718479947142680743921755549679236831771627441809976997380689682684933850859761278444326967619176969903078767848576555932185437695703616698681667655069145207211609902598306888700106419117803295559012996299739418869323691894491974471178755691743373899868825650243166960674314092556235795731030823703378502316512942599328966992742493056670789622910525293626016094252347557456801280071389065221582834585793104531953483875577668663626960994189498415394617015576902892500421356815248147518880466972025143882085077808751851470990829870018806586003342625252726874424989378813532260185006731297714355119312359214329686287304770692810245348315239927071514070474935284558694454378392961305858361436470992654590474143266075588710855868282745600417987651450784816050502069939905374192910132484423806831047582222349935420751493535794608886625457674007048891414853747643325556167297294810442206975472765122192867632298480293502850875416237650753577569116472339174869115686996357035995970787494182386464760189151834108701769299207223969632857481318426943176943837011437739601027832375319589114495266930632838750596439028247153352772917971831249407025858757849215179747368943477525784605199464759217422205884413067853575557493175118002731305597627899866959024896962177171258160571738111995729769720444522600719066083736931714239762662049670832846454126850301931307571985858777700528145225973295779215735351200978418225724351587620636748360680007675028788345600589773819491026055649192890568469726735320250826022682643468965063951058910856105669931302756928032610941254343421361217085428952749020039397928470763478877413197936357300531714540936282619421979275350250637095519501085944799832046104015427844407587259070014422722929302245598690102542371302601171150792604607919975649944057423707796368332998298336040319899621193073767481820110363468106693786994375413424633426102529727404829508686571706595959132975607130931764532469352427529368051811738617055161366717618063388813201945989339308349982187913860565743718187921944413592298168865021023964940921239172906031297044434163225282480135233950165013631059303493041503497970490491188367528614921520487277246386774975779633397964687792730660375287743430748807373415884501692464541992793551490336660672639040521538064043926605353721844365116139970338987152861670421470984994221962728126664210695492780833644696783351222087340285167320275725285879317773572122146895224696773246641924183759478448115526867543567918306624443638409973250532207188022830519134517223000353735864213949045903987882137792295294358837249030949594787436052650340513535180833407179181250523752388117680683846671277388527837259480449681005096959508741962289755603841011129655412465606465367978127411276847553107849707613500788917994485694860006383177437894090353555257487173704573400065993368091980479234880909629647201559722989719604925303123815288266637051703683415746893659914583280924904835648871424451053086157534110493273624725086293329761519738238834397518998808704664979910915636505688103609971621890323250344095164080334793698442763840561343390370461869239229295522607688272330239543754944616036042850093729851961268666429597852967662967795586095513536664735518107651792692685483861911452416432574763964208473714668265203853586830339492003082446663847317918303188557140159751482377191271032824226470866136939665005560821534048380189230143696083839195989736665332432369038382176757129323212221265921166987842400971694942101834381637196538573743984567487872902924662603611953507968264068625511007975581207085944351096211922031770890217952941019742121288944955526800542148954644357765186931384203257496525659147121545097033275919163385806833269955115156324961712775578420323242132645521767752702688563070911447835694016807109535875510775901530580083668214386850689248325557758262970317551738408168205966814325216385060965475666833696651403613179170634738178808762823003333137025366508081346513892126239234541348114072455039733245093822964589498519907981788679416080940362833115235895658386819718681971461768654220258630096509513464810109944441278916990391131924932405023123597593696000549071490485103153041540091363809953921981299143892327572094586086724810093162087804663677251580117234203840553510902984010842138192835287043107557164887313240977905086058404170199555983813496439773045008144266170410181857197280978286031359475725216770361729248637998991175991863879041372470574676002901494383776450916086430297009133558042763212072392256205304976749072366162865004840536610216198246238322892583737039245142578515110555358056122370044059165774777255495338581889540035006543332074532385552357388567056752787457699255358108135084405533967245749590634446540698815326517794908705021393913134854157033813981171342263477631230712998531148243822297226162539899475556821650758434678159432816925486054340629482971896917126893009149073025647087004677991883681871266510648975266328651388350873691795050748326516744458547111714857495248928469100814540484616796746047271563869039778620332078987366113808500988932897318879156435218371539733150671208365757500691395398709351243815817098058533473597156901465629661903601048532150299471734541835014624944690886009182254859902485693228881274532257436439020244605276364406124990522829705772771505584501038678005168843751478480407198084936199407968038218617022620120158173250375179476306311496901408304857606085589997270711669829038347302258476860322888178829378757228082250799863584387231637942154076534365008415108108495434115400853573248942512942218198799411801038606897793283529592461988102389503765386016114096548985119543777418264504900229638319368079927243044281925280500743830464504348125439696049435095007612078753190381087848803037344205671212152739499829300400267559880724642067103262852506876494821542733887304761721976769074305754432826254479394381892023116966630596026723940484483477688973831381450185573307444200378254461988090583496271606829468957052962544381656375564895680670704362450651469541717108378365490839937363280515245081985569161021971139880354432692540050695731043847622022307302799826516914908514862087145511433718752710577073142574206014338608122651052176022108712661414438385891885459816557575393504462623186665669562885794132220609606907837341430712442820852369134716904763457563402439623277994559834546553315483138187472314193180277125315005965409216009111101285187501035045918191566877509494384457508843098387430021280494712680008764951687630103029479161149882244461142767380504620191591875401316693197406008535549145159124307761317009998096724439863691643104722839841556643553999723334405349116178394210394844660376882708287003452837766833579776506308704187571279556210037325764898171693003397954331339000233345614129445569703461781666387612486991721126605734807688642664702955284160877258718184720349061852951097935932246406476367801138834431168170336211498143957014347783741072898929859672313858095237915482972572730719587380029352758438309256479421312434305549766866614877633652759114568336889565054838107952923233477978964916863964837702308287105226824667324789443769804839143182582708299171276804124511423699077552014725306656231607552548153987043932978064126405429497159685971924185319155376296667601426138031258874572015387844600907040146982535714018571808151801585147534846335563769618172431450623582252279502865023446984798134129361432506345241039755830564772800992295795581440151956571386039399818785454440187925790647161515644576721747437328176189220447251844227372231027118767890856644420393362356988411514002128344318396318681651926940913697520549990734742684206693146162292144982876142989182013480073747844886126536282151888828816652896537807497214419664414180296646263285375410083594109957951937611350812327127618974763682417126986198674512693064668130174389080672174460529708537739562735364737594702929298729147017504450823212371295539267892841639071229036765963621398285062133515283237294289873084284698486306006001254400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
50000! = 8082978113094103985206649384168290878321264200101635291932587646397603661127662015165588955253152524229792925809628952708302031894738495179160472222725213308233638528057231662447940165998282171064700925643444298608648048096005610815679640517954856126242697989419765981123581345360594784975541568188183468628461705115710546241511143321608046606315117706683663311241661831310716407636071173011608254805754344383096360447294081019416536257363335318571918980574199030203580344630134745427831483069752180579890337327946177561377500770876467787615055040433501534834464988559917159442743465152619322088284174350333692109486860170512329678371495048271205844331724588539596970834130556767556194638998900025051052560532365501971579159294632115338370688340110031699362490104590042784025724742948839390062767006123747355610918028312413567378080934389375662641649230147625720001566000512137281235443112263404366352686501051805127936801117443440365910086706585219872203936633993880344911526984225461563155367480171518925686873125008254733486184303169088158385360469994201547909494198874613974898949549221512603389812158322420257531333871340417461069874021574045712663618008119111713155868789857962555705544762736736509914583716375550323004323065046607594969412502827258737336110510552232769225677938457556163270226724720125993756016811606577443645078279731771477964772324274832852349032847551480823180779898126233853599072307213907940330252492871755286934558019650309933440715844342686829454421454681441042405389011642876482415814089822790625407756944194783177832515080262434787217870456223043170119443076422096402372438017112199072610192507191483218794961946099257099683610678405232889534561598288060211743584236386546748188331325360250041741110644589559892511778531306589441237358022609255755275349901124369719059082761031637401897595043111992331473123852602680103404749463602421014415432818416915211515952992254920296537533472837866017346488219235629649952519439662090037413140716735835330880022851799757224307147212597078875688098127613364037134175484844895388740601511573941595426427959866549352911479526567782579192355716212745425884827888312602777611671246855253433781530632254099010369690205924525596045291055973452384423902080220628805722553368762045763618094701979804122160935772216657661165048123352976483094966594279826231667297481519983710831343527735455677270255945377611712035213412546195193891415008040653074283392277254069074959818343372844371152957114057273357540002371293914327918006307292162327235159360787637996793662530885695038837780002050589181447383454675837238302367737781169823688703340027764199043346394191485009236063824927662856448720459888640415300211100940886415759916028838497163757145422367693021439774803554875800669120760836561344979085217056516936452300225128476276022171611515168465474855628744081615274429884532795638260585331411224009606550959553903395678456404977037555583472378710258174240840109931197575541886993328046839625496542517336990903808604967533561702189527305614142106115596304304674004288469470053999302445601408474516756422370440773232970817700241756200355018042040858971707033283819722467211694460286215741861646441965566462204506931745759449747577145108264394754795967518318227703320967741542810180739492800790658138892589003111813620732258641053854190541199181241780717064510438091306196841427390091079492208487649493465928394827253139676442751160465407623402911261296709873475554667029183217183591348959294036436739819516470310788971529302894368790991689786442815822978913032279595338431639901970482589122466810529027067642501543163304735688715340264369081142309257995079280810036168942525288962864152575188495031063016845586938210590895859457568285503621339985371605274090248575740439732535010267936537041789104549047193273760805700608412179531328490559548533621062641547987562754326944614942981695955687976742389459256438517460284559968120343600580715955930178874421832876776043989671089173884871233519195894275418933020046112006213532799280558791884720638919858003015849377822965600953241594083785763358058594088205102389999126531212759698044611842549422411925811203326613036231080758795417818489012767396540942212430989385338348443375760220813089400782512402554127862807501488988587276102813433972195995820324496446944064757575845594577547161149527578608169685609800468981297026361208355069184006781494430454912983403647038102471590360745812118943082259530749170081042575797865967563409246618239530015278562824937744573543569798392541225497362022515409778821159551661697526735471374367883664859423279988057208953711587486589174625533369454147778571629770154810282037345281178357530848031207921161623873279790988805184145596074294196910648854754737888774026757556231637134495541906094881790060752798767208442469353677626603430881053822502487567206778283115916656964041424446157573322500851288369128845842947059397212126117005374123680353788956511110775773010141960140619471431893712165722750483300410690593866442001777890575993441334251897382499402992868204330808897981953860411566268671619194239283291371310840123165587681561199781323733188991949636444219663885641043961108607895896333577303734959689816345980705365269353822074306152975923354257046659579526137392965310548638262326021506596096871619705984191775110699450641826249987745537362466002221491580234489834706709532512606907549670413400993640363981528670231161409615484984360443359635849348684563430842907980476469364120358358886730973823703176812262304224527793676959723787203496022945009766280904206077524240284858604278627238037976752038603836203027274772493286413967336219036905207870170778656325324593230903701379750284868886508437585676369511964033977694739413535068599407023280482530322379382551085831036503342309744093177888512078274645768348652201567586634164132912114974049657699150031730982457383899420887473375435238122630636385476897720197593134404313346324708985977917168708295995043085864410890910692728459017481870412436523857185427551307652275155336518392871803494719324090535504809751486444715512483050519233488903604397149664580980956249330658136772444225256232168454556483218808280513220296231576441745704377686779004725044848909999687776757546571472131980869729184233528015868074062518447721862005548269613345219635172903643130783227395516142920578571510214635984418685063096668347391816367474628531132151359043016923318989462573080936884779190082209875643978711309341836302547006610357036026966677441719338663819721006802824440304986347791869297121479907656681375338061574938786879667938670406762521895180383355007044937108681958737954263880516717489060829658671914722176233715511141810985560503715428711744503235182890452004699402089754175582189522000037504171175934856386068523968422612321208352533431132298604115661382905231742426681333044353868863690449943889531536314619622003757571420321851293480629688807604773382323929294820018671539497572957061720142663499483327536521431207053946841283156775792945785668744115468108133964609755876309326954661881405095855684269996774047400336994277287770125882603514189399947214395347013203600093439957912047801280980206598093875036335589209293654234280250522289351121050054389059450681866721888940725755605510940535334856692561469591158816000671624062822378153957581184333649691517776888636971330408860970569278822293000713596589981162449964229218612428900819624507006436119249376135271827074116162607895078640007052720346067026178557619142181007948378358994885771722480281287267826520499676715284879512081519085859502375561979990027324680295454102358020853815722684935666445278732449963028628405268632392273551779923733468241211720130778644758289001288250989608248361130628317461234221520941241864909174631491816499898458541741296986173144249775859452583550366696111671286822579971359456121485476993980212073039385261330074167744227362472288970768336833840942851807780835955779807426224220082262661472955425116654575962867884566723523504877761862071542967383775190281683473699999112643952723975894713383312214402332659925016631062186420979182731997853423545451589243747953293223461632812982124747036055302912975017053875256423527952669621187081830562903668185441657635946621134171159928294125020985483951753776307063219921475352228664351252245800755952881135608709832744933519667544781785510219997884737331621161016559205594275980694492504916413842535083081097455222743969370312070091234517713475060991280094090077600627809896113624726980690620409847657407921247672108602328374129660512612403958858921410940499838689614709769291505759921814167112221632821677048438588650941206225371073242590351433696961038412796219138314103250899373763006778059594388685015524802654917795635869392715292433685847917436939070013075264464466618144560456690895843718947171092827628649972208524880847446986146072606991370005586954411774628286048706027959525442477575677244512462682062720684237620999354722623727169368813535073008721255602387717331538451470923248605982219233523356905343562608066579701162306508190330121254036673279946520567902630031264271801357372714034930400121499852063328298227269502610710560073475539984884717346026815248501085497833983123385669929777222146476773946862109045127263120173878807103120905264248329633379339365782932172127923598484374861816040267758779531674290463780848824186113511228036943800458959958313214737228845477323373272799872121336389438152527264258650241466032973351896333062691514275530558997615366496483166432808960055828481675925311415828846343486851703157072464259616521116852770803242021428456152326884991572963729926739058704942294023127229328018740346222779676600855285815806247131397383174965776068252667676267748493746853867747382161074570408504806535465096050443321146283330580438526174166473453829147876984751457062126827183148326678477551283442104927499788943589989723609632745787922136331732044753237962626972700851452511232238239559896937356492553434308233902217644479423498316476293583788454433984209338507695381100326627565379206080608135623202750870596398828095508537797815708091677804514853717435095794003387787403391340560092516337120963465878859484374489788987036547855634124607648984965896449918874121293020720698658782118017487016966105758152437026018120407680805632573457752299830105121807777662879802847428381761839877816429557427005450065091625247287806570888253762120327951254360981855185142254897140273971378411336069045263777902297928270990879092645604972270460518905440061633735930464208646734783962900017505333405904192680048592674696377995616323315184837867538499292696468899137528531181073601783096315191854733026884473768477636666221903029490883753820890951870741424890549651508657499675657687735416942096155546097472190306121138754823834385682048617298920454630983156458853001301712491010175506099465465885737375272921969884371413470773969941028133780840519926137171920604722907128019467579224916018256764355268661703786126471682127541979813090743014849010738632275811851637484722845715525938436418863758585531920161492865459367758721317808323552075941458849679288088609539857183212309064717666242434723676242398967549235637576581425635956231001944889690282415577188859507111420178951586337980988243241710061583205116457795494178746024121591161363087517625564108076170112552072401871623088124495950881026490226311183788762267242470462842795442772092467155976432551696771966650748212773243997637286731024787402805921567514291848047385388949222373894303190173849503271343984110460430877331326898252684555100247228895861337420613910989219527233794066140662363375492235496801601447847254727136172145216406350601403341760072496411414284965022744913012442827397526194884227560066560735823558476784009375142401786563851722136940012284636127580282732968424316210079442879384111939262502372523901670088974843956202027928187504216346552805933032394268265636624217242682105422163561703837780367554829162629411643133401635416851270969373216376076318878990920512472744769099107742962125056338606115606438611713700873596041939978276634636504920581767322950437700662999248292442590362224626859606919251590294090670209199971312935828272943863020775566139864414637880778143540586235513071660141661808777010137196539258022316041490671471364197239320841372946135674510163029451617499874854988104644223915201871656373012205671160581563763359347028698588933387460598405393965268458124443297501404695528805196013776264616068102191773161306204233506892331431653224803187868733643230169616503553739500175335269458129058564314069025744762861161770434359610479124884351197077685960256437340977229052792600528752237305779739154059807293066279945298678072417804460557813740545525375595698823661021258101708897182202975717315221884526017506482301045671587115465800583085085201748564365294020772954316087165943570073433719890017038028412239319174051917906309576654312949268190864538396348119438323654457697303743008861529304346036581723896290966378576504942625407350148682135817349821320465758684595282853987818829647776155385247299590251028184556328721207555686222738779713482989630776404912383226946976836425398079383900945010576706000817143025339657265909656566633780871996826533294590889210583078875123027763426774701834243331012465674540481600540878188970883784350249274713514612732547973378703370770330816371797024213961926326312825216601086856441039161787996068661579180120309728315162576267048447846327041581975395845983292315756559645286120455515075315350288844248376629629895638017078097485765836182493503094388080782670557453067303524112429358088454572903856105343339847428479343239071280428251603554495402107643510007412370637177804246648536732811845014610292047679106111962563341729570781981972581575746409326544015143881393872013268941749792222672576025797616003011075322532487122568242563540522439926036896567977215542043855941008246693744560233630708101976049654592924735826839064638552651630561948915237201436239725461056123957851262432867934189796175163814554690806875129677464701291127760056965284280704774317935793631946944595448145333998169968976062743421189287562728455445412718455963036755140242930713247866413946621299644281516096642888092978563466789344989041052232901826983364661111858509113991421505527149757305532282377837797015706413084388359617758336326184764495828426786837566160116136865403159058091387678581866662851064295861153002658454835961604576905187707136437557913566430704419620786303836359799210013604538426430052528197800654868452745177370504617939440504086985860729103867093512234540429473308313922094524571195686374190365741731776778678842039253109709232540865000723090734646816135785721967023709397295748445864378599372572652272691422975813215680946270038410606324115914446753988579107700723782946898537110147694521610509531832550012106966015209449133150462460297951437767264635251088280419768578967769921038569247467765667931442775290985935192904816027982497018494889344927053134196390467720322120480486982952138291655714960846779476278415861513321460892326380797360316932611046684313902341506317017323499799764643769882386721484151371410754359457885779668818286895042905298024929660858883908328696394788029819771108849740545814622185901967054591106122533568105780094588682133689781914959900880523231839439260357042229285283585524833044320765559734602243957241651171981622975739600366550355478475423098823459986114923361315547557272284335391979833470534778601998942444448131675497369635582027098889100967020660810579960996908574921516876048533495573298556309065255797681903466220419940690889193388705757434946953964700654363748214179794363539673619854492805571683684751128830122532814367336055017024382894458302487123855940513776295625034527455960500722739315511710744226802801164630988105884878480738194243460366886456988436457002037068251846757685695362868495056231708488062350720948576688939173008375970107603061146785019883102929312473642142866230183571108562262523114458040260261520728639815625663994415269550056354238513581034577123397714817181493767661870699352190262274209947262140298839547460454775596346354015688625254026782405016598846457078590103533967831573819462028607179786213528884621524651147009319496462904497184344276863385753035263150829593345868648060894674571280382287017614835918916259875289461764974481202119389393718160647673513777107458151700562732346386730314254965176627398699644584111721827501952782270742895213941770706273935682463396267170553099693073640699299662876530595713343651796511295622814539647844828222416210058142137863294661952052610143391860184159692007461638077053964805103476033744261133690784096176201312454367671331832231154806710951455947053991541466554214810545916456864923490988947648628053037612403210650959183099050436334852610927758159993489779045560641545491659802392800641164766891660310266436116958692528427660634558865577435620444961982358250690128635427882041343761349224496395238366199654779691182800894600921999819330542187539967474502971054933741194085190141138943299741742232640941329709774284025063416956927273855262069039255957364985464232182390183069468354442889090448837681858238266154454002889006271641683108704849535124808878785919731668551037575193274396664280423206886141194667815630105649544636101587984368334317047119572680114013631978281380914372198835258933604779793454767364688110787544113061617052498671877237164192262688001972185362513946233751966110426387982126846499047536170003466930853842865909947059878067227458032983366717015819012859020296409296622124956834098758879456226579583737855319497326009952238925844213233018685446135876401089785072888912252435142429219218644029266202677850828038211134059665524890593020878906212390316407737461402753682151852657482607279148353990498195102841672327638376895716831847734800326592745936302758777289640415944452697950913888892823704706152769815910874007824342917933980456813014806834570952593793851531879403785852618062184954630057831311467706590237595720893611758199959677364737252934996357156026667570073285231271458974401623224881154483961170407398597021850706415275538619799267471381944643543207646063724353177473694680542168621243500810436840109045039313380190296382426025054014565011255102870353759707195795134956478835049171046030313642922340009051807602574216148810841681050794857603877074784614467419076277894649925635183767508432271087770637212577676327058538214923877389375390630778702932739900116963125214255360471257402986570674740571234215857780250859314041731801680284724843880327043279367724003269569228526428400098966804857663499923125860655934494647275943476321646588214608553270059021943418151000020062326892876855100098584657627283853628624710768681292861115046860802979739336594109534831695531671333057907891913200284070450950494140515506016230645110564720849702748330075566747667014037975444775203035341862910215482661779994611390382668094159282281670048921695044157842351888621446814572747297314220377336992997085215799139707347418555247708906108578995461599003529445904864264442338741230670751829350729452913355087542160663167076335707834108113903073567990819201824297305756159572130699654942238538350544812727091466568762707028256981974444813739460259165443904911525710685383359228087535085117955702707869667335255076385624737714760002638812671598078999700222262131186081094314279677636731456613774153484649522347192976785438915374960539829884822385468548770721861928521914814446259054113281556840959622642197616470575168034212607775019868087707675188125436351736082311029401498062806920779904478026055864614735334201149208732215333998829422674443287594953761229858405727063278084134189073846203233070861499974111211982340755092717603514085816065015980510852128423514847182439883400583139621443434436262860385102799961567075091094462267991892491984791367448403433285952137528238828292746388535166830962167219389824979105581825999667076245617672767252918087411610307189572319619852275535890732771836673572205769623722890917669314036822302468621396824977090487275588367322805909341517104127106990124941318225480803189522939503626894146180187061509387434129121396895738894390168746744974947029948873700308572046218249835511203650694789982513541794802303811181603925661778907737327528354148967427606753021331783201054259543183575857396771261102321322015766146514650116905143752047005565448172557286812475782755680551189546295172608938273742794782941673998001414885616054315186767453554214797806399329933760389022302631196148353713741580581966763134167173818519443254517961750129885852901261932002398766597359875882841068929608666106906107767008893135640686172442624645364317508092024728232341019720227755366774020382626127721759607110210072046280098780099047896989522476550468192252002881994893269101797628127291763128951886470008356635941541710640539292510151632327647605785223591229838930699013302917562010241234994410253392728952002816725224688582455345375924178411392782862123538441228531932058384969657216756959791579517964042725462439698810756646834101388435315695229977233100886534489896809507753662302886666214604946956155483816453052096461994613201924652296375718352499012576149098214645621184135404566820227189920173578951188184550780590618565548214511355770418669934828701475683724736198193296515629701731989740149122717324404377743952303355289942592134068104472854246672382192804094815674188554841163487165725217053467735755697873961533716058891386041987887653780599433608155762468372607277565364365076125747728004966012078778965892250521670900397020738792264001353350354309358739613683338710481153220498745940208071389035471245928464331858630004135614232982383576201460946756899985699866959917306046193603325017149378269259972535581866901031474967199040556619399875395713769394250957944015015347410743765905614309565444095551888628712234751902347381208872602306327790138075778951270181563117813736273780233529567990404734320408015163274376944540305820320952898120597773696037669932192454919009479994487596699839767897055049197959825615561828255378144252000987631969475194448761948738415819406214644872563991856557555398121665132661063432155296700259513237094807946681784794638761345095037670081642026059425902652739722978171341360137549956388634829376848242866917289764528531301973633467593083042843911190073384292095470257828905953275029698006045693359559037599721395150831910328051565689813002140755313033435794629480367203278182434741753815495606125723666412946681977504970331786979467590935080376093460108903790422568450152503476837318653527164358581768536484563579595339111086825681564731786975388314535626704589503768368134641938401218914594412537541669200181039857860515633891924348049361008200079971156055873854177013385410973874244672760435162686482888743270552196958769377823336753038847938469498860280970042151769935641298185325594013452972310060113944212099033280544813010764269015107945128380116262405896376227627961585785688091388004074938227948760554106596910182499988596764591857039308776561674367358915574900639099993205890211605713295192379418497349125979803168030503554709624177702972719960316018670637040559150617739039545634855459135706373878461912691329097785606965134116279051152917657369678909537139871489342211495225146349711682588301837188707563002032807099574108869418406847141801947352193707504286156211277977234413118762865566001187864220407168853792959394714120984514565247245677193884703491001551658066179395954780680350569367973654998463997369240631263848409676038548052992713253073489149289375978026293330339443910009725148848115653868563170443102234762244160156541199720650094571326914768535990559812272582405539064344248903581777339613401403448226373807201599577729548558748456928841710402539322591333015721227981034320096976976043295635243959500911483288219732083261009417781815719062144054893726425359571696535483620827736152255341763419477818124411906161270048042044105516886700108323588568095087331468597255257275363188803665296226356684489517402152915598529553817645310936178938366369838811837994396438322718364424907364255164594149602910090645008418720467052771728213051848389947887624383761060852822602824921756920162283932370924162442035210282159796972836377920034628279794978071322166839353646814572085045057035417917751560887225966157010642110476990063277094502633090560313033700482879838634153398746925153200661606174953479242677297695360773977778299809769785799025016592179876477095332869125538467310294950303215600093171185932833823793131209973297376757296558176623930228155781341829048047651858066083590109542708899674611709196383512463197261885839940829535182096484046535690845067450318693159257297439464111733484004236971035535969722247026106245758775475701539372730505996967010906878476101777074024221739334349431103031027698059805679670876232068510367251035753482764780297868017251607959253056458508369275001961957824130362788484104106649021594447839397381097276464828883610813190512733503187954725570678110394547420964321925827990427697610678369148297658413777471258247394764088691860830981438086395618263527454729653217379043629113237812598266454560022323734234008370985575597362739816555467140583364725018444248353821476587211484449360596884079227953402840825871885582181011833910143341786213993945021181296745776623086512620761788112039552835738571597809885821292073194906715594563525328316828646808643912483042895765746600972329403638119392441473571880306400976064234832112555283695541889572036944755014556494787394667030293588091196809592541686514449841034556910615451621020265220409652387325679698095507927835348025696781798089378840099644825878876977334714414713438516225352867772253853187827642127515923303547959601243802651419353384369122875706364506406652331085800717478452243639604116743803003952170101100782339102061180170146953511336259812884249459771776659446386120075914635192591639012175121115788331315892252134589493011614500510603887890351021530372021556928157696943234517682971124558555482973945333933361094041259914629613296706550468476098086657585934024675283876034986893420130654771222106502441635880014066184479585431266044431346944773760533564165856190093736547414871950355095256814710344093131469970875334718749575868473940303621615889147084189944611948302385377495421794081350841572487330409214738332948518037537040953653820504414482368094254049683485320922164211135416010489680160729813746738696437998761144235006179582017930220535924345451056109352473606717970718631640944552685382617201822655524023901899104535292011530174568131308980467500193087759435595848693287572484581801067386412536218100315038014858860790005589077577178857406642857356507248751387605833245424929062850311903673345803042100543144003588085318304176991141587288710758425890774458386578773974183994833183158723536282626461379767945624496446642379629709715541115919274644419987584511351534166808338362509622073445211305191241419052804296075253326762349356713397894052523049325506631166448119756997239810324768256682004060801439867997825519731085482969892588534976023211483264353678424825391749684616963279552867519626708636176801511408685060668182142433674902860527772637083608787762195725960997050132951951491146592333354959781100771201777124640072991544553714919934532213353209952864803499757888379425316087682040472590397615123808436902836815632973048140344321644693369592609140613658823689169747881254805687486553187173627617470581671107178399995776606983089606186210675165506625560291247247059110741806913691608653307194798908517486404415457135717013952499382781072642436130836151854224018508761316968200134089436727532509321568548264869226549009249749298768882302663570871595154179619802997357417930522244839601041250880228394806194754705786049888193372681603923353302336686408252894819057555623846870793466112014968169276547726871224556148114535978177630450569204962982666863175423393633565320487500748388187465310410524531960497017158954898831640403795803148805045015967485922867821702640452684868197083311111339801918425938356158554885968017493763599318862894620680412697998954114801424172822817997685056330162893018969434669468817168265134310019300528248371352384040946367513332500162210666808234871154756655034490616024032872137707270790677264615268387633730740611657987315765347961690912212772112165136919442764706695804438520721524892939116440133831877617573161324296155642925917400976318203746849272583499063846286826026899391061933567454064504730635181036566517827227529050669417153539478022370014632201358261699209811381469283613020927759937992595453569247296139956994760078660470337868861215694083937368567481536399107236821327188906808393703231169024073957648746923070737791311186400559614358423642926616591114981581941730727155592788064986134347935693230781062248317744736428958501977119116440239518616593070236614749640297988075503123342151891304521537685522080590857796415125718314961061239956341074138642034337029455958476051596922206953050799681178432241779814327167984944485645734648459393132674819441183314867810573645245204071739606823994142352465913711499157491235937432375040649946086093274628016579387907111121493991255551862140140783482139060679167889046486348286854909504827320943398715994271560147232920582552872342898184463393908529932841808069672037657254179287692043427528328865651679397897821942101070764782357471245973846907649768513407585159292218162070991376811027356719694399553582359168004478855193526224336794055715659317488389946649457726353566497588776684930984036093235824200528488288904242907144908409158179790762175450564810451073031717501381117129312351481006367789938719085036773764464272267240210983967353814985461507911335250146124577627563107668894582297205056961235768828519710631221521250257971705788941217755039494014638685087008470129562369463883983330302080990964547004038267522182546446548402450090051192636253008055866555948270685080479164993049360241685266809982290491912880122300395798993052396397734270113672865055353583645956349651350490166334010130333827066068394325499452573817470830154788086368367645287713314857884856225448527412414990610695839058307041382387015366750771238792174832681868174754714610255759070132313166489850511137287918168292085756223863566322884053958250502976176187739367392501420554800270756481058138988190478449550399117748021892360214117992923786626312347857496066396021777979232707541573280946055620130806895965729861130032774639512796962672596591469969803476628185473493796212476760542644329396033251753943323343717617833228340776986256891561490378440396595383468801078463298158080085031864014267327605407147781816430869618183844385974898421501328401438065486326485344080618271897890623850088686521105094556400154678968389019161606210681804609551560422683598208927413794998234317334079637083928380145575896382666371989473375016054068348463043437231433662493935685605075828021654306018314505007757751302669016418816250914382602678341446191732925559396907902473985420428230570574123532494881139375776028261939858949359997754705235020347034022001582472386120905708157871097915936518575828026781911514666006890524892146619836292251291652127191637682639992555670775126880757767908506459130847328020880957118724204880635889456279211688794389899331146917836383967358463569050245989072964646724188005365652205717454491862234360113048061373697633913492454729018566372868717403460842166417289313728962072075723256230080404461918321488495762622668534335718530840907912421154966577921659529467927285866135555694470257705912426987420526737929353614885735888624378408537847889555443646394572273175342441095070962597063600380480856509207843465017035024553697175021659474372687150587937614484088030451074433782024578557138273072283752641815826796506752032020303401835072959904967743153432987287637252374335071655760098208028183140028783774090090546397743884892280522932335491447506705020567098479492504444337006870634037126215966880727485945827167780608223521309680439650865828677754722965892824964328275191137764461306793875345173736008509710574869786284700961225754305051786328729449689840757315972711725121809370559671994592896496324053498558572771512375372384330781569682169745694777319126161740031268645834343717911193787618234888865579659133805422179663188381914246307266830665250978680182898686567319678012302083678253226318473772498728509583714765710095494848535049574296881342464861653864364824656917947873605892829748341043961926000499253886359835839884203961858524439847475183901051835718636544528257961981870820200820039049312531340162431743400836474437188872015974442458178924592415121061848184930148521046350469220710690299150843778064134125525937186947486874798361278954323620537340563856386936600339804111795792990404788920314302876856142264571765162268289941960592055248093199588951308450708469885665513398523640241852243491762663780576608410206031273669322885942536409570924926979664914425899190975869140460671804887393524478195390248765464517410864592724179321250314530765880699843413971411137734059067478837348488127419727664537920864667186188749511317468208209808261431423369862333573260363006202103626021613803837871558831082404990984339599705504056577861657231603830157452978654733518798872914369494742686104052027168358644397159638804185838712785481061987539722575390100468007629026609888055483173813442437611597769484901851178914464531642749935369538089817139601097151457343097861706153160298900987737744755729069646409847088121508219444442520508409262542999316529481063982163631747928464600828716603009542489291694402777491842343047809345439962401012368560135578372592723411969245948511893055190882849993716485985612401894751937544542602187960385119751597688232630006374952817587670196751368896033198190074821775735898468551976024254881428715922464881111055810168926894543122652057023671609133340142516279351014149864380669752402792434782184763533094739874934466797978785299767275837144964389152414499391934300523111904968356294187018434459754644261567960761465483809665316626166770786761122112108005102413389300062145038078944803498244322653093540376305702140523145293857080483357367029419962265563167236070159906203976690996556476562416687450604908217369137563461887930344887015665294289282185692804163427203819342131778090834547970294157519898041470151231132827860624028359141918237079443121377308416036100703471371572207002844424753647498114038118683799780275790425115805264054646206339245641222500320875550641533561451206004072640854004035898559464223645929411387625775474122120136686933794181531174493047296123092624908827690970475286534675172721100396612408864537762766452790780322759624093129560794498249493826262737897374455156049409757833201424286433179964830449799076876908042852739478824944304620367480877318776969395733006488981663071061405007762469658459979871463063211791723008392742849512542554162268932078899381080840578038021919267861934078263811199597005970740611142327276866229043839708299770211361095576668416966475771245733887406438161158510264529747001203852046807494344451529735907452473385679212834962732196631983557134444296498580921802054697291598480493611983129485600299031798970473365530547338710936849706952385967496386728117981270583015708458767376736533036028335892906661898904791677543303878266358398503605098764842576152056637881681490156517864197565913250245213291630831002513081385578607587750003453057292944448678512569783890777155061834340852651964508759355639373503394097534664367097975051733401141544866851723179373266775378972294936823086098851907033637231964518528356872423845240174999780048666535877488446025588279883698956180674328914591438184467040389261150444255046977908026493551224411115522102998666318062364496407639401792908233434805208019109884917136819083469697128441721429566620782295986737706428055547751437405121005888838689270732481184728181062892078162991623920779540440366684145162010247484665128164484584639266388644689219889867839419226038693783927732331697150758306220898742611438840328001964270294934455181010080346097233927729284609182759801375840573759902516546385101183393214216203807379283026667903907528565000378175937767311822533153012060555053906280566769062546410745007067838172438516449570780234363941779647201209344794763571973181712456031153920794060137150575774501393752303408135939398103439879837923026797856364365910575258868743659688403105000260825005171076306275053832847737991204205944600540012533521836078110408664351981269480057132994991431150197618391229430230754254591413433220561180923121953335661786202165284240747726249974356801367821907740292352867938773330446847950601054511119027129919157631532569663423412591468174904603171741899690135859229786294511381106790475492597099177893967161043459816549383386344868758153216523563309658384032286157215448402515777821073933122059674811756568649330511308323188363540685160693255062714097632954405811300465736075596678996918379633478517076994240861180552118557354901431764983127570359185941746866983647097624432671154551761082202935962862578002688220362835015782712213383324799654901660988121845780684779087067955672446108761591539761801335876591527217435325600896183467967200588795538157164186265999539934883248085921014434649698499663676019277296866895851710325582301279531305313028177781713979658114689812284489469838811327167820854675498610717069586950164273251946900476900903637103788595198597354029307291328462045173492022576833722352832694232875309087427184376800015218945792422284517631365811661594305187484391521446465724099899279024218359337976593714597031908216794950478549425419007239142312017500350775067983333781854173777770370737449048017967250107001245684384753166562270535907403347146484748243805517418564271495088562880067622835798482591165159509513923690316207848329686467005386555605184149140977928617445741243292691559327804469822400727409550565523586149256591541575962307582555981317586258065108530605454133362171753527235952707086209846528257098996779572221015345484770831353268649993556453938617329169058492641510328157665750119206488775826559379264990140597034698185910633266736899852076591995485104138314399893136406626943618622375851517401505175688408125039534240062350703772800030332038160397804855625201079588862330960652078281258258898676290056063963040421135732368542201156112961134003732872691361945381032469113175183585225093462682903552767212160848590396365091759387213225066362980806038625583044379434829496340532459177064125101806643032192690208161890393750365360445279364597131356672620992006206028528294420850736019889023363901156980304910970010667150469289481226918148458458285522056380871489769165420908660468234569427966697663169310235858231331928427385705178230826222896295277536002873386845412262107092791849120640632528631168961121046140745706792849493025831899327977662615351354769702608272045461670194538657522383972047908588531127821929867699400557792559729728195865641227943167185641552327224556412234588090353681335448322633712259145453149298526365231748847584969512054962199542878289220703533883287498969876078288130264537600299312904837364376984031774134226899658174330406056861677488232958274049925136758850237858074975309082233717933223737270980969160316867622810444310046586066820516837722632791213079652284276105146674223939863826889397605793965394566114519523853985527414884624573223040215921257290255027073232633007083533066043457685875493048624403146957254107956520542764832178529187217746680334789851302985457503771243611336327215000627616477052073354133391887144336659539598823533048411852790879161411662138024567256374223204417326868858335567544845854026894684971414511220844245365643885584829408111612854024800304047281763599014734782058862125569301377313170515932634630285350672761204292076462692808186729060634696277938893166767898384709490661429446522206680064656244151597180025685907045330085082519006384353401279962911949689673079252497639026796686883242458189396418745015749261806018436500938000511090586583070661522411958666299939126488497450900685638192449218091629413108333931505410181974201715723986705380298678487666686942432295885364251375238722905804423483951725291491602559330249848081292093096060449966026254852966379309972625885262384833011984693792855025976013036125703029763792317181269233616396777300350314607836518714931557479442383556765830230752414088509877470036042561550927698621823410673108568973434842894222254362083421606380380135012986838055538067370603239970934975140014758685155297349553726336080234870463394284011414262094639228377129204371628154743309271080026583080515414569923975060111209255818298477700964487891130449869260496195618561559972623057130538949776597247389746971873697334053945852987934650616046052688092055594373494602690938473838792478570465969042016714082295233013813102354024798578540299865196622008235714271766732721486086312397604771397470651109300638934908114780039562160981654791835993048570076834420510986223914996802960805721951356761990390581020913028634348793090719935839562975851257751234882899292065013164930302566851764145464914053801069077338130134981990957831252529118596175357252867600773276995122942885053492836840914217541707622164995147337953442661117256658665469354809462925875785546788056284334155345821204898531819354295762717696914402492966240966898678544753317673231999155313033052636508343756199027080310630872327023356516761718615427099639671888542580223443890311308367934961437040773637204898811148108853639811700731154584366657297567860652688986493509281428657164668116427009395046083354533048713840718334388615430107210578990953371388071855216858765179703246620492579324394057080192221064335126609718753877356640748271829038268494347725348925660389446571863647259130332293340801799321049082153584545852535827342853749587131240938346562153180906956782814457423614551055032239329416916925161817632785947287096921043533513731840187016718665104494015607028809172398938718504309559791979453479647624845371455700825136124690517150272618937931703886866872714614240539553384250187470710290947800103735552411713579732417089767912770123638576642704003316794079160560569448459155994925031357716269083585929959383991910699684608371586256610780173653101646089801176024107019239654800183284460132466157015005072004042417106102409509006166783239810955654410187615901264472470069660398950016998503033847654398579260465297151814910989961561079416551414156614996796437883724479876568897316602188545324388249734049942110846111031291642677589426971855171456171457000706493756647048725904374161764938576037099929704874371234389894417613311525684380068014649422977946590807291396891181059871451214654423573285204201259083998431493152751499691110999930583480940872680777599959851531835450954406114403584139189769645775655367580289026667874637968055999557576927679752746608255337090062762429853052985927377474535936098579130051037116061966786479349752452461552414783882748790552537569997696195150428880944465913564018563291330521455218005986327328058739953534586676008747023931304871655764923650800850868999766445136614576459400725502780350199777094983343753800465552620542243865878974106846555726056049711648251611483212816890654076620431886342922126959640673427428540783300810425925023290018418184325607523103395350732319148798631907942459250434105176688487309899914992787861964114214442845302304743179285732497745413967429000863044367289838252425379370318919977507408592299546326767013589227577847962029069742290506383530924038121620860074251668653666930417921049341629568058205674933856155284800716964240132352931519333807807711202690010027041207081275929349652717276052467728911631845176077841599045092037723898360427060326455071358277562954389072112657444319910158469697864203397411598106126365349496475354935638064750754445916156959681863622632165787948310533010714404879963839156346656088836107485066622665205966136215179385818849252059495135346152808701665851306152561777330728480653567048755916993630820135875071906103782668518955185091437668280566106107296512662959781185210605002418478760945490722111725867291237640642314497276876470416795186899303012073399225952640027541348213479605913766505609801986482511979334129991354321501347109954352474178296452047831258931740487132982110791094970794677815071887959175044554235967669535723645312132732394999888643015271010994343279720880805903953890879807655286255411762885623098337171836928962517874984765977027778133448769958258437491101852886773904157869443623421108921211381843664402963102134714166322081835435889783935818458586861212830669973327282321610166612338595646229764788737872437873398319153154019737727313550481329035167581232319959660280509183325121777194895973051010939944614429881142089671475640903234955986961585838998165762631011016223442938647958450193055718353065795026727769543409954253808283684466381564655113938341304879065214521666772927272747820954768958242647816502415140293199255735060452160732659310687421177683832951589641921508372959622999981943639401840261416900116437672678355930727617289524727181347926298227538267783174825690634438810355450577731739425184464111362083799227152570511310633718054195402421675815152557695134217385545986025421247328760114171840040585127725026052998322642189754835522854790910364299413281477367765911631455084811644274034199473399547450784200770795143624002723424354739324410641031253124337831689788783491934606581563618498920008424715589664034707172275052695843682387771567025706555967812205560555766297007217105262984695521164077374013482764350951314712784296308268593522349394009063003451828224768218736108603585059191725218384118352189555965240864462314617704802265746130907052200156529141984427688743481836256259670079614755245733303047617609740121946046717736520069829857311367905563721378917715235556721249235839497265319833346975858348792049816242983038692136672189199256901682271631879322390722954685490497221885680913645603814558677828578129407661554554502648435908976143181918259964506764342187401440258940565203792892864555190459190629263418189053063359315489343233498992242756374555471163800844550754968898782436478617928159669512304759976304843105071970769065672645096975679365142410997948964274277107867461016056895511743753635469364214511232430588406383235865808314735013372562423844437241756300230997084549140975376945531165111698419826140079161969806344268232118391086247129112205519733157717498034771870118092980608942366207444625962405613059776193581346192072208511796667669014229137804135441199524292827353860312854493425009265768713142344451451017960629083881237558172731739039446728286645439783864557058385717757426515407841042537143692198251733031686146621766895167486708158859613360982785577285212680005675652961386219039896392540504601632155654018003469450099578895855729353910917029969730564679283017604446815208056365312913777304538677481117878279361653081227780618646509590610000964510834175584447361249689908356420312112199910432010137965818532292553834219374409204732600646569700726327935150044701827436191840737246070185691709495872355651226489506836017186350600420677288344993311387870366254447844192498923677685925494510667405814755003356679734631445965592765928725286497660590577876056470585421870535690238986295603988763785276562722739575535028412353823251676218008281778955831199985422936538470706564190610441183995276684101635227688995020707458173298424073262509755785495216393897600395638349933488591346307007224241794781202901788664365992095795486384617343629622156991390876529928871805382464288979222693264486200458079946865046726716234213302353008074748630053665950385650623207115662069464976505599653323463665150297104935641072514027463185847569838351892062506068275386845831077533213887818014509842693034006505472230253757985914116610207514811513172792720816378335121510866563677688168044381346167548102743065257033294529712585730012397048177027162339743805386107300595212972090395630443220213449346494999786175622251916046526361428833290543570993654744083098882037231056346480915953971749755067205793120105733280280834619191735502371021098701311487443470985770996601740107319985143133396815341763074029857075134019816114163150501246442346461910984251902818375885256869262679194047388112415003770256622901159992873419661705879149044928414380328069753674516350081209150797887276347680172300967976597173059775978473600402949387004877003539389434150853616107463965411836947326645759372332958660527685592230035975193654809636123503142603686150449689651312403063805632297847022559683677334301471131306180135744052757358164173729749713762537189149446270153952353135225623767101357673955218092490421555997730190892105943895322606062851767762942790394973130473006552053784356270623509319291727341740327597532868971788051396411264464651751803976293375890925479267712994674935753809578659213670271409527410273204664872651737661098086684364989961454188488001150592597394188799113591884749225396607598570845552141037963787133970030214787453033967107598322422501207177095644430408727889152441367745221835861926710850555267145967698414651927456032341866985403176321620102363986127030409638925287136228042210873994634617648212243906099440224891724878969655479117290753936077115126378284517888476283034472393281426363577867268585011946608953865448657457412404414753576010834027834953839383497323112821529926991095844558671845842853423329204772065856915660130885133814012093199246474971193204512560853096034609626932405047617768090924572456541259517741280342676947308771089598034546436879373629317562327472316622986719986913782641294395294663342814030713434438822088225228048268644890304743590732018687076023030165065408990512674769061709586848790021075964911034881507299899506666067013314431746383626498834800059028767365438454489966389931812386003348231916692662826512276791445955456501278294244918490914919954980710555880787488303607745829111652234634359533609796498701153011206736180246453114716234887899235217674533371123109766557019548623903580445152679832298299195921429938760452013150126398850244565607294122675884383586932822873582535292125668466363402176448316352522099322660875426540437912693239086574890354069876252677448896846539688542426803296244354842786318795708551565509886894424392539733070722207147129224693321024363992621962570172102385845894728598542984996998885811380514792273118175879034569082632944111254464853220909769452733120907686329241835833188650669657983064518141557454007224925667696807135078706942886578609921508644318784513308639891998004394922278925481297717425398780988486037859267214369732299627403137063779000886927223965603073162231570584044809131904280016331825958260256998393772973931526175070834060841905963769357947713201679685596584774739630154534095047878353081850547457290823986353669275989684137083402442814161753376332162405647423201880878173489269967463673442549111355395172294986717061947183478572040832761886977149789888641127203522018513713563130537324219052355575043036969065551217158630760986102713254943640350349378275621860169955707167501353989481034842730898997749553950382870449990229555366969295005506514385843038701951240788135178424418616444337595204522943244611921377182234293668620218791128854876668356156899370439342902371867286809142290160819513894303565446737128307013461987159648131131908920951082066370782653206321707663670346098395614874194445127853474377157952045369911614776143192403725947604247847637122025642281887289544130585701708691425516780493035252997967417508678522775863448956707982319070941549248908680692132703167625846803341267916465219090413866118507008702732833944075651509061714553443931474715061360045840186294233787600168086268712414844295505059850064632913792993959008934117257787707252585167484701386939326088043171818518665009779927726516910764108304498716439496923958297728386731852027076744629667789575073130484164106186185563735000608811717213224554804224037719953108040930064287212055705506690997511504094531418998023876074780866852924136669173834032627062268395500987053771110702865848890728463131402546495512938750543959897498000043036714953332365428594654226969410571644515280697280644999338075001900548113640791073375580576292191387108784600608626639593821701240523842356310312213428429328672750606792368778775255530760756068200305707703741849809395878991908736095624577468202736497055172215197356782775537671251639567437602560792850658331543329672546905335388502084871859376032153497551681532394992259010785386934152695095031146492241578321669642535107661445602623545112619607783721393766887551047184331164077693998973300994491341142170925122737374717178784752085910993707989369440578036552604752287486292228176320812287061873424368029361086065255581292181814700678864102883082535044156787492502784239197338376921384359391405512700377963370662457653837114090353213774378165081900953994551677030462848311113339570179205444083795452005818303370921347002197832853089925487362469692680568641959121757189467309559479535451053019813257862598708530599306417657056664691626504798222738635505556576106487834640158421711389029444367492771886315907804416295888622566121215857089341189452174786867835858199144606989023245010274386449251540207322470645086224286715437693961675879613718102684763549021277516679505564754852286414677585613445367997181912874208963618675790715348118796633495509090209947860673172451355556544353898622267003309303183620619441620999269360405306792689162838332520436273097256986507007360859943289164784474563456699210309974541953686663552280169204071725855116057413216179620362858506974713908712271087117173585757882266347523374338947108827795239528512718966681513909325032009301833184102909525223426973825994822800658258687701731989861166525094579333680979594273581322184265287886449941974663417371000889260154903630727515321992739388521882636216330057672733440218542352793898451774247055974376102773163872741037389176408001983211235365798436981651031779726189585285815204722952404262868282204542174542519970219551509617064805412181043348734424338203109520688741444899041690568437225155454054813524248266012974459530767217035326016114956857046536711402194468003998829983525923377218628822554755401426234355653725531332858878484619959046654136667336247472740970146848191647654480995297195676707608662377420960034257225922140356071490311247966642889070462322416395268043476396488461237056019117111908945713796559378587180407068698670126034811313280376986382112890224864954996275516940443132097939238044709837316131873234992356740248048552634825995017142629953953223101912250687675538145186332538250200467356859709495185270286394027301981017740832097164999399771917792825906691074964039771906455265144766225406266971361842805650507530800587134726820522704747542007721069902981372689325019155485897453180185330239128015998147439818811106837435126054958410911366982582942732210382956536199150332880084180704299103671644227539105930043492473269058139644256056738450647208179578345281397274672980423456086619286555054216758798374000011914183641965238054892618285648190715549409152692320356845478995708291844752348073073593138006151140495249139614799613978133112605780234236990777148465324325227914954137508565214777084685632946494832688424570172623118007193120371892550521056091463718388022501624268810276527665240603733397487466242185456104578680283805916158403849943418821097863972735332539430709998582282030692950732648040216195805433923297439889363877304047195098670750439963977689308650038319563578485208358987517807611625562336625505453000995097717361166377830262745950504389613069380803733729779700662147417135186050734831701879478707844182950535888826195431092249839107646682215610285232705351133524825928225965291029884443793900326990400552036059145463555685947027822035371283796070612193857303448603423143674011041125994152591049585338910541506498281752717493584321404816799113762948784367684575373911768319558048603379553889327054498292259324432233461528021094829554668260007777690872553384369249190717978841140316518444675115630979067190106816423357739952399243008932496326585816782885373359930047153936139268208822092943973027754467908129370126047364778918399729114508413713935892134105939135983828761788312322077336127929583959035076567469049312347288166276415754498624028573989956681419332779758157106038600125267496033658055334712304074670415176653822732393294857111130433058482362797414500883731962062360998945223200776963806754383038639646962802609664880722263873680694455566879988876443325293041347029031523703479325023236533663706597912406061519004531560386020645861511038001811329713243284345144422694227423201791233288083900160757763902617710952038036055862665028302996831316383834290646099331964092407890975005593127152550531094777801061774086934298308750763200547019538504533022761102102731101527354250285254924936314188164327038005342083817735752863874717722950372244102751295144417028210121638764626503600087750437707558931475863213005368360191522101855163035402879100066539605472250409906885764034382968195473078068048908031639562089010735562052920069529666375245600967582856472303133620233707512786446639448493918875366131542474634271320319485963685623838012873369625724052613294156128846984199558011668017484918375760116266557667982358521734555699323329645793740913940463278321482697593709246291433054387845708336452673284329726885094721028439138908532686076559711092635229707615886895519318185847565593268445758814786177650604886390597761891824087639659169834064544205953106678671597737224533875314999855704397408590931189916513719808244622681060313140584916950959395586115538241688316822025567988425937879301399519666017955323579947313585994785141614491517715292611350755246366661005828408436935740675654548120626655188162865946486645181440693016746406706469314172470886433636612609959650977490336913562809035320063028147845431818495335964412461400954229123671996431236413567625152618217604032916142248219330316308037157163829354190603610979942031608175217213810881183593527778398594864872257781161235923036923511295043958891470539746346571143440346603414108473114056903407285661877242768618779410263929951710547849030739537698279062748749421986655846685179163066160054952322373115411293353480545187208106386875832974831390580363876668063852555853016169964772049316543088528228096901412889726391121830085092411067504456307675129320584289221803720764008749610198506471105518471058488365489383511530943257074124758858008552431145002289253749874386886653232602373539003992563190597610115766593973372145096628344133254212647679800165186654245880486450910324088744024829694115370016885342461839402269023932287479683151860209627377964248015463110636684613566698488005448426121245244655420412380003314054652595679984369835765319346670837754121114949943974243355418586896833512190383155819536375230865245469742299420269642534259134336042638724917638537104655748159483065017925488555397147990042419657561834552752082808395807426009078891529804742341424882811447385169976010384723937200958022149795390089068180276927210496234815899578712035227594731055276715913000086164546530477952940629695099153663640469726478366012039658178223220835480627213223066469914109864556425088497319735674724939445816902062122188811325113471218255152708271651375178373139244698712813642005002347527134204593202010676567172965514282548581442578276584056817684882439274176490552555362816826632670746879275871021822784366998526868591826106874654940564329348822689542333124864854227343268068377306183598801872741349865207478207910232729713441065463076396109827413030962413079305244909646524942040709151834247971438202575697026236036100967894889889331029046181445900198523444952336212547925308548748680478551772040673010295982980293078965223049213254665879054296038575307925373549073201972213224697269380678115448684055132950954916253569894340101788307251769219513224969660189271416507297309085542091760008565878352830299813640057754975147295926397649555584551247608252009224854213452612154847439889693752619304058787948935240829301933136602597393404625040428222351839568278542041361721932672561741550242889451111029371793807824479185260836017212615785293446941392015608571362776277963644214240448931688506791077990034952907381948577283578263973366713771364906869536743981994065071475961927503225862437057690542909710697512502464410524062530199387008952066358317411671375316417658468141235183841170051158132332088421352739401542600088108169159033227176527245600608874743828815738365706795284148453099278809563458415984627849234142201226143034364442231290645609383837580084435299249651524163932758610099212012687154937896038355876169127278153643135817379151985448866575144634774519334602737663945153679297314789220892536453382667395457105399903232434487736070276090395702672631367790807705074563352512309674435538726694421500182396231167375623490988903628603045362108642979072215465925136062175719407666146073857234580393538374720611959882738244542099337773829021808258972381433579588753235249771129733021678318823693810704992649673539560599007492570971743757200571611487589122558716925157797872737465251431196686588364489688529691476798325648800329842025047123664213015005124471890752161288989161639026586370381966447661313625530864437437318805696737411288662910987589657538583790139254705643606731511786369091540909946644582994988193620071999113584567575161333878125006515454209855884573570217864853527191491877041730337409375606693462530138084080675575441637916762149555791739389494839184150631468734833717688549427861059721169055194633729268576131579703271853285216366193724590649413371587654590463098448495622404780680759169864999046759722552962327968382471067375857816013915208769692326117243086676517264465230327287280362918430575880240695215015491367268146749481372799355749674813837243258160744368400882810538904557060230165369271440816649861325835635094707081162406055086061879256994579021787994911327642545032124769916787418864445031315510690280841519713777163179139127521131545920473355250331043792702024320204486383599241938508761141113481268169957281839855601844687379380213388966000586321162971058552721471239223890056448454285834313171737487943940906081363230846249717075279241934061650789564779739800735230991740045752475294627613031456413823675523207233390525830652448646684919353002477719808891288019025416260231779194768078404403596454070404128607316599180337993738642598624847639075307560643162692532191474631486123612321546664616291184595226834247339847488592392255518623542185880371995305755154057778814742697499004682479033540248983297394339558708701893743764312850803265899792789622316131138495836676173632373814838266839977889428737343363406763485168518129924580211169263126817401904898986925261595202907184645736242791687283088743694574189476632342409231532426596669404109080192672187370952771055429927661741689968849607432021398787306212522251780833796635581186170118945271714035932066666752828991979887421754953766583231452936445319885833611143269989789626232416849842026038651984401549992439558530098803071744334712536366476577164412396135934891543850219073468828781042306049546768075816140022966429103422199832088727170458620281734535330801716703205403958950930558383542248144127812708944273831636828308157623030141105806307153936303570251614874276311318441849311789461142012208553265313121582939788824553596033514704071050356451949409461430247820957120301232869273940687735569351795415582305759404256787782741688231965428437542862717173291827610562770621566889423099820492433099112161195915163281976711604363223843649120542017251856139825052785735385401398569248006993991689831554099280551725524699831086601683165459065983838262778109962360832669750238932256445098350901678311687125298378446361517360995147145261199694257618346839134103697863707610268654967628271034613284334240367234925773496922519428852468662517007888753508066442877565803304129141878429151218317171297810247949116092277151036278772917537610465650183981979024569140611923535229287226500278870031325345245426385539933516211498117507758101785377482562416664844729714964238442025701021725086850775835463223775947644873253591710247800361717960168841110966074060136928644976831221852245440211823192573417210892040082749416190124512076014727853924576826736660928301485838228280065301291196017597746529989435386394275156352793027642135828764311970425334675831290642504321637693710726818847979619674900974173828801249096934904865416667737343123134824283353717687920131007023054388224008898412131720788711398819603787943517585943371414566619232469476713494809924218632669020630472679759561275804682931980298248801318858860117606849082483488900838848343994981724734107490498072072214444501334098644187047201341984077335699803348814973923644864830752251836526744566199458900965107406529629593240704271336995872917036006893740604919398145856375328816588322507469197674741359208763719637939152849255939908807883814033443557554851202053252662966848588657256367074725570635765324786177744050313694049119419539601989729197517918443379364315796606444409447232488208637151887683944941604861920650506117082997522190379283112992060555318970412672569101905724982214446329942119204655727351865847944118340242157010415096768644007648184197958778542855856552523555048153738295037796233719607499539581429172287236022558636773909036811486624833068455897615532357546398467468316799099618585731454476386582195525404276991703995850029934688126929972767060960512670097967689535666239005161925807710211583134767750982553055284261687682296714768302535644109459502447118789130886132147755543272577533677973934823155939760429534362139607174757999703991836667855225182188704970581882360016549741950180827323660655919130844717804548301157145462539797018571895530036908744862078178586361029756785610649250706761561486751649880562517896101537818686701660662858284476824113563450064445556568478934779054251019703774094210339060925482961785676917563647174734461389925878392601659652298882703822408204846848077668680469688167481636429015463465622725467314707282253300992210257788055113281410129353257523701099557610672884785939601922351962905139863202592789661017950721132686591763988048178483790357244677106368184566659390893458013562592724549386037861086787727977737689874285856196954416661733235406340231172633946060106690660922933201868481672419037348606648359113998617165365202801341018678393940297465174690441930226928840983455501264665700705511443709966699139603337474034087226851498584152038826367703665771869174723480908738569125151188501335976373439396122764391322442500931800742309068688620605415269864841275398230410518400670692691502981102454321937903186998928956522843222137428000815943389664583566142601671292928168863156210061588965522116799051227807203153368021866814541973776106756576241739042793535690472804344200744219025603095202988750306311347990748465258406788929799552357041865709697259896655476391187743500399359831669975057837432759329999306545615093551240286077664097948408596785122018143379895096861371286383524683228097221642100501052484950120781601836285102270397780472652506499708833581366039720537125003707103083793549333377250965458469404452930163059736755798127671486822973207475121280911146771081265958743148214979658607798848832377433937511418365082235276552467199265716089652269475552908816934584772633866569974849595690528457784359110698298609275449764091781807879432303951210546181616628996215086514295337065471158754545410574019609159235562578115341130806582386531641135128584179698999119792521192581664856469485247511719645454321203357497333544589733866414740989701369904935872699770625418444991953278613229033097438443652900339918621184662955743689192031811013153390125923635093544688883783418459264112670161214073570194276869962641044103649380403410593252556927267367562314418514007127969878613195931985585387315304058715965105875968666080925284290837712899732076560601571109643682018097839074360655271262883399485120319818190823519330337658500639849818639212150930167640605347753611364291753835507269438925580712053821676916602205410139017927028270459383395955271632704768780024376568569750017650808010863971722222343816636498763261781511286071482978704595879255898433673215448810754646650608296350832971102848483857439615293122669460763124667690347698782858166577072618511512938573187710193987337682298260419603119222763085128782963820554996214083988421243799821457658420302458085314806874704150146005373189221956970324858612675207765435731739177616825787828341976502719819575901625308676809101309250844859066753545773477906264771820998853914306467284059452026991651094710131962816978870302299016302041047764116570400105709514228546316431478384494539220867212779682105310393454778128643742795023201321842698478690692620326305403874438400804914743915840137387716795213049467287630009751583817349954961066189224750055269344240518163045906342854417037732712445175168846576244912229175693495717620549263351783240982526996157665105989287369766407511603344745752994311098508447753615992524568808832437863018837970355684076141908444805289708031106851520721159157845206889623391633199240124149658567894962832804647241369978445042306433318703549081406862818970294029081107007561895437075263049621243173073424667835044913040280477311940662387416046263815361417922971281037555167349570215697314746351002552020734655251491442219287774148468736372205622755823806432727594200060007133628999805870071602336297184584330264642417087738717867945281167897428948725836731766395502428316409391270453834318708169368919311369114485652468584138418485404555380978651437941071211416042017160503274164477362218985097720313790768575969302084339026926358819453529070561746119388956913086864251240744681367603471040305935595888082161926844588013404765157186397709639016232263402099525100140940958162470023821968902430350716713615769512357082868579825365420998249681761251884622401324665751128797827998283089503653191592170916629932842639392321543399878120808029122919279353733453605960165818462967657456522658965839548402078521762827421872132943460872168396105522122869667756631174301314183856729382855733698232181625587286663971691126852085615930502852453077655983427131157608141262429282035173199118370334506755907302923716265455841094295912520033849403342142897605147861818337922646046247244279683258442529263395115398981067192897348546250089696274614407346066209376532099074158060807106422550922562403739333903134500348807884771427259101925378349645922222101466800998484054921665858776884946354278713921473104805267138644259467995396243648006710439326813333416073439915815132445105571711536186548201943906926211339604050969922329213050576695516084081912828765987303556068565971986012830974210630033247424242826845799092840160880391960940124283250904604264439493056056268385145772588932760543365298404329228632838682377567388338049959589627096548570928611717220144099033956153184130061377101902848311713655092286737522192168616035818742310642328094796510425646146850992281918423972697904553029198460495868733049126990667832522938003685402693131175789825325228055520172296489302454797718002663652025893339184629843481541604748356520205428335001237834879175191269594293254109983296812751687907369903986662152734951602803510069280122722330266038818668320452814834336244823258108451436294635051483060454317150756776678296625083077690509832468102300252419821830414381894618415772908597656875844063616990467698270782660374301823578256208216495708059935490723379432214082888501276459143886941492182813278182871484997988533071679309910009982337807259289488404539839333814258910135097303869123047272404441842621662546708526525611612554249618340278388296557931122420053499753636995448833131739122803704923225438186812351332362044190844844528476774947992927452873675011897133284380002345409436166779686644605069784165253700229089407034807497666832770445682641385201014095557234117667621472585222020929760745760954139912806328366763491042544003971247182757593335778508800805331922730643586897299813490066877306243154916634449579198000489200205571070741308897843832492369221348766109539618518663494645726636503792962919273247166655851218277079607297985375627013696708230563996387651311698062141390101126033211471619384617484090130850808153950989818016554537880698355651354507219223945443414585162950791043659234272173701921463809100550642398520410763002145322699183851504780913303842382560973890432885749057562413486794350174953984965859217555346179926950027041062538453205656641369978950369097153662900507294481226019970057077470616412375896013170317135909642634677565327298894249030591066137231786556784946891633032597926346947608771511136349586827582757359796766907344794140038712895945782563028157391895267522694780672108632922231625388411518236781925296222885643409324558335285609115579699894191055522041509846168005099329868823716999243138663262314460603028236143209059221637044742115492156682522179263230266150902246546686574498913031305465441589473242090957053719831044079393374046360600800273111034702136107927983896338642602681461118673814539616716953265898777762775076496438231909934157088571995217482609091137750166965818815295635970373430651642117656579377819099706239848799680502181883215488935238625321185433129036641816035041607974036372459366060990868585221366810147601541700809944173570912591648005409244547033656607550503609259829387469048433419314806436303330204004717421122667485354881435845637231927558812551025833699488554902211580717113611317119443123869406105765815216325152656909605492743666098566845635695175441290219773078473291495074428764772349834824100856824124341635582781295761838799077208453380197500751592101427957292550517371122445179139072425449772817305948736484685239903253287846617371551799476862819399054026153734736423806541163323839604133973366385420207841536440761789999783627932526013150032703908672088278612190618459510911798978333398733921770842865788120560285807904165696448725845196816715392754404209693753364672484052351292689685887665423928278783722814427324076836664799528973419928611908107038672492501077739801089250425086715002817347781424989386575093633201242720542187145013046334412468807221042956598627605560462130412028471963351382667735755149541857192800045210458173971022026480934973061777817423869089111713915610138425727010656448585288383453254041841650810447475128737966897245971640391837510067499032961381673550804620189881617436831234117790091036850955441546285299517415950082117210426018142764803738969093361695579035585936718395854661342427102461425135751047309179411681873617556286225913617125787928738437115671743070030794673388135451575917581592436101064771494023499655426033282749083761943162942631962689396933417362411544065242728769107597257555892520308391591476677711846630279230864341233562171007024831391380452501501256734970685491488718994343533206141021251684734530591936840766044930467452445658248597943546680845435411420927663111312977404119967120950844864543215102317742455242335843089914348037977241386931770677074045917339913283168840662165214827162744717271754867342022144816982440810318582156171074814832196354410290523429177522422365081301794068534926498833043247677735507803114514225502177320684458778270230965735347946942000719078170729413817614356251032728361596127323769238495190799069516244850869430930539757155222488311531976741303247014133737723521177814612062936990051002831344468665565802872252724511508161249014433402979368688007815066181234632789167167153216443320305516225049498196185128192156655379837855367555318601761081092582042587669510147739208871904913753177510947154144088646781515634272115775933459948118965427272922923012099508664939278070845634537521616035862516086924848363164334624322771317809290644148366126775766913732979965701537921664285867753875239719094672243481773717204390693657202844928261106567320771177443776351345817075831805683962865586574173024999923276487339034660791297048943366071031964078899522486449708653909299420486463056496881556241050226743280479284142364193573073542896540894446363545795859161319047770624436231773226029401011610698976434302072816513896023791919783769167660228299648911883596100277739305455239077506749584222059594903042221839506506221331437196485794872977614487234422638557405555610904565872907771679350926802178304960500979534439284774145072936136619858026820776439330948136046718540762718006435847522963835549361766288286627581629056806965124992057546316818666217676061161803688123864257235688017455422686960955601644335458670409781314530693129747255717629521524239984808157736082537242957362077175678632205036246079102776857843850713939597188327417742615990353834912739097238550527625922462017144525095323589128253082296194324177801756941229385979629795708892020453269554646654017248011651225763680618827130549685013627710501019543758963519468882220381363632516928530458957390611876784475796476922689869640503470201221685241964303238650244644948905261929886969177586805682492521183359250020431891083940403963025364144476205809448101702530536255455752859638036353998447348822923652862563024936295878028105816927651447654291994801132931299103094375612391412121439557416154530564886182913274553309757163959460480400887551905525986415281130127619568961637289454719036280771875069347942982490200971885326135075031991415214062885033790793047814495548584496621935235943985655579986170345668950067270445151603940596065365969794545417940294527510223729777022528239813275940505730273333989471418797873366913038088112044911103990830267058101080769925674628316530205497010274414992304163810293176749775849678919946400677818139556252864948530429235423750617460219626601511483417548695400149032366786327460203898390229253913032729000552436685531982178000241283162656356162036502827964473861418389618722970686033401422955777466717898325199857407537000319446985147151799022073469048589282703432244489675507759014208892403712566914185825139476485393871540523292425773436559112813304232727529491710885132984535680945140025324936690838922046550850415619078993022749899836646842256016921513686714267936029715571061654235944519346481551618122429504348898195881038431239350305895579942534400586352762337985900263163718033110362237227209245001864152959140804090392070602569191904090899517604101589937916891381098898273392495151278970087323427817466877839066431756847360252484022188336093865001656845240097508886699371763858722028520087488902553243590466880714994479584523018207984486159218455214716834403761125847287124960599244156378217750654603041504159171156680354424373461323659965964382645725241973171069226305636116601545768548580771691190287182076307191746925684036658100363273715507791540607212973393167575125641816182850760211303037841595406107009123573238435761918879024674224994546850736720211028755392446178897200158967789270153964086079980164834958251183262374620846634744886411193440789678601680506417433705784736197757780213997684526520189668985436562926752857503682957388183957402596781721724110001535143314395175129205850665995076040082199062211124981164916817932676282911231458254073382089997329581043333812826251164237281394530247477069610852626830342697828723134015041629801850778802188900084039105283070015500999739559079827882932563212154162805603681836416867239942848345287004015865205577794312350099514568048871949896751233706708620749168246790591010336141703295235481984287790142041638509138729720694181208587747736024462726247091149355177402074732757452211928205304503183511862104538082098403732128344384893673667210186085850960162982640089445686559864814846506590190358161669731358605292385981078333847275107697779535733151814996266857204024314687437006110896660413620006312786674109726934044999251428012229204744570514449510826591365439996578635056311281822848346197546949377945184452411955354203078086086109280506018795154671769811390604957834926246060504330381610326858291116300284287375782324149099308657312820103980836267036546122396798864258658296667519483325196684456565766925655792808680902077993372012507348704317511552167030563760258206831850607979168282488608573582860634665021171140659350422115821316250724446132563142573731403117780793140432132256287709587181257208616470228690589078079914567102835831521210304908538012131608492266231281771497124294084775535159570995260576482301283393626230641452028732543493292230254837904954013615946737619561853778555652415075581223859983983827874383827969015641247088913199652223249273335055830272218654591017615247000786270677285505582180904518617637963610738718385792241636994470951094907155634205033049856649403486028075062055484186040999996205417314184641036734804417593440615267225354618156827050312899620128641881268029083288969709888680850184261119041783264324324478969106803093138868465904621501408837447138184956325417112930772903461975263124949765350918551287861149833438523156425777394747742483622104839757405734057930827626992911549354282667852430297740856699844412614620759952126799374931413128300759105961204265638643427438788436856869203999992244743635185667568380093635637654614368712954548907221039257091404566174763055634504675285252397434731558126268124375527140163206967836923813994607604954495280017995754854434294504794406108591949536216083339743093001551689132158334911883571329505303208134559124989411967908722810000252209754591151300846463782871000094865210287476086813805511684250407244870582017977907384790943132958253561233483674153328708950266244232497467151470225642082499880088309401981797018471645939933115603214474475054058949849839267931682434889821278047130173814405175747917677660968911958661114046449718560594699481793896458966475818237194095537887609395721144851199428811245128692549742190968952416596204630985562325603699673372498782720803618442127746107045918982712808368577649573718852874743529716242244609897217223078925793649222773145817852908374570392635397047792092854014252499391892570489494671508113203337984181645000210718406404195413833337893703679439076119413434715343585802863998676329384815725916801100078150887899399324534118428964950465852531832313293996156672892118896277210848401780432186720851757241005392698430140059779800188183078272221121401932295799904576817817426552888527038689132745728598261726398317793644908496923944627938928599358098389722940886953505906967454958242392112231934216822045162915227238872576683258419720607245643006927487711427422361445125065182439144078941787237466084912391187196275436066857379454469171805278837777258417209360653733027914679185711783667843935825069783088258232518530008394304755309609237475002485681308933308056588867598674468518520053737906338446796555786271215917039804368668742683729307004076542925826568743161793576762510961476510572983333222452237801118722308251632724935995930116373943679382478038337600799742111035228429027125518819311998610064003482244399565266304328479412818891419797867218801585527372647535037789805202818376866748124274287769356716812910626396247637714545547916372274164076558971045964750791305266218124240665177425647895446297876918926438862863598378777854561232596952767755951671275996519855204394439182583438819463471857838442955769161448739321813881620588367665997518816231234485008809280006611890239609179578856057599237225644019644554740532254013546696912081363765503127258941946542062615138159028878816129807435326076294347851988036000732371846370417726991442922707116664556246403984487809171473242809292447407311137283979744865813071059238508147313242259578251084124517595490349933191370665431796764310175746709370288182116610436629132678013399593226511265709639983238144573659320023838538493889669486688197250366927299230501492431956955569789442662936978984529907549087572536204852861919177805667986349979100799219152358977270347685061363392616916598691876593700921761666890021643689247536539803979029856271173099920247737313030587375728177353255957484895692334366548718527492411625167342340791239923215637363077935238402828668144383469326670697515197191373013610887004663203967353513014534081362886846525423914872613542128838276252564918443061678648851093426559012010035879275574890406498587811469212202497770552450306246913922312845879422711432222498396114469173344592003383794160508858860505660058668361482239119043597641330013964317767067805471990564046629349369893015388893850202956699748702318056240469585327787084288077304726951648353957801593378415640726032025733836774010489674072175835025172287095661339970736268017204083546323978836834724289237361493896012349040832624978799641417733501925499604301737365474804600912462693939021382271154442530510556165820121799046190615011238334021630986374207098885345164157143716342533020454600487060867088028417733090914680833085350987998943765257325997764031031661894963976803246595312670661946722750037216894017545937712477787547333863739692684009060604901125967912462806810688342662678003436205740909994802385978992075717211761473816649755027877619259793839367769537258805576374181937144451682591199483244983945718733468214414806834763711353350071858788060393202659230847195812279525022525239998385190285076272458358328482565284358109577087262821817645201176052497356905690435499887560190876024260863204643536967203993736660806607181505223922879426322915908130214171112361443518952499577224504446194127985733747617335948745966517408810475779253084732546595562609478802784392181101737199555685661129604194336801986976817357594851157942949529094455563698201283882765384233400238946539814087063825114500085303604391579233148527149475411385938428328009998761627875993340327751083674414000103563494070998507383550684566747581504464464036603761101242304006292160319492766546264930830472568592887428341964018080978028982851439141919906259355217598170116835707839851534140840320735854115306035518120002500763530114046714714993936872372323183381382039437121524617968460803757085605049600053168086386606013695957017318616918593782921188913293495689014236935078182407000558701761986242414830264286800196797705018996854977802383252824474416390496234515155526003486729410712201750138477540027947162576790814866335734870391588746663240974190435525913216813826939565366045275627974721961472004102432800473966747127481387013381530868269168570865690477400754674252480751589420784420005309474066013149867482371488519821283600527267113355431544217701746718225071644626538908435274164077665471643694870931842839071244060130351324698470266823317071240898175097194761211161420802040761881871841884079220390934169076229944132664181619735672950928948298251581338510058258977518599228773927570332708597042723962266594357528594202422527620959012659458404735274082257089358635976346985468869219957071289953070551764363427688090614995215098954137219600393852159465611373151460662189828820452892039653631064931423252178006945440529290334539526160796783611877930486557071100530134502855507729110950580760796927256081098633884225144066057654394426868374388553126276954974220286275341796741325021624550140213016909426331034579907005657183024888069358305703730691022677583342563102469648443279242420683580069512193277181786991365629806488801415062736005886724865903933589657773812628358442609349815266855337583880825864455502121335780996617374347371172427206970514414917231542907211501690121572337203763005219573777656170565144356506108742031629406415221498273113905283847726181388865918101814173763763171399334906886153487277398841177297253842569182312028968848168714199662054730780424751063030976088345450640376970017601101804145983558070893090026297709137248312815713536172394294424486641175945965397938358770716343944065037060040109758197778346731052213974157128973815371300646819646093998175463754565404964382049098326053175803643999531900377694615629153213202769455963688326883331809331666075157839712126162579665966975802151986927722116460808882530689037484031909989505379353682041264934042756381537729331873897093741115486181694661350026399726780779949685214578201747047753449130671638816875108898323412295467399120534090770187666763125634645153158328499191323242151199477807524972349709184341063268453700071889700698880697599962653229057474492212439853323589017676782474249842221252295421712185806679085441101993826212514423752626002861924293757438429821945675880128221691705876404028957302046275882966051288726565493862491791525456030423589740468931798351974785588338475289494275985730453799502481890776690580453616738634201680909508149543561036619561435677009340538207711365315101965321893007420478175216837925920767838391436812313179841591941225121692262829539360260824146511301672984163891859699801429696104215395403443676874934111108296612177295836537387400764236641557151070599874948509146713932809087893803655766597592862787217517721618290678244588112607577033998701973526017870791889878788770831722398980057821263693732308943179684872968162114006624072966624674819729228058157527513103133835951703108476534386775551586087682467219724416922166022872859609308192432166909816331513279284020718186583621814654231153991421430978057588446204478575013672293602102156929493180870819762902330796438816746672750423413304455185226313248140547375437276882846997372754722745987018747044191016515522269448365436392788233080718745219740380472834497914221593041114727412493635170194881751119486155662341102915814164534948499128773803202563753918635773351116609415400950745773808429166946469713174531510398462361041928999458419516298021644662413753554827513427788334467190421486721873445157728823276754075088529270811792634869547969335166612418082534642276551277699252543548399873264839948564770704508177213404207775389090311576661666626408711533209625406750412646479366879818279400129867862006916615106144804403461158358511903422548961868889228566634630056032464834569071318693117707689784336742387219076087801912093167337434847122528490244289935439418998514399525326549972203576211050131360850588671022722413987974946783472135388078038250681359445203509256628756228348163175097573733488489409615458847593733162456168508407371949122883239544422270434518451776830677347706762163820337983808483390526309458201907442419156930798136282832334900598910868324966329204885249522481851669730914063650947488293826073336466788876516102655447830353697996348905901423774008092710794694117081810507374250568318914868438590862364075875452753482538937108031878523241458885580136516666654265070744657500414493822479531291792192303169292761960260436185471323999004728891765988621812949055812217849751481224478056650507876342773332805629727075646292678970471427498089144046504111677800968703272317646837081418534740137787475830786660950661311870162796417446477059213359665151854365345559025591286235381601097032724437293989615616257920747878493305863201222521976723161479624575818405403392236311428617510247726658409706826755517434513108179138366444275727401824555921430060019945086919495782169735686942140185581206455058333405496924873339866906762412168640241650937065786487867415069535743601101382670624922435562099935218713887828459341168045709459014546995010393799148422289979779891717596359224820148438539043510278322970769885096174352987621759260654991229483711449943248468638788701743580244655090214284688096599753250837870490537131353435328027000103041278730367399039657780145463471138349695586259507057106924631860344579147010041539237219492430876992131801348022304302344700651476754516279277105606496872544582996232094295608045106953798538160455072901492478896416259689758791512525444373879427427041307463905685737386291856252377955948140375147103891542338605106948925841516131486285549571445893456461085956704925530859797071144027416671526238089552590762477516277949005467637022116979769086059192571265661384751729938501338027690531723028707741922534866519672625496531186418593855313957188157806111205896055274917694030039016688221690645398661477442296054307917348365017199892261738223442229405918224160684064194797955934704668400849173595241035047949695012923187733788522519639372608944079822024003517429678480163860483915043607031222000060242451357721320628765393551458977824428728738567683385172556548867520209899815047796902815166144918457823220782963127007113837756005075899665376545843358832975730868009907674422859783860235548627815441675649462901922785493160822044444977971007463527878584173633903610960341452817800258094985985109041050393394604613752576094720014112340067596701004219119728967181514174736365159498361277720728628851856099303645698037910845906074703550131778881821532081381435739220888885965355545109046348664533553140619828639339702136820442770312246485394199259587361784487868240517098024388070081286152511223861816513693863137925317976570732028643343114195573846831480263688675933636480259758051137322954488508666713648415920869589987028598708930020570435482613365802753227382603843044838687135053428650111523205243842853284069384449738392884763290161636950589526009941632350203386819457014767383088904217031875920772582777550977920028831686605552968215752187820856255512418239809399092794689496019033131957006028519705292904187753662409614649119934582677454090225090121682444525122559023006311293876949096222239945390084536552425162907751247984529718394833606200373670108745635166841249673397023018747667284859228471911967641622018099152526098532111644280967638680887769728113500161907195783082599985583980888775581541390089039661898828624735861071700781215539757368030956300595287970451941102319881353996923693388387983552654249099866512913414934967307928724865580714418148266497593929332185422436646397183387335350166440049439127331025419417458720437369879283783374033008602178556822804311018691856385157623894617176865160822809485298282903378683574235746182102529196329835230185871871143418339317720153822097329512826045269312918907056887574571116784842337802197693018757599615744451786595359168594127323481933984878934518636420077318122790990079112098963120571464631762205161669729543325369930322131700918961729390576024574628945104340874888616245369969582141937162971558187244020118743627901161253702408444310771594333209929687215441802706967265230934231609434226027019888762425886355067111477172834124825442737983199424239208004670945125583244353159033148985970050038971322607168759327443444981285817638272754132496394488794642460355461868748848856286883929081603440157967553986432465488526592451039608684459219979842287937856416968000317983227776726337281299742848897726017613692022660101572083155204310897479890056211289746518387351272183165299249420800064879136686719212702295903805418119207231140918142627886935732938958404519908871254773906565226592942946400449334021793446479433386971746846382959520571700662793593883474750229351911231885425938772385560947429582198936959453816763280427245261308210149528833273167812621503474163140443693120179810009320017336262624697660647650048817168929759102254053826999165246144824198419212545283115542135798352768209705560875331461716723439776149504292809863929206875606517981182201565906102591543743959720454444008372713444165319491171253997290873364925981420360189062622507138332859030637118994564964081562564403512560372924302447893729034201001442957606046197070613385535989542181387582527941913839926780355385789930973088355435416980565213363297594383097949037679063998833693905618366831733800442968538747661118843533732680367752446209208199515724503208213480941254840507635158902429555125476637374198068872238910645180173781190666670665561829725556764708115248558000048996178087290875239545376449887352548595117335053274362188808967028572031992824787077834272217796881078134096145671326269243196689780978374994575158351821314300213350157971847585356177778438177864191837224991849136771424727811892772317460088482286138428360799843193625585140496260499980584464425923171713828823916337262762917669667594883396594304311832932290665057899032524441731085766405402674695226323133740791686192788276671088753853933817357564645672728127706311651226745304883464203853544799209850203434564538721841953811408413936573267083135767942339069695411443629998644042050482631957061112508015012248730902024025301828785484546806814529536301886553788230094727818036283697270118365013952697661619503805144335793931816139475818845224442587178339796238951839144946722272248151940607295004829227186483258091736672846669380186112131049947174268656293346700468297984725876140180870064470768410678799065556442187385573919850359458345278758596468674610761066335931408142760243503795267861291446089722277125571073796870252410662435896410550942616157034034569981864769297612849464760937105198291715857183493883323534162815666979014134132798345081310649940272052241016759570040601879329065851714151718788945415980807638081348142711455555257865119308382691124998498031691060350757133921723406177919033984039656314016417088835686585916753709536522325429099235479093256637764229593803902517781003920468427701883636032918241491523988769344856710101869770451953752047042079251243811687628498196926394541450040185630388370883823612158430580600656233770174434338578368213764247787356746987707269570121844528311604795842110742739824161374964225716762306980417855015067268622986085926660893146325958208680595597852118388534454047358034421826716299194249977823736005275328791564805658298048643501548975340480178439652813410843497859363155641631890274480567732097021742570349643666790179132893166889215714892611889828650161421440014138103489807837326745450497759510314085579611308298645700907703443911979514420361352986575196029157735982181970873428752163942958431498106797299247887993186760526161000474170884048657612595201569665820996869202807799828231221808399517250209586482562398225466332747514863237407773805842193474435391950297182509315418779438258977170567950922232995050542498742113844735993575819724580605378362733652143800993482542622285594977473449685273734120725105758884086842540971116714811313575922407908928512254936692761340873230752799092756666102371050884135512120126294632636850438386408868490668283123804076036866725534846682904081054397557790216129507982341011010423244235002120986090231700785370809886765859153496044064986698812802426598794371360573768553867918740444149128628474308488328980446441833873074261695051298029830105975266157527023204754154986761250191643468298007404173463613428039946719627992422432434076110615900869894844234845044767989444885848173770435373162134873747210728879741237308956520394109298243795526304593046851853274007824121202989147684363007981766000900564402565659717962382720379061182469602013670764463722308244798200273172063667387580197628335386452012189356040375389949050895532793515153774847381509775289422234948608101324881936555822326393133251710081554458831270823935917375980129569666927044287593154216212097436265969766634491624733681232208302192785683424713631527164351037658417358206180254318435055352565677145470577117191649097669827696147494462171667078075645135645760244371019908227762576917205188376915797351940677242032259328716532309020587388328230223355076067598918270664117318098848119875513141609686984236647924175370995213693935569570569980811533174457444607269095445038443158430379159188794260480481861491721340002035374504526331103655961885984394426372845312990859890898067573653806845268347159889708517228070999206912127462659728984935944824959504257633079702964462846517618660689867583770385352552566366178314791067851838138632905098244099255194887272372953424724040912464803359990009954074930690544530640225031055427841994721328624081183396085651767842810004056098556225218119888776631119623717758474683974597414039154466628951730441604042166675408949296645981848838452647906157825460066149765315991852310693496298592927184378257420621579346445047485723424816311352993996345059603604377755423683948855817826794091854458649572602715813860766965460735646617971234393980933198448876607237080513781030158811116539457746351371161717042205125919379574615945479936637059142853265999980334286270720363854545813418959626984699279293203252646135240696553351511517654372042942165601346123339650989876247409590672748070340264047276212318157234151280029166269248300052219745908716527903989971965675312274333252730738779881400082048516246026730250420370846270265317720983880549721546045988588733348223713533891826585599285483360546124310257072097904480771123938200602199919801177620405782755359829557239614348431057622115291290747251710609161136192226043226655249247619060352982653402274904748570661061222756362691602067640763303529739713699803244666661482555863061906492492562004570470152599999093272727014153243645844926776664265432982390623864406497562090521904950441580706255169390957869931648450423485237824503528944231381952107560541036171635345380362218417687253537814583321082336138567050246598423495563576131811149665632450706839636397385019316243386871572472966652882562313903312794035100859117824850124151690900526241635583514611283185558816663853864409115611738570604790895748054666822339734552681336567949627189001774142275973054571690937534458282467613651708791922899462558961229771877300410919602584807124479216753274436307255280436941414695091154681642673911818404006631861869991402616907243942639311546647685150214029572470312971639852927435328059330825659188954945370378706092130949209278615549105659537379650868741683383003043866944336004485622630580619662271696724169220324211570873093856556475408603524350224199123504124020968411349428842552572808735832295269879941376401082245110186691643310884674431430933626082585483803243325876469110654199635367941505104889191062143371670154246198488565666373934812925197093174557422223595170087530661925346697382892048502887672185351124298684030717738365737934016578167086879736366391308226273271086673324097076846612345012413782074172036132328872953008129380571168634765266271244841397230532477450653036686906420576173535760727791980500783275096878343642162000525815365909099855048609081114763490140046386594347596136635235114019507508344820056214747863670019881714159787221182573219691092827764475484127161192392379297763023800240100103142664074319214644332772820547410192549967853864098048586114013850645573830003945921255317017366786081421456625458931207242875335754194789646988801473957914588362634539030659530125536776042102333724996990181519212739867050179171897508237566881029019720546672402175741955475667441791940114424514713364736436819275322200578791899864726942339289613008751230859767759339994016430139800847865298055390285028509631560107280023533280911504276256270896873627658830371889533381539182498108605908554114574132307148384455922090515440257907041097442763273354443815998424684856539822580642194181335752304442754994546945126550771551219223052851595853186794641227382390276919320738330500929270325075123156246737838163685069644234606122155543231926514112809220506421670720474242303414483179132031836107840120008976988403816752445122995498747857111671274430312609565921959925209651785662647701085518721464022463294060910843352447077486193548813161136018596504812375885753425603493098636437102939658857225842270410673100978081794380275793614268440304057807237278680769052782137672548930862067390262952346166816451554953150139069460008602605905232927388894359045694895179979169787788815591062558110755471794620296464283641549177606854016563013527980257513454387461220756671812110650642028357590531376394615370949056844723172619751674188363498682022090111561405183143325994153458751523069840681811869919770416937486442545658531109876098297496080766625670574379993179932497133919254387264597234279153451490759742078272212369837465263137155127493337344854529645436886528308032481305044585118094826416221407903825555549816964973719226817613177827951213095896320610173298856740181012048694539463444167944299823782144994677767790761209242654996683165254531202586459326704727012844238373166669979229900541054797120595037305054534052543189911105645601246651216149845895600348491456557127781926922289775946051211041284826111344180008770962156047661832177744766208714993071533430511893032210374857850254259285167087495212798954140970081087870565098023881954639426084413564658928106376424946919668710752531961548638692809460262586834925469479429931808149954635866410795969859075644256718143796930372489492969064589041581029832163384751531241814791644089300581296095823916880962788918937342807352516989495073794493585766898530849693434115106538176538408563735455977231746834458969847757456002948718711629513754716118101399852245253465783575821754027714261407939457864422187804566567535091480122334982079578119147488949244420926625430029065206486645433554331146927243355900600268106912139956307682909299874361181828236040403068486103569729698944181827850061979565499677481131563596748783225182493390800988116944458883162732977053256029887536061046132225821972888861419420638876897680539967582686844096492119236788919383759269582945651700363492410449626182134406077129760238375308392749335097323887787985450030163008313609377937409200086389322136472349364627846777784962629696753044365984485881621039281053881383300990557292610221757411124716333308061436483428575050236948508396749064541467457868607512507860706025560566551693077471699290824578361910358500162845828779844558381010393291396326798004241732490494799146408068246483276084492760767600877701236425153047849019113178274412408265287161585013311908102808400874559336264201076947669229356966861615919035944183728704155558995148568907310094830314240610581744891061290237354497721983564599875476026970862662978882750954194641480539205222171331474750490157405537387176903430328072052783813402402538582912354077958762030626892943060469056040702846196688573905261191583619761388975016649558559615414470432317263144837648555505717002532809421798558906693880591387551875991628348926118771289682367286358736757152941744311240845510947248165780934381128810715338158802800121194948275119853279671394191225992948772552907091690606261759554492412756242649975778311980974971240276879347282249315288431602602031430342001617500834057108379483774651133727066649546070010669480787043023017214299288956261952573485925978132967419472267277368252047565951669262652948931595378090966605416418351589663080694314787760140466627232276625873509952336591283053543466062457430640477251629506736092226260924943623375795959296151413452848757739238595537636978584911899044848006480708880364992939151234882050035462291835654522321459406035496375539054264806274172116119834757660662614601085672406097450682447278673774650125482219796768015658298643983264837418294270442107886723290631231636300550904257506904560095188000953659543499465755381825804402149185238115372756548800762273385647808950664312186787352520159708925232741328627385046164428496672216704347760895131533421478614069033728579777386770285318884733142056574660490999377954591003083018344982708823486044430045021514926760126887003145298085813927868708275192189135512558785196358270114094974245373052149259646457331318790770554287129631155346711859954671542523946524850665737944310730716505594939270734071394724174672859171213971703900329428207117728495076978550770017967629634531795915028662282581093976706253537899854066239632118128194808482822517924284410631248450225162695042591480590860925320730597447550198237148966010050749817040474793014148410975847009621736515650559426496533518453073296546756328375947883304245591507805159639613354346203222738434530318630842645050126646884165567289509053719207410092355705565582867580343297822860797170187525592293373326135784820267816427499202450398704250644406763812323144329198895749063485763488625971403081366109203307016159367520686962894236352659841311993765973266609292963967517723995721031960813784116122324614302700533988753740708958510773505080183261824490920953606827739521407612098894930627672864501208090118124425223580313335068799876081377758586872462206013980017435760324679546362793895411896256393416895180131593535704705806756243418044180984765971169278082149169845516041711311436703546797178116348996816033819349388869556920514206044646927967799024555392703284782709521395887552608827958004988888231665252036377338731903135536787398431503682512482957058850692693812910353417537119799173209397891438870277630969873040742918552047662844108956997744730384019624091127393220752850685018091646432758934755692252253352523415593121037829403300413275162463261752129976226472264902359278789201857875935071030118695719217053543607166312713840084139215140480156439747448911707752607128398886936078706098734848503318544181695016494788358330366841984363742462026111842063670696036993103505279748544491351851514976555617132293405098020719623388004678519741989461714424915879798633854762733859582538174559988297875979619387660076799527545699569638309707951832566689329921980197834842337358237668895641859898819736144361474320905175380849922916912978734097669360621314843663678067471517647314177234774623518650079169530304405929558667982709459228445298757694207861983993816539607756535366610451893609230534212592821707040458353833228817711794103065559845624522552001499365919446725843138910554772306020288178685358304033938361883890022775644262252798370462160641158675010304014095710891599336632220244232006660980617318054957079473926812176983863307849636811774731750983746498603094040674017786866080646494969329516840407094523132515761003612044376560862251695999173300729779524056241725459432898114887340758443402915248943151151056033971211338006787000593759667021567888549819445707384254003296647397886636893555465663694043633395245500779154704521234019625984587239579373371812644881143591263090861848810397725948794986434552021964527454453968203861224771523809010193833963604989622384550904703771398429315828350322736357076256415846752240302274115444578074944745967614593816526233662256031975110147391867616785253426193685779081800412325961538149670585738613008006503608914916951546789293408022178705213616092130540848936139506961046739958120463263846210985779616581159143554355863463662932327724659704795738715765445090170091394021769978265862169917228871472281767441807153475999147903579662327867955398006783597156732715796219435935293164334943699042294588236490615582872473953202792847098680497726641971806426487888981625101896970701201799640540602786972256257762411950113916169454333463302031153583819757524079952130618454091944347480895397661026584756776130415368202725773198379747746321040629688052661413879552880917081809645771303507669194395902674839522373674294022443849605676110031258620989112763624129534371640627846544219876335312264675514214783406095465027250843469008671276926610940927840467804888816611052216409232031933521862505264005251445666010877432555446708867045362048871807590697944676915464546344751523713708836474824217016272985454254854746217180893127826093895729771109362025414431414015119804905115355992793710390980330330668352391863551345910669241655728275117550975858319506108781596371455634244088560478804645283334386028931884758657136772282211938606474388667597014726109849062531999476681086954759162167254178080145961845147073351081998058892309176349954895413704750787579235150289866905234689769345922243708853375868259013081469353496808683771450329122608552916725261703931381302420316118770957525540079589202716986072069227059761150104067414322339435195667063095562098004133715645581026713409254857447313777242723743389043537745765517886035258531172553538766257377518840676454053415064225703488405938960995430634858659620503132869667989532162272635522915709665292503883860181473369404277962766739722166518090101184141582375124741063069881897492312827806700857335205445538003292241032693972482946447937248038472869438337167887620664518697031462211860228778385541382836930819401425149588003049269419597072644509861943472563148384466500955452060255043919324700838767082956044583562644334696218842353038003247082340470533019564153197169733997731266579238612904730548205745220208087937042950103948949692443974733271717356438081596998067777791916684323493721947464007696706234522102803022204027322406692047511786740161214275379574131042008153383484761898128100492256911901958115154787032169379031873618834977979090418489036692048496377619785471668867961369029452937610119438246761549130565744949923569651218675074951847340203262964616238223882579451102725290361614325298826268381192078394485426923426984261326873953222334383803691929381681139608339446501158971620659232545251675738777072783005719145382716079167529928808942612959500688066414112980378223949991315052108467287320135256778558947837532394679809094767834403374278665341169678601315141639843588571455018553106999435211683865013689882433925824572610929866166219068295303285663512293321840528272040725471191071935604530315632366345699488398747026557598930778074722287574079077505635622444923916316858706071455328207017319743833838901217033064830699246202663799393422407641912625574969001323303258602133108787941629158719478442771660121731551929706303351083685449018914887094483466748846034442857000580510466450502816099736808588737479870601406831781742683496310135575710733089605292701003386846904246465544372119837929819911153127327965028696960218815135362035790468805312314725114327792391804253095687789176240245632408009861340734015751267470626043572432614418529003344368938390780383308894512356431266095880831683707023856666922965545946575644790356355921621288517148017870439217767598140355441544437166351996858865503004468601129440917345982948325441795170539702650159657167704809353189017209504891123520307242347645080186262820455326866265152384738223270571039643582432550982920130861582730307381542462766499605848864653884852980997457855398166461379961347091524201918614466154532117833566011272956518622885493802557940610046758268808150079869426418540166107190558517133303919251685049523064808945129378509635396635707791670668676622076637791713360044795382193519318324575418919013037249816202768737195913909363288636393167251684916878916182130804079523355729213915735691374962436132299552561539346729992951634272125710870598441235898276612136428697394337604464663190736922946040957846953620034626226680154463586606789939724553857770276785824094390092417920576060901326385120790621652707598053942027020171852492068349019413655402385314021379876990962209112162998056460392328773707407747371881741433061303297900093339373250821397998721915673607005639343751189471005121105499116334594287343461908391368808254104549708825761345572994615113273438409563427941535629677098063409295323642224924156995736213481951228662318364118405988296814669790815651355515943213839677614246020922662889946985408308051403728559685398059234097182311045168777327338899047085097712680592819126106692264291299203119394252613687979736179535339787620028690967810956274818841332476591795710369735644253021334393949480635590269833441849671876660555655469485218101230514905377763383778013503521502605772412090065387185072386990571125945990125208705054715556533416880132003758589753930393178154851972563675900508851081699149031457068769509505895606516936106696200035869049705382063864637764768284855729006388171307405698329486137827216810075829626274608200731461269757341381794296033336223265183190254878864246248250293463909580534760593800704802924364800303921793691849044468553374399903535552324826015196760170565696429924640206162147951113884946536778813893436329184856193528954220988889296757541209459887092508780341029894701815532904313979929317435517913883873125161055711219894300776867727896945445951118017003569955855003105726407156851913696230307851901521645484483442333063517692840080571642031106220767642042033601064510296035457036867975543956558921849208552825303722546950666608399408461232743386729948154550599601983126885378372251786505795046896179822570274358509269265118359455441784861081130236668961060200463382365450366508617234355515601882098218734749589979664992282491511462556469960772072323412158625746086004791451551574069092621398256041711654544556318298862248951373143457215587919647284617579787877273725909621462325876854668456821814950961542131931548290270006051534808338081134118569961503739694486033892810726283312287734986647376229856053399764487328847447657397815121753122726881377703369390011760068075041482855085695498974815757443238898161175927436225190586320392199757762415844731672750051586723909221304201989910719275133650873034597254352670024301456009253795663949179773924875130487185772560388786855245868575073342318016260972443406123403706680594807803008110807329131098656636736064426169761705546994058486745193868600699553860846116420933076558228098629174705361186239733911060954144845330716077030811190915244139602615517391695860619494448749096605952679388691392734064624601764268735438156635769103614174370045651933470096392108681245141083471962880642672447578532898216734054898343135748829554559235437566776849493796152849552883119974979704557001246799601795154840641612451206003032977375977671381805848225831167925654654446839120503381506561091104221716622540197349648883539692137939729994285931621743228502176039110478863442040833565758924756448843876227926649871218159451453920591010471748917017099446389017189707112325047040155355121423515795642303148323283512309740532985018568647873904956597466057026706082619970199015332035210587837232815226161573584546610621991744303550014343133034195200895740505561491307294413427084840821697943910461348854712168682171323419643568826756128038656897640954827292947105810440845658357864222465032667597480707948123497741613066443326022320695779263440889173710586657124685079862466733400044311663433971338514235560531249394782405901452372391752252353063687250329170444437137025719529781280564058958722173969057393189138858532332834771999358300750199298683649536597648290445392271767912209379341181121690372605434434791967658199489268465872690326904683571320392956977284529521423698514328442505798712974960053218915938641182424282671972411705502341098366374465940683977446832721261939682803375862984366817183255839807188213461489844155434170751509798031746919064662135967716678780658126820378057424891017803794696632967372549004853010848002813246423892408876333714669936058224071954601374538143009414645574681701995553227619405965643150605703098077706829723818264871015140792314708013462815356833186827600928280995259176601436157091727653112582990114859617950287092972272909674880513592123784740333203396526798025207850856914216638661256967228210378246354616886481424293816640410175426094592079066273921979787280231313389327197403766043899424060241600803624531636681311825553700441913187689608017022630476368548555042193882186332525458712036850028417515729118196668213738188119428632382358377892296792640212154489870066747539438479584138648577920710312822945556278274565847533764803420338089195565085008161071268077416342467747115447755592283825623464981983245140297760500533848678750871383891501432268020019871063366781882440546815180039078476552811675186683647264049106376455205103240760184637012305928505230499444107914088858302119364591930523448572443257665048895161861208602279402050194778306553802828522132942963151235951505406083653926396837651807661366034288265008939981776681986753473605125095992178587682747739574196007290865571930153327862499801191177708412778658927832344321094142244358698034297769426947345524614292917552938577044979449932346583801762439582448299446517563653473314637299797225084461483076027655799890434701306596945473930343945442271442134078683760201333823427971490376840937940139201327166411182251191318583785689784787879347292953278500281805135724905413873890681462402703490999870426814666484732760641553543159570358138156775092869861282906260916676679182951155276698749149704181074116439318681139161498562196609046031867198583210883721882311742268768531869041684113539913633883184127798493705240307438088089604959008454798299082550573593940258011410851063083686719714560738152945915280026543147252579969412471838900512498708774106666491560168774626451409158508234056637412234813974465584552433121651383166261439766239096334310384653803516799018173299935967587205835703691200254755590821459905018635001088471826653339769806971682085592543213465617568474310178268649830120439855817045314645646105030637303158193684525875787025783324162565830067004966625275295262973069584517312329550180401218090229713233782336477809048779143037796219502602639234769834982157754249154172277563534057959506452064999733847699478344707627904526530265589545849276969458469426269376606269179079849801216902344883093759567099780638385270645157739583185796734821790734730470953557780965292615125412473599649622605157662456223107013879962813218254537424750606235411161207263695475581998274788247368320992238604141123654376566222678341331062262557433281516875467658555843339946006376268463520256387723497060157481335674798689542539327105428941172527520987445592358895476427477175318352528254219879549866852579446712105955621812158200202213006930202334438234568991298148739866408511510433750608536959458211883019410139289482734896046713491956896507933876720651465621777312102001528701013892430857772193841390206136492199319717107254147213215352829253267700395146231293595548748666262057596757330652640475674336733731308993437484140035133864495171799486783468910965369405962017195691626252842708713329934583472131449789638777927639568734466820168270129589376868821780774604445006779526381797923148346009300277701156568810814295952081103672633160282952497327417815991982596664420764623224163383433610831645410288271029347226918750714716654433887075705060561625437133016407474515612828894140300352074819782718270792233368474569027802037269930444001592447203270128253806332934608847183900499241896505449554235970471321810482899791667020784329414432186272033493725160845959086299670773826668922584739474493974159416623739297586252953197808354123212271746737410644136294054270023213153288201953694668125918872393585720989233957572183552718858315332117790083478164217235575677306650955434372769205604714468231791053975013094076413542727498778575422633261592428727492126100444411554662341332582461744944325328223139660734009387557525827617647588361820078344214189463151424042021951734594061264648074304912601423390698992543082740975010440251318811894787253758254969458899684051393627761794467296723373008541620308814036377159385111334834427452893072953662328067782449677543370399268025169258410321044421597945061119802979413068612381766657716161369313060852090419555389592170537137842342810625300736851624219036577788489676745835873467190985210393926257066266772017498225865464818703129239047150886205294115877241725909622824518208148828532037042085589685231363655145525775915081756473722175817794502675792073763376583112108572369673894316875129609548677096858824848013468333681944801071604574089203933227669980818938565810034269762793861003791570343506448954010633940398234728229336767323349595940860160311104041128448941849654856061277414782309752633718345645782878872722508256488975004073601186125949573652411238666032914874588423550433882122891838362049041612432161773331824631477890896337434698901937870471919498296768829807395787376540851798470500176665980919435083727257987442984313081028575208477709665921858925175206967870101600539178032617587692293639348365832272146444782936938343610541871795300355248117125188000073749992407599408333669697842071175808995554988802285209340098767191626074047351497953555966044997001484938271241905504390656167946830094993503257129510345674709356021186244815825115409568360874944369441690394992796892513138587530811040366634224426982126518687437425798710953564172354572072219175222364116036246747008995752605654297247786997090123236569205042662869647558901063138221612590645905890503179759268895006657035175252750153496320773253747589625998121517088531073769901376273563763611094806040684594031347835923502578453030947036197862037064061725432269071930416766573104538052696342169917309200174145291648879972580976154292517442060384212021881594844586873109443723327589977462689339312412062375476957230808757583428841707111902982568568248293051312893088312371940602362101490648952039874367538323562031034081736218536132466505863402438288294468808622038824896207677948803732694551209360932557611966812038111306274753137012883569042497087022445390463622291636850576146759001044389413251241816592571077642523115073405053515219668690228768818472186306879820742290316367888463873088258123729618709179998290306454253176496942100972135152039838957147061078147085140622455671117826944825443634856998809500614674905777621738505971550194280211744042894928251857638091857950280745966754051024673751309849038430137305296737671458937713107296597391959727808300462895346225022944793272628809089632169666817810346487909565875141612353323370021420697580017485358155636883634879015785237350825845952112056893724687064771773748025365668027719401300335670134777342285672373147515998909326670056005981707020670439082634419923697228418034998923237962830616638815273961963841744819655464524883311273503503755438899106817068316001358463868520537922511078014739197647861911737414747658036291304584377189006082407451238486317611870939919114766343622286865875069514898651667170171855658410216947299765644589804129161561487816498160365528352444773724610787483443244166171147314885796932409333687706969189417223732957174025689131440258591286060591471972459222577049135178389282090549714485552504998531431879454740148805765697080085778443583111049697810408858972611293797915249360882601263604528774692095192657165651796378253143816059698147016911294181226482997480148871861313875016808951051089548145086502530172397579737841512330288486891870659901839535045809490239577623410965595642819001212852412977993195132683307470891338101368679828242255751597621276918353330881416064528410444439072362065916809733223855116965184981115155664781261129520471523924834865020700434890752514260644628371317791645108899975821015492288001398361519289719139932027871756794905367476587897698570728966136559063289703325409348595684022441905781918135511284441506517305579490560854255698057826726999838165948790543473272994702383638838480929306040170586463485204160860862304134537587325609657984089485713052794830716059062557799211154817303562970010427631489404273038898942902436775274275761041043613225792011983494286022332188319291251146855983239392860096065779851277494221209651920213660471229607532706468928515427239956193061205859577403620251342931605132740404321466936150359992357377118923465282616861698434315473158183099531553607547508428167140676694244417408723357007272419749717081592680862978959021621175970075382247658396948165912288916077878848898393344807455403920024218550375776385094178851629590658493126645314572810081691197935815549153451780532490312587586700203375248973150878510392882600769902571437539327694144895850143585283451174811185738649436116627779518948281841204851034132675674783710891237042096409349204016847772440998793532726004856711999582403474597677033149029227461371669917355129032526980161375269847541494084847880128847208218531014494092012040488346985364047347332963609286640568416737227903466572079825586540084511757652162109463850412392064394156990449804114067427577671144693496273078588096626164154643719545227208937832538326283885688503202183251702122823544918409561824421840967611027901125984056463330239887612438048943200366536440957659426316207333929623656589674500024339924586618150907091921059965083446643901112079867698862376409909001884031287682243801655912133971598502800110021368262399390727218736502433469557443151592292726732319090524407384714457896547858609963244806957399436244696869992946119457456783562869853253424631989344097473125055359938929062632789961868340012008259241396717371378890099641109188462481032017943392041559562426603403180249275376613594469998723253439722297822980925695791441876694788354013243625232131579970897206923715002797831078230410904954611399879824641367521034624798220652977154934790279730325998508612247578781474829865525590545532045004113931014438756179050644288712469004384771045038752543022328902755109784001509127224965041369021964663868617850832467867085722399838825097399657778374941969660083352521868198969409400316215654737156191718341341605673625957880711578192041754105152072019659743523778745127510735801458900346545253236618440352897572162404389852099252566934178405592929542251871834453662790072919862161010882826309815259718105632391319106785651308400183234982786929725908715178679272759085098558443335935322748879939718184565949984961973008031180953786432031157562560013748646752241176053756528480297930540296629922528389549484341366043215785650390817224166512351433667352122204642061270429178268445128382476293123376033866694860759898588083904081289805845175239945042252274311342904414961142242660260032300533327128684656301416556150753542784482884323601131218347721726559809616976316667766729774600157523423733796572675518918370855016489150930452965610862497183531375656516281141038608708301334022723085062076298967366295030323377400963712945165759722976739757537348811566211669811318577173428867554910057699553116985372650126072671046653489269081565772186285278580711691125687539352361484199136165811821942278032807414657180102481808901637036083718891819547987147946487183311752760521394366531008714866987731837907616495947138064748200053762169725081584327095373129387899381224193620460374746660145958290508458646983872041640255667076122994861043350375539896996869381840707322519572925068714428294206852830030310978985844268078430720616569235922307687127595107037650876303275026577280951646058026124590947558427669953690133597198035712967316182107257720854522940775796114660159516976251751661937003334129982288811492033461159237341405422057371684104738063358802731062815376261634671990229939233839223535513127786198039128487880403515889810969988130082889490794511340507386459467409622416148787611805462637775086510329854531201695549549297214645916895018628160814991374203063729850806389814518927611060467861371867068828955880493504882528795722377906629022477786286803396900544555905370944309151038987973421876602913257528345232889086249468617802044649952680243271534097607328367849931708494900332085581122407459891720442404973598527204915635542506603964016204262669824045222892325054708050135856345618361145607443009742441106307823476743050259936907135660307375404012891066213543723426373663169369493610851089795001736587096335571406650961545351438058273791640838233253055891852142801842999625358228371768263250601167193405725129450097373954985394302641087975586311935988346710262182604014975424548489736994099495422476888309508371037543345318329507761552934824686142819269907616260931259540795197473161556536288334484473415839608133379100706824232064652819448004796672109588891297616857871997884008729069507128400261219257062489141633278724686652717732785044549394446140862250622375902138078784433651711056978116669115551525965483797359528392194607315371028050946713767716048352457799844318819180414267965502301684501948223961034805975141922357711717076589668712386522596259260093823887231532390772592444616170431928512092883270013709961248438240576682904231000469829902411026279406381606373919437937497160985321951561912424558990011150236507226891030683796099373831963681912811249668974930277028185169661918820007206038537572330260391553818207027865836245462098339541932244554355440512690144957506525546968213035770845928149395610941432852189884357711481529413286624145099567108361796416767019072229481068736017092783512644356905738728135139579024134296521402554555250660034327270471288995377118390191289580053252307231628070785797854393950036742293976115234608758388398934050531552595376410601405597633533752691881370457593876454774889629044333449123722625444472210303882268595388347360625361639319565039509531600868860935702896338341102070947787017149721825624551148800706866450459073854674488088420418880119993680167743503411201985924125861219667290283200948375060430679533976721115879069993454287095434907019375935360846358937370925914264747493074754542788403830237863511063003431961531664582899767268664338670302902920354593551511958043450548246355087700629237254366297131327613808599127894462179829849818729550105171442182302212053350738736765615706797779836631210631286989380764988789704818191461403503127911551070751974745954716386858681893144497899515544948380185320881517911151586337346384972290753585932941399809026713282797872910678170243694483564850178434405546858905208091762412619986723841559977412463457028978923834411042075355581007644672154991449789901711658676361187201997550701375587798770629861009691094774446570257133551574679160887800842673054356844988439038650710375362000522851005053272349342099256988688055516891440707084836240268743082779066441465244797750291691075467911522973522286053417036957565357052916421499225856592697693900436671852377095706582666493665467109800486842545909012768680107118986147860425280940474170750672602526965942641032963260074506491321029156201165009764295500322400556293231027810180728985954787769243324767451326664331383546342884053995651816734354908611932798301682202204469179166850234099219334699230111612163885663131263766910463970972881166480488878474189651423017963278343576455200991134393319368812413348691215871267737954803338031917568392894189167716323121922413662527692538101057997892748264530308619223730866809143475429120844007428949517812702218298658761810516414645363861459093864597947973154882020724662570754854303263552311420924836268116120477915273181187361654524249326317852193532701455738429673054476633668377617476464360190367118629745536331134927484868206520956664070557625057402547558078775383237658271109150825818651596268918918067583998660458076191506855765331928169617030777657979288680580071279169656480362105347576066628982025495472797442150492580105499513630500580510078914331407439453121967486779205516320173176783606458178328204801757201876462322500538647359219740760252015542300237479780466766459024090013346336077525349041091361888213684600294453115209666349489117669816381820359208320879757375573192136194681073873728731662147753965849645489666880066744353154541539577030272331553662098404015392630671931105819671857228168460908811599342578144771120959422425990339830417467617796572663168145008073838894787128974555103169064025841292607560424564497184759714852936184428186721704152011680509363674576760998890219834877241417593981341147985352568628653626065515729556581050401900569782671590910743889210160725723431896783397890243277006051222985050310854376533797537682984706755563683788847598247206147254799452426683818412374562113646279348295097312139615400268639203426298857096409026416992631712762179534964634843844916762715297291551348804530192203252719180594060222173223934764417783609027698472196818423643543508722860554923301991878661497872834045150907344162888857418040372161220091532506251135355589535396413357311283385893855414905234620588866703191863244523835071737046030952611026743877925589687819704018377798952387821978754490341704573294618570082112211738248572611382496466691417675776808993809306214073563631820844635727613409294013680997412574878498422291156878264416729662377923817216977923431040706009720594611950822901828850679855669229849629646666324439162802475445276346748718124984883424284035976249917409264735355707021720830902165426122496848843373118450104997752366858056953345981891468897498786451998371491371753684147287170795513705812197560710377358737825566538126594912650528005174221238879831188045589670235566512447775307429100777145167842628073816239766094442183381614002206338054219029624724982279198777290704704505487745045735378634859924901933018493749060335634962640778315680369420645865810977639664875441321991062580434610487750682804594188379008398041375822086861874000410373664749850911519864751995223747707363445400613656177812191557152118887616354248752859918821789545758821561616244401875581273471176981664360408767678033905257575257913245482290265878885343261239621126012098083928720245804432805489322218164344389733611904858893502463273159493873748611674873466848780557015429563413082393728663991322751388037402957373751321884449242674950446704193444263139925056916340433573033906002806899015418968295923389691036801157857168289094183875502471680155102802915390316468980506455472563573264548679198270918489272030744896767000675501915627083524781483293747879850007103200006698731316713549188908203300731768420111269791997650328641421799115916999308268075339816880847850481655509628689277754117527789178498408037292385577266749421817477545621047281891080314092535300859953264945729034327503268488190435151638838819195783315923497925688028056882889517919857647596755147176294222761996992237710252740723891021314031329050720979670071006297607357613494631254521760966213799316080094629204686202676539217430175852165074074184077066410609345063803193180204671505950383891272877712755740409224072659561276927183391851193449025233136611671396597217244041866165513727764657992142378454299479226407825333074508369936674160969040007805865977069653177313169635063702974955487925776565471296349278170640992858110019275169939741021021144566836975472252095053236396328839665390435771082338380671724138982704640805431439245610432773723803870404973852580943060140991706082523104308620998490343749413039116111083167262812478431404656471180189804766251708891500954966350118953113257697015898425661919087071889767955369920315304299948329741741449801384108376853238365778262724908082872303027824622637417610255210459541094642495208650988502435371322113983110638787375688159513417114048487162654148399664291832150716639648171863372413934286226378275995824140255536091229643171765582235035922189846949861605272985567621303685669814948427531179690705657675865220853358098030720703507768828172290755987312754589780913986927618927922342885826026851533233746617463180633125470425158982837000144104193970247860179881895097302454933659524903839271818346329508996428683348161631057918135064781232258780431308780085919965735714221843062968116638242933565950211906773989895455459330593680202495838726535143883013810507574874939807754748770104159169552551947418794995536453929942436467264800379379113176185131581374091763504278832112620920306276474203490903998484875206389725451401831986509155843905108534169618494609623383103066355139101842814692321547755766388590742990572074318420937767568917529825013727184976789446559243786503994372475483985411860996650371011084624143881549564415203505938659356292772950931902814090028569514694339973803518969851456897827811610504370920293248583966275194847783918965537238712992376845070214256196778637052276712305288482827900146991736969895671316599023366779987105529838165447463363081974354439708089711242268000618157159425056082413596439680502905348422012540878526044904496335849692378277078151997503521747916712992305347097254882764722928131777971572023713651333864944414382727558208874279823437803800317346295379826545663020359717331956453325988656300044639499257989941659054442577121423905395562586500404453554418409266787822773935278513558745905002007090096145625456028943912726403468268682207374824912736109810457655991986483087085177328158776414081630166336240913745212096364780969858232817895046922834739606115756699713629272181746185159218150236193423600150314030806527509365489383300122146527860091584312769731209399718496961167328507858462260176765048569204493256472734337540688147800778644882517455947509322341455570135792128159313876035229760441107353384977262689287934455180349310123058675575059291183199684490532169131764618875422545287338628586767470324895172490257095269668701438001011760069019350094589125915807846030818360706504517988432974534397003721804142170603962715644208276642080178606811990240505534347414996073254167598987959929648239157273812234043449372161758383034581354015131440771868698411610251462244804458814464028844836601704017757331274383208886124916223976560441113512814980505280947003262163079650465760467382798407961861644861843469849544063388942608414748561719904206741839327471831863177639046734223103517986874532729388951835030339192764466405616781540057851117443448170531252193072567268529614303441975875000999570309664519041042438329449019695917562884329504679382122699228870854519600764381820888157575497108810064642747737768055016150234941521425765815452411560889905314196611940651089919960507990472852278078990631476681183142839796492241043123918205842443027115125763072370184531070759366540619542884324003736826725538307063758045490133611935235386709563434884511493906345599856697711899255027073528745352608776530008457974402051559922438287121198385051918815620275983964436307848094130697636245595654324373720494603644361534055300963796027215525429079395789014459136419831778750513451442506297608594460918791037522881693076087608012089197392033199837965400138775309262105671992402836403990660034712641123211830230584565729616529111155651489320264802632309869037937618673560889123338022076358194101317725616297036879829984057611625721796263665103954656886864015638903008027344574958955049648736206391241845586817860368240424024180689566866798983343074588905253702274842597694983610536614792537272802630070961819633182627692908350124689095950229450040247363385152177044736551250529376943121390273552335068019752644686020608587366192605065968696422331802381452077631104748376489546588449053830780266358063145161738523006357765852450221423754548772727004395306686467811949731292607197989567930632548666685996434961126439378951192966965909730275499196026568722562329116118600568990119940543179844474365495200367179616313288100404262414287254011181597746649338187387723593295946557763823458675345814310645098332796932824308371967812408359073280787433752370761531893014729299046343679950654381656575905503094338934727201534280426607018519945616114077855475266320082196149380488545276297980771900770537845051375329948062964625738943682997496066278842748346891728624998340423246589112183428400390193080005684081550337035338588884378097069101886373591651219126349445278983213959667039648558145339181102009445066722286014799099130611590380402345409369700141230228806556525189925028047565043651383422406841573228574970025647971620258170286173452671871539908609624529523592121687319629597703850030185066080023100078365516685891540724545802457588688171471518511388220050243285330167258471995298555090816512226117568780955422266153575484000047680269282845143111032018937676120203626338490268708506464576084167972525858859157347562581055903302468284007405671613576265222658581420623401628505455287450185203722010722611186876381029132889760956414356511752272736646983733648593065688057116815047258070078866939634488846154478655784654369406699752337571283401028381817146690367744441920658029506273667291398506590493782995802001988861010928421303891506658278410351507981451606167131591142990031523349750238603159660353026014011261873786837655594846174968663224908695368489297844399443347225798859410297899671122015077410252610095403355377174214350448575637835119536653415037669668594189505929920931640832754006157422218482769689712896652392971765122905868821283706046007589619040885447680685981531907261908918977154949469126458971367035723517413867396233793932261538656477243106500025347327547202626324702580301730614674317385631550488619121289953105846162230738480640553778078534751232364649693682326124028747962264634706480927761708187773416977406363916474522762626051454412674127495917528935915508371996525820764654830410853252082790319242596425851552772108552471505329076744257642180911594434695240362985234963297906833261839505835820065110765486755830016125817760484918609120413934975086400406263887335888458013793474452926961611897995651031358256904543733457361371282327969427370708190684564752073992987288319337123773190843976244864012529811414036073387030491614006994016162074212287468445892452645727283945160673500276759968908756310024022223224122310654676251758179879512849602288759780015757744528893801047135974975458275825485037375304326203778154786114205158600135762099833531716487938011912444145691311330466344387297720001430568632988022786406025332582517425628482217830319606839085806274281337259501699622987684195479514413514262401496824147018593066472711713658598879295802802563316701648662890913422311696091112557262333890683741902760338035141710437014795725409085721130724205505236663899910406828957186221927214069239172660890564865805513780763228691469849491703806750292050111492427814879937553253087431775227515113503330834503762016912241790871395569641162745775853385026754723790282685669275743799263575817988765221674066580954370162367164780932478817206918736132105271374257747730018875821269225285365320110183171479840085916631617134163841329302864482507437659777657712029117252305795853559543022408203376160856041927869387636343843789353949180441007859309464335095251731299420387627000709128995237763803867691644111307207119923452514413397268418862299757258028500816822965236305362975966955974700975696783372216596531470583389968837589400861435529031557418755445017173930973191562232237498680911390653844342043218184750782559640872092421124377696611985149687972197474903158174864937835279164126830733684367514753106759762388899725006553856634986594835417992901264654760560702199421464193390863634366842037265981919188278767726290528053364824283170483370969320120954984880805720125065651684665885182176386590395635619747154597068153375230708525298155139271668161290267521218010421525974871274273852504652611601019637222581945175100887072390415413852664270091641432490554549501619339914755133147568330452714442613155442932840736671401148831677212291535991252692663263582107525589414483319156827656558163045437825144651586990284427841917248713404660798710384519406884064533932665839876460215468683006539829677373849743796323964658958976793234748298532917426184419955181756292299715669774204669473839434160954127770984598121445539553637626811985067546956108814982887261602053876717507026254863015840169372689525230238533947821112025436686125297463674500784616417893954205199763313709663269374197647314091108188126251477425028364380535380274054864175791439411155778962476319862315714158669909450074352775892149529858205217324121389948556334677425570982908439969602204193188745403991493892489397692610266170446290790301903895973480421015644642712452733861748195191043556111237727422735347968471649330940602340110505576461182236664194494933007242010221504145565528591499299510349038088747860059035718466789401179148158174397056936670562634307122924013957821088326501541134803208830190243755466034331082646262715457300652972953774475153241515614918347995130825417540906209292843792493122677526489541785163634456746824289123979640147246937222682500186147176357423794275681250296440663219101535369997791500842453479244750050657825650752680235954117013064053374293684805499422958147358307318729598880260286396776132060014956280420250630190571565448819095297938313985113000486662139094035282689877013848182940655504280515920351871824234865238394457631421780489298834897797356281999959533716612638307734499461873921538444399299018579534457121350698385271110066419341035797803401767574610435474338303412890917099386191098004603035227122306330046943161949804102425089132064069855341117423005373416795649843106280348695474413228118954378644558533749947756532662526353528713683417167225001523176307353633285062457595500018915548643502805860613150323954126217672368106887346439786262853470896523613257887463978510772474173772279222417625855482368931645809793242551991886352720040308982018401637136968235060158851461014837603278458403286934532095911162256408121241461154897116425761630800731178107129817208511003077417418957565718142802905353735045781331761766710879013900840970013960780427883280269508549130532308852559193652278999069636541151683065369609284878919952482284658143625658104653431842276679414380074277122797384296412730778779393776478741013444101835446748016594649605549528018513738595728729799618644354386286070038703852965161474448938683740921053826774186499080213965973525748304428427960321090621743114092514232786094850585655254045341754877507188672897728400166789857063043862361823867291186067361708161951512551560983573723797874966265085007312944904702675345876799155858085643519417258102111907710671464338233276184774406216376976908330701031688236910513762524106103823090958781111982225757412682814400302265840656154050567421038722723510656197290370290727981205416694758546216599364317331223520925110075677344269309817095748438806260785608523411164884678849212519768887052859407984722811616603009309876187582502885850696041516220743937008402856347462567808889156850234294943550384613509537990964853598496913632894758643734981551912818400354133576309178732126247406122408313907027496519902388660399854122690842639895011803803826379169333039640151868198210396105014483945163478881526795463857264542773621442084262304207890310102136337249570346016694765891283800002332397901307435789345952077633649364381638985089296339527578530898260374051952621689294667048945842047993813547638088059975952835875327671036596454274031926814616657075169748102540858441602920190792257420147625170403513722976406524008263839980288115035209627180257487877886943865351880974296624603330677796834524539500219595012457315224455988272236922280171860284557485805178293012633464525315420390461495986583320923399791585551770591013179383993825988350180429361130788569682412242139992298146474008579204833695556829358885699546908563840375997424606809604379429383938110028992630015175796336414380904345577985601588485117518274941349971929922148544065077573205014461992462165551532636435916997956072830762931668512726935660752821721069079059205298285287906756142603140104486072729342233945100990812098764379167454478029821296860450153643358611243528398392347485136597964341269354305738067724372457365473212835427863220042289534263300492221053450269799915632578000771041752288450103729325494272094690891198220780049406526881487707374132049916239413211898326899988093856428583327011444804893489498017274408639490770785229668752812838566550288806620701743586679927130130506810316205871886757120158989498696364060824736681617093074070414846493542951329378921834488411087853605796058543558861957397376406758602422536051344353207276417990820215180161365192573872678366205724167822116208209216452081656649669829185211599867984112216424617835041656086854340338009853555283581028452085124840414418032988280113063433926717344779467999536806650222997292486647230043373999574410806745565491915447921082380476120202470694847711699706195814164873383262767766860362246553330327445557742167543203348676789154191187444860807628983086098550404010540595622869143630020950631222383348759651697424194341458376871855303924465091892114415688924353712698625477085108094316955356197949665126254254453071667837398651742511208421753518544869019500952345080182558007443798913876939345672645658203161507902387638107773515774949143890224823086216863331774657531516732928903330457686099544958978504391791187317361666340637106118589791938224204954496049016789887134054665712422996704400210767719043725294443033385413940814855237789683786598348040315242849997672430726317351395078516424404353346806418520722162146775422842688529824972728133131734115830852245515795389205749575550836093845392342073968686913535905525436970221783837973622477703059767483227562331704118696357358008962788995719961967625092195560578565860578466529388760455954819288288635155591936022769464183838889025145597220955408202616680875571073685287348688082128198373991384575568624657376055270141420828181082207927712143011592902024055308143296094925149422781646775595266842529781196840667107739503791799332055805390579247862138940118821913351656026006191988300858794380788005589855456504513375546806114901183565078748166325501594292076297081705429406622135411964268649380807728719685641430207634801082080400567857373843157657427253763911462539461399950317533294948558562725411270512605185634907376705617801600510179801078899091818834696850469798486940663738359665819803500203735936363872619199679891857575713090532616112472143837097918247246225720799533551821209076824153695873053965693705974514116727102556886247009663546723007541854977584178530331654822337518504870388076464933039232974439969761973263377722488893818656930328529835815331464361577679155599848862022020691623147614730246857585023063340285926046023433281595864211605981558411525439885794350626801646527249382015108983012652848024096523166821967113964029316070634755651452832011500094819287498791708885885577164774700129219687210516966784255529593618991999179977985956850872242585053186754354053296574172313083110422934108585128086957167699037182711233980401556510712922279381551848846750152953445783931071681138852798483682249915736640007052859620150914747170473758755872277535878892185374933299311577592517635263915453198604064112222716123451626879234555074345382700837071117596256677916697309782325370399757697317970496948040125546005700419572659691007676760318381131689024553876830356607008106139494811783480235345037799041747734034893165000446616069200377194686791818024487734268779740597896101397685049587242227726199061904268557359954277103656924116069799378164621267437062751537293794870433059922971619949231079069984842272019374875911817184201290317128637148343570097659248419393322377965291260851853937975192407690639760913545779558738237174586671166366783372413736700513378071338507192631604612452337389889435307039717038850580983715188982502723207104072806331623853028390123947453151769660957519656256447109499894684447411528361169600796792610296054053965035108789380021177545062021845425166555319581168518612593321746325473196766961575932650973723307541334275569022822168607932014761909474469120690829564644548242717949435460644113822471638265009541273518991736703320578607823394529295284871424243590358673474843959767388646805813560802431745820222423376856791081890368654509662982726030073078821300442131285702729480697279636244189324093408290457117724024671410809485733987816993370718546581304714981336024471348725924069246745660692881911177720904625164204851019407734929880141191916507870076688143449184241973590663694264236479663252287586358877473771548499865983331058647843671388175426024359757204712293033609119395271409725083170723651664156002113102862890708440241538618568970108178907122207720607694074280713502533468542605223140033387734190571300456056827140300622430607520233514209166449263025452074170820382983956539884634765159273659709178439101042402721782619363983382125457612600052712732787265671322066855094505184888138985765758514051116241420228784770588799058747934591831600499943576894513152965287117273420280581105964852308828321784407784573980668549134010533617414755679585792841864493676854942899599900550180818161160753966935981145032962601336291173180705880795855951977575215870268429292062877315990662235874116077193899809394898540368881522025920432121207908855162070073510783502558882266922089958565374049326882704650352466568881186555137154686123204699607590414916029165955322649742688160018869279080119925559627399434256148591985533422667432642411922924194373258513153416445488708738938883052457788171533317101140034783226168371481531389244987532304690591649260590448409924970426185535832228571073472353278714365304378179816496558202562256941062221344179128239412039743138535878982822564073439971249446912959273183984192065673171566357343002162135655000125795723216337996136099853906937826606845617017641170239356335687087679862426881875313327739750347938585285065019166484867510487693149637114635045552891498175033464637944224387870596534183402835978173677655194350266263949988086097603599963413153670019578387044122179755132982485549155086384088670296168973302490331311373871742345116839538653418528188939194717532292770045409970724639037305664423590452900476688251906682502011361405690777571746351112206646843426816679079452546296082580108868091367384254966578954425172433209267084658029640180263771312021406446040270969372676045267399029934786509177694892329705111531852099066187481163531900789311912207441665846550335107963725015969476245526039257364092144887500079602934979465599444164938459954315149011567854641477955387223473125719775801343762705839455052206241216650445996666110372335394562296307902766589277462383382049510464187859400433770261440474997719820592977177752307331322340015665481194086175093407323680170047661340946316930055817069802019285926850413788089881188116291260247306507666604130967599709220128137892736505011043087173246723172408304983521997057054524199818938045162343903289804650008616927768991515353136977488164612129503095023655817957081695676609731304471239284546240107230050662535739945109697789443306969423809486706165034326700147547646693262758296057816542762108079464327006408243026098902439384323501121703586339878443561067919820464372000879363458622347873775200659371266174670549503816441878777520238658822302324412757343641963666966459750101790666024347003759346878859258072442791082170626087221972539096503719522247570603434083995580939072216291682884175282547853187527327967632759360497063310688028238024100823462763462240260831646909794819785698854787291624071874565664765651736600191589666459656608213192161486668674293413030916331201722398089920282248808246237517251171983431085832167547049600332012203414574240528357003170137828513652018776483063485624251590544582603941112558032248033738551283856331427575217597416567220505267443161451766977687538904889499128372513974847892064085209675422082651266251959548839867242046674823721045080615473653204745151481503522395842456436241377982540278504667476511963533221620919682834391842142944669030123555539076422634644608265453164278092495709754990072553564885032036928295399891456882140713696303816582596618461224471544549266862926441016012620159578264349377610412543384770123192198464278810356736477360291894887805945421837042965333850828754649885483886446963398303626565334801285781747977851762019179716484399241925416841017753360965030549769645377604458447390196671690092145434283501235660353287976812583161595217609711014175120714083883389026103899309778678704549197232458512046851215344495360542293535635448272687125209609733259023159887165223123435830748632947173307280787954166965839047138280300462862609030164360686265612464194444062026833355825410458266166748612994798215829073466921226281412227642672830053753787311814631241297746003664484761167917310705016493170458547754701346083186824319220468323637093115863493133107686971561502424367170144786044060011382253487106872237935384015693399742660911653432783570461385573383228986862004443573339881643098996952588971631249453793815736028486713398163801429803238794275375518240023466732336231353994912704858698489556996669953968060329592974040563684317706674919997468401870717242528256553111703294815274184367516803065264796896709151623504734484138355795408079579788464459860653563378649350675893887000642017243572885788010823402029023442499563308138362552220253892853861087717413072180657601735542994785843403998972775164934417273164547008136934248953799785553159995442991458841007699559866169112871660812966370472461180846572415971555232050343947329554373458198440567479072308996079675914346632175272252570004321520757109762540622728754360295148412416410489764043005983918285733361103143014654380695794013602106868519315220128550052805798398210098739412658805996191176567646849352508274941737399319059552840790136706756367137411448197269739922385366900680488754972999605407927500711981932043773373938067768685465626482426481208308012054399677994820260398570064674748677723640689326818736450346619883543502891222919153209901605728151998246910074516158309961431536394793865148903445331497707288698229646279327082964342003734089571175743876402427949234528323603016960659248891113354547187042686837258998912725822627617819675921208247847257334336679547405789809688853081641187213112595490377889832455552080895587639785220934548392238514359726816906288960475938185015722820922082763874055154634749709868861604926780073814186777098855234285353268176133678834554277803044030607752292749198957994703047393077150382215588169009045332342928244924031382891542216112970301031619736982609251974824982950064485032651501632579909676892068941511365499638561015776273635039815206816785356040781340182330287365777727428831317938423257766983650482650222899805191547899823370735222978090199618937237067632074181597333156373764955920267962709908352958884394821703195491464439666782523239777266066289793728682079729553449598318716648971279291091764099850845000119001907483213700696577023855577159785790022584288565089089868726270892025653108919850499571953352696128819966408707045202116532421529524047369561835458348929389014961269385295732062642015204477579444269564706152963830337852171406139862386602960421173948603877277078892731421120352286015994138297367682455392303763271129267239213583990688883863470641326510068986671543014700568575366065334311473553184757714940452387866306551652586560935179973243731827496678106409597741849309050594932262294800175961948053918466642591763088368185923000177871369809239362395164398482501146080698272316040030285378302677031956872791200457033403702909362214153973120842854461064876067627529555501629121388501905543426168430020521911522328601228339944986199957771509554151460487151089891311612719760917830040435075214705563505146281005021223998238465161966895452910963908455891774664290155348767751900174748694787854200813249359218326238732166834142815583807613968652923229280318738883437304269033497281604600288865727724186885122919700791976202048577226145946865682252513712681969312800699881646020432729423893846254905799613347533534842741937969473584072669663808366694825689579361704354525801522377037733138861904576175120740295314563061306092407023296018333871477771366994416320003394089787869463011042180577791404504444538788591310878625330619313950197444230953394379231098877342198087323637816516795342093824642949208885250432119497208716046622919874760755115260454342274839585313269881995737996558542985781629685128005196781928986094769100334387442603910744884186910334221726415316621785580693030493086217287428192931639791437398451214909437016780520537466981460883048019463007581394860980913860396555838392372704686414800256775146436573982285754645572327875666902809527769963567690168890075432852588780288145175217523242867313419665446011302756699553839084964782805543682302169665016217040517865920311425145912351816678607244910519798137201132237904199085363586447036434637810481634379384578431813850992907424982574641450390195941036585044537311669055595280949019242030093350938084684557613524166140155394492236117706275308869149339581071085152710781319515378219543939998080827290804154828865648834268340978599087812037334182219723204543833349472114330821723950543832559713131336382444391839355479752927949399163059078833468251499497472787378268462651178582240028376989393723992147454334454720791450293559603358203321541136603378697253543706516885960316836191617651881038686041286469653461062920481010735666611804492325980230802822949784414223233696320525079456836228178390282241271315632688152135636653852044728067637794643262344887005020470804104337009998364410731693447652447960494218806495087568661227122515753839385630521439442699864672219359053365542749178694937124176218375634744465944617616116284804992167230556567285727452533625115439289669185178345660871092816196845639709192393698457976571074571699574075250023177418135927727746227141332987813148400746986360353008484251313653254267193834583247453240681361039538644785629766864471888940523990061282344481462096065063618048906920589438628335473274484791684238687427329246194452474505259571582386771013461360719371977688807888153446323474247093678478225230409063653016799301211390393022863684685844776131539990854665275891785044848645457037853684574436738378923997568370525330514700458059648047019160062367994604962254581955412120398695900250187198279903511344259583204748178914942153723535636574187977234150067467602895553816631070956478968836924513659269524932484930009667603917562260772742447977560042921480428637467933983895431410338184995779604353834226380190982191731641961462661030134049453005651831275027859202408206922503279780266449353312615552797149964212916066700937468183387293600023192067289018379008341214988696091721982303806350347143277477765846326264021062465106306502201730882141115512857508672277374807412597452890162518713581630481713934275411755555038716946408852022946678616474278520446000522613256191571314313591561643601744102629215575707568636319451063968172986536446214604472634349653289767040618765637890192814588323681939149072630275645414676145510104221321275439280946380248609017550965013544024354168488164964040713530800503094775589222730857973743647080276131876568501064715366392884180651115534717635845381140071413753536365557816371336995345188777845995614237698876099740865777743026966496084778710366793594840310636715644819110810233719333678368822803440813529794976094574039152493838834142587941951668819706891207969919080599807685584721025170468537347854547610211235433488981361661479069741674393848262738377186220889104010907636132500403344181705752877451888199420540955668317613218634961379098399708540986099041028767361272820174453035784974287042202291298663538677239656815689309223695431060536401326081382519353896988678535695177608891499381880343396077222978471614453319409429960110020996126443981003700705556415992244578592852177373957799789192373786189708662879099011259322455214932025869441677201052420811804258385191159592701560134973518810093224664984558913013507731716735985790537374738865611591142909694531118383707602175297615149638176300308382354920288967988183572841718595028850300034170994811419226114291235080476791128070473597146940605673425265835508647220697366173102406816492180932228420193076138112143178824709982579646779597285476324190644894585072728553668868499146162258633081118343566035850321628307249234289516189063146451456094330609071201113284443716921607169103434198630352484067433011272168357028335299541153513016400753304628369610067998504883093171800764186513304827457801162221672854318152857717613337229826619501062677227686876242207928912393170554305375312789544794453270775971367490421145738427651016087455654979579973563149576292877282470225131891481161308235261693981225908179068181005981479282948312690008731640745266992024403938839850572626956302240875491511596603416526387473539022836461277633591961928991576557610789816286183275192858746302683170265856487091208372511296004299552982550495386675970940859851625915952877031658337046836156072879647381345503810961209500509185573194394309282775488778859477547549373094976627317033560863508050053814318189210662104325617154797381251746559160931304051672684058785845364457949055574492688231008064203965150429823881709581941296906192180384457559836578351693270401119008547755160130274883574800030543126646803797881223990660748810025019673757971712756633481875609703574782993441944609099212413066627615254533127016500439555948624308818621206820508758740015160523957917049327202895786554453595331449559784402536420642016101706875394542137338475246176550820983703624879540701473491055799416811559701416895735710145763689346864465365706451941143396874682429307822904367178496147038453781226046081795513993519342538571299906784594217382809477853124986251226014592979045759039586440766357813107993139989619448326561836409370342143019446020128916382075304169214381159017511251605013037076709841074852953161978456557702413645872003061427519221652259116590414799673619482567748713449238006133653026243874895866927874150891030480869572653848977271820424386608700587516139716047893372479461826697200711420098693176431036618144402287168619488070444300015265273866090873973346767951484626647437808930506616202981776987867781537116932371308566786876319792575219427484386804016150879578182375381510025511747808119949349625849319289703072853622253052818655810353174554067246637909460494661213856634542254698978758421578511976289134917982074938234529951977159009082638555491424313601711350021338022133032410489410142289866042157504662630694650313759327551049707347086847317507109368620237833980266196688216852716756836071432221925813784081223456651553668850030205284652579002967916007349097546756159045478389681410544596584533852924534720947058660666083387490965218269385104601119054370037943005475122240678832567479934457070513323788551105063882111334292147613556863128567931286274586625351017703511548538000553635867542882985266829260826749304390242147850488798001706826344151280380977074407488666224583964375618127468764528368563581492682804068601459130829407020477879938529243179574751305131998311561989834468362403180404315933676413216848357806375359825682247806547344241382819360762315281436905750252796401182329430472401657228261243157351983788921734540259067266666402996293419250868332057686760940856787613285912936722532032653111420348986613030718782850976612112314969814425701289648981317986983618651678270955488971704396517411140362871062135326310813616917945415106026896175000553535171561750151179497797316216873421093040547724308494646856395632674537167054617016662669002819261864895905738838727454542233774994446686108496317503799473043618587848479090946100457076406488667663516687066675244596879009350513040247369488612284904344845085509437256265364744736293700495406540877133474103564640500971192638858206967618741197304759706638616078277714125926429549854125688952509918711236088272106237997691925194318807675760472496500097906017890681831655869690672668860289785577567726272118032095989801202438436084042905319241936897872085942051839753839714716895345790308205741830129116580702074821234468146779510397906949926452697285570135614593867662402121277840456807403153735429991654038193132722631210059609282194980131229278766413775119579592489498585758464749266204117452175050067467896233227714210079870041922477942360046459918406391197014390442259858123467142305191753134809488315912142626022735459830471720717539036896918894453502035805916490546445688102473288900317425140597478239181617612356009740950147834143187536239459907029940593087912359534050852136946668879989356201246567191348769841533275407164329087162895195790561809776536096908649683533740031369855185567599054355516779521374930690160571715557853994352505274229664814858002525379526155537901148631088408148567890656072391013101996210197956027117074376409765670989834601596907387471569946472707253680204072800154479522125187441243653661147894175270465142914142089376850090598759224022651261790824250710289700096952548624226413636019108611556822486119823666126513393143638294683724887879260420991899205229323649776879106079853274119571685185120695135607241044002393483888588102970250433787567912733201455821932254183656099672506026345850349477351608705847804175235985493348422656035646126911027065492439917344855452569007583918213173688349595840754148241339873789761486239192063151444026833590969275686179288485526398381972240324893306391168176032501836114589229755256894238481334118944295883177974764695309383918843585731348249183803125794512848156643411790698076453325730628846357256704477501090593130277845555330099568464727432267863342068077528604402758820431758143372908753300818457847762844518359151321912070199689276254411633826409294513258521934529637238576736796318456303119306947927512074560083974126953265447354391318935019056419284295590436344522232118537612504099189876892268150526045242665984110222899508267171097427097227970231792462102458498992334898033786308976949729008438353929507618025496141911103991668442170694991556546801497849233745694697131119245193648756285310664254211444493987055649286675597067361758009477787889269731052765739482241439142926310743355161668018954837668451596992294178747023150713167962272058155380573809582042697962455509246832806991179366302205413392774610466619947453978488061691236821669188567969014301325489953212687674846469226768435246889203282630079256260680139470407553109379570993267339879641682223864445952941545012844554825362275918645639779156342158432377888023979781905727402488137521755292329931419446034146193790516468289319706476602400425964183126559790205688990939036007458631506224802699579536385558337597033319974892652626756661055397205573954603561905745798295789436415596643426578232101139004245177650821522519618019752275320856383508943496818569751096482127125429930753525266241046592540339679528473545950097707868490388572745393968625040502367731994037039950216820344144798286488995621037172273285286519380990961677005013339476582912966221138924723475324523500786049204189139949233348953674699394557710573898903339170063113434118180202858606327237765716735665327546706597104860607261003562723528136011326912114161241157097389387759400954715516658321953815974943633420125649944350275322715023427153711577848439266474477770586795988052115571522308476886062181591856291315192820544590209588426242366801965531936775489991379742471207057517780065390464206458254603001636068956545677862718036597265201730579135442350666626425781596776700668945424133843603667556979919988456825110778834556304047677092216480180550539300932948773762614776050352369716864377109033584076717679245746056229995513645644754480782285981880498060595093169773545194117599751114146330871328636900701105387325843443595963291158917893248268711637443156904791901842022014069964780600850996465859376642138392368592016783029146208974586757507021792171611727222154155953797361327215581614765185903938731711761258024284120901445569629233653542250883815946456585237819556559958608281096801369035587475461685775910497874924270633677698918409764418385635100390433932563179788194704397601597267020592722992268094631842086408031308347476132707594160601950264947657422861693148393095489974226813619724723205964136241179337307959477318152961455775733896153382568887374513330317649187614871836773519323061474917635013170254529540500680674181998330189793109758809227144696152936339378139516587155213716413400236441459579990792613682074599922208350547707608413080719207777454517686793232477588680709667191563561945637655971968832545481698558823332930223234814347415459779258464700661783497682099379255397903865180736645387127470248341479299566778748638699811217782344104801567087225846577404424231138025663760376703620754674336715319871171911244870435641375453396672093578706322386159437557174941891031601834270008528353753131811638323259921456624528119210134222581678542993673972917326946081935101088612283733279752356162911424683916812585966577794203237457545731123293043665641845178625068977745124091693718872602124764251725382074539460549293446756170401465783435807374010857689859476292518573821490061133379701147752723572080894948992679618509022162456777491898151468118762404646639616150709555692313920601549134824538772037184028919785026702441159286272045111468098623841236029757318792947870564019472902933127896268971387023029047277516905758922357269425352613810568333456536586697503765231309238610741524432767108466070979112836188568581981733503396240043577618579079503859590791836381654947912590705176730928524750852384895045708922213633858403824885813472006962837438481859997031163302239453522574766508692304998318584891241814566440570675497406243955223481492213603102262835281255599737954394584417276959640600293291556786156823932239783549453090251693179751719577121046267739432464287397050555997167855004558232003828008751610711414955159404543762934920443613691308154371606481558398118870665167585579879070627766555934986375455181575692764448539176146520897614400796351795508645330944180889337671003162085085230014440231790862526917191146262948314345150777939647048755242412581745687545166337954333151413652783955098937148195860169943753492185646395727601060259526861883743633938985235738877600909103521416439070315919902041378383538553689981182597173926418017413197737762168175679918554271912483093720888633930020742070074969755519627547592033633946289668827682728747195813037625067492149051428198467824976552592765613229406024032150744433522735930988544378417090101965725825938119393819586835406590595082202244530332301169038853002103230129134660338851304346820442724140423407267142256226704319000758353391688717132097485233114805764266665276755937024368808396891426859190112537328909667876771007826120316865885884242904122598456401028633016114542960174928525706789909336436271146892140193992364086117292691653361526822114763962746716280838665914934154858304995752906615293131130076434034566861109619927906985813014447369919586467594578717157664264133280424444075416656252958151944841618212243210488738214181692863647405670838404815495692164959033683436887345298899102289750814550788721264748864453146534072661083954629896053773579154838703695520690376405551119207634466508259972116332459072096585504840606418321301986873263904401202580421898265222201721891463370368614086257137938058188974791063673967348690534264744792538097237270950127908655538687106502724447605090231312623158295573959027583676533527924855453652083892094467548089730273452439217429292385246408967625133688556273799816987530816722259998325112755653247532545324962872905705266040493017363354581438339417576092001810233542685640514281678112825227310780693356926176228006140737468507251241372479468630777347744002100632003951506625793677111907584610689676131863608753061714815398568715476116906158616281501466023069705574707198526592215213777732706043393818196062929360687954390467487857456917812909288823746685937922592180264723498714868416065234863118560506707369345929894845571070774824865005643406130861952438286009156036445717494930780370499686969198064399792505549552637495736667768277870874795756111518516141868912379057794979094030200798195972735955774465444662342379591311086428412516852480886004513946511560188494820804958619031219678917319877672832237579727300865106788226931314417453600376586624701984167082286844778208180443874675091312199222633163700914455236728537052727886859991759905577869154576914010480204378329088978806445825648222710285013644634611421788583326125541880055575809547682160044293762477141259505085958623965125623317476558105506157107312061237054967271579226970885817761379637264360434190703752293440381438393059858802429167196201362109583432268800603752890713835478091943150732919291966423358410181565801946630609449588036930125662245950840759045516376954907985325676448877303015340233609048437850046087458935137755750826160677520358573569418579772203419971860116348252326453320296752497650079388843983799872442691005172533268754805076062090341773399019921758209505182090279434731838979354892529970471953810634475878118370641696107761164056269329754979336982875572396234985359307229161864167861222785076496346563936831611547388474339329345347414324104334332371232872582327108151934060939593426883999612311106918924260833768551741611173167431969671054533248869438560897065018422636621300248220148771707799047108380585581413826611090373117440891496544428365774338882928059965176215640535214555652098890595413868996745918321314189962987672514138148256173788187957744579208859686861471819318975128324908953907883395849548061334260443802151810597767831452634778390361656078879171932939426466341861125573493302988562146289038046769026170020175433012019443069341935250157906319749026742595543241943527353337017817066176217350651171289203745450056343192173509362652984767540692516631713174541221199105431677310716443168942038776576488687627362194305006886914821722574036973731593419142132520796486633344565740990318183956448889751069791697174992211493488230558423030065252082291386606746171078250094750076972946857540481003770990241039073152145382294599397090365311405045748212227121098673722709760603282763128268901854926793548182756086413768543957136933063410329355740094269379421863197186841292840981151374445352805162045110544186680843438675758956628803755085118010630060042841956845221315562425688003354873367583582627621996735393152665324372959831150647215370722743502089389334193617983447501527911346600287855157447541293664397323345705809073728420404259238674583112879796103714918043952642009057012266580065377265717414077854593320270649539708624917706145026526211184658020406090054915085835056301386930970131878943894637130433989653776898611699939624025688943674164393242617596297267102714261488721211141840672249202577290947834027790394835329767980316509558781320275996978665602961377818987485785745416593294420135353394239904868229524208510284443957037865076578019096258640370410650631387110259766430358741245179171161026280847812396026709589299955716010110518596624422505633613986716161444100848561481435272710030839770398870553866592030971093116617099787022829094536544289952549680706015092315496691612037780771878979283923077383794150659486899410561840867851390160292412417830816568322907279465541505145987688082755653769051371053188418744214922270032364850891845420103055996115432613997374492685359700335367275031335690990563066673613509624359163111720131999732863118500923534919375966401056875769782981122421797171112131885493159955935086553994469636296400499415342365493924561359027965077275301959026916981099204846825934428386369811629548288586187998041084161937640859992553802689284474215474478019223761032795281088635501969698236077312249347752684939673208913230846764461434793409905101469504517671898825192743116133936613677716211908060243568878319803720106731630539573195833816598567975159132922331626148677310137002900143478068126189042460591905205067165759498155516338618504197743930945097771730309209536888019926893420495676788693254960161214592150495818790447908475593041873919175094154749211243127367251980335996503096628877677061920641273004328518995845555709636951431475728995498855942949135973892106286664128251338761756514658884312515124316739934442448140829966572313268520488862937933299479405874155388133937922942672948392221798688736119367873550272726923029454034444672137302898291099758987950164668006167685707345704885815767352926483487892798180488323294091233752606890008769174025275865368255142825603458220847437221707942732158871856603686459109800313204901750221143079898439062743931217975387957710472420099285869270225144237905411867860523474632259643683356723494086659054997126574834138073237226174244279516748023294072440947104930349639704584694936261929256458668253949492710561754930603747505456188215150325345846349642084799543547696177015264664630564540247586896721249851079654863931381123403807607146907072779696385754652333748424674568702740429204604311257347745639749648485520949482952650266403983012500455943032037054076210470596945503958914790561148489197042967449879442407229046146925444111293808195054685329082356691005698986995330334579684001769441972402290558665494727599710673486950722770144699989951457532206250073475802778654149505340368376685943700730792915480959172361837505029939483260191732348773685386005129598651421813679666283756920929806972804375941209523381565951721872106440244158538291189109170234327978113487252388160792061347338762402507123337413801561347652813396032415647071303070603571891054900805099095993955927576232506833508034997505109126757343513351966049611587627172022564915628257812946441575934681968769140387929595017818986555429180516773863705142399763260752401655895994314626331529635338482066393870299495451255508721852003964269060897236875520475172256837527092832714809074046789911841866847053935484404184001081355330088332768440893668416671001934093366039971465164765857154687497234194902091525452576184768337180999715188347763382188495776953516012077050219078768052248936242095410278904044706875836300692360861173825821024152475286528894708636488633427309644903995800194163207257806223272669676741506609669337135948643265062137893651004261822731386431484057788681410610431721633783051129698582130012268245749899072892958332967565842967192765272542994151414994622702374344207977354800586139510634659049225106494774660908441419078386783778306073747626763558854172285137110587465911428698202020105870837336456322947714568428461208718841581964077932228574326917674302824733241041290864641321886269342802795850352720621515019623446155730670992241779753710204106199359779585870822886703404924134552564188346055398426289924512104551780357143499435932208010286830439978896746332322275369097328709693078536928045305640049616105184286035937522953633030293632776163212529060649487830668658452765073388915958436969294005744323473456163703055576705489967596568656996822205626568208756340388927858811920476857888268129404959070653953014905665052759151103381650720850766807593839998745534244714782359357584374580529665479811883221867647026172353377706902799947434429606816039250094778371135244091544955024505082830773925466252354093394883847564652643146238811198451583156464583887904608337263333520143512351565813203100463642619179253430244858314622190867485809998528272921857368592578324990847445802916047942763838102079391336910741223636771755004483544588313603966043102709662047695565532527395447345337115976429925241821336037166171306861062128167534038365025796825666754109103845273215804798296640953300472385357164224429297405600441198221084944890481450882455335022040104284385136583549618705127434066894611741442425599155004596918380582906007978565267183954295596862356956468544812421006832705170486813423313954339294839928756144495677759615012038296163974585143413867016978677717027694062433453902405624167104410583861917764516269089734154002636280581086584255974428557106523318100304942764285094267792767836962360172895984807899812785620928441311572305621632224802737239050895000526982703207382733296434327833644746349060420318148660810378679231872939515798303699697090368973038950984957431542600876286985447034479293801806143592456904588168907238891549723930589002441660123548586289535699548845566450888529247021808971641767260745228197361724459411355368152657053551832235885677002704775995489647813643074731145377873476082563824325281786387978225186194254279517344372321843892799262412893524323017909908579929941365099673951725369248067975398618690071640902633762064628312326926072342703073760920948741287546720562890013585390543945781188260069436859720204840464683606762146558441756530000384497480611488360264954565964009536841852609737589269283650748211656799169913845587458378403882835692136605457192051659795356114748467845969158022475389236147771753279971572486520621063266119611774752665292880276621933052681365615096506264260321658358017368281404568621262916122648948138319928887568584734856562779445366075847796662112311660215235054116074812465311021896941482515457369653469928664849935891509620453098162185821521384934022684668336623514014623360120983977173550945088474784961197137018658810647915623583066986271916136602847936569690228254622566498518909523147032728047104288991100981589404585785227168864697240728853409449962881023437604980545557800900060896141519786942430162169946950491842403913567645842064073153963395711691526173473693165466778943237577235550896641210573842140273374196589152118596187357604898896447847872058225462082886816648159689816276244374531386797167069777630209282515497905240292634612570693871267403806106690011337966818266732690818284399128751545799528586573712358423313519372498495991412223660051681500246446671743027687996749551326448186725114723957207533012390347719241136000958886198837350227427428225737934076930101896829950672114902190581301791769134989097031956739418570457655679504905345825249801637162394146859189974926873030935186157598536426239653270546563387930687924000832782957069660621472012941052318994820636041245040938994430868914876681650407164410596855465437556748525582530753774309491192081032248832191661548841442425120588821789442478025086388190024269120077641215210766431738393349760901706572173506087660245329700552151087424828614940580848027426190584284044917249017325094056473182988413540600546352336384499365629066442437800946096661635953122371381106884737668291680723889656817809424915291760784750296017756538342424927236063348512673691741116684689290548012862581313197873337154868428181344083142191360120582715281314439010302587657135288135004670689170467091399950418637140112593055045932145657171443173338977771235250366124518573961730506911512668981687479256234519720424112102943823202119450603593239892838619884696663158053037918830047716713156102811937211207725817902135006367403068714245184054725707523945046665518447308208727401107280468851030140346201241117315359128705093387614702372255365003345364032949851295100266502618711313498359824418459969008034274123873872929337205401336955141299109669662527175476238876043194677943982501974631299874520741317741442673711547335922280795729962300088018767555057570259425425115357021300657525005616889810292057368577715803810448196505734076668936887981481260664668399463111749433608832987483526486679507939646875885237034812016718373894067891925793960876294284695106041868919585984376715820704197060337197963441724389104869370641911441709100716945673381932282494292532982522134317139487407976367272225997829866821261537266294618210255595952961209073709751276419497272134683533952280782492152860385902034391615948622031837195804066374128858747457087048741973301069156282071756385633070030796217773840661746473208941168254055516929314943471427877158182832045392076388144115624461669736168927199089425233216796377761154695223812454586172379484866431074503156092652201515808730187525627987837938298156239159658089524971436269330699297257048142164530048750087128161927274981850817543866887608330442803400158347330079824892123833769587449972680977744416046958480228271225885906750542739575205297659015234537598458984017414323308027422707488051297543858307242832613632060552378146302028338686562351047148521976237198636570611414602991465023551924887925988269048132481989234185075219191936450540130601534318208054517280397837969662204118874789131220831674712587916441474178285000109583557362835637866951032506372392578654856340091238900035056460274319483937789180686166446449112550605017658414351438122087370279739463049992889778465837008574148319706179263283307242626011004765901561598301778740281258198543183906193903327988131451845705621860970594551399122976922818100372036304461483705336099268168823861098379603748895499364614630552146619877394427785745727331048728776399867352024686188854281878082710732803015371778463490764547907474785179230221223220523464663258270254742388686789267361335961099524984752253972391943073805204297792606528307602215792051631063967523305026625685991604047373521816051003951737606676657631459398310008563312091619551818680226407022577868150485083850531624153475157858635994546121379665082682218278551653890874882399155771660989751890113915026763478900632546833321308322967845790750962905379959723800075838036590309871663835899434561722416608308980899614036117552499728832772552929499859709788151235889574417821730906589590925424519432765287154522372526292074893541582540221256418210296552435854033548390023792552852633455497319341381350449758866183296092152904139814107319309228667940644821726149349651613486056175924406735283698617879039891596935857889254742332767105685891881960836657641166274784740312835870177407363046733165045410139190702761329443995342524363638579504984353456685832308033273796223807478110102650144956732658774780340923802065030683624225641948160211929993602730157574992430480351652607927416489555241253789310177510416384930111385401435298084101796481135147909308977293706297957791004552333343382185730383539807073880174325745131049615180093333811093656540281974892210597693586683564726978971695874470492201063430999928448329077939433721825559338935470818539000994566405571329272450561889985744936507511940190764921236961921743711506154314422822896301472190902369262334400996098721537037755767503377623110869808055237796212938380273178177710041583012726180458626367339350678205972545295852329435097298007840604065399616324385225300004986399846043838539459002607879514296116318471489946263426870565609385300892982590642998547290273165462580042580313123963812684096556222005273941487670096957185505797546586899846928307471724544900445006824236226005453664813920384640984367941892888700463149623937178869621439691122921957962279689493906424345721811574243906335911008396108285274885053878277652685173335221834715820072518040365228883214259909359483013186875578974837489768845017120403519282363680404447068118921489140810583772723425427282325883349695460640104012130706612001930410510558846659622265103695678217003674540128087038663300476564646890582685814701905685784000041782071307161918036031300205082951657975016696198184340418806766309863412101043460524523994082277954137134081744412804281726794738719937782137298341573478373897406616250676097924364463826356880997407485195744649824901529065283433267812929775930949870198958220200541964372389837430747298356247447943994357708385456396251971777976131018583090846370084648210703275389066016208837022509500774524707505119040683032990648302127271745360291754675476498109233341893192830206671458729734156595252019880491228813954723023848479577474594861678903065915315397733941581810691808252219647406767022544971116998858466572571595232397962303589183433149805833998042752843806423446236512963054904360475965180361228336962357862888064836135525050109474694889809591290458234460051794021833586645917443003129567927449062120258952549945531269532030384814249277046666221898063453905613036592969953379522147018802341624643353628437944759579504410563122832776435937756429031212586790320104851836204785332354954232775634973390039220394286942994002306138602592096011088705101685979916457791501127107200276048316088437097204148770312827717675371955900405712253936722568285452715782863964720440839023356112492590114943528300816382249153187200081006804324043608327028484479681739748549705396581792518274251568235960854359553981718784763264119172335354365986918206451974650211306601258290765995576103411802088890435570487097127413800739379541664526636667652661326723154206501799226929171321235101935603379125563032016852128244186413010077545103344340699761311397235088991207546215042070597411270840054950763936752253225757287417678873734175948893091216382729098211563677266303437343242378561266316746409123327972100306245106880744245608258964088092650137104238643821955626451510272661783301942336065498977326096178403096552838064474169830496867081649448112422099649897634122286588567043106371821517939393125894018308180324862671537163700496322223870413975290007329887845622131022165294682351568404548046039083058752950762207744960683416020066976550736580731372735949542916256304284701034266992435223049983299205972123887844203468939439998505212399244201597721267683491157553755366390716312833815799778833930964030920663124827674950594743999052706872004327756308063183010999178635792900480268056049476908271827765729225522504318825821431141979040607961695368203258681879850329493941390381664534865443359843693201912965853366966257384845911092988285281382089628080355080385114986910292327663149168377812788002480888109788711673514834603146119933170776310184523566348840030735725678507298206212424529831347159740911483187056451104268665773624489951049629873083658517362298170733063093568628068291350804165808355206154714105764679792206589257208290482281122349861423778173757363456898817214039302168206865570082475814488535096718298447856948894986803785658077732434076694022556051240591267112807753645961144039326824766462238277223789099916958544984368117916213079443606638530199738855988752570640577594705716107813314340411991891223121007567993952869324163917337054925522249124807973214259339955304641994759958422732320520614153398494498407351081396208398179402791059960044430331412322459971608889640372276542235565291495123277927965345349115139432318816734538705088044272594268659586879170800723672417418692785021108432742295805444659763430720952632627977138613920273617923740807895963369986648468517029618140890341579981863585363797443709155417990419533059994687996698341843816158653169182202991314558358263834373082210344498412396792229952092867717339371173270725161524944768177173725516386998277191601285340254159771561312351322771182953378789451880464247685495469361324346951968107163124673670299775338880168664173702142877501164995835358096372063224867434708747467313575330741027827771790949595699967049025375851854824613864325400090972871413281851148922868162026007063292286887700156489062234062532629406428485590458814104880755055550818600881426820402487969772690442039415140439242295134723499527790013020693893071232639995916394754825491168090679253948603360901293604160955255160342451383360488779175151979790076800985069581897876117723802944364660315188193264222129851765229011375538096112392118326611836210321056034593500803968802373748022620838913252597698853734013693045333829789674426636416089754636143667834864002208551471135056596887500588832383748622643054791396150484129576656458826882304730082264893760141898528347296862136064381646466531053970713288512630654509597418371662524755550492567399679716653263638696445531403155779249422686863752512075087419590957828595752736961697651086142497089516798894112459068173000332772016765568759564995455580283253667417294291645480858759307068162320110502734904049688722734075734504742773675881447347785009213318024955679061646640480198187391722067007733987368898634066249533913388230317906821349052594520771313794024885444432850833982911634590514228376730600429082676609244534085869484899841242503643211628278826215305659412427665771746820073746891188337899142804614936564126855728499925345362715608838085524958622565291857661909266142151700687826578975177114020818819243756454416065944363473850373799733748026603904620338455869923652681610885964196942626917649239767237287937197895975848692241705359457003740999469700867377479939372219620068748044586554447711862380456747492993997872517549657783148510120938379089976017639121179096546898313127796842134616392681889653628871585514653194405466934054853364332257071371379426740639756131397740861351729270853611291672754058324317064581526536797056037320779294648916492210610830717472126627125457972146990061404479588189389581873233657664415803406264667334407010549723340235116251699502063950109185364650502117389646191933470357844192766029458654571111303680684773109068278850647967098715842059892549614894968443569587285568856876237457148950985369258198355482422306254403676065773854192040660912528027179975098594029346208069875704494767715288228381890750751434854892336737353345257211272103383766294333467696363990652170857266762515232901947492911605608606073005320315545253112116137638316456132884035275894449728495303243291557248944896077824464057542709449382542903072357785018906818363839371018251522049593357444684754060014304234031368282810799012157634481503691108854578263280495795547498822439297891809724984654245873750829491848043722176692613921941799365054464956988495717128813594889288671702585580284025685652438986073923708443569155588126512884470708339538206738534687437767545292914662517611239602715998049025054640277295456425724089690723993599456547472242961477601166520042273326417739624409553780576271309255982197044184637691526743362696891468166544549438112698233425031765075073396697549771891737562669251818328810255613001040507836277386861361044720843214492732219785031278586887209591572331096142480382387040063004557464464406106457950467678680852018067057895517918908691655524362673486287483479604945373538393199676827762226282076981247570146005216308811532096426607834286773974503821386769357367689813476454047794786699588673907512564772618234364039910947744690941985934079822564704997778239215915206968187554296371629855649745551925520745649913984190900050533948786879611676262418065296534109567792160703489450354615196884161137506028797023991434494369734382435553260163347979876409624175761168196364738736936295945306119302598768931976441517035565324303292643079414627671807273076902064605313811489416762203462160822469746785006718750826181790880385167802030597149389376468387991562113755142658514434797863396435338981497119972444890686802124469326932975988537268012908772404281746434899586011124838119322587434601313418882959924868460487694892235492599535141170272244963397737128198584100435548583537880847675203188211611175251151094761700677091081757551095228132524005249624768121990008123863108426365141050271384496347190991766930921606195129570998514205898973858898971579575653283961531971483763350164030980742968934384588128186636325729028364445449572168397500772871696028518209966624671262962943414589475205509416164991959055168920791386608802731584860605333417875081350773828650732810164378447873743718207928104565397143042253783280180309956872289690054345806423738607829792937941838100051632142314344649295335023802546735300080229218853950313018784596769767554214880916183177141752756584922723134742020512926002305907582363026602865732073131657996132081744144778504636879840049482139168377936993158452774949503403237634776748873351105360464667737991320651525097071576566671895236773797087794258385395782961072945893036244503679595492593131719804701793267248156319456547715498279602932097359727477121703722253251795426456017818390803557041791201065878321962542284848769759577817502123784520640139309184220000571192814336410588847514314140799528206875371130637133493022106572517826069329217528876777213587905055858301086114021895585292863245397229717825956401720170487200551180458955747350282712658889943744662733019939117786544560148720200866386431393976221147614708762889683752786906137499521070368243098782463272544672221611828150492876863111911385031798408922501589853355857451018429091678518964501192431122727289404161899369879215544009481882826592304914559008580731234484511452876296283640609360409015875580703191144992382195731055545783043946654317718013475606589148860658995648882431177259791772735366496287649927010052615915441968902702758890851295080171053030457304963144046045479584354070729112662683384783423931904549744422158336000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000